synfig-studio  1.0.3
dockbook.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_STUDIO_DOCKBOOK_H
26 #define __SYNFIG_STUDIO_DOCKBOOK_H
27 
28 /* === H E A D E R S ======================================================= */
29 
30 #include <gtkmm/notebook.h>
31 #include <synfig/string.h>
32 #include <gtkmm/tooltip.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 DockManager;
43 class Dockable;
44 
45 class DockBook : public Gtk::Notebook
46 {
47  friend class DockManager;
48  friend class Dockable;
49 
50  sigc::signal<void> signal_empty_;
51  sigc::signal<void> signal_changed_;
52 
53  bool deleting_;
54 
55 public:
57 
58  DockBook();
59  ~DockBook();
60 
61  sigc::signal<void>& signal_empty() { return signal_empty_; }
62  sigc::signal<void>& signal_changed() { return signal_changed_; }
63 
64  using Gtk::Container::add;
65  void add(Dockable& dockable, int position=-1);
66  void remove(Dockable& dockable);
67 
68  void present();
69 
70  void clear();
71 
72  synfig::String get_local_contents()const;
73 
74  synfig::String get_contents()const;
75  void set_contents(const synfig::String& x);
76 
77  void refresh_tabs_headers();
78 
79  void refresh_tab(Dockable*);
80 
81  bool tab_button_pressed(GdkEventButton* event, Dockable* dockable);
82  void on_drag_data_received(const Glib::RefPtr<Gdk::DragContext>& context, int, int, const Gtk::SelectionData& selection_data, guint, guint time);
85 
86  void on_switch_page(Gtk::Widget* page, guint page_num);
87 }; // END of studio::DockBook
88 
89 }; // END of namespace studio
90 
91 /* === E N D =============================================================== */
92 
93 #endif