40 const PanelManager::PanelDescription
42 PanelManager::Panel<TimelinePanel>(),
43 PanelManager::Panel<InfoBoxPanel>(),
44 PanelManager::Panel<ViewerPanel>(),
45 PanelManager::Panel<PlayPanel>(),
46 PanelManager::Panel<AssetsPanel>()
54 : workspaceWindow_(owner)
63 Glib::RefPtr<Gdl::DockMaster> dock_master =
dock_.property_master();
64 dock_master->property_switcher_style() = Gdl::SWITCHER_STYLE_ICON;
78 for(
int i = 0; i < 4; i++)
96 "ph1", GDL_DOCK_OBJECT(
dock_.gobj()), GDL_DOCK_TOP, FALSE));
98 "ph2", GDL_DOCK_OBJECT(
dock_.gobj()), GDL_DOCK_BOTTOM, FALSE));
100 "ph3", GDL_DOCK_OBJECT(
dock_.gobj()), GDL_DOCK_LEFT, FALSE));
102 "ph4", GDL_DOCK_OBJECT(
dock_.gobj()), GDL_DOCK_RIGHT, FALSE));
144 list< panel::Panel* >::iterator i;
153 dock_item.present(
dock_);
173 REQUIRE (description_index >= 0);
177 Gdl::DockItem &dock_item = old_panel.
getDockItem();
196 Gdl::DockPlacement placement = Gdl::DOCK_NONE;
197 switch(split_direction)
199 case ORIENTATION_HORIZONTAL:
200 placement = Gdl::DOCK_RIGHT;
203 case ORIENTATION_VERTICAL:
204 placement = Gdl::DOCK_BOTTOM;
208 ERROR (
stage,
"Unknown split_direction: %d", split_direction);
228 REQUIRE (index >= 0);
237 REQUIRE (index >= 0);
255 splitPanel(*infoBoxPanel, ORIENTATION_VERTICAL, playPanel);
265 for(
int i = 0; i < count; i++)
271 ERROR (
stage,
"Unable to find a description with class name %s", class_name);
283 snprintf(name,
sizeof(name),
"%X",
panelID++);
287 *
new Gdl::DockItem(name,
"",Gdl::DOCK_ITEM_BEH_NORMAL));
324 const type_info &info =
typeid(*panel);
326 for(
int i = 0; i < count; i++)
332 ERROR (
stage,
"Unable to find a description with with this class type");
342 list< panel::Panel* >::iterator i;
360 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(PanelManager &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.
PanelManager(WorkspaceWindow &)
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.
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.
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.
Management of dockable panels.
Definition of a dockable panel for playback control //////////////////////////////////////////////TIC...
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.