/*! \file value_desc.h
** \brief Template Header
**
-** $Id: value_desc.h,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $
+** $Id$
**
** \legal
-** Copyright (c) 2002 Robert B. Quattlebaum Jr.
+** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
**
-** This software and associated documentation
-** are CONFIDENTIAL and PROPRIETARY property of
-** the above-mentioned copyright holder.
+** This package is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License as
+** published by the Free Software Foundation; either version 2 of
+** the License, or (at your option) any later version.
**
-** You may not copy, print, publish, or in any
-** other way distribute this software without
-** a prior written agreement with
-** the copyright holder.
+** This package is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
** \endlegal
*/
/* ========================================================================= */
// Info for Layer parent
synfig::Layer::Handle layer;
synfig::String name;
-
+
// Info for ValueNode parent
synfig::ValueNode::Handle parent_value_node;
int index;
// Info for exported ValueNode
synfig::Canvas::Handle canvas;
-
+
public:
bool operator==(const ValueDesc &rhs)const
{
return !operator==(rhs);
}
-
+
ValueDesc(synfig::Layer::Handle layer,const synfig::String& param_name):
layer(layer),
name(param_name) { }
bool parent_is_linkable_value_node()const { return parent_is_value_node() && index>=0; }
bool parent_is_value_node_const()const { return parent_is_value_node() && index==-1; }
bool parent_is_canvas()const { return (bool)canvas; }
-
+
bool is_value_node()const { return parent_is_value_node() || parent_is_canvas() || (parent_is_layer_param() && (bool)layer->dynamic_param_list().count(name)); }
bool is_const()const { return (parent_is_layer_param() && !layer->dynamic_param_list().count(name)) || parent_is_value_node_const(); }
-
+
synfig::Layer::Handle get_layer()const { assert(parent_is_layer_param()); return layer; }
const synfig::String& get_param_name()const { assert(parent_is_layer_param()); return name; }
-
+
synfig::ValueNode::Handle get_parent_value_node()const { assert(parent_is_value_node()); return parent_value_node; }
int get_index()const { assert(parent_is_linkable_value_node()); return index; }
-
+
const synfig::String& get_value_node_id()const { assert(parent_is_canvas()); return name; }
synfig::Canvas::Handle get_canvas()const
return parent_value_node->get_root_canvas();
return 0;
}
-
+
synfig::ValueNode::Handle
get_value_node()const
{
if(parent_is_layer_param() && layer)
return layer->get_param(name);
return synfig::ValueBase();
- }
+ }
synfig::ValueBase::Type
get_value_type()const
return value_node->get_type();
return get_value().get_type();
}
-
+
bool
is_exported()const
{