Lumiera  0.pre.03
»edit your freedom«
panel.hpp
Go to the documentation of this file.
1 /*
2  PANEL.hpp - common base class for all docking panels
3 
4  Copyright (C)
5  2008, Joel Holdsworth <joel@airwebreathe.org.uk>
6 
7   **Lumiera** is free software; you can redistribute it and/or modify it
8   under the terms of the GNU General Public License as published by the
9   Free Software Foundation; either version 2 of the License, or (at your
10   option) any later version. See the file COPYING for further details.
11 
12 */
13 
14 
21 #ifndef STAGE_PANEL_PANEL_H
22 #define STAGE_PANEL_PANEL_H
23 
24 #include "stage/gtk-base.hpp"
26 
27 #include <gdlmm.h>
28 
29 namespace stage {
30 namespace workspace {
31  class PanelManager;
32  class WorkspaceWindow;
33 }
34 namespace panel {
35 
36 
40  class Panel
41  : public Gtk::Box
42  {
43  protected:
44 
52  ,Gdl::DockItem&
53  ,const gchar* longName
54  ,const gchar* stockID);
55 
56  public:
57  ~Panel();
58 
60  Gdl::DockItem& getDockItem();
61 
62 
64  void show(bool show = true);
65  bool is_shown() const;
66 
67  void iconify();
68  bool is_iconified() const;
69 
71  void lock(bool show = true);
72  bool is_locked() const;
73 
74 
76  workspace::PanelManager& getPanelManager();
77 
78 
80  sigc::signal<void>& signal_hidePanel();
81 
82  protected:
83 
84  workspace::WorkspaceWindow& getWorkspaceWindow();
85 
86  private:
87 
89  void on_item_hidden();
90 
91  protected:
92 
95 
97  Gdl::DockItem& dockItem_;
98 
100  sigc::signal<void> hidePanelSignal_;
101 
104  };
105 
106 
107 }}// namespace stage::panel
108 #endif /*STAGE_PANEL_PANEL_H*/
A container widget for widgets to be displayed on GDL panels grips.
Definition: panel-bar.hpp:45
A class to manage DockItem objects for WorkspaceWindow.
The base class for all dockable panels.
Definition: panel.hpp:40
workspace::PanelManager & panelManager_
The owner panel manager object.
Definition: panel.hpp:94
sigc::signal< void > hidePanelSignal_
signal that fires when the dock item is hidden.
Definition: panel.hpp:100
Lumiera GTK UI implementation root.
Definition: guifacade.cpp:37
widget::PanelBar panelBar_
panel bar to attach to the panel grip.
Definition: panel.hpp:103
Gdl::DockItem & dockItem_
owner dock item widget that will host the widgets in this panel.
Definition: panel.hpp:97
The main Lumiera workspace window.
A set of basic GTK includes for the UI.
Custom container widget to allow placing toolbar buttons into the active docking header area of GDL d...