Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Implementation of the stage::interact::LocationQuery interface to work on a GenNode tree.
The interface allows to pose queries against a concrete structure to verify and reshape some UI Coordinate specification; basically it offers methods to navigate within a tree-like structure. While in the actual implementation, such a query interface would be backed by navigating real UI structures, the implementation given here instead uses a generic tree structure given as Record<GenNode>
.
While basically the interface LocationQuery abstracts and reduces the structure of an UI into just some hierarchically arranged and nested IDs, we should note some specific twists how a GenNode tree is used here to represent the structure elements as defined through UI coordinates:
set(key, val)
builder function, and for each nested scope, we start a new nested builder with MakeRec()
.currentWindow
to be the last one in list – in a real UI this would not of course not be a configurable property of the LocationQuery, and rather just reflect the transient window state and return the currently activated windowDefinition in file gen-node-location-query.hpp.
#include "lib/error.hpp"
#include "lib/symbol.hpp"
#include "stage/interact/ui-coord-resolver.hpp"
#include "lib/diff/gen-node.hpp"
#include "lib/format-string.hpp"
#include "lib/iter-explorer.hpp"
#include "lib/iter-source.hpp"
#include "lib/itertools.hpp"
#include "lib/util.hpp"
#include <utility>
#include <string>
Classes | |
class | GenNodeLocationQuery |
Test/Diagnostics: implementation of the LocationQuery-API based on a abstract topological structure given as Record<GenNode> ("GenNode tree"). More... | |
class | GenNodeLocationQuery::GenNodeNavigator< PAR > |
Helper to navigate a tree topology represented as GenNode tree. More... | |
Namespaces | |
stage | |
Lumiera GTK UI implementation root. | |
stage::interact | |
UI interaction control. | |