synfig-studio  1.0.3
dock_toolbox.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
25 /* === S T A R T =========================================================== */
26 
27 #ifndef __SYNFIG_GTKMM_DOCK_TOOLBOX_H
28 #define __SYNFIG_GTKMM_DOCK_TOOLBOX_H
29 
30 /* === H E A D E R S ======================================================= */
31 
32 #include "docks/dockable.h"
33 
34 #include <gtkmm/toolbar.h>
35 #include <gtkmm/tooltip.h>
36 #include <gtkmm/togglebutton.h>
37 #include <gtkmm/toggletoolbutton.h>
38 #include <gtkmm/toolpalette.h>
39 #include <gtkmm/toolitemgroup.h>
40 #include <gtkmm/alignment.h>
41 #include <gtkmm/separator.h>
42 #include <gtkmm/table.h>
43 #include <gtkmm/box.h>
44 #include <synfig/string.h>
45 #include "smach.h"
46 #include <map>
47 #include "dialogsettings.h"
48 
49 /* === M A C R O S ========================================================= */
50 
51 // uncomment to enable the blend method selector in the tool options
52 // panel for the circle and gradient tools
53 //
54 // #define BLEND_METHOD_IN_TOOL_OPTIONS
55 
56 /* === T Y P E D E F S ===================================================== */
57 
58 /* === C L A S S E S & S T R U C T S ======================================= */
59 
60 namespace studio {
61 
62 class StateManager;
63 
64 class Dock_Toolbox : public Dockable
65 {
66  friend class studio::StateManager;
67 
68  Gtk::ToolItemGroup *tool_item_group;
69  Gtk::HSeparator *separator;
70  Gtk::VBox *tool_box;
71 
72  std::map<synfig::String,Gtk::ToggleToolButton *> state_button_map;
73 
74  bool changing_state_;
75 
76  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);
77 
78  void change_state_(const Smach::state_base *state);
79 
80 public:
81 
82  void change_state(const synfig::String& statename, bool force = false);
83 
84  void update_tools();
85 
86  void refresh() { update_tools(); }
87 
88  void set_active_state(const synfig::String& statename);
89 
90  void add_state(const Smach::state_base *state);
91 
92  Dock_Toolbox();
93  virtual ~Dock_Toolbox();
94 
95 };
96 
97 }; // END of namespace studio
98 
99 /* === E N D =============================================================== */
100 
101 #endif