-** This software and associated documentation
-** are CONFIDENTIAL and PROPRIETARY property of
-** the above-mentioned copyright holder.
+** This package is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License as
+** published by the Free Software Foundation; either version 2 of
+** the License, or (at your option) any later version.
-** You may not copy, print, publish, or in any
-** other way distribute this software without
-** a prior written agreement with
-** the copyright holder.
+** This package is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
class CanvasView : public Gtk::Window, public etl::shared_object
{
friend class UniversalScrubber;
friend class Dock_Layers;
friend class Dock_Children;
friend class Dock_Keyframes;
class CanvasView : public Gtk::Window, public etl::shared_object
{
friend class UniversalScrubber;
friend class Dock_Layers;
friend class Dock_Children;
friend class Dock_Keyframes;
typedef ChildrenTreeStore::Model ChildrenTreeModel;
//! Create an instance of this class whenever doing a longer task.
typedef ChildrenTreeStore::Model ChildrenTreeModel;
//! Create an instance of this class whenever doing a longer task.
//! Sound and information to play it
etl::handle<AudioContainer> audio;
studio::Widget_Sound *disp_audio; //should this be put into thing too?
//! Sound and information to play it
etl::handle<AudioContainer> audio;
studio::Widget_Sound *disp_audio; //should this be put into thing too?
//std::map<synfig::String,Glib::RefPtr<Gtk::TreeModel> > tree_model_book_;
std::map<synfig::String,Glib::RefPtr<Glib::ObjectBase> > ref_obj_book_;
std::map<synfig::String,Gtk::Widget*> ext_widget_book_;
//std::map<synfig::String,Glib::RefPtr<Gtk::TreeModel> > tree_model_book_;
std::map<synfig::String,Glib::RefPtr<Glib::ObjectBase> > ref_obj_book_;
std::map<synfig::String,Gtk::Widget*> ext_widget_book_;
//! The time adjustment's scope is defined by the time_window adjustment
Gtk::Adjustment time_adjustment_;
//! The time adjustment's scope is defined by the time_window adjustment
Gtk::Adjustment time_adjustment_;
//! The time_window adjustment governs the position of the time window on the whole time line
//Gtk::Adjustment time_window_adjustment_;
studio::Adjust_Window time_window_adjustment_;
//! The time_window adjustment governs the position of the time window on the whole time line
//Gtk::Adjustment time_window_adjustment_;
studio::Adjust_Window time_window_adjustment_;
Glib::RefPtr<Gtk::ToggleAction> duck_mask_position;
Glib::RefPtr<Gtk::ToggleAction> duck_mask_vertex;
Glib::RefPtr<Gtk::ToggleAction> duck_mask_tangent;
Glib::RefPtr<Gtk::ToggleAction> duck_mask_position;
Glib::RefPtr<Gtk::ToggleAction> duck_mask_vertex;
Glib::RefPtr<Gtk::ToggleAction> duck_mask_tangent;
etl::handle<synfigapp::UIInterface> ui_interface_;
etl::handle<synfigapp::SelectionManager> selection_manager_;
etl::handle<synfigapp::UIInterface> ui_interface_;
etl::handle<synfigapp::SelectionManager> selection_manager_;
// Constructor is private to force the use of the "create()" constructor
CanvasView(etl::loose_handle<Instance> instance,etl::handle<synfigapp::CanvasInterface> canvas_interface);
//! Constructor Helper
// Constructor is private to force the use of the "create()" constructor
CanvasView(etl::loose_handle<Instance> instance,etl::handle<synfigapp::CanvasInterface> canvas_interface);
//! Constructor Helper
void toggle_duck_mask(Duckmatic::Type type);
Gtk::Widget *create_work_area();
Gtk::Widget *create_time_bar();
void toggle_duck_mask(Duckmatic::Type type);
Gtk::Widget *create_work_area();
Gtk::Widget *create_time_bar();
void popup_param_menu_bezier(float location, synfigapp::ValueDesc value_desc)
{ popup_param_menu(value_desc,location); }
void popup_param_menu_bezier(float location, synfigapp::ValueDesc value_desc)
{ popup_param_menu(value_desc,location); }
void workarea_layer_selected(synfig::Layer::Handle layer);
void selected_layer_color_set(synfig::Color color);
void workarea_layer_selected(synfig::Layer::Handle layer);
void selected_layer_color_set(synfig::Color color);
void register_layer_type(synfig::Layer::Book::value_type &lyr,std::map<synfig::String,Gtk::Menu*>*);
void register_layer_type(synfig::Layer::Book::value_type &lyr,std::map<synfig::String,Gtk::Menu*>*);
void rebuild_ducks_layer_(synfig::TransformStack& transform_stack, synfig::Canvas::Handle canvas, std::set<synfig::Layer::Handle>& selected_list);
void rebuild_ducks_layer_(synfig::TransformStack& transform_stack, synfig::Canvas::Handle canvas, std::set<synfig::Layer::Handle>& selected_list);
Gtk::Widget* get_ext_widget(const synfig::String& x);
void set_ext_widget(const synfig::String& x, Gtk::Widget* y);
Gtk::Widget* get_ext_widget(const synfig::String& x);
void set_ext_widget(const synfig::String& x, Gtk::Widget* y);
//std::map<synfig::String,Gtk::Widget*>& tree_view_book() { return tree_view_book_; }
//std::map<synfig::String,Gtk::Widget*>& ext_widget_book() { return tree_view_book_; }
//std::map<synfig::String,Gtk::Widget*>& tree_view_book() { return tree_view_book_; }
//std::map<synfig::String,Gtk::Widget*>& ext_widget_book() { return tree_view_book_; }
void popup_layer_menu(synfig::Layer::Handle layer);
virtual ~CanvasView();
void set_mode(Mode x) { canvas_interface()->set_mode(x); }
void popup_layer_menu(synfig::Layer::Handle layer);
virtual ~CanvasView();
void set_mode(Mode x) { canvas_interface()->set_mode(x); }
const Gtk::Adjustment &time_adjustment()const { return time_adjustment_; }
studio::Adjust_Window &time_window_adjustment() { return time_window_adjustment_; }
const Gtk::Adjustment &time_adjustment()const { return time_adjustment_; }
studio::Adjust_Window &time_window_adjustment() { return time_window_adjustment_; }
const studio::Adjust_Window &time_window_adjustment()const { return time_window_adjustment_; }
etl::handle<synfigapp::UIInterface> get_ui_interface() { return ui_interface_;}
const studio::Adjust_Window &time_window_adjustment()const { return time_window_adjustment_; }
etl::handle<synfigapp::UIInterface> get_ui_interface() { return ui_interface_;}
etl::handle<synfigapp::SelectionManager> get_selection_manager() { return selection_manager_; }
Glib::RefPtr<Gtk::TreeModel> layer_tree_store() { return get_tree_model("layers"); }
etl::handle<synfigapp::SelectionManager> get_selection_manager() { return selection_manager_; }
Glib::RefPtr<Gtk::TreeModel> layer_tree_store() { return get_tree_model("layers"); }
Glib::RefPtr<const Gtk::TreeModel> layer_tree_store()const { return get_tree_model("layers"); }
Glib::RefPtr<Gtk::TreeModel> children_tree_store() { return get_tree_model("children"); }
Glib::RefPtr<const Gtk::TreeModel> layer_tree_store()const { return get_tree_model("layers"); }
Glib::RefPtr<Gtk::TreeModel> children_tree_store() { return get_tree_model("children"); }
Glib::RefPtr<const Gtk::TreeModel> children_tree_store()const { return get_tree_model("children"); }
Glib::RefPtr<Gtk::TreeModel> keyframe_tree_store() { return get_tree_model("keyframes"); }
Glib::RefPtr<const Gtk::TreeModel> children_tree_store()const { return get_tree_model("children"); }
Glib::RefPtr<Gtk::TreeModel> keyframe_tree_store() { return get_tree_model("keyframes"); }
Glib::RefPtr<const Gtk::TreeModel> keyframe_tree_store()const { return get_tree_model("keyframes"); }
void set_time(synfig::Time t) { canvas_interface_->set_time(t); }
Glib::RefPtr<const Gtk::TreeModel> keyframe_tree_store()const { return get_tree_model("keyframes"); }
void set_time(synfig::Time t) { canvas_interface_->set_time(t); }
synfig::Time get_time() { return canvas_interface_->get_time(); }
etl::handle<synfig::Canvas> get_canvas()const { return canvas_interface_->get_canvas(); }
synfig::Time get_time() { return canvas_interface_->get_time(); }
etl::handle<synfig::Canvas> get_canvas()const { return canvas_interface_->get_canvas(); }
//! Stops the currently executing action
/*! \see get_cancel_status(), reset_cancel_status(), IsWorking */
//! Stops the currently executing action
/*! \see get_cancel_status(), reset_cancel_status(), IsWorking */
- void on_waypoint_clicked(synfigapp::ValueDesc,synfig::Waypoint, int button);
-
+ void on_waypoint_clicked_canvasview(synfigapp::ValueDesc,std::set<synfig::Waypoint,std::less<synfig::UniqueID> >, int button);
+
bool on_layer_user_click(int, Gtk::TreeRow, LayerTree::ColumnID);
// void on_layer_toggle(const Glib::ustring& path_string, Gtk::TreeModelColumn<bool> column);
bool on_layer_user_click(int, Gtk::TreeRow, LayerTree::ColumnID);
// void on_layer_toggle(const Glib::ustring& path_string, Gtk::TreeModelColumn<bool> column);
void on_mode_changed(synfigapp::CanvasInterface::Mode mode);
// void on_layer_waypoint_clicked(const Glib::ustring &, synfig::ValueNode_Animated::WaypointList::iterator);
void on_mode_changed(synfigapp::CanvasInterface::Mode mode);
// void on_layer_waypoint_clicked(const Glib::ustring &, synfig::ValueNode_Animated::WaypointList::iterator);
//void on_children_waypoint_clicked(const Glib::ustring &, synfig::ValueNode_Animated::WaypointList::iterator);
void on_waypoint_changed();
//void on_children_waypoint_clicked(const Glib::ustring &, synfig::ValueNode_Animated::WaypointList::iterator);
void on_waypoint_changed();
void on_layer_toggle(synfig::Layer::Handle);
void on_edited_value(synfigapp::ValueDesc,synfig::ValueBase);
void on_layer_toggle(synfig::Layer::Handle);
void on_edited_value(synfigapp::ValueDesc,synfig::ValueBase);
void on_drop_drag_data_received(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const Gtk::SelectionData& selection_data, guint info, guint time);
void on_drop_drag_data_received(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const Gtk::SelectionData& selection_data, guint info, guint time);