25#ifndef STAGE_WORKSPACE_PANEL_MANAGER_H
26#define STAGE_WORKSPACE_PANEL_MANAGER_H
113 bool hasPanel (
const int description_index);
253 ,
const gchar* stockID
330 return new P(panelManager, dockItem);
The base class for all dockable panels.
A class to describe and instantiate Panel types.
const gchar * getStockID() const
const char * getTitle() const
the localised title that will be shown on the panel
PanelDescription(std::type_info const &classInfo, const char *title, const gchar *stockID, CreatePanelProc createPanelProc)
CreatePanelProc createPanelProc_
pointer to a function that will instantiate the panel object
const char * getClassName() const
const char *const titleName_
localised title that will be shown on the panel.
const gchar *const stockID_
Stock ID for this type of panel.
panel::Panel *(*const CreatePanelProc)(PanelManager &, Gdl::DockItem &)
const std::type_info & getClassInfo() const
const std::type_info & classInfo_
reference to the typeID of this class
panel::Panel * create(PanelManager &panelManager, Gdl::DockItem &dockItem) const
Creates an instance of this panel.
A helper class that will create PanelDescription objects.
static panel::Panel * createPanel(PanelManager &panelManager, Gdl::DockItem &dockItem)
helper function to create a panel of type P
A class to manage DockItem objects for WorkspaceWindow.
std::list< panel::Panel * > panels_
list of all panels created
void createPanels()
Creates the standard panel layout.
Glib::RefPtr< Gdl::DockLayout > dockLayout_
The pointer to GDL dock layout object.
panel::Panel * createPanel_by_name(CStr class_name)
Creates a panel by class name.
Gdl::Dock & getDock()
Gets a pointer to the dock object.
panel::Panel * createPanel_by_index(const int index)
Creates a panel by description index.
WorkspaceWindow & workspaceWindow_
reference to the owner workspace window object
WorkspaceWindow & getWorkspaceWindow()
Returns a reference to the owner workspace window.
GdlDockPlaceholder * dockPlaceholders_[4]
Pointers to the 4 root place holders.
static const PanelDescription panelDescriptionList[]
The list of panel descriptions.
static int getPanelDescriptionCount()
Gets the number of panel descriptions.
static const char * getPanelTitle(int index)
Gets a panel description's title.
void on_panel_shown(panel::Panel *panel)
An event handler for when the panel is shown or hidden.
static unsigned short panelID
An accumulator for the panel id.
void splitPanel(panel::Panel &panel, Gtk::Orientation split_direction, panel::Panel *toAdd=nullptr)
Splits a panel into two panels of the same type.
bool hasPanel(const int description_index)
was the indicated panel already allocated within this PanelManager's realm?
Gdl::DockBar & getDockBar()
Gets a pointer to the dock bar.
void setupDock()
Initialises this dock manager and creates the dock and all it's widgets.
static int findPanelDescription(CStr class_name)
Find the index of a panel description given the class name.
panel::Panel & showPanel(const int description_index)
Shows a panel given a description index.
void removePanel(panel::Panel *const panel)
Removes a panel from the panel list and deletes it.
int getPanelType(panel::Panel *const panel) const
Gets the type of a given panel.
Gdl::Dock dock_
The pointer to GDL dock widget.
static int findPanelID()
retrieve the internal type-ID corresponding to the given panel implementation type.
void switchPanel(panel::Panel &old_panel, const int description_index)
Switches a panel from one type to another, without touching the underlying GdlDockItem.
Gdl::DockBar dockBar_
The pointer to GDL dock bar widget.
void clearPanels()
Removes all panels from the panel list and deletes them.
static const gchar * getPanelStockID(const int index)
Gets a panel description's stock id.
The main Lumiera workspace window.
Lumiera GTK UI implementation root.
Base class and interface for all dockable panels.