Lumiera  0.pre.03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Navigator Class Reference

#include "gui/interact/navigator.hpp"


Global cross-cutting navigation within user interface space.

initial draft as of 2/2017 – actual implementation has to be filled in
See also

Definition at line 67 of file navigator.hpp.

Public Member Functions

 Navigator (SpotLocator &, ViewLocator &)
 ~Navigator ()
Literal determineAnchor (UICoord const &path) overridefinal
 make the real anchor point explicit. More...
size_t determineCoverage (UICoord const &path) overridefinal
 evaluate to what extent a UIcoord spec matches the actual UI More...
ChildIter getChildren (UICoord const &path, size_t pos) overridefinal
 get the sequence of child components at a designated position in the actual UI More...
- Public Member Functions inherited from LocationQuery
virtual ~LocationQuery ()
 this is an interface More...

Private Attributes


Additional Inherited Members

- Public Types inherited from LocationQuery
using ChildIter = decltype(TreeStructureNavigator::buildIterator(0))
- Private Member Functions inherited from NonCopyable
 NonCopyable ()=default
 NonCopyable (NonCopyable const &)=delete
 ~NonCopyable ()=default
NonCopyableoperator= (NonCopyable const &)=delete

Constructor & Destructor Documentation

Navigator ( SpotLocator spotLoc,
ViewLocator viewLoc 

Definition at line 56 of file navigator.cpp.

~Navigator ( )

Definition at line 52 of file navigator.cpp.

Member Function Documentation

Literal determineAnchor ( UICoord const &  path)

make the real anchor point explicit.

pathan explicit UICoord spec to be anchored in the actual UI
explicit literal window name, where the path can be anchored Symbol::BOTTOM in case the given path can not be anchored currently.
here "to anchor" means to match and thus "attach" the starting point of the UIcoord path, i.e. the window spec, with an actual top-level window existing in the current UI configuration and state. This operation either confirms existence of a window given by explicit ID, or it supplies the current meaning of the meta specs currentWindow and firstWindow, again in the form of an explicit window name

Implements LocationQuery.

Definition at line 65 of file navigator.cpp.

size_t determineCoverage ( UICoord const &  path)

evaluate to what extent a UIcoord spec matches the actual UI

the depth to which the given spec is _"covered"_ by the actual UI. Can be zero, in which case the given coordinates can not be resolved and addressed within the currently existing windows, panes and views.
a depth > 0 also implies that the path can be anchored.
this operation does not perform any resolution or interpolation of wildcards, it just matches explicit UI component names.
See also
UICoordResolver for a facility to perform such a resolution and to navigate paths.

Implements LocationQuery.

Definition at line 72 of file navigator.cpp.

LocationQuery::ChildIter getChildren ( UICoord const &  path,
size_t  pos 

get the sequence of child components at a designated position in the actual UI

pathan explicit UIcoord spec, expected to be anchored and at least partially covered within the current configuration and state of the UI
posdepth where the given path shall be evaluated, starting with 0 at window level
an iterator to enumerate all child components actually existing in the current UI below the location designated by path and pos.
the path is only evaluated up to (not including) the given depth. Especially when pos == 0, then the path is not evaluated and matched at all, rather just the current list of top-level windows is returned.
error::Statewhen navigating the given path touches a non-existing element

Implements LocationQuery.

Definition at line 79 of file navigator.cpp.

Member Data Documentation

SpotLocator& spotLocator_

Definition at line 71 of file navigator.hpp.

ViewLocator& viewLocator_

Definition at line 72 of file navigator.hpp.

+ Inheritance diagram for Navigator:
+ Collaboration diagram for Navigator:

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