#include <synfig/valuenode_linear.h>
#include <synfig/valuenode_timedswap.h>
#include <synfig/valuenode_scale.h>
+#include <synfig/valuenode_range.h>
#include <synfig/valuenode_dynamiclist.h>
#include <synfig/valuenode_twotone.h>
#include <synfig/valuenode_stripes.h>
//keyframe_tree_store_ (KeyframeTreeStore::create(canvas_interface_)),
time_adjustment_ (0,0,25,0,0,0),
time_window_adjustment_ (0,0,25,0,0,0),
+ statusbar (manage(new class Gtk::Statusbar())),
quality_adjustment_ (8,1,10,1,1,0),
future_onion_adjustment_ (0,0,2,1,1,0),
past_onion_adjustment_ (0,0,2,1,1,0),
- statusbar (manage(new class Gtk::Statusbar())),
timeslider (new Widget_Timeslider),
widget_kf_list (new Widget_Keyframe_List),
- canvasmenu
- viewmenu
*/
- action_group = Gtk::ActionGroup::create();
+ action_group = Gtk::ActionGroup::create("canvasview");
//action_group->add( Gtk::Action::create("MenuFile", _("_File")) );
action_group->add( Gtk::Action::create("new", Gtk::Stock::NEW),
return false;
}
+ if (ValueNode_Range::Handle range_value_node = ValueNode_Range::Handle::cast_dynamic(value_desc.get_value_node()))
+ {
+ int link_index(range_value_node->get_link_index_from_name("link"));
+ return canvas_interface()->change_value(
+ synfigapp::ValueDesc(range_value_node,link_index),
+ range_value_node->get_inverse(get_time(), value)
+ );
+ }
+
switch(value_desc.get_value_type())
{
case ValueBase::TYPE_REAL:
return false;
}
+ if (ValueNode_Range::Handle range_value_node = ValueNode_Range::Handle::cast_dynamic(value_desc.get_value_node()))
+ {
+ int link_index(range_value_node->get_link_index_from_name("link"));
+ return canvas_interface()->change_value(
+ synfigapp::ValueDesc(range_value_node,link_index),
+ range_value_node->get_inverse(get_time(), rotation)
+ );
+ }
// \todo will this really always be the case?
assert(value_desc.get_value_type() == ValueBase::TYPE_ANGLE);
return canvas_interface()->change_value(value_desc, value_desc.get_value(get_time()).get(Angle()) + rotation);