1 /* === S Y N F I G ========================================================= */ 2 /*! \file keyframeactionmanager.h 3 ** \brief Template Header 4 ** 5 ** $Id$ 6 ** 7 ** \legal 8 ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley 9 ** 10 ** This package is free software; you can redistribute it and/or 11 ** modify it under the terms of the GNU General Public License as 12 ** published by the Free Software Foundation; either version 2 of 13 ** the License, or (at your option) any later version. 14 ** 15 ** This package is distributed in the hope that it will be useful, 16 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 17 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 ** General Public License for more details. 19 ** \endlegal 20 */ 21 /* ========================================================================= */ 22 23 /* === S T A R T =========================================================== */ 24 25 #ifndef __SYNFIG_KEYFRAME_ACTION_MANAGER_H 26 #define __SYNFIG_KEYFRAME_ACTION_MANAGER_H 27 28 /* === H E A D E R S ======================================================= */ 29 30 #include <glibmm.h> 31 #include <gtkmm/uimanager.h> 32 #include <gtkmm/treeview.h> 33 #include <synfigapp/canvasinterface.h> 34 35 /* === M A C R O S ========================================================= */ 36 37 /* === T Y P E D E F S ===================================================== */ 38 39 /* === C L A S S E S & S T R U C T S ======================================= */ 40 41 namespace studio { 42 43 class KeyframeTree; 44 45 class KeyframeActionManager 46 { 47 sigc::signal<void> signal_show_keyframe_properties_; 48 sigc::signal<void> signal_keyframe_toggle_; 49 sigc::signal<void> signal_keyframe_description_set_; 50 51 Glib::RefPtr<Gtk::UIManager> ui_manager_; 52 //Glib::RefPtr<Gtk::TreeSelection> tree_selection_; 53 KeyframeTree* keyframe_tree_; 54 etl::handle<synfigapp::CanvasInterface> canvas_interface_; 55 56 Glib::RefPtr<Gtk::ActionGroup> action_group_; 57 Gtk::UIManager::ui_merge_id popup_id_; 58 59 60 sigc::connection selection_changed_connection; 61 62 bool queued; 63 sigc::connection queue_refresh_connection; 64 sigc::connection time_changed_connection; 65 66 void on_add_keyframe(); 67 void on_keyframe_properties(); 68 void on_keyframe_toggle(); 69 void on_keyframe_description_set(); 70 71 public: signal_show_keyframe_properties()72 sigc::signal<void>& signal_show_keyframe_properties() { return signal_show_keyframe_properties_; } signal_keyframe_toggle()73 sigc::signal<void>& signal_keyframe_toggle() { return signal_keyframe_toggle_; } signal_keyframe_description_set()74 sigc::signal<void>& signal_keyframe_description_set() { return signal_keyframe_description_set_; } 75 76 void queue_refresh(); 77 78 KeyframeActionManager(); 79 ~KeyframeActionManager(); 80 81 void set_ui_manager(const Glib::RefPtr<Gtk::UIManager> &x); get_ui_manager()82 Glib::RefPtr<Gtk::UIManager> get_ui_manager()const { return ui_manager_; } 83 84 void set_keyframe_tree(KeyframeTree* x); get_keyframe_tree()85 KeyframeTree* get_keyframe_tree()const { return keyframe_tree_; } 86 87 void set_canvas_interface(const etl::handle<synfigapp::CanvasInterface> &x); get_canvas_interface()88 etl::handle<synfigapp::CanvasInterface> get_canvas_interface()const { return canvas_interface_; } 89 90 void refresh(); 91 void clear(); 92 }; // END of KeyframeActionManager 93 94 }; // END of namespace studio 95 96 /* === E N D =============================================================== */ 97 98 #endif 99