Lumiera  0.pre.03
PanelLocator Class Reference

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


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


Member Typedef Documentation

◆ PWindow

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

◆ WindowList

using WindowList = list<PWindow>

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 ( )

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.

reference to the indicated Panel subclass (down-casted)
error::Invalidwhen requesting a target class not recognised as known docking panel entity.
delegating front-end for type safety and error handling.

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

References LERR_.

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

+ Here is the caller graph for this function:

◆ preliminary_impl_PanelLookup()

panel::Panel & preliminary_impl_PanelLookup ( int  typeID)

preliminary implementation of docking panel lookup and allocation.

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_

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: