/* === C L A S S E S & S T R U C T S ======================================= */
-namespace synfigapp { class ValueDesc; }
+namespace synfigapp { class ValueDesc; class CanvasInterface; }
namespace synfig { class ParamDesc; }
namespace studio
private:
+ etl::loose_handle<synfigapp::CanvasInterface> canvas_interface;
+
Type type_mask;
DuckMap duck_map;
public:
- Duckmatic();
+ Duckmatic(etl::loose_handle<synfigapp::CanvasInterface> canvas_interface);
virtual ~Duckmatic();
sigc::signal<void>& signal_duck_selection_changed() { return signal_duck_selection_changed_; }
//! Ends the duck drag
bool end_duck_drag();
+ //! Signals to each selected duck that it has been clicked
+ void signal_user_click_selected_ducks(int button);
+
//! Calls all of the ducks' edited signals
/*! Updates corresponding valuenodes after a drag */
void signal_edited_selected_ducks();
- //! Signals to each selected duck that it has been clicked
- void signal_user_click_selected_ducks(int button);
-
+ bool on_duck_changed(const synfig::Point &value,const synfigapp::ValueDesc& value_desc);
+ bool on_duck_angle_changed(const synfig::Angle &rotation,const synfigapp::ValueDesc& value_desc);
etl::handle<Duck> find_similar_duck(etl::handle<Duck> duck);
etl::handle<Duck> add_similar_duck(etl::handle<Duck> duck);