projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Enabling dooglus' single threaded renderer workaround as default for windows to impro...
[synfig.git]
/
synfig-studio
/
src
/
gtkmm
/
canvasview.cpp
diff --git
a/synfig-studio/src/gtkmm/canvasview.cpp
b/synfig-studio/src/gtkmm/canvasview.cpp
index
bc0cde5
..
5afa535
100644
(file)
--- a/
synfig-studio/src/gtkmm/canvasview.cpp
+++ b/
synfig-studio/src/gtkmm/canvasview.cpp
@@
-52,6
+52,7
@@
#include <synfig/valuenode_linear.h>
#include <synfig/valuenode_timedswap.h>
#include <synfig/valuenode_scale.h>
#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>
#include <synfig/valuenode_dynamiclist.h>
#include <synfig/valuenode_twotone.h>
#include <synfig/valuenode_stripes.h>
@@
-684,10
+685,10
@@
CanvasView::CanvasView(etl::loose_handle<Instance> instance,etl::handle<synfigap
//keyframe_tree_store_ (KeyframeTreeStore::create(canvas_interface_)),
time_adjustment_ (0,0,25,0,0,0),
time_window_adjustment_ (0,0,25,0,0,0),
//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),
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),
timeslider (new Widget_Timeslider),
widget_kf_list (new Widget_Keyframe_List),
@@
-2949,6
+2950,15
@@
CanvasView::on_duck_changed(const synfig::Point &value,const synfigapp::ValueDes
return false;
}
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:
switch(value_desc.get_value_type())
{
case ValueBase::TYPE_REAL:
@@
-2982,6
+2992,14
@@
CanvasView::on_duck_angle_changed(const synfig::Angle &rotation,const synfigapp:
return false;
}
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);
// \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);