-bool
-synfig::ValueNode_Subtract::set_lhs(ValueNode::Handle a)
-{
- ref_a=a;
-
- if(PlaceholderValueNode::Handle::cast_dynamic(a))
- return true;
-
- if(!ref_a || !ref_b)
- set_type(ValueBase::TYPE_NIL);
- else
- if(ref_a->get_type()==ValueBase::TYPE_ANGLE && ref_a->get_type()==ValueBase::TYPE_ANGLE)
- set_type(ValueBase::TYPE_ANGLE);
- else
- if(ref_a->get_type()==ValueBase::TYPE_COLOR && ref_a->get_type()==ValueBase::TYPE_COLOR)
- set_type(ValueBase::TYPE_COLOR);
- else
- if(ref_a->get_type()==ValueBase::TYPE_INTEGER && ref_a->get_type()==ValueBase::TYPE_INTEGER)
- set_type(ValueBase::TYPE_INTEGER);
- else
- if(ref_a->get_type()==ValueBase::TYPE_REAL && ref_a->get_type()==ValueBase::TYPE_REAL)
- set_type(ValueBase::TYPE_REAL);
- else
- if(ref_a->get_type()==ValueBase::TYPE_VECTOR && ref_a->get_type()==ValueBase::TYPE_VECTOR)
- set_type(ValueBase::TYPE_VECTOR);
- else
- {
- synfig::warning(get_id()+":(set_a):"+strprintf(_("Types seem to be off for ValueNodes %s and %s"),ref_a->get_id().c_str(),ref_b->get_id().c_str()));
- set_type(ValueBase::TYPE_NIL);
- }
-
- return true;
-}
-
-bool
-synfig::ValueNode_Subtract::set_rhs(ValueNode::Handle b)