Enable Parameter Description for Linkable Value Nodes using ParamDesc class.
authorCarlos Lopez <genetita@gmail.com>
Fri, 10 Dec 2010 19:27:43 +0000 (20:27 +0100)
committerCarlos Lopez <genetita@gmail.com>
Sun, 2 Jan 2011 07:19:34 +0000 (08:19 +0100)
102 files changed:
synfig-core/src/modules/mod_noise/valuenode_random.cpp
synfig-core/src/modules/mod_noise/valuenode_random.h
synfig-core/src/synfig/valuenode.cpp
synfig-core/src/synfig/valuenode.h
synfig-core/src/synfig/valuenode_add.cpp
synfig-core/src/synfig/valuenode_add.h
synfig-core/src/synfig/valuenode_and.cpp
synfig-core/src/synfig/valuenode_and.h
synfig-core/src/synfig/valuenode_anglestring.cpp
synfig-core/src/synfig/valuenode_anglestring.h
synfig-core/src/synfig/valuenode_atan2.cpp
synfig-core/src/synfig/valuenode_atan2.h
synfig-core/src/synfig/valuenode_bline.cpp
synfig-core/src/synfig/valuenode_bline.h
synfig-core/src/synfig/valuenode_blinecalctangent.cpp
synfig-core/src/synfig/valuenode_blinecalctangent.h
synfig-core/src/synfig/valuenode_blinecalcvertex.cpp
synfig-core/src/synfig/valuenode_blinecalcvertex.h
synfig-core/src/synfig/valuenode_blinecalcwidth.cpp
synfig-core/src/synfig/valuenode_blinecalcwidth.h
synfig-core/src/synfig/valuenode_blinereversetangent.cpp
synfig-core/src/synfig/valuenode_blinereversetangent.h
synfig-core/src/synfig/valuenode_compare.cpp
synfig-core/src/synfig/valuenode_compare.h
synfig-core/src/synfig/valuenode_composite.cpp
synfig-core/src/synfig/valuenode_composite.h
synfig-core/src/synfig/valuenode_cos.cpp
synfig-core/src/synfig/valuenode_cos.h
synfig-core/src/synfig/valuenode_dotproduct.cpp
synfig-core/src/synfig/valuenode_dotproduct.h
synfig-core/src/synfig/valuenode_duplicate.cpp
synfig-core/src/synfig/valuenode_duplicate.h
synfig-core/src/synfig/valuenode_dynamiclist.cpp
synfig-core/src/synfig/valuenode_dynamiclist.h
synfig-core/src/synfig/valuenode_exp.cpp
synfig-core/src/synfig/valuenode_exp.h
synfig-core/src/synfig/valuenode_gradientcolor.cpp
synfig-core/src/synfig/valuenode_gradientcolor.h
synfig-core/src/synfig/valuenode_gradientrotate.cpp
synfig-core/src/synfig/valuenode_gradientrotate.h
synfig-core/src/synfig/valuenode_greyed.cpp
synfig-core/src/synfig/valuenode_greyed.h
synfig-core/src/synfig/valuenode_integer.cpp
synfig-core/src/synfig/valuenode_integer.h
synfig-core/src/synfig/valuenode_intstring.cpp
synfig-core/src/synfig/valuenode_intstring.h
synfig-core/src/synfig/valuenode_join.cpp
synfig-core/src/synfig/valuenode_join.h
synfig-core/src/synfig/valuenode_linear.cpp
synfig-core/src/synfig/valuenode_linear.h
synfig-core/src/synfig/valuenode_log.cpp
synfig-core/src/synfig/valuenode_log.h
synfig-core/src/synfig/valuenode_not.cpp
synfig-core/src/synfig/valuenode_not.h
synfig-core/src/synfig/valuenode_or.cpp
synfig-core/src/synfig/valuenode_or.h
synfig-core/src/synfig/valuenode_pow.cpp
synfig-core/src/synfig/valuenode_pow.h
synfig-core/src/synfig/valuenode_radialcomposite.cpp
synfig-core/src/synfig/valuenode_radialcomposite.h
synfig-core/src/synfig/valuenode_range.cpp
synfig-core/src/synfig/valuenode_range.h
synfig-core/src/synfig/valuenode_realstring.cpp
synfig-core/src/synfig/valuenode_realstring.h
synfig-core/src/synfig/valuenode_reciprocal.cpp
synfig-core/src/synfig/valuenode_reciprocal.h
synfig-core/src/synfig/valuenode_reference.cpp
synfig-core/src/synfig/valuenode_reference.h
synfig-core/src/synfig/valuenode_repeat_gradient.cpp
synfig-core/src/synfig/valuenode_repeat_gradient.h
synfig-core/src/synfig/valuenode_scale.cpp
synfig-core/src/synfig/valuenode_scale.h
synfig-core/src/synfig/valuenode_segcalctangent.cpp
synfig-core/src/synfig/valuenode_segcalctangent.h
synfig-core/src/synfig/valuenode_segcalcvertex.cpp
synfig-core/src/synfig/valuenode_segcalcvertex.h
synfig-core/src/synfig/valuenode_sine.cpp
synfig-core/src/synfig/valuenode_sine.h
synfig-core/src/synfig/valuenode_step.cpp
synfig-core/src/synfig/valuenode_step.h
synfig-core/src/synfig/valuenode_stripes.cpp
synfig-core/src/synfig/valuenode_stripes.h
synfig-core/src/synfig/valuenode_subtract.cpp
synfig-core/src/synfig/valuenode_subtract.h
synfig-core/src/synfig/valuenode_switch.cpp
synfig-core/src/synfig/valuenode_switch.h
synfig-core/src/synfig/valuenode_timedswap.cpp
synfig-core/src/synfig/valuenode_timedswap.h
synfig-core/src/synfig/valuenode_timeloop.cpp
synfig-core/src/synfig/valuenode_timeloop.h
synfig-core/src/synfig/valuenode_timestring.cpp
synfig-core/src/synfig/valuenode_timestring.h
synfig-core/src/synfig/valuenode_twotone.cpp
synfig-core/src/synfig/valuenode_twotone.h
synfig-core/src/synfig/valuenode_vectorangle.cpp
synfig-core/src/synfig/valuenode_vectorangle.h
synfig-core/src/synfig/valuenode_vectorlength.cpp
synfig-core/src/synfig/valuenode_vectorlength.h
synfig-core/src/synfig/valuenode_vectorx.cpp
synfig-core/src/synfig/valuenode_vectorx.h
synfig-core/src/synfig/valuenode_vectory.cpp
synfig-core/src/synfig/valuenode_vectory.h

