Removed a bunch more DEBUGPOINT()s.
[synfig.git] / synfig-core / trunk / src / synfig / valuenode.h
index 145a3dd..4d2c778 100644 (file)
@@ -1,6 +1,6 @@
 /* === S Y N F I G ========================================================= */
 /*!    \file valuenode.h
-**     \brief Template Header
+**     \brief Header file for implementation of the "Placeholder" valuenode conversion.
 **
 **     $Id$
 **
 # define DCAST_HACK_ENABLE()
 #endif
 
+#define CHECK_TYPE_AND_SET_VALUE(variable, type)                                               \
+       /* I don't think this ever happens - maybe remove this code? */         \
+       if (get_type() == ValueBase::TYPE_NIL) {                                                        \
+               warning("%s:%d get_type() IS nil sometimes!",                                   \
+                               __FILE__, __LINE__);                                                                    \
+               return false;                                                                                                   \
+       }                                                                                                                                       \
+       if (get_type() != ValueBase::TYPE_NIL &&                                                        \
+               !(ValueBase::same_type_as(value->get_type(), type)) &&                  \
+               !PlaceholderValueNode::Handle::cast_dynamic(value)) {                   \
+               error(_("%s:%d wrong type for %s: need %s but got %s"),                 \
+                         __FILE__, __LINE__,                                                                           \
+                         link_local_name(i).c_str(),                                                           \
+                         ValueBase::type_local_name(type).c_str(),                                     \
+                         ValueBase::type_local_name(value->get_type()).c_str());       \
+               return false;                                                                                                   \
+       }                                                                                                                                       \
+       variable = value;                                                                                                       \
+       signal_child_changed()(i);                                                                                      \
+       signal_value_changed()();                                                                                       \
+       return true
+
 /* === T Y P E D E F S ===================================================== */
 
 /* === C L A S S E S & S T R U C T S ======================================= */
@@ -173,7 +195,7 @@ public:
 public:
 
        //! Returns the value of the ValueNode at time \a t
-       virtual ValueBase operator()(Time t)const
+       virtual ValueBase operator()(Time /*t*/)const
                { return ValueBase(); }
 
        //! \internal Sets the id of the ValueNode
@@ -256,7 +278,7 @@ public:
        static Handle create(ValueBase::Type type=ValueBase::TYPE_NIL);
 
 protected:
-       virtual void get_times_vfunc(Node::time_set &set) const {}
+       virtual void get_times_vfunc(Node::time_set &/*set*/) const {}
 }; // END of class PlaceholderValueNode