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) Lumiera.org
5  2008, Joel Holdsworth <joel@airwebreathe.org.uk>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 */
22 
23 
30 #ifndef STAGE_PANEL_PANEL_H
31 #define STAGE_PANEL_PANEL_H
32 
33 #include "stage/gtk-base.hpp"
35 
36 #include <gdlmm.h>
37 
38 namespace stage {
39 namespace workspace {
40  class PanelManager;
41  class WorkspaceWindow;
42 }
43 namespace panel {
44 
45 
49  class Panel
50  : public Gtk::Box
51  {
52  protected:
53 
61  ,Gdl::DockItem&
62  ,const gchar* longName
63  ,const gchar* stockID);
64 
65  public:
66  ~Panel();
67 
69  Gdl::DockItem& getDockItem();
70 
71 
73  void show(bool show = true);
74  bool is_shown() const;
75 
76  void iconify();
77  bool is_iconified() const;
78 
80  void lock(bool show = true);
81  bool is_locked() const;
82 
83 
85  workspace::PanelManager& getPanelManager();
86 
87 
89  sigc::signal<void>& signal_hidePanel();
90 
91  protected:
92 
93  workspace::WorkspaceWindow& getWorkspaceWindow();
94 
95  private:
96 
98  void on_item_hidden();
99 
100  protected:
101 
104 
106  Gdl::DockItem& dockItem_;
107 
109  sigc::signal<void> hidePanelSignal_;
110 
113  };
114 
115 
116 }}// namespace stage::panel
117 #endif /*STAGE_PANEL_PANEL_H*/
A container widget for widgets to be displayed on GDL panels grips.
Definition: panel-bar.hpp:54
A class to manage DockItem objects for WorkspaceWindow.
The base class for all dockable panels.
Definition: panel.hpp:49
workspace::PanelManager & panelManager_
The owner panel manager object.
Definition: panel.hpp:103
sigc::signal< void > hidePanelSignal_
signal that fires when the dock item is hidden.
Definition: panel.hpp:109
Lumiera GTK UI implementation root.
Definition: guifacade.cpp:46
widget::PanelBar panelBar_
panel bar to attach to the panel grip.
Definition: panel.hpp:112
Gdl::DockItem & dockItem_
owner dock item widget that will host the widgets in this panel.
Definition: panel.hpp:106
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...