index cf0ee25..70c9ecd 100644 (file)
@@ -300,3 +300,47 @@ ValueNode_Random::randomize_seed()
                set_link(i, ValueNode_Const::create(seed));
        }
 }
+
+LinkableValueNode::Vocab
+ValueNode_Random::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link")
+               .set_local_name(_("Link"))
+               .set_description(_("The value node source that provides the central value"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"radius")
+               .set_local_name(_("Radius"))
+               .set_description(_("The value of the maximum random difference"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"seed")
+               .set_local_name(_("Seed"))
+               .set_description(_("Seeds the random number generator"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"speed")
+               .set_local_name(_("Speed"))
+               .set_description(_("Defines how often a new random value is chosen (in choices per second) "))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"smooth")
+               .set_local_name(_("Interpolation"))
+               .set_description(_("Determines how the value is interpolated from one random choice to the next"))
+               .set_hint("enum")
+               .add_enum_value(RandomNoise::SMOOTH_DEFAULT,"default",_("No interpolation"))
+               .add_enum_value(RandomNoise::SMOOTH_LINEAR,"linear",_("Linear"))
+               .add_enum_value(RandomNoise::SMOOTH_COSINE,"cosine",_("Cosine"))
+               .add_enum_value(RandomNoise::SMOOTH_SPLINE,"spline",_("Spline"))
+               .add_enum_value(RandomNoise::SMOOTH_CUBIC,"cubic",_("Cubic"))
+       );
+
+
+       ret.push_back(ParamDesc(ValueBase(),"loop")
+               .set_local_name(_("Loop Time"))
+               .set_description(_("Makes the random value repeat after the given time"))
+       );
+       return ret;
+}
index beafcf2..2732dc8 100644 (file)
@@ -82,6 +82,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Random* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Random
 
 }; // END of namespace synfig
index 8f3cc9a..da9c45c 100644 (file)
@@ -34,7 +34,6 @@
 #include "valuenode.h"
 #include "general.h"
 #include "canvas.h"
-#include "paramdesc.h"
 #include "releases.h"
 
 #include "valuenode_const.h"
@@ -669,3 +668,12 @@ LinkableValueNode::get_description(int index, bool show_exported_name)const
 
        return description;
 }
+
+/*
+int
+LinkableValueNode::link_count()const
+{
+       Vocab ret(get_param_vocab());
+       return ret.size();
+}
+*/
index 379b3f0..d0daf78 100644 (file)
@@ -39,6 +39,7 @@
 #include <sigc++/signal.h>
 #include "guid.h"
 #include <ETL/angle>
+#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,8 @@ public:
        */
        typedef std::map<String,BookEntry> Book;
 
+       typedef ParamVocab Vocab;
+
        static Book& book();
 
        //! Creates a Linkable Value Node based on the name and the returned
@@ -389,6 +393,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 parameter vocabulary for linkable value nodes
+       virtual Vocab get_param_vocab()const=0;
+
 protected:
        //! Sets the type of the ValueNode
        void set_type(ValueBase::Type t) { ValueNode::set_type(t); }
index c67d74e..346357b 100644 (file)
@@ -241,3 +241,26 @@ ValueNode_Add::check_type(ValueBase::Type type)
                || type==ValueBase::TYPE_TIME
                || type==ValueBase::TYPE_VECTOR;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Add::get_param_vocab() const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"lhs")
+               .set_local_name(_("LHS"))
+               .set_description(_("Left Hand Side of the add"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"rhs")
+               .set_local_name(_("RHS"))
+               .set_description(_("Right Hand Side of the add"))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"scalar")
+               .set_local_name(_("Scalar"))
+               .set_description(_("Value that multiplies the add"))
+       );
+
+       return ret;
+}
index 15dfd7b..7b27e3c 100644 (file)
@@ -63,6 +63,7 @@ public:
        virtual String get_name()const;
        virtual String get_local_name()const;
        static bool check_type(ValueBase::Type type);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Add
 
 }; // END of namespace synfig
index 974485c..101b9e8 100644 (file)
@@ -166,3 +166,21 @@ ValueNode_And::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_BOOL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_And::get_param_vocab() const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link1")
+               .set_local_name(_("Link1"))
+               .set_description(_("First operand of the AND operation"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"link2")
+               .set_local_name(_("Link2"))
+               .set_description(_("Second operand of the AND operation"))
+       );
+
+       return ret;
+}
index 8a13014..9bca6ee 100644 (file)
@@ -72,6 +72,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_And* create(const ValueBase &x);
+       virtual LinkableValueNode::Vocab get_param_vocab()const;
 }; // END of class ValueNode_And
 
 }; // END of namespace synfig
index b64a42f..0be9ff5 100644 (file)
@@ -207,3 +207,31 @@ ValueNode_AngleString::check_type(ValueBase::Type type)
        return
                type==ValueBase::TYPE_STRING;
 }
+
+LinkableValueNode::Vocab
+ValueNode_AngleString::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"angle")
+               .set_local_name(_("Angle"))
+               .set_description(_("Value to convert to string"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"width")
+               .set_local_name(_("Width"))
+               .set_description(_("Width of the string"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"precision")
+               .set_local_name(_("Precision"))
+               .set_description(_("Number of decimal places"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"zero_pad")
+               .set_local_name(_("Zero Padded"))
+               .set_description(_("When checked, the string is left filled with zeros to match the width"))
+       );
+
+       return ret;
+}
index 3dcd142..9faaec1 100644 (file)
@@ -76,6 +76,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_AngleString* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_AngleString
 
 }; // END of namespace synfig
index 89bedc2..844fbad 100644 (file)
@@ -176,3 +176,21 @@ ValueNode_Atan2::get_link_index_from_name(const String &name)const
 
        throw Exception::BadLinkName(name);
 }
+
+LinkableValueNode::Vocab
+ValueNode_Atan2::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"x")
+               .set_local_name(_("X"))
+               .set_description(_("Cosine of the angle"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"y")
+               .set_local_name(_("Y"))
+               .set_description(_("Sine of the angle"))
+       );
+
+       return ret;
+}
index d9c1c7f..2bef724 100644 (file)
@@ -74,6 +74,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Atan2* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Atan2
 
 }; // END of namespace synfig
index 8f10689..2131bf5 100644 (file)
@@ -843,3 +843,17 @@ ValueNode_BLine::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_LIST;
 }
