Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
UICoord::Builder Class Reference

#include "gui/interact/ui-coord.hpp"

Description

Definition at line 503 of file ui-coord.hpp.

Public Member Functions

 Builder (Builder &&)=default
 
Builder && append (Literal elm)
 augment UI coordinates by appending a further component at the end. More...
 
LocationClause create ()
 interprets the current (inline) builder contents as create clause, which has the meaning "create a new element XYZ when possible" More...
 
bool empty () const
 
Builder && noTab ()
 augment UI coordinates to indicate that no tab specification is necessary More...
 
 operator LocationClause ()
 support for use in the ViewSpec-DSL More...
 
Builder && panel (Literal panelID)
 augment UI coordinates to indicate a specific view to be used More...
 
Builder && path (Literal pathDef)
 augment UI coordinates to define a complete local path More...
 
Builder && persp (Literal perspectiveID)
 augment UI coordinates to mandate a specific perspective to be active within the window More...
 
Builder && prepend (Literal elmID)
 augment partially defined UI coordinates by extending them towards the root More...
 
size_t size () const
 
Builder && tab (Literal tabID)
 augment UI coordinates to indicate a specific tab within the view" More...
 
Builder && tab (uint tabIdx)
 augment UI coordinates to indicate a tab specified by index number More...
 
Builder && truncateTo (size_t depth)
 possibly shorten this path specification to a limited depth More...
 
Builder && view (Literal viewID)
 augment UI coordinates to indicate a specific view to be used More...
 
Builder && window (Literal windowID)
 change UI coordinate spec to define it to be rooted within the given window More...
 

Friends

class UICoord
 builder instances created by UICoord More...
 

Protected Member Functions

template<typename... ARGS>
 Builder (ARGS &&...args)
 
 Builder (UICoord &&anonRef)
 
 Builder (UICoord const &base)
 
Builder && normalise ()
 
Builder && overwrite (size_t depth, Literal newSpec)
 

Protected Attributes

UICoord uic_
 

Additional Inherited Members

- Private Member Functions inherited from MoveOnly
 MoveOnly ()=default
 
 MoveOnly (MoveOnly &&)=default
 
 MoveOnly (MoveOnly const &)=delete
 
 ~MoveOnly ()=default
 
MoveOnlyoperator= (MoveOnly &&)=delete
 
MoveOnlyoperator= (MoveOnly const &)=delete
 

Constructor & Destructor Documentation

Builder ( ARGS &&...  args)
inlineexplicitprotected

Definition at line 511 of file ui-coord.hpp.

Builder ( UICoord &&  anonRef)
inlineprotected

Definition at line 512 of file ui-coord.hpp.

Builder ( UICoord const &  base)
inlineprotected

Definition at line 513 of file ui-coord.hpp.

Builder ( Builder &&  )
default
Remarks
moving a builder instance is acceptable

Member Function Documentation

size_t size ( ) const
inline

Definition at line 522 of file ui-coord.hpp.

bool empty ( ) const
inline

Definition at line 523 of file ui-coord.hpp.

Referenced by UICoordResolver::coverPartially().

+ Here is the caller graph for this function:

Builder&& window ( Literal  windowID)
inline

change UI coordinate spec to define it to be rooted within the given window

Note
this function allows to undefine the window, thus creating an incomplete spec

Definition at line 531 of file ui-coord.hpp.

References UICoord::setComponent(), and gui::interact::UIC_WINDOW.

Referenced by UICoordResolver::anchor(), UICoordResolver::cover(), and UICoordResolver::coverPartially().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Builder&& persp ( Literal  perspectiveID)
inline

augment UI coordinates to mandate a specific perspective to be active within the window

Definition at line 539 of file ui-coord.hpp.

References UICoord::setComponent(), and gui::interact::UIC_PERSP.

Referenced by UICoordResolver_test::verify_backingQuery(), UILocationSolver_test::verify_cornerCases(), UICoordResolver_test::verify_mutateCoverage(), UICoordResolver_test::verify_mutateCoverPartially(), and UICoordResolver_test::verify_queryAnchor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Builder&& panel ( Literal  panelID)
inline

augment UI coordinates to indicate a specific view to be used

Definition at line 547 of file ui-coord.hpp.

References UICoord::setComponent(), and gui::interact::UIC_PANEL.

Referenced by UICoordResolver_test::verify_backingQuery(), UICoordResolver_test::verify_mutateCoverage(), UICoordResolver_test::verify_mutateCoverPartially(), UICoordResolver_test::verify_queryAnchor(), UILocationSolver_test::verify_standardSituations(), and ViewSpecDSL_test::verify_standardUsage().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Builder&& view ( Literal  viewID)
inline

augment UI coordinates to indicate a specific view to be used

Definition at line 555 of file ui-coord.hpp.

References UICoord::setComponent(), and gui::interact::UIC_VIEW.

Referenced by UICoordResolver_test::verify_backingQuery(), UICoordResolver_test::verify_mutateAnchor(), UICoordResolver_test::verify_mutateCoverage(), and UICoordResolver_test::verify_mutateCoverPartially().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Builder&& tab ( Literal  tabID)
inline

augment UI coordinates to indicate a specific tab within the view"

Definition at line 563 of file ui-coord.hpp.

References UICoord::setComponent(), and gui::interact::UIC_TAB.

Referenced by UICoordResolver_test::verify_mutateCoverage(), and UICoordResolver_test::verify_mutateCoverPartially().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Builder&& tab ( uint  tabIdx)
inline

augment UI coordinates to indicate a tab specified by index number

Definition at line 571 of file ui-coord.hpp.

References UICoord::setComponent(), util::toString(), and gui::interact::UIC_TAB.

+ Here is the call graph for this function:

Builder&& noTab ( )
inline

augment UI coordinates to indicate that no tab specification is necessary

Remarks
typically this happens when a panel just holds a simple view

Definition at line 580 of file ui-coord.hpp.

References UICoord::setComponent(), and gui::interact::UIC_TAB.

+ Here is the call graph for this function:

Builder&& append ( Literal  elm)
inline

augment UI coordinates by appending a further component at the end.

Note
the element might define a sequence of components separated by `'/'`, in which case several elements will be appended.

Definition at line 592 of file ui-coord.hpp.

References util::isnil(), and UICoord::setTailSequence().

Referenced by UICoordResolver::extend(), UILocationSolver_test::verify_cornerCases(), UICoordResolver_test::verify_mutateAnchor(), UICoordResolver_test::verify_mutateCoverage(), UICoordResolver_test::verify_mutateExtend(), and UILocationSolver_test::verify_standardSituations().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Builder&& prepend ( Literal  elmID)
inline

augment partially defined UI coordinates by extending them towards the root

Definition at line 601 of file ui-coord.hpp.

References UICoord::findStartIdx(), UICoord::isIncomplete(), and UICoord::setComponent().

+ Here is the call graph for this function:

Builder&& path ( Literal  pathDef)
inline

augment UI coordinates to define a complete local path

Parameters
pathDefa path, possibly with multiple components separated by `'/'`
Note
any existing path definition is completely replaced by the new path

Definition at line 617 of file ui-coord.hpp.

References UICoord::setTailSequence(), and gui::interact::UIC_PATH.

Referenced by UICoordResolver_test::verify_mutateAnchor(), UICoordResolver_test::verify_mutateCoverage(), and UICoordResolver_test::verify_mutateCoverPartially().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Builder&& truncateTo ( size_t  depth)
inline

possibly shorten this path specification to a limited depth

Definition at line 625 of file ui-coord.hpp.

Referenced by UICoordResolver::cover(), UICoordResolver::coverPartially(), and UICoordResolver::extend().

+ Here is the caller graph for this function:

operator LocationClause ( )
inline

support for use in the ViewSpec-DSL

interprets the current (inline) contents of an UICoord builder expression as a standard LocationClause, which has the meaning of "when an element exists at the location XYZ in the real UI"

Warning
like all the UICoord::Builder functions, the contents are moved. Thus, after using this conversion path once, the Builder is defunct

Definition at line 176 of file ui-location-solver.hpp.

LocationClause create ( )
inline

interprets the current (inline) builder contents as create clause, which has the meaning "create a new element XYZ when possible"

Definition at line 184 of file ui-location-solver.hpp.

Referenced by UILocationSolver_test::verify_cornerCases().

+ Here is the caller graph for this function:

Builder&& normalise ( )
inlineprotected

Definition at line 637 of file ui-coord.hpp.

Referenced by UICoordResolver::anchor(), and UICoordResolver::extend().

+ Here is the caller graph for this function:

Builder&& overwrite ( size_t  depth,
Literal  newSpec 
)
inlineprotected

Definition at line 644 of file ui-coord.hpp.

Referenced by UICoordResolver::coverPartially(), UICoordResolver::existentiallyQuantify(), and UICoordResolver::extend().

+ Here is the caller graph for this function:

Member Data Documentation

Friends And Related Function Documentation

friend class UICoord
friend

builder instances created by UICoord

Definition at line 516 of file ui-coord.hpp.

+ Inheritance diagram for UICoord::Builder:
+ Collaboration diagram for UICoord::Builder:

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