67 PathArray::truncateTo(currDepth_);
74 Literal* storage = PathArray::expandPosition (depth);
75 PathArray::setContent (storage, newSpec);
84 size_t pos = uic.
size();
85 for ( ; 0 < pos; --pos)
87 Literal const& elm = uic[pos-1];
131 PathManipulator coverage;
132 const size_t coordDepth = this->
uic_.
size();
133 const size_t minSolutionDepth = find_wildcardFree_suffix (
uic_);
137 .filter ([&](
auto&
iter)
139 size_t depth =
iter.depth();
140 if (depth >= coordDepth)
145 wildMatch(patt,curr,depth))
147 coverage.setAt (depth,curr);
148 iter.expandChildren();
153 .filter ([&](
auto&
iter)
155 if (
iter.depth() < minSolutionDepth)
157 if (
iter.depth()+1 <= maxDepth)
159 maxDepth = 1 +
iter.depth();
162 .transform ([&](
auto&) ->
UICoord const&
164 return coverage.retrieveResult();
171 if (isnil (searchAlgo))
Access point to singletons and other kinds of dependencies designated by type.
Token or Atom with distinct identity.
virtual ChildIter getChildren(UICoord const &path, size_t pos)=0
get the sequence of child components at a designated position in the actual UI
static lib::Depend< LocationQuery > service
access point to global LocationQuery service implementation
virtual size_t determineCoverage(UICoord const &path)=0
evaluate to what extent a UIcoord spec matches the actual UI
virtual ~LocationQuery()
this is an interface
virtual ~TreeStructureNavigator()
this is an interface
bool pathResolution()
Since UICoord path specifications may contain gaps and wildcards, we may attempt to fill in these mis...
bool isAnchored() const
is this path explicitly anchored at an existing window?
unique_ptr< UICoord > covfefe
Describe a location within the UI through structural/topological coordinates.
Special UI-Coordinate builder to define the solution path step by step while we recurse down into the...
UICoord const & retrieveResult()
void setAt(size_t depth, Literal newSpec)
size_t find_wildcardFree_suffix(UICoord const &uic)
const Symbol UIC_ELIDED
indicate that a component is elided or irrelevant here
Lumiera GTK UI implementation root.
bool isnil(lib::time::Duration const &dur)
Evaluation of UI coordinates against a concrete window topology.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...