+
+LinkableValueNode::Vocab
+ValueNode_BLine::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+       for(unsigned int i=0; i<list.size();i++)
+       {
+               ret.push_back(ParamDesc(ValueBase(),strprintf("item%04d",i))
+                       .set_local_name(etl::strprintf(_("Vertex %03d"),i+1))
+               );
+       }
+
+       return ret;
+}
index 4599d26..fd4ca69 100644 (file)
@@ -89,6 +89,7 @@ public:
        //using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_BLine* create(const ValueBase &x=ValueBase::TYPE_LIST);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_BLine
 
 typedef ValueNode_BLine::ListEntry::ActivepointList ActivepointList;
index 3a3c2cc..e595915 100644 (file)
@@ -269,3 +269,40 @@ ValueNode_BLineCalcTangent::check_type(ValueBase::Type type)
                        type==ValueBase::TYPE_REAL  ||
                        type==ValueBase::TYPE_VECTOR);
 }
+
+LinkableValueNode::Vocab
+ValueNode_BLineCalcTangent::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"bline")
+               .set_local_name(_("BLine"))
+               .set_description(_("The BLine where the tangent is linked to"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"loop")
+               .set_local_name(_("Loop"))
+               .set_description(_("When checked, the amount would loop"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"amount")
+               .set_local_name(_("Amount"))
+               .set_description(_("The position of the linked tangent on the BLine (0,1]"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"offset")
+               .set_local_name(_("Offset"))
+               .set_description(_("Angle offset of the tangent"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"scale")
+               .set_local_name(_("Scale"))
+               .set_description(_("Scale of the tangent"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"fixed_length")
+               .set_local_name(_("Fixed Length"))
+               .set_description(_("When checked, the tangent's length is fixed"))
+       );
+       return ret;
+}
index db5aeb3..d48e7d6 100644 (file)
@@ -76,6 +76,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_BLineCalcTangent* create(const ValueBase &x=ValueBase::TYPE_VECTOR);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_BLineCalcTangent
 
 }; // END of namespace synfig
index a6fc589..23ea773 100644 (file)
@@ -220,3 +220,26 @@ ValueNode_BLineCalcVertex::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_VECTOR;
 }
+
+LinkableValueNode::Vocab
+ValueNode_BLineCalcVertex::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"bline")
+               .set_local_name(_("BLine"))
+               .set_description(_("The BLine where the vertex is linked to"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"loop")
+               .set_local_name(_("Loop"))
+               .set_description(_("When checked, the amount would loop"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"amount")
+               .set_local_name(_("Amount"))
+               .set_description(_("The position of the linked vertex on the BLine (0,1]"))
+       );
+
+       return ret;
+}
index 03ea2e0..c0606b0 100644 (file)
@@ -71,6 +71,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_BLineCalcVertex* create(const ValueBase &x=ValueBase::TYPE_VECTOR);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_BLineCalcVertex
 
 }; // END of namespace synfig
index 4d8ee0e..4dc989c 100644 (file)
@@ -228,3 +228,32 @@ ValueNode_BLineCalcWidth::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_REAL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_BLineCalcWidth::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"bline")
+               .set_local_name(_("BLine"))
+               .set_description(_("The BLine where the width is linked to"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"loop")
+               .set_local_name(_("Loop"))
+               .set_description(_("When checked, the amount would loop"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"amount")
+               .set_local_name(_("Amount"))
+               .set_description(_("The position of the linked width on the BLine (0,1]"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"scale")
+               .set_local_name(_("Scale"))
+               .set_description(_("Scale of the width"))
+       );
+
+       return ret;
+}
+
index 80f5c6d..30f2cbd 100644 (file)
@@ -74,6 +74,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_BLineCalcWidth* create(const ValueBase &x=ValueBase::TYPE_REAL);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_BLineCalcWidth
 
 }; // END of namespace synfig
index ed2928b..b25f8cf 100644 (file)
@@ -200,3 +200,21 @@ ValueNode_BLineRevTangent::check_type(ValueBase::Type type)
 {
        return (type==ValueBase::TYPE_BLINEPOINT);
 }
+
+LinkableValueNode::Vocab
+ValueNode_BLineRevTangent::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"reference")
+               .set_local_name(_("Reference"))
+               .set_description(_("The referenced tangent to reverse"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"reverse")
+               .set_local_name(_("Reverse"))
+               .set_description(_("When checked, the reference is reversed"))
+       );
+
+       return ret;
+}
index bd8b0c6..e3a60b3 100644 (file)
@@ -72,6 +72,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_BLineRevTangent* create(const ValueBase &x=ValueBase::TYPE_VECTOR);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_BLineRevTangent
 
 }; // END of namespace synfig
