00001
00021
00022
00023
00024
00025 #ifndef __SYNFIG_KEYFRAME_ACTION_MANAGER_H
00026 #define __SYNFIG_KEYFRAME_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 KeyframeTree;
00043
00044 class KeyframeActionManager
00045 {
00046 sigc::signal<void> signal_show_keyframe_properties_;
00047
00048 Glib::RefPtr<Gtk::UIManager> ui_manager_;
00049
00050 KeyframeTree* keyframe_tree_;
00051 etl::handle<synfigapp::CanvasInterface> canvas_interface_;
00052
00053 Glib::RefPtr<Gtk::ActionGroup> action_group_;
00054 Gtk::UIManager::ui_merge_id popup_id_;
00055
00056
00057 sigc::connection selection_changed_connection;
00058
00059 bool queued;
00060 sigc::connection queue_refresh_connection;
00061 sigc::connection time_changed_connection;
00062
00063 void on_add_keyframe();
00064 void on_keyframe_properties();
00065
00066 public:
00067 sigc::signal<void>& signal_show_keyframe_properties() { return signal_show_keyframe_properties_; }
00068
00069 void queue_refresh();
00070
00071 KeyframeActionManager();
00072 ~KeyframeActionManager();
00073
00074 void set_ui_manager(const Glib::RefPtr<Gtk::UIManager> &x);
00075 Glib::RefPtr<Gtk::UIManager> get_ui_manager()const { return ui_manager_; }
00076
00077 void set_keyframe_tree(KeyframeTree* x);
00078 KeyframeTree* get_keyframe_tree()const { return keyframe_tree_; }
00079
00080 void set_canvas_interface(const etl::handle<synfigapp::CanvasInterface> &x);
00081 etl::handle<synfigapp::CanvasInterface> get_canvas_interface()const { return canvas_interface_; }
00082
00083 void refresh();
00084 void clear();
00085 };
00086
00087 };
00088
00089
00090
00091 #endif