X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Fvaluenode.h;h=7fde918cba63bd30c089f6846e2ca57a2270c000;hb=d4cb326591ea23f82d341eb368b3d183b46f56c7;hp=379b3f0346b1088e23373c38a931c0029e339368;hpb=2aa82e84160499903d3e7f85a7770ffe3d04ddb2;p=synfig.git diff --git a/synfig-core/src/synfig/valuenode.h b/synfig-core/src/synfig/valuenode.h index 379b3f0..7fde918 100644 --- a/synfig-core/src/synfig/valuenode.h +++ b/synfig-core/src/synfig/valuenode.h @@ -39,6 +39,7 @@ #include #include "guid.h" #include +#include "paramdesc.h" #include "node.h" @@ -77,6 +78,7 @@ namespace synfig { class Canvas; class LinkableValueNode; class Layer; +class ParamVocab; /*! \class ValueNode ** \brief Base class for all Value Nodes @@ -335,6 +337,11 @@ public: */ typedef std::map Book; + //! The vocabulary of the children + /*! \see synfig::Paramdesc + */ + typedef ParamVocab Vocab; + static Book& book(); //! Creates a Linkable Value Node based on the name and the returned @@ -366,13 +373,13 @@ public: virtual int link_count()const=0; //! Returns the local name of the 'i' linked Value Node - virtual String link_local_name(int i)const=0; + virtual String link_local_name(int i)const; //! Returns the name of the 'i' linked Value Node - virtual String link_name(int i)const=0; + virtual String link_name(int i)const; //! Returns the child index Value Node based on the name - virtual int get_link_index_from_name(const String &name)const=0; + virtual int get_link_index_from_name(const String &name)const; //! Clones a Value Node virtual ValueNode* clone(const GUID& deriv_guid=GUID())const; @@ -389,6 +396,9 @@ public: //! Return a full description of the linked ValueNode given by the index String get_description(int index = -1, bool show_exported_name = true)const; + //! Gets the children vocabulary for linkable value nodes + virtual Vocab get_children_vocab()const; + protected: //! Sets the type of the ValueNode void set_type(ValueBase::Type t) { ValueNode::set_type(t); } @@ -401,6 +411,9 @@ protected: //! Returns the cached times values for all the children (linked Value Nodes) virtual void get_times_vfunc(Node::time_set &set) const; + + //! Pure Virtual member to get the children vocabulary + virtual Vocab get_children_vocab_vfunc()const=0; }; // END of class LinkableValueNode /*! \class ValueNodeList