index 68c3427..ba7abe6 100644 (file)
@@ -195,3 +195,36 @@ ValueNode_Compare::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_BOOL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Compare::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"lhs")
+               .set_local_name(_("LHS"))
+               .set_description(_("The left side of the comparison"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"rhs")
+               .set_local_name(_("RHS"))
+               .set_description(_("The right side of the comparison"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"greater")
+               .set_local_name(_("Greater"))
+               .set_description(_("When checked, returns true if LHS > RHS"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"equal")
+               .set_local_name(_("Equal"))
+               .set_description(_("When checked, returns true if LHS = RHS"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"less")
+               .set_local_name(_("Less"))
+               .set_description(_("When checked, returns true if LHS < RHS"))
+       );
+
+       return ret;
+}
index da156de..de1821d 100644 (file)
@@ -76,6 +76,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Compare* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Compare
 
 }; // END of namespace synfig
index dfde2e9..1981a82 100644 (file)
@@ -444,3 +444,89 @@ ValueNode_Composite::check_type(ValueBase::Type type)
                type==ValueBase::TYPE_COLOR ||
                type==ValueBase::TYPE_BLINEPOINT;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Composite::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       switch(get_type())
+       {
+       case ValueBase::TYPE_COLOR:
+               ret.push_back(ParamDesc(ValueBase(),"red")
+                       .set_local_name(_("Red"))
+                       .set_description(_("The red component of the color"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"green")
+                       .set_local_name(_("Green"))
+                       .set_description(_("The green component of the color"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"blue")
+                       .set_local_name(_("Blue"))
+                       .set_description(_("The blue component of the color"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"alpha")
+                       .set_local_name(_("Alpha"))
+                       .set_description(_("The alpha of the color"))
+               );
+               return ret;
+       case ValueBase::TYPE_SEGMENT:
+               ret.push_back(ParamDesc(ValueBase(),"p1")
+                       .set_local_name(_("Vertex 1"))
+                       .set_description(_("The first vertex of the segment"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"t1")
+                       .set_local_name(_("Tangent 1"))
+                       .set_description(_("The first tangent of the segment"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"p2")
+                       .set_local_name(_("Vertex 2"))
+                       .set_description(_("The second vertex of the segment"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"t2")
+                       .set_local_name(_("Tangent 2"))
+                       .set_description(_("The second tangent of the segment"))
+               );
+               return ret;
+       case ValueBase::TYPE_VECTOR:
+               ret.push_back(ParamDesc(ValueBase(),"x")
+                       .set_local_name(_("X-Axis"))
+                       .set_description(_("The X-Axis component of the vector"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"y")
+                       .set_local_name(_("Y-Axis"))
+                       .set_description(_("The Y-Axis component of the vector"))
+               );
+               return ret;
+       case ValueBase::TYPE_BLINEPOINT:
+               ret.push_back(ParamDesc(ValueBase(),"point")
+                       .set_local_name(_("Vertex"))
+                       .set_description(_("The vertex of the BLine Point"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"width")
+                       .set_local_name(_("Width"))
+                       .set_description(_("The width of the BLine Point"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"origin")
+                       .set_local_name(_("Origin"))
+                       .set_description(_("Defines the Off and On position relative to neighbours"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"split")
+                       .set_local_name(_("Split"))
+                       .set_description(_("When checked, tangents are independent"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"t1")
+                       .set_local_name(_("Tangent 1"))
+                       .set_description(_("The first tangent of the BLine Point"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"t2")
+                       .set_local_name(_("Tangent 2"))
+                       .set_description(_("The second tangent of the BLine Point"))
+               );
+               return ret;
+       default:
+               break;
+       }
+
+       return ret;
+}
index 6da5b2c..32cdf96 100644 (file)
@@ -68,6 +68,7 @@ public:
        using synfig::LinkableValueNode::get_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Composite* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Composite
 
 }; // END of namespace synfig
index 17d49d6..253d8e0 100644 (file)
@@ -182,3 +182,21 @@ ValueNode_Cos::get_link_index_from_name(const String &name)const
 
        throw Exception::BadLinkName(name);
 }
+
+LinkableValueNode::Vocab
+ValueNode_Cos::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"angle")
+               .set_local_name(_("Angle"))
+               .set_description(_("Value to calculate the cosine"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"amp")
+               .set_local_name(_("Amplitude"))
+               .set_description(_("Multiplier of the resulting cosine"))
+       );
+
+       return ret;
+}
index a69cada..8321562 100644 (file)
@@ -74,6 +74,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Cos* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Cos
 
 }; // END of namespace synfig
index 4748cc2..a90e99d 100644 (file)
@@ -195,3 +195,21 @@ ValueNode_DotProduct::check_type(ValueBase::Type type)
                type==ValueBase::TYPE_ANGLE ||
                type==ValueBase::TYPE_REAL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_DotProduct::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"lhs")
+               .set_local_name(_("LHS"))
+               .set_description(_("The left side of the dot product"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"rhs")
+               .set_local_name(_("RHS"))
+               .set_description(_("The right side of the dot product"))
+       );
+
+       return ret;
+}
index 34cfb25..8e3cc2f 100644 (file)
@@ -74,6 +74,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_DotProduct* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_DotProduct
 
 }; // END of namespace synfig
index 540c3a9..fdfc8b4 100644 (file)
@@ -215,3 +215,26 @@ ValueNode_Duplicate::check_type(ValueBase::Type type __attribute__ ((unused)))
        // never offer this as a choice.  it's used automatically by the 'Duplicate' layer.
        return false;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Duplicate::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"from")
+               .set_local_name(_("From"))
+               .set_description(_("Initial value of the index "))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"to")
+               .set_local_name(_("To"))
+               .set_description(_("Final value of the index"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"step")
+               .set_local_name(_("Step"))
+               .set_description(_("Amount increment of the index"))
+       );
+
+       return ret;
+}
index b9d2429..bc58454 100644 (file)
@@ -78,6 +78,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Duplicate* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Duplicate
 
 }; // END of namespace synfig
index 6791cc4..01fec8b 100644 (file)
@@ -906,3 +906,17 @@ ValueNode_DynamicList::insert_time(const Time& location, const Time& delta)
        }
        changed();
 }
+
+LinkableValueNode::Vocab
+ValueNode_DynamicList::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+       for(unsigned int i=0; i<list.size();i++)
+       {
+               ret.push_back(ParamDesc(ValueBase(),strprintf("item%04d",i))
+                       .set_local_name(etl::strprintf(_("Item %03d"),i+1))
+               );
+       }
+
+       return ret;
+}
index e73afd9..343b34c 100644 (file)
@@ -236,6 +236,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_DynamicList* create_from(const ValueBase &x=ValueBase::TYPE_GRADIENT);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_DynamicList
 
 typedef ValueNode_DynamicList::ListEntry::Activepoint Activepoint;
index 4e41cc2..1a114bf 100644 (file)
@@ -175,3 +175,21 @@ ValueNode_Exp::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_REAL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Exp::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"exp")
+               .set_local_name(_("Exponent"))
+               .set_description(_("The value to raise the constant 'e'"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"scale")
+               .set_local_name(_("Scale"))
+               .set_description(_("Multiplier of the resulting exponent"))
+       );
+
+       return ret;
+}
index 1b92520..ea929b8 100644 (file)
@@ -73,6 +73,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Exp* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Exp
 
 }; // END of namespace synfig
index b4dd0ce..690d973 100644 (file)
@@ -185,3 +185,26 @@ ValueNode_GradientColor::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_COLOR;
 }
+
+LinkableValueNode::Vocab
+ValueNode_GradientColor::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"gradient")
+               .set_local_name(_("Gradient"))
+               .set_description(_("The gradient where the color is picked from"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"index")
+               .set_local_name(_("Index"))
+               .set_description(_("The position of the color at the gradient (0,1]"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"loop")
+               .set_local_name(_("Loop"))
+               .set_description(_("When checked, the index would loop"))
+       );
+
+       return ret;
+}
index 4824822..8abcb0f 100644 (file)
@@ -75,6 +75,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_GradientColor* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_GradientColor
 
 }; // END of namespace synfig
index abc962d..156f32e 100644 (file)
@@ -195,3 +195,21 @@ ValueNode_GradientRotate::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_GRADIENT;
 }
+
+LinkableValueNode::Vocab
+ValueNode_GradientRotate::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"gradient")
+               .set_local_name(_("Gradient"))
+               .set_description(_("The source gradient to rotate"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"offset")
+               .set_local_name(_("Offset"))
+               .set_description(_("The amount to offset the gradient"))
+       );
+
+       return ret;
+}
index 3dc49f9..95c838a 100644 (file)
@@ -83,6 +83,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_GradientRotate* create(const ValueBase &x=ValueBase::TYPE_GRADIENT);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_GradientRotate
 
 }; // END of namespace synfig
index 4e3536e..dacf05c 100644 (file)
@@ -80,3 +80,16 @@ ValueNode_Greyed::get_local_name()const
 {
        return _("Greyed");
 }
+
+LinkableValueNode::Vocab
+ValueNode_Greyed::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link")
+               .set_local_name(_("Link"))
+               .set_description(_("The greyed value"))
+       );
+
+       return ret;
+}
index 6996336..9b32a31 100644 (file)
@@ -50,7 +50,7 @@ protected:
 
 public:
        static ValueNode_Greyed* create(const ValueBase &x);
-
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Greyed
 
 }; // END of namespace synfig
index 38cd082..d5ddc8d 100644 (file)
@@ -197,3 +197,16 @@ ValueNode_Integer::check_type(ValueBase::Type type __attribute__ ((unused)))
 //             type==ValueBase::TYPE_REAL  ||
 //             type==ValueBase::TYPE_TIME;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Integer::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"integer")
+               .set_local_name(_("Integer"))
+               .set_description(_("The integer value to be converted"))
+       );
+
+       return ret;
+}
index 45944c7..55547d6 100644 (file)
@@ -72,6 +72,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Integer* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Integer
 
 }; // END of namespace synfig
index 1ae8284..3bc3579 100644 (file)
@@ -198,3 +198,26 @@ ValueNode_IntString::check_type(ValueBase::Type type)
        return
                type==ValueBase::TYPE_STRING;
 }
+
+LinkableValueNode::Vocab
+ValueNode_IntString::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"int")
+               .set_local_name(_("Int"))
+               .set_description(_("Value to convert to string"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"width")
+               .set_local_name(_("Width"))
+               .set_description(_("Width of the string"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"zero_pad")
+               .set_local_name(_("Zero Padded"))
+               .set_description(_("When checked, the string is left filled with zeros to match the width"))
+       );
+
+       return ret;
+}
index bd1d757..42052df 100644 (file)
@@ -75,6 +75,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_IntString* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_IntString
 
 }; // END of namespace synfig
index 2c085ba..3ce8b17 100644 (file)
@@ -225,3 +225,31 @@ ValueNode_Join::check_type(ValueBase::Type type)
        return
                type==ValueBase::TYPE_STRING;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Join::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"strings")
+               .set_local_name(_("Strings"))
+               .set_description(_("The List of strings to join"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"before")
+               .set_local_name(_("Before"))
+               .set_description(_("The string to place before the joined strings"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"separator")
+               .set_local_name(_("Separator"))
+               .set_description(_("The string to place between each string joined"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"after")
+               .set_local_name(_("After"))
+               .set_description(_("The string to place after the joined strings"))
+       );
+
+       return ret;
+}
index eeb5435..5a2a753 100644 (file)
@@ -76,6 +76,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Join* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Join
 
 }; // END of namespace synfig
index 418305d..7967f3b 100644 (file)
@@ -225,3 +225,37 @@ ValueNode_Linear::get_link_index_from_name(const String &name)const
 
        throw Exception::BadLinkName(name);
 }
+
+
+LinkableValueNode::Vocab
+ValueNode_Linear::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       switch(get_type())
+       {
+       case ValueBase::TYPE_ANGLE:
+       case ValueBase::TYPE_COLOR:
+       case ValueBase::TYPE_INTEGER:
+       case ValueBase::TYPE_REAL:
+       case ValueBase::TYPE_TIME:
+               ret.push_back(ParamDesc(ValueBase(),"slope")
+                       .set_local_name(_("Rate"))
+                       .set_description(_("Value that is multiplied by the current time (in seconds)"))
+               );
+       break;
+       case ValueBase::TYPE_VECTOR:
+       default:
+               ret.push_back(ParamDesc(ValueBase(),"slope")
+                       .set_local_name(_("Slope"))
+                       .set_description(_("Value that is multiplied by the current time (in seconds)"))
+               );
+       }
+
+       ret.push_back(ParamDesc(ValueBase(),"offset")
+               .set_local_name(_("Offset"))
+               .set_description(_("Returned value when the current time is zero"))
+       );
+
+       return ret;
+}
index 8d73195..b8732ba 100644 (file)
@@ -74,6 +74,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Linear* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Linear
 
 }; // END of namespace synfig
index 59f82e5..3e67dd8 100644 (file)
@@ -183,4 +183,26 @@ ValueNode_Logarithm::check_type(ValueBase::Type type)
        return type==ValueBase::TYPE_REAL;
 }
 
+LinkableValueNode::Vocab
+ValueNode_Logarithm::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link")
+               .set_local_name(_("Link"))
+               .set_description(_("Value node used to calculate the Neperian logarithm"))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"epsilon")
+               .set_local_name(_("Epsilon"))
+               .set_description(_("Value used to compare 'link' with zero "))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"infinite")
+               .set_local_name(_("Infinite"))
+               .set_description(_("Returned value when result tends to infinite"))
+       );
+
+       return ret;
+}
 
index dfa5ee3..8ce4b20 100644 (file)
@@ -74,6 +74,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Logarithm* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Logarithm
 
 }; // END of namespace synfig
index b7ca310..95fba31 100644 (file)
@@ -157,3 +157,16 @@ ValueNode_Not::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_BOOL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Not::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link")
+               .set_local_name(_("Link"))
+               .set_description(_("Value node used to do the NOT operation"))
+       );
+
+       return ret;
+}
index 084a1b1..db71f64 100644 (file)
@@ -71,6 +71,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Not* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Not
 
 }; // END of namespace synfig
index a2d9e71..2773072 100644 (file)
@@ -166,3 +166,21 @@ ValueNode_Or::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_BOOL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Or::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link1")
+               .set_local_name(_("Link1"))
+               .set_description(_("Value node used for the OR boolean operation"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"link2")
+               .set_local_name(_("Link2"))
+               .set_description(_("Value node used for the OR boolean operation"))
+       );
+
+       return ret;
+}
index b69a521..3fb02cf 100644 (file)
@@ -72,6 +72,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Or* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Or
 
 }; // END of namespace synfig
index 20daaeb..b6fcae6 100644 (file)
@@ -205,3 +205,31 @@ ValueNode_Pow::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_REAL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Pow::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"base")
+               .set_local_name(_("Base"))
+               .set_description(_("The base to be raised to the power"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"power")
+               .set_local_name(_("Power"))
+               .set_description(_("The power used to raise the base"))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"epsilon")
+               .set_local_name(_("Epsilon"))
+               .set_description(_("Value used to compare base or power with zero "))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"infinite")
+               .set_local_name(_("Infinite"))
+               .set_description(_("Returned value when result tends to infinite"))
+       );
+
+       return ret;
+}
index 69237fd..ab0fea6 100644 (file)
@@ -75,6 +75,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Pow* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Pow
 
 }; // END of namespace synfig
index a889c78..c9f24cb 100644 (file)
@@ -313,3 +313,43 @@ ValueNode_RadialComposite::check_type(ValueBase::Type type)
                type==ValueBase::TYPE_VECTOR ||
                type==ValueBase::TYPE_COLOR;
 }
+
+LinkableValueNode::Vocab
+ValueNode_RadialComposite::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       switch(get_type())
+       {
+       case ValueBase::TYPE_COLOR:
+               ret.push_back(ParamDesc(ValueBase(),"y_luma")
+               .set_local_name(_("Luma"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"saturation")
+               .set_local_name(_("Saturation"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"hue")
+               .set_local_name(_("Hue"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"alpha")
+               .set_local_name(_("Saturation"))
+               );
+               return ret;
+               break;
+       case ValueBase::TYPE_VECTOR:
+               ret.push_back(ParamDesc(ValueBase(),"radius")
+               .set_local_name(_("Radius"))
+               .set_description(_("The length of the vector"))
+               );
+               ret.push_back(ParamDesc(ValueBase(),"theta")
+               .set_local_name(_("Theta"))
+               .set_description(_("The angle of the vector with the X axis"))
+               );
+               return ret;
+               break;
+       default:
+               break;
+       }
+
+       return ret;
+}
index c9c06e3..2933b00 100644 (file)
@@ -68,6 +68,7 @@ public:
        using synfig::LinkableValueNode::get_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_RadialComposite* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_RadialComposite
 
 }; // END of namespace synfig
index 4c62b02..eb9ebfb 100644 (file)
@@ -305,3 +305,26 @@ ValueNode_Range::check_type(ValueBase::Type type)
                || type==ValueBase::TYPE_REAL
                || type==ValueBase::TYPE_TIME;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Range::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"min")
+               .set_local_name(_("Min"))
+               .set_description(_("Returned value when 'Link' is smaller"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"max")
+               .set_local_name(_("Max"))
+               .set_description(_("Returned value when 'Link' is greater"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"link")
+               .set_local_name(_("Link"))
+               .set_description(_("The value node to limit its range"))
+       );
+
+       return ret;
+}
index 8325820..4c11f58 100644 (file)
@@ -75,6 +75,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Range* create(const ValueBase &value=ValueBase());
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Range
 
 }; // END of namespace synfig
index a8b14da..399c1d9 100644 (file)
@@ -206,3 +206,32 @@ ValueNode_RealString::check_type(ValueBase::Type type)
        return
                type==ValueBase::TYPE_STRING;
 }
+
+LinkableValueNode::Vocab
+ValueNode_RealString::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"real")
+               .set_local_name(_("Real"))
+               .set_description(_("Value to convert to string"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"width")
+               .set_local_name(_("Width"))
+               .set_description(_("Width of the string"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"precision")
+               .set_local_name(_("Precision"))
+               .set_description(_("Number of decimal places"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"zero_pad")
+               .set_local_name(_("Zero Padded"))
+               .set_description(_("When checked, the string is left filled with zeros to match the width"))
+       );
+
+
+       return ret;
+}
index 34336f0..28477e2 100644 (file)
@@ -76,6 +76,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_RealString* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_RealString
 
 }; // END of namespace synfig
index d31a995..b4f8d8a 100644 (file)
@@ -187,3 +187,26 @@ ValueNode_Reciprocal::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_REAL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Reciprocal::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link")
+               .set_local_name(_("Link"))
+               .set_description(_("The value node used to calculate its reciprocal"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"epsilon")
+               .set_local_name(_("Epsilon"))
+               .set_description(_("The value used to decide whether 'Link' is too small to obtain its reciprocal"))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"infinite")
+               .set_local_name(_("Infinite"))
+               .set_description(_("The resulting value when 'Link' < 'Epsilon'"))
+       );
+
+       return ret;
+}
index 516ef47..498b1fa 100644 (file)
@@ -73,6 +73,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Reciprocal* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Reciprocal
 
 }; // END of namespace synfig
index a235f02..3de4642 100644 (file)
@@ -166,3 +166,16 @@ ValueNode_Reference::check_type(ValueBase::Type type)
                return true;
        return false;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Reference::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link")
+               .set_local_name(_("Link"))
+               .set_description(_("The referenced value"))
+       );
+
+       return ret;
+}
index 1ee2562..d44f9ed 100644 (file)
@@ -76,6 +76,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Reference* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Reference
 
 }; // END of namespace synfig
index c9ad14a..85be66d 100644 (file)
@@ -242,3 +242,46 @@ ValueNode_Repeat_Gradient::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_GRADIENT;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Repeat_Gradient::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"gradient")
+               .set_local_name(_("Gradient"))
+               .set_description(_("The source gradient to repeat"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"count")
+               .set_local_name(_("Count"))
+               .set_description(_("The number of repetition of the gradient"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"width")
+               .set_local_name(_("Width"))
+               .set_description(_("Specifies how much biased is the source gradeint in the repetition [0,1]"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"specify_start")
+               .set_local_name(_("Specify Start"))
+               .set_description(_("When checked, 'Start Color' is used as the start of the resulting gradient"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"specify_end")
+               .set_local_name(_("Specify End"))
+               .set_description(_("When checked, 'End Color' is used as the start of the resulting gradient"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"start_color")
+               .set_local_name(_("Start Color"))
+               .set_description(_("Used as the start of the resulting gradient"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"end_color")
+               .set_local_name(_("End Color"))
+               .set_description(_("Used as the end of the resulting gradient"))
+       );
+
+       return ret;
+}
index 6da2c26..a56238b 100644 (file)
@@ -83,6 +83,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Repeat_Gradient* create(const ValueBase &x=ValueBase::TYPE_GRADIENT);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Repeat_Gradient
 
 }; // END of namespace synfig
index 4cfbb92..2a22b50 100644 (file)
@@ -275,3 +275,21 @@ ValueNode_Scale::check_type(ValueBase::Type type)
                type==ValueBase::TYPE_TIME ||
                type==ValueBase::TYPE_VECTOR;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Scale::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link")
+               .set_local_name(_("Link"))
+               .set_description(_("The value node used to scale"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"scalar")
+               .set_local_name(_("Scalar"))
+               .set_description(_("Value that multiplies the value node"))
+       );
+
+       return ret;
+}
index fba1aa0..b09192d 100644 (file)
@@ -86,6 +86,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Scale* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Scale
 
 }; // END of namespace synfig
index 245bf62..5a8059a 100644 (file)
@@ -181,3 +181,20 @@ ValueNode_SegCalcTangent::create_new()const
 {
        return new ValueNode_SegCalcTangent(ValueBase::TYPE_VECTOR);
 }
+
+LinkableValueNode::Vocab
+ValueNode_SegCalcTangent::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"segment")
+               .set_local_name(_("Segment"))
+               .set_description(_("The Segment where the tangent is linked to"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"amount")
+               .set_local_name(_("Amount"))
+               .set_description(_("The position of the linked tangent on the Segment (0,1]"))
+       );
+       return ret;
+}
index 0715466..8529e97 100644 (file)
@@ -74,6 +74,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_SegCalcTangent* create(const ValueBase &x=ValueBase::TYPE_VECTOR);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_SegCalcTangent
 
 }; // END of namespace synfig
index 6391f39..9170907 100644 (file)
@@ -179,3 +179,20 @@ ValueNode_SegCalcVertex::create_new()const
 {
        return new ValueNode_SegCalcVertex(ValueBase::TYPE_VECTOR);
 }
+
+LinkableValueNode::Vocab
+ValueNode_SegCalcVertex::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"segment")
+               .set_local_name(_("Segment"))
+               .set_description(_("The Segment where the vertex is linked to"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"amount")
+               .set_local_name(_("Amount"))
+               .set_description(_("The position of the linked vertex on the Segment (0,1]"))
+       );
+       return ret;
+}
index a9c35dc..6ff2df4 100644 (file)
@@ -75,6 +75,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_SegCalcVertex* create(const ValueBase &x=ValueBase::TYPE_VECTOR);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_SegCalcVertex
 
 }; // END of namespace synfig
index 9aaaee2..21efad9 100644 (file)
@@ -179,3 +179,21 @@ ValueNode_Sine::get_link_index_from_name(const String &name)const
 
        throw Exception::BadLinkName(name);
 }
+
+LinkableValueNode::Vocab
+ValueNode_Sine::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"angle")
+               .set_local_name(_("Angle"))
+               .set_description(_("The angle where the sine is calculated from"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"amp")
+               .set_local_name(_("Amplitude"))
+               .set_description(_("The value that multiplies the resulting sine"))
+       );
+
+       return ret;
+}
index dfeccbc..8ba508d 100644 (file)
@@ -74,6 +74,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Sine* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Sine
 
 }; // END of namespace synfig
index 3b5c913..11efeca 100644 (file)
@@ -230,3 +230,31 @@ ValueNode_Step::get_link_index_from_name(const String &name)const
 
        throw Exception::BadLinkName(name);
 }
+
+LinkableValueNode::Vocab
+ValueNode_Step::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link")
+               .set_local_name(_("Link"))
+               .set_description(_("The value node used to make the step"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"duration")
+               .set_local_name(_("Duration"))
+               .set_description(_("The duration of the step"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"start_time")
+               .set_local_name(_("Start Time"))
+               .set_description(_("The time when the step conversion starts"))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"intersection")
+               .set_local_name(_("Intersection"))
+               .set_description(_("Value that define whether the step is centerd on the value [0,1]"))
+       );
+
+       return ret;
+}
index 06f1a68..2f40e90 100644 (file)
@@ -75,6 +75,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Step* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Step
 
 }; // END of namespace synfig
index ce4b694..d5ecd4f 100644 (file)
@@ -233,3 +233,31 @@ ValueNode_Stripes::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_GRADIENT;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Stripes::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"color1")
+               .set_local_name(_("Color 1"))
+               .set_description(_("One color of the gradient stripes"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"color2")
+               .set_local_name(_("Color 2"))
+               .set_description(_("Other color of the gradient stripes"))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"stripes")
+               .set_local_name(_("Stripe Count"))
+               .set_description(_("Number of stripes in the gradient"))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"width")
+               .set_local_name(_("Width"))
+               .set_description(_("Width of stripes in the gradient between [0,1]"))
+       );
+
+       return ret;
+}
index f468074..5106631 100644 (file)
@@ -80,6 +80,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Stripes* create(const ValueBase &x=ValueBase::TYPE_GRADIENT);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Stripes
 
 }; // END of namespace synfig
index 1523420..3689f16 100644 (file)
@@ -245,3 +245,26 @@ ValueNode_Subtract::check_type(ValueBase::Type type)
                || type==ValueBase::TYPE_TIME
                || type==ValueBase::TYPE_VECTOR;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Subtract::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"lhs")
+               .set_local_name(_("LHS"))
+               .set_description(_("Left Hand Side of the subtraction"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"rhs")
+               .set_local_name(_("RHS"))
+               .set_description(_("Right Hand Side of the subtraction"))
+       );
+
+               ret.push_back(ParamDesc(ValueBase(),"scalar")
+               .set_local_name(_("Scalar"))
+               .set_description(_("Value that multiplies the subtraction"))
+       );
+
+       return ret;
+}
index 6c446d6..41fcede 100644 (file)
@@ -73,6 +73,7 @@ public:
        //! Gets the scalar value_node
        ValueNode::Handle get_scalar()const { return scalar; }
 
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Subtract
 
 }; // END of namespace synfig
index 195bd95..56f1ff0 100644 (file)
@@ -180,3 +180,26 @@ ValueNode_Switch::check_type(ValueBase::Type type)
                return true;
        return false;
 }
+
+LinkableValueNode::Vocab
+ValueNode_Switch::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"link_off")
+               .set_local_name(_("Link Off"))
+               .set_description(_("The value node returned when the switch is off"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"link_on")
+               .set_local_name(_("Link On"))
+               .set_description(_("The value node returned when the switch is on"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"switch")
+               .set_local_name(_("Switch"))
+               .set_description(_("When checked, returns 'Link On', otherwise returns 'Link Off'"))
+       );
+
+       return ret;
+}
index c899b26..b7ce36c 100644 (file)
@@ -79,6 +79,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_Switch* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_Switch
 
 }; // END of namespace synfig
index 277390b..008d6a3 100644 (file)
@@ -276,3 +276,31 @@ ValueNode_TimedSwap::check_type(ValueBase::Type type)
                type==ValueBase::TYPE_TIME ||
                type==ValueBase::TYPE_VECTOR;
 }
+
+LinkableValueNode::Vocab
+ValueNode_TimedSwap::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"before")
+               .set_local_name(_("Before"))
+               .set_description(_("The value node returned when current time is before 'time' - 'length'"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"after")
+               .set_local_name(_("After"))
+               .set_description(_("The value node returned when current time is after 'time'"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"time")
+               .set_local_name(_("Time"))
+               .set_description(_("The time when the linear interpolation ends"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"length")
+               .set_local_name(_("Length"))
+               .set_description(_("The length of time when the linear interpolation between 'Before' and 'After' is made"))
+       );
+
+       return ret;
+}
index 9e33646..32b972e 100644 (file)
@@ -78,6 +78,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_TimedSwap* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_TimedSwap
 
 }; // END of namespace synfig
index 60ba1a0..1182399 100644 (file)
@@ -198,3 +198,31 @@ ValueNode_TimeLoop::check_type(ValueBase::Type type)
                return true;
        return false;
 }
+
+
+LinkableValueNode::Vocab
+ValueNode_TimeLoop::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc("link")
+               .set_local_name(_("Link"))
+               .set_description(_("The value node to time loop"))
+       );
+
+       ret.push_back(ParamDesc("link_time")
+               .set_local_name(_("Link Time"))
+               .set_description(_("Start time of the loop for the value node timeline"))
+       );
+
+       ret.push_back(ParamDesc("local_time")
+               .set_local_name(_("Local Time"))
+               .set_description(_("The time when the resulted loop starts"))
+       );
+
+       ret.push_back(ParamDesc("duration")
+               .set_local_name(_("Duration"))
+               .set_description(_("Lenght of the loop"))
+       );
+       return ret;
+}
index f237d7b..a323634 100644 (file)
@@ -75,6 +75,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_TimeLoop* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_TimeLoop
 
 }; // END of namespace synfig
index e01859d..184dda7 100644 (file)
@@ -185,3 +185,16 @@ ValueNode_TimeString::check_type(ValueBase::Type type)
        return
                type==ValueBase::TYPE_STRING;
 }
+
+LinkableValueNode::Vocab
+ValueNode_TimeString::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"time")
+               .set_local_name(_("Time"))
+               .set_description(_("The time that is converted to string"))
+       );
+
+       return ret;
+}
index bfc75ec..2291d88 100644 (file)
@@ -73,6 +73,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_TimeString* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_TimeString
 
 }; // END of namespace synfig
index 2e9a2b8..c4aecc3 100644 (file)
@@ -185,3 +185,21 @@ ValueNode_TwoTone::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_GRADIENT;
 }
+
+LinkableValueNode::Vocab
+ValueNode_TwoTone::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"color1")
+               .set_local_name(_("Color 1"))
+               .set_description(_("The start color of the gradient"))
+       );
+
+       ret.push_back(ParamDesc(ValueBase(),"color2")
+               .set_local_name(_("Color 2"))
+               .set_description(_("The end color of the gradient"))
+       );
+
+       return ret;
+}
index fb5a58b..782d858 100644 (file)
@@ -73,6 +73,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_TwoTone* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_TwoTone
 
 }; // END of namespace synfig
index 43fb5e0..8d15361 100644 (file)
@@ -165,3 +165,17 @@ ValueNode_VectorAngle::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_ANGLE;
 }
+
+
+LinkableValueNode::Vocab
+ValueNode_VectorAngle::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"vector")
+               .set_local_name(_("Vector"))
+               .set_description(_("The vector where the angle is calculated from"))
+       );
+
+       return ret;
+}
index c465f6b..9ee6bbf 100644 (file)
@@ -73,6 +73,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_VectorAngle* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_VectorAngle
 
 }; // END of namespace synfig
index 3839ad8..16d803c 100644 (file)
@@ -164,3 +164,16 @@ ValueNode_VectorLength::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_REAL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_VectorLength::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"vector")
+               .set_local_name(_("Vector"))
+               .set_description(_("The vector where the length is calculated from"))
+       );
+
+       return ret;
+}
index 2487fcd..a4d376e 100644 (file)
@@ -73,6 +73,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_VectorLength* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_VectorLength
 
 }; // END of namespace synfig
index f6df3c8..779095c 100644 (file)
@@ -164,3 +164,16 @@ ValueNode_VectorX::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_REAL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_VectorX::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"vector")
+               .set_local_name(_("Vector"))
+               .set_description(_("The vector where the X coordinate is extracted from"))
+       );
+
+       return ret;
+}
index 61d83a7..0c73a91 100644 (file)
@@ -73,6 +73,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_VectorX* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_VectorX
 
 }; // END of namespace synfig
index ea55176..db437d1 100644 (file)
@@ -164,3 +164,16 @@ ValueNode_VectorY::check_type(ValueBase::Type type)
 {
        return type==ValueBase::TYPE_REAL;
 }
+
+LinkableValueNode::Vocab
+ValueNode_VectorY::get_param_vocab()const
+{
+       LinkableValueNode::Vocab ret;
+
+       ret.push_back(ParamDesc(ValueBase(),"vector")
+               .set_local_name(_("Vector"))
+               .set_description(_("The vector where the Y coordinate is extracted from"))
+       );
+
+       return ret;
+}
index 7e0ee0a..6c54991 100644 (file)
@@ -73,6 +73,7 @@ public:
        using synfig::LinkableValueNode::set_link_vfunc;
        static bool check_type(ValueBase::Type type);
        static ValueNode_VectorY* create(const ValueBase &x);
+       virtual Vocab get_param_vocab()const;
 }; // END of class ValueNode_VectorY
 
 }; // END of namespace synfig