Lumiera  0.pre.03
UILocationSolver Class Reference

#include "gui/interact/ui-location-solver.hpp"


Service to determine the location of an UI component view.

See also

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

Public Member Functions

 UILocationSolver (LocationQueryAccess accessor)
 UILocationSolver (LocationQuery &locationQueryService)
UICoord solve (LocationRule const &rule, size_t depth, Literal elementTypeID)
 Solve for a location according to the given location rule. More...

Private Member Functions

void preprocess (UICoordResolver &builder, LocationClause const &clause)
 perform adjustments on the current pattern to support some very specific situations More...
- Private Member Functions inherited from NonCopyable
 NonCopyable ()=default
 NonCopyable (NonCopyable const &)=delete
 ~NonCopyable ()=default
NonCopyableoperator= (NonCopyable const &)=delete

Private Attributes

LocationQueryAccess getLocationQuery

Constructor & Destructor Documentation

◆ UILocationSolver() [1/2]

UILocationSolver ( LocationQueryAccess  accessor)

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

◆ UILocationSolver() [2/2]

UILocationSolver ( LocationQuery locationQueryService)

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

Member Function Documentation

◆ solve()

UICoord solve ( LocationRule const &  rule,
size_t  depth,
Literal  elementTypeID 

Solve for a location according to the given location rule.

depthdesired kind of UI element (and thus the depth in the UI topology tree)
elementTypedesignator of the specific element to be created at that level
an explicit location, resolved against the current UI topology. May be empty
the returned path is either empty (no solution exists), or it is "partially covered" by the existing UI; here, the "covered" part are the already existing UI elements, while the remaining, uncovered extension describes additional elements to be created. When the resolution process found an already existing UI element, the returned path is completely covered. The degree of coverage of a path can be found out with the help of a UICoordResolver, which also needs a LocationQuery (service) to discover the currently existing UI topology.

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

References util::isnil().

+ Here is the call graph for this function:

◆ preprocess()

void preprocess ( UICoordResolver builder,
LocationClause const &  clause 

perform adjustments on the current pattern to support some very specific situations

  • when we want to create a new panel (or re-use an existing of the same name), on top of an existing (but irrelevant) perspective, we mark this perspective as "just there". This allows to get a new path as solution, which is just covered up to and including that perspective; without special treatment, such a match would otherwise be rejected.

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

References LocationClause::createParents, UICoordResolver::existentiallyQuantify(), UICoord::isComplete(), LocationClause::pattern, and gui::interact::UIC_PERSP.

+ Here is the call graph for this function:

Member Data Documentation

◆ getLocationQuery

LocationQueryAccess getLocationQuery

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

+ Inheritance diagram for UILocationSolver:
+ Collaboration diagram for UILocationSolver:

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