# valuenode.h File Reference

Header file for implementation of the "Placeholder" valuenode conversion. More...

`#include "vector.h"`
`#include "value.h"`
`#include "string.h"`
`#include "releases.h"`
`#include <ETL/handle>`
`#include <ETL/stringf>`
`#include "exception.h"`
`#include <map>`
`#include <sigc++/signal.h>`
`#include "guid.h"`
`#include "node.h"`
`#include <set>`
`#include <ETL/angle>`

Go to the source code of this file.

## Namespaces

namespace | synfig

## Classes

class | synfig::ValueNode
class | synfig::PlaceholderValueNode
class | synfig::LinkableValueNode
struct | synfig::LinkableValueNode::BookEntry
class | synfig::ValueNodeList
| A searchable value_node list container. More...

## Defines

#define | DCAST_HACK_BASECLASS()
#define | DCAST_HACK_ID(x)
#define | DCAST_HACK_ENABLE()
#define | CHECK_TYPE_AND_SET_VALUE(variable, type)

## Functions

ValueNode::LooseHandle | synfig::find_value_node (const GUID &guid)

## Detailed Description

Header file for implementation of the "Placeholder" valuenode conversion.

$Id$

## Define Documentation

#define DCAST_HACK_BASECLASS | ( |  | ) |

#define DCAST_HACK_ID | ( | x |  | ) |

#define DCAST_HACK_ENABLE | ( |  | ) |

Referenced by synfig::ValueNode_Animated::ValueNode_Animated(), synfig::ValueNode_DynamicList::ValueNode_DynamicList(), synfig::ValueNode_GradientRotate::ValueNode_GradientRotate(), and synfig::ValueNode_Subtract::ValueNode_Subtract().

#define CHECK_TYPE_AND_SET_VALUE | ( | variable,
|  | type |  | ) |

Value:

    /* 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

Referenced by synfig::ValueNode_VectorY::set_link_vfunc(), synfig::ValueNode_VectorX::set_link_vfunc(), synfig::ValueNode_VectorLength::set_link_vfunc(), synfig::ValueNode_VectorAngle::set_link_vfunc(), synfig::ValueNode_TwoTone::set_link_vfunc(), synfig::ValueNode_TimeString::set_link_vfunc(), synfig::ValueNode_TimeLoop::set_link_vfunc(), synfig::ValueNode_TimedSwap::set_link_vfunc(), synfig::ValueNode_Switch::set_link_vfunc(), synfig::ValueNode_Subtract::set_link_vfunc(), synfig::ValueNode_Stripes::set_link_vfunc(), synfig::ValueNode_Step::set_link_vfunc(), synfig::ValueNode_Sine::set_link_vfunc(), synfig::ValueNode_SegCalcVertex::set_link_vfunc(), synfig::ValueNode_SegCalcTangent::set_link_vfunc(), synfig::ValueNode_Scale::set_link_vfunc(), synfig::ValueNode_Repeat_Gradient::set_link_vfunc(), synfig::ValueNode_Reference::set_link_vfunc(), synfig::ValueNode_Reciprocal::set_link_vfunc(), synfig::ValueNode_RealString::set_link_vfunc(), synfig::ValueNode_Range::set_link_vfunc(), synfig::ValueNode_Random::set_link_vfunc(), synfig::ValueNode_Pow::set_link_vfunc(), synfig::ValueNode_Or::set_link_vfunc(), synfig::ValueNode_Not::set_link_vfunc(), synfig::ValueNode_Logarithm::set_link_vfunc(), synfig::ValueNode_Linear::set_link_vfunc(), synfig::ValueNode_Join::set_link_vfunc(), synfig::ValueNode_IntString::set_link_vfunc(), synfig::ValueNode_Integer::set_link_vfunc(), synfig::ValueNode_GradientRotate::set_link_vfunc(), synfig::ValueNode_GradientColor::set_link_vfunc(), synfig::ValueNode_Exp::set_link_vfunc(), synfig::ValueNode_Duplicate::set_link_vfunc(), synfig::ValueNode_DotProduct::set_link_vfunc(), synfig::ValueNode_Cos::set_link_vfunc(), synfig::ValueNode_Compare::set_link_vfunc(), synfig::ValueNode_BLineRevTangent::set_link_vfunc(), synfig::ValueNode_BLineCalcWidth::set_link_vfunc(), synfig::ValueNode_BLineCalcVertex::set_link_vfunc(), synfig::ValueNode_BLineCalcTangent::set_link_vfunc(), synfig::ValueNode_Atan2::set_link_vfunc(), synfig::ValueNode_AngleString::set_link_vfunc(), synfig::ValueNode_And::set_link_vfunc(), and synfig::ValueNode_Add::set_link_vfunc().