Added copyright lines for files I've edited this year.
[synfig.git] / synfig-core / trunk / src / synfig / valuenode.cpp
index af1fb0d..e6953cf 100644 (file)
@@ -6,7 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
-**     Copyright (c) 2007 Chris Moore
+**     Copyright (c) 2007, 2008 Chris Moore
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
@@ -38,6 +38,7 @@
 #include "general.h"
 #include "canvas.h"
 #include "paramdesc.h"
+#include "releases.h"
 
 #include "valuenode_const.h"
 #include "valuenode_linear.h"
@@ -104,45 +105,49 @@ ValueNode::subsys_init()
 {
        book_=new LinkableValueNode::Book();
 
-#define ADD_VALUENODE(class,name,local)                                                                                                                        \
+#define ADD_VALUENODE(class,name,local,version)                                                                                                        \
        (*book_)[name].factory=reinterpret_cast<LinkableValueNode::Factory>(&class::create);            \
        (*book_)[name].check_type=&class::check_type;                                                                                           \
-       (*book_)[name].local_name=local
+       (*book_)[name].local_name=local;                                                                                                                        \
+       (*book_)[name].release_version=version
 
-#define ADD_VALUENODE2(class,name,local)                                                                                                               \
+#define ADD_VALUENODE2(class,name,local,version)                                                                                               \
        (*book_)[name].factory=reinterpret_cast<LinkableValueNode::Factory>(&class::create_from);       \
        (*book_)[name].check_type=&class::check_type;                                                                                           \
-       (*book_)[name].local_name=local
-
-       ADD_VALUENODE(ValueNode_Linear,                 "linear",                       _("Linear")                             );
-       ADD_VALUENODE(ValueNode_Composite,              "composite",            _("Composite")                  );
-       ADD_VALUENODE(ValueNode_RadialComposite,"radial_composite",     _("Radial Composite")   );
-       ADD_VALUENODE(ValueNode_Reference,              "reference",            _("Reference")                  );
-       ADD_VALUENODE(ValueNode_Repeat_Gradient,"repeat_gradient",      _("Repeat Gradient")    );
-       ADD_VALUENODE(ValueNode_Scale,                  "scale",                        _("Scale")                              );
-       ADD_VALUENODE(ValueNode_BLineCalcTangent,"blinecalctangent",_("BLine Tangent")          );
-       ADD_VALUENODE(ValueNode_BLineCalcVertex,"blinecalcvertex",      _("BLine Vertex")               );
-       ADD_VALUENODE(ValueNode_BLineRevTangent,"blinerevtangent",      _("Reverse Tangent")    );
-       ADD_VALUENODE(ValueNode_SegCalcTangent, "segcalctangent",       _("Segment Tangent")    );
-       ADD_VALUENODE(ValueNode_SegCalcVertex,  "segcalcvertex",        _("Segment Vertex")             );
-       ADD_VALUENODE(ValueNode_Stripes,                "stripes",                      _("Stripes")                    );
-       ADD_VALUENODE(ValueNode_Range,                  "range",                        _("Range")                              );
-       ADD_VALUENODE(ValueNode_Add,                    "add",                          _("Add")                                );
-       ADD_VALUENODE(ValueNode_Subtract,               "subtract",                     _("Subtract")                   );
-       ADD_VALUENODE(ValueNode_TimedSwap,              "timed_swap",           _("Timed Swap")                 );
-       ADD_VALUENODE(ValueNode_TwoTone,                "twotone",                      _("Two-Tone")                   );
-       ADD_VALUENODE(ValueNode_BLine,                  "bline",                        _("BLine")                              );
-       ADD_VALUENODE2(ValueNode_DynamicList,   "dynamic_list",         _("Dynamic List")               );
-       ADD_VALUENODE(ValueNode_GradientRotate, "gradient_rotate",      _("Gradient Rotate")    );
-       ADD_VALUENODE(ValueNode_Sine,                   "sine",                         _("Sine")                               );
-       ADD_VALUENODE(ValueNode_Cos,                    "cos",                          _("Cos")                                );
-       ADD_VALUENODE(ValueNode_Atan2,                  "atan2",                        _("aTan2")                              );
-       ADD_VALUENODE(ValueNode_Exp,                    "exp",                          _("Exponential")                );
-       ADD_VALUENODE(ValueNode_Switch,                 "switch",                       _("Switch")                             );
-       ADD_VALUENODE(ValueNode_TimeLoop,               "timeloop",                     _("Time Loop")                  );
-       ADD_VALUENODE(ValueNode_Reciprocal,             "reciprocal",           _("Reciprocal")                 );
-       ADD_VALUENODE(ValueNode_Duplicate,              "duplicate",            _("Duplicate")                  );
-       ADD_VALUENODE(ValueNode_Integer,                "fromint",                      _("From Integer")               );
+       (*book_)[name].local_name=local;                                                                                                                        \
+       (*book_)[name].release_version=version
+
+       ADD_VALUENODE(ValueNode_Linear,                 "linear",                       _("Linear")                      ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_Composite,              "composite",            _("Composite")           ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_RadialComposite,"radial_composite",     _("Radial Composite"),RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_Reference,              "reference",            _("Reference")           ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_Scale,                  "scale",                        _("Scale")                       ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_SegCalcTangent, "segcalctangent",       _("Segment Tangent") ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_SegCalcVertex,  "segcalcvertex",        _("Segment Vertex")      ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_Stripes,                "stripes",                      _("Stripes")             ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_Subtract,               "subtract",                     _("Subtract")            ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_TwoTone,                "twotone",                      _("Two-Tone")            ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_BLine,                  "bline",                        _("BLine")                       ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE2(ValueNode_DynamicList,   "dynamic_list",         _("Dynamic List")        ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_GradientRotate, "gradient_rotate",      _("Gradient Rotate") ,RELEASE_VERSION_0_61_06);
+       ADD_VALUENODE(ValueNode_Sine,                   "sine",                         _("Sine")                        ,RELEASE_VERSION_0_61_06);
+
+       ADD_VALUENODE(ValueNode_TimedSwap,              "timed_swap",           _("Timed Swap")          ,RELEASE_VERSION_0_61_07); // SVN r610
+       ADD_VALUENODE(ValueNode_Repeat_Gradient,"repeat_gradient",      _("Repeat Gradient") ,RELEASE_VERSION_0_61_07); // SVN r666
+       ADD_VALUENODE(ValueNode_Exp,                    "exp",                          _("Exponential")         ,RELEASE_VERSION_0_61_07); // SVN r739
+       ADD_VALUENODE(ValueNode_Add,                    "add",                          _("Add")                         ,RELEASE_VERSION_0_61_07); // SVN r742
+       ADD_VALUENODE(ValueNode_BLineCalcTangent,"blinecalctangent",_("BLine Tangent")   ,RELEASE_VERSION_0_61_07); // SVN r744
+       ADD_VALUENODE(ValueNode_BLineCalcVertex,"blinecalcvertex",      _("BLine Vertex")        ,RELEASE_VERSION_0_61_07); // SVN r744
+       ADD_VALUENODE(ValueNode_Range,                  "range",                        _("Range")                       ,RELEASE_VERSION_0_61_07); // SVN r776
+
+       ADD_VALUENODE(ValueNode_Switch,                 "switch",                       _("Switch")                      ,RELEASE_VERSION_0_61_08); // SVN r923
+       ADD_VALUENODE(ValueNode_Cos,                    "cos",                          _("Cos")                         ,RELEASE_VERSION_0_61_08); // SVN r1111
+       ADD_VALUENODE(ValueNode_Atan2,                  "atan2",                        _("aTan2")                       ,RELEASE_VERSION_0_61_08); // SVN r1132
+       ADD_VALUENODE(ValueNode_BLineRevTangent,"blinerevtangent",      _("Reverse Tangent") ,RELEASE_VERSION_0_61_08); // SVN r1162
+       ADD_VALUENODE(ValueNode_TimeLoop,               "timeloop",                     _("Time Loop")           ,RELEASE_VERSION_0_61_08); // SVN r1226
+       ADD_VALUENODE(ValueNode_Reciprocal,             "reciprocal",           _("Reciprocal")          ,RELEASE_VERSION_0_61_08); // SVN r1238
+       ADD_VALUENODE(ValueNode_Duplicate,              "duplicate",            _("Duplicate")           ,RELEASE_VERSION_0_61_08); // SVN r1267
+       ADD_VALUENODE(ValueNode_Integer,                "fromint",                      _("From Integer")        ,RELEASE_VERSION_0_61_08); // SVN r1267
 
 #undef ADD_VALUENODE
 #undef ADD_VALUENODE2
@@ -582,12 +587,23 @@ LinkableValueNode::get_description(int index, bool show_exported_name)const
 {
        String description;
 
-       if (show_exported_name && !is_exported())
-               show_exported_name = false;
-
-       if (index != -1)
+       if (index == -1)
+       {
+               if (show_exported_name && is_exported())
+                       description += strprintf(" (%s)", get_id().c_str());
+       }
+       else
+       {
                description = String(":") + link_local_name(index);
 
+               if (show_exported_name)
+               {
+                       ValueNode::LooseHandle link(get_link(index));
+                       if (link->is_exported())
+                               description += strprintf(" (%s)", link->get_id().c_str());
+               }
+       }
+
        const synfig::Node* node = this;
        LinkableValueNode::ConstHandle parent_linkable_vn = 0;
 
@@ -627,8 +643,5 @@ LinkableValueNode::get_description(int index, bool show_exported_name)const
                                                                description.c_str());
        }
 
-       if (show_exported_name)
-               description += strprintf(" (%s)", get_id().c_str());
-
        return description;
 }