44 const DockArea::PanelDescription
47 DockArea::Panel<TimelinePanel>(),
48 DockArea::Panel<InfoBoxPanel>(),
49 DockArea::Panel<ViewerPanel>(),
50 DockArea::Panel<AssetsPanel>()
59 : workspaceWindow_(owner)
68 Glib::RefPtr<Gdl::DockMaster> dock_master =
dock_.property_master();
69 dock_master->property_switcher_style() = Gdl::SWITCHER_STYLE_ICON;
83 for(
int i = 0; i < 4; i++)
101 "ph1", GDL_DOCK_OBJECT(
dock_.gobj()), GDL_DOCK_TOP, FALSE));
103 "ph2", GDL_DOCK_OBJECT(
dock_.gobj()), GDL_DOCK_BOTTOM, FALSE));
105 "ph3", GDL_DOCK_OBJECT(
dock_.gobj()), GDL_DOCK_LEFT, FALSE));
107 "ph4", GDL_DOCK_OBJECT(
dock_.gobj()), GDL_DOCK_RIGHT, FALSE));
149 list< panel::Panel* >::iterator i;
159 dock_item.present(
dock_);
179 REQUIRE (description_index >= 0);
183 Gdl::DockItem &dock_item = old_panel.
getDockItem();
202 Gdl::DockPlacement placement = Gdl::DOCK_NONE;
203 switch(split_direction)
205 case ORIENTATION_HORIZONTAL:
206 placement = Gdl::DOCK_RIGHT;
209 case ORIENTATION_VERTICAL:
210 placement = Gdl::DOCK_BOTTOM;
214 ERROR(
stage,
"Unknown split_direction: %d", split_direction);
234 REQUIRE (index >= 0);
243 REQUIRE (index >= 0);
269 for(
int i = 0; i < count; i++)
275 ERROR (
stage,
"Unable to find a description with class name %s", class_name);
283 REQUIRE (index >= 0);
288 snprintf(name,
sizeof(name),
"%X",
panelID++);
292 *
new Gdl::DockItem(name,
"",Gdl::DOCK_ITEM_BEH_NORMAL));
329 const type_info &info =
typeid(*panel);
331 for(
int i = 0; i < count; i++)
337 ERROR(
stage,
"Unable to find a description with with this class type");
347 list< panel::Panel* >::iterator i;
365 list< panel::Panel* >::iterator i;
A (dockable) panel to organise the assets of a project.
The base class for all dockable panels.
bool is_iconified() const
Gdl::DockItem & getDockItem()
sigc::signal< void > & signal_hidePanel()
fires when the dock item gets hidden.
void show(bool show=true)
Shows or hides the panel.
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
panel::Panel * create(DockArea &panelManager, Gdl::DockItem &dockItem) const
Creates an instance of this panel.
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 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.
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 const PanelDescription panelDescriptionList[]
The list of panel descriptions.
void splitPanel(panel::Panel &panel, Gtk::Orientation split_direction)
Splits a panel into two panels of the same 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.
DockArea(WorkspaceWindow &)
static const gchar * getPanelStockID(const int index)
Gets a panel description's stock id.
The main Lumiera workspace window.
Management of dockable panels within each top-level WorkspaceWindow.
A (dockable) panel to display and manage information and parameters.
This header is for including and configuring NoBug.
Lumiera GTK UI implementation root.
bool has_any(IT i, IT end, FUN predicate)
Existential quantification: check if any element of a collection satisfies the given predicate.
A dockable container to hold a notebook of timeline displays.
Perform operations "for each element" of a collection.
Definition of a dockable panel to hold a video viewer.