Lumiera  0.pre.03
»edityourfreedom«
PanelLocator Class Reference

#include "gui/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 85 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 ()=default
 
 NonCopyable (NonCopyable const &)=delete
 
 ~NonCopyable ()=default
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Private Attributes

WindowListwindowList_
 

Member Typedef Documentation

◆ PWindow

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

◆ WindowList

using WindowList = list<PWindow>
private

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

Constructor & Destructor Documentation

◆ PanelLocator()

PanelLocator ( WindowList all_top_level_wndows)

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

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.
Remarks
delegating front-end for type safety and error handling.

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

References LERR_.

Referenced by Wizard::Wizard().

+ 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 186 of file window-locator.cpp.

References util::isnil(), and WindowLocator::windowList_.

+ Here is the call graph for this function:

Member Data Documentation

◆ windowList_

WindowList& windowList_
private

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

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

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