synfig-studio  1.0.3
layeractionmanager.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
21 /* ========================================================================= */
22 
23 /* === S T A R T =========================================================== */
24 
25 #ifndef __SYNFIG_LAYER_ACTION_MANAGER_H
26 #define __SYNFIG_LAYER_ACTION_MANAGER_H
27 
28 /* === H E A D E R S ======================================================= */
29 
30 #include <gtkmm/uimanager.h>
31 #include <gtkmm/treeview.h>
33 
34 /* === M A C R O S ========================================================= */
35 
36 /* === T Y P E D E F S ===================================================== */
37 
38 /* === C L A S S E S & S T R U C T S ======================================= */
39 
40 namespace studio {
41 
42 class LayerTree;
43 
45 {
46  Glib::RefPtr<Gtk::UIManager> ui_manager_;
47  //Glib::RefPtr<Gtk::TreeSelection> tree_selection_;
48  LayerTree* layer_tree_;
49  etl::handle<synfigapp::CanvasInterface> canvas_interface_;
50 
51  Glib::RefPtr<Gtk::ActionGroup> action_group_;
52  Gtk::UIManager::ui_merge_id popup_id_;
53 
54 
55  Glib::RefPtr<Gtk::ActionGroup> action_group_copy_paste;
56 
57  Glib::RefPtr<Gtk::Action> action_cut_;
58  Glib::RefPtr<Gtk::Action> action_copy_;
59  Glib::RefPtr<Gtk::Action> action_paste_;
60 
61  Glib::RefPtr<Gtk::Action> action_amount_inc_;
62  Glib::RefPtr<Gtk::Action> action_amount_dec_;
63  Glib::RefPtr<Gtk::Action> action_amount_;
64 
65  Glib::RefPtr<Gtk::Action> action_select_all_child_layers_;
66  sigc::connection select_all_child_layers_connection;
67 
68  std::list<synfig::Layer::Handle> clipboard_;
69 
70  sigc::connection selection_changed_connection;
71 
72  bool queued;
73  sigc::connection queue_refresh_connection;
74 
75  std::list<sigc::connection> update_connection_list;
76 
77  void cut();
78  void copy();
79  void paste();
80  void export_dup_nodes(synfig::Layer::Handle, synfig::Canvas::Handle, int &);
81 
82  void amount_inc();
83  void amount_dec();
84 
85 public:
86  void queue_refresh();
87 
90 
91  void set_ui_manager(const Glib::RefPtr<Gtk::UIManager> &x);
92  Glib::RefPtr<Gtk::UIManager> get_ui_manager()const { return ui_manager_; }
93 
94  void set_layer_tree(LayerTree* x);
95  LayerTree* get_layer_tree()const { return layer_tree_; }
96 
97  void set_canvas_interface(const etl::handle<synfigapp::CanvasInterface> &x);
98  etl::handle<synfigapp::CanvasInterface> get_canvas_interface()const { return canvas_interface_; }
99 
100  etl::loose_handle<synfigapp::Instance> get_instance()const { return canvas_interface_->get_instance(); }
101 
102  void refresh();
103  void clear();
104 
105  Glib::RefPtr<Gtk::Action> get_action_select_all_child_layers() { return action_select_all_child_layers_; }
106 }; // END of LayerActionManager
107 
108 }; // END of namespace studio
109 
110 /* === E N D =============================================================== */
111 
112 #endif