- value_node->changed();
- return value_node;
-}
-
-// This function is a phase-out hack for the timed swap value node
-etl::handle<ValueNode_Animated>
-CanvasParser::parse_timedswap(xmlpp::Element *node,Canvas::Handle canvas)
-{
- ValueNode_TimedSwap::Handle timed_swap(parse_linkable_value_node(node,canvas));
-
- assert(timed_swap);
-
- ValueNode_Animated::Handle animated(ValueNode_Animated::create(timed_swap->get_type()));
-
- animated->set_root_canvas(canvas->get_root());
-
- assert(animated);
-
- Time swap_time, swap_length;
- (*timed_swap->get_swap_time())(0).put(&swap_time);
- (*timed_swap->get_swap_length())(0).put(&swap_length);
-
- animated->new_waypoint(swap_time-swap_length,timed_swap->get_before());
- animated->new_waypoint(swap_time,timed_swap->get_after());
-
- return animated;
-}
-
-
-handle<ValueNode_Subtract>
-CanvasParser::parse_subtract(xmlpp::Element *element,Canvas::Handle canvas)
-{
- assert(element->get_name()=="subtract");
-
- handle<ValueNode_Subtract> value_node;
- handle<ValueNode> lhs,rhs,scalar;
-
- if(element->get_attribute("type"))
- {
- ValueBase::Type type=ValueBase::ident_type(element->get_attribute("type")->get_value());
-
- if(!type)
- {
- error(element,"Bad type in <subtract>");
- return ValueNode_Subtract::Handle();
- }
- value_node=ValueNode_Subtract::create(type);
- }
- else
- value_node=ValueNode_Subtract::create();
-
- if(!value_node)
- {
- error(element,strprintf(_("Unable to create <subtract>")));
- return handle<ValueNode_Subtract>();
- }