Lumiera  0.pre.03
»edit your freedom«
PanelLocator Class Reference

#include "stage/ctrl/panel-locator.hpp"

Description

Service to access, locate or place panels within top-level windows Access- and query front-end to the individual panel managers, which are located within the top-level windows.

Definition at line 76 of file panel-locator.hpp.

Public Member Functions

 PanelLocator (WindowList &)
 
template<class PAN >
PAN & find_or_create ()
 lookup or allocate "the" instance of the indicated Panel(subtype). More...
 

Private Types

using PWindow = std::shared_ptr< workspace::WorkspaceWindow >
 
using WindowList = list< PWindow >
 

Private Member Functions

panel::Panelpreliminary_impl_PanelLookup (int typeID)
 
- Private Member Functions inherited from NonCopyable
 NonCopyable (NonCopyable const &)=delete
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Private Attributes

WindowList & windowList_
 

Member Function Documentation

◆ find_or_create()

PAN & find_or_create ( )
inline

lookup or allocate "the" instance of the indicated Panel(subtype).

While there can be multiple instances of some panel type in various windows, this function will look through a canonical search order to either retrieve the first instance found, or create a new one in the primary window.

Returns
reference to the indicated Panel subclass (down-casted)
Exceptions
error::Invalidwhen requesting a target class not recognised as known docking panel entity.
Deprecated:
8/2018 the (planned) ViewLocator will perform essentially the same task, albeit on a more flexible and configurable level.
Remarks
delegating front-end for type safety and error handling.

Definition at line 112 of file panel-locator.hpp.

◆ preliminary_impl_PanelLookup()

panel::Panel & preliminary_impl_PanelLookup ( int  typeID)
private

preliminary implementation of docking panel lookup and allocation.

Todo:
8/2018 the actual implementation shall eventually be provided by the ViewLocator on a higher abstraction level, and configurable through the ViewSpec-DSL. For now we use a braindead iterate-through-all-windows approach.

Definition at line 176 of file window-locator.cpp.

+ Inheritance diagram for PanelLocator:
+ Collaboration diagram for PanelLocator:

The documentation for this class was generated from the following files: