/*! \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-2005 Robert B. Quattlebaum Jr., Adrian Bentley
// 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
{
get_value(synfig::Time time=0)const
{
if(parent_is_value_node_const() && parent_value_node)
+ // \todo "(*parent_value_node)(0)"? shouldn't that be "(*parent_value_node)(time)"?
return (*parent_value_node)(0);
if(is_value_node() && get_value_node())
return (*get_value_node())(time);
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
{
return is_value_node() && get_value_node()->is_exported();
}
+
+ synfig::String
+ get_description(bool show_exported_name = true)const;
}; // END of class ValueDesc
}; // END of namespace synfigapp_instance