00001
00021
00022
00023
00024
00025 #ifndef __SYNFIG_GROUP_ACTION_MANAGER_H
00026 #define __SYNFIG_GROUP_ACTION_MANAGER_H
00027
00028
00029
00030 #include <gtkmm/uimanager.h>
00031 #include <gtkmm/treeview.h>
00032 #include <synfigapp/canvasinterface.h>
00033
00034
00035
00036
00037
00038
00039
00040 namespace studio {
00041
00042 class LayerGroupTree;
00043
00044 class GroupActionManager
00045 {
00046 Glib::RefPtr<Gtk::UIManager> ui_manager_;
00047 LayerGroupTree* group_tree_;
00048 etl::handle<synfigapp::CanvasInterface> canvas_interface_;
00049
00050 Glib::RefPtr<Gtk::ActionGroup> action_group_;
00051 Gtk::UIManager::ui_merge_id popup_id_;
00052
00053 sigc::connection selection_changed_connection;
00054
00055 bool queued;
00056 sigc::connection queue_refresh_connection;
00057
00058 private:
00059
00060 void on_action_add();
00061
00062 public:
00063 void queue_refresh();
00064
00065 GroupActionManager();
00066 ~GroupActionManager();
00067
00068 void set_ui_manager(const Glib::RefPtr<Gtk::UIManager> &x);
00069 Glib::RefPtr<Gtk::UIManager> get_ui_manager()const { return ui_manager_; }
00070
00071 void set_group_tree(LayerGroupTree* x);
00072 LayerGroupTree* get_group_tree()const { return group_tree_; }
00073
00074 void set_canvas_interface(const etl::handle<synfigapp::CanvasInterface> &x);
00075 etl::handle<synfigapp::CanvasInterface> get_canvas_interface()const { return canvas_interface_; }
00076
00077 void refresh();
00078 void clear();
00079 };
00080
00081 };
00082
00083
00084
00085 #endif