Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
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).
 

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 ()=default
 
 NonCopyable ()=default
 
 NonCopyable (NonCopyable const &)=delete
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Private Attributes

WindowListwindowList_
 

Constructor & Destructor Documentation

◆ PanelLocator()

PanelLocator ( WindowList all_top_level_wndows)

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

Member Typedef Documentation

◆ PWindow

using PWindow = std::shared_ptr<workspace::WorkspaceWindow>
private

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

◆ WindowList

using WindowList = list<PWindow>
private

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

Member Function Documentation

◆ find_or_create()

template<class PAN >
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.

References LERR_, and PanelLocator::preliminary_impl_PanelLookup().

Referenced by Wizard::Wizard(), and InteractionDirector::injectTimeline().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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.

References PanelLocator::windowList_.

Referenced by PanelLocator::find_or_create().

+ Here is the caller graph for this function:

Member Data Documentation

◆ windowList_

WindowList& windowList_
private

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

Referenced by PanelLocator::preliminary_impl_PanelLookup().

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

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