Lumiera  0.pre.03
»edityourfreedom«
gui::interact Namespace Reference

Description

UI interaction control.

Any overarching concerns of interaction patterns, selecting the subject, forming and binding of commands, management of focus and perspective, keybindings and gestures.

Namespaces

 test
 

Typedefs

using Allocator = std::function< UICoord(UICoord)>
 Allocator is a functor to resolve a given, desired location of a view within the UI, resulting in creation or allocation of the view – which happens as side-effect. The result of this invocation are the UI coordinates of an existing or newly created view. More...
 
using LocationQueryAccess = std::function< LocationQuery &()>
 
using Locator = std::function< UICoord(Literal)>
 Locator is a functor to resolve to a topological location in the UI-tree. More...
 
using ViewSpec = LocatorSpec< UIC_VIEW >
 A specification to describe the desired location of a component view within the Lumiera UI. More...
 

Enumerations

enum  { UIC_INLINE_SIZE }
 
enum  UIPathElm {
  UIC_WINDOW,
  UIC_PERSP,
  UIC_PANEL,
  UIC_VIEW,
  UIC_TAB,
  UIC_PATH
}
 

Classes

class  AllocSpec
 A specification to describe the strategy for allocating (placing, retrieving) a component view. More...
 
class  CmdContext
 Abstract foundation of UI state tracking components. More...
 
class  FocusTracker
 Helper to pick up typical focus/activity changes, for the purpose of keeping a coherent system of WorkSite locations and a global "Spot" of activity in sync with spontaneous jumps to some arbitrary widget within the UI. More...
 
class  GenNodeLocationQuery
 Test/Diagnostics: implementation of the LocationQuery-API based on a abstract topological structure given as Record<GenNode> ("GenNode tree"). More...
 
class  InteractionDirector
 Top-level controller to establish a link between the model and transient user interaction state (focus, current window) More...
 
class  InteractionState
 Abstract foundation of UI state tracking components. More...
 
struct  LocationClause
 A single location specification to be matched and fulfilled. More...
 
class  LocationQuery
 Interface to discover a backing structure for the purpose of path navigation and resolution. More...
 
class  LocationRule
 A rule to determine some location by matching against the UI-tree. More...
 
class  LocatorSpec
 A specification to describe the desired location of a component view within the Lumiera UI. More...
 
class  Navigator
 Global cross-cutting navigation within user interface space. More...
 
class  SpotLocator
 Control and navigate the global centre of activity. More...
 
class  TreeStructureNavigator
 Interface to locate and move within a tree shaped structure. More...
 
class  UICoord
 Describe a location within the UI through structural/topological coordinates. More...
 
class  UICoordResolver
 Query and mutate UICoord specifications in relation to actual UI topology. More...
 
class  UILocationSolver
 Service to determine the location of an UI component view. More...
 
class  ViewLocator
 Access or allocate a UI component view. More...
 
class  Wizard
 Global cross-cutting navigation in interface space, foundation to implement user assistance and context sensitive help. More...
 
class  WorkSite
 A clustering of information and bindings, related to a "location" where the user is about to do ongoing editing work. More...
 
class  WorkSiteTrail
 Establish and manage a history of recent work sites. More...
 

Functions

LocationRule operator or (UICoord::Builder &&firstRule, UICoord secondRule)
 DSL operator to assemble a sequence of clauses. More...
 
LocationRule && operator or (LocationRule &&ruleSet, UICoord furtherRule)
 

Variables

const Symbol UIC_CURRENT_WINDOW
 window spec to refer to the current window More...
 
const Symbol UIC_ELIDED
 indicate that a component is elided or irrelevant here More...
 
const Symbol UIC_FIRST_WINDOW
 window spec to refer to the first window of the application More...
 

Typedef Documentation

◆ LocationQueryAccess

using LocationQueryAccess = std::function<LocationQuery&()>

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

◆ Locator

using Locator = std::function<UICoord(Literal)>

Locator is a functor to resolve to a topological location in the UI-tree.

It takes a viewID as argument, which actually is more of a typeID to designate the kind of view or UI widget, which shall be attached at or retrieved from the location resolved through the LocationRule. The latter is essentially what is embedded within the Locator functor.

Definition at line 129 of file view-spec-dsl.hpp.

◆ ViewSpec

A specification to describe the desired location of a component view within the Lumiera UI.

ViewSpec is basically a set of UI coordinates, with the additional possibility of specifying several alternatives, with the intention to pick the first applicable one.

Definition at line 177 of file view-spec-dsl.hpp.

◆ Allocator

using Allocator = std::function<UICoord(UICoord)>

Allocator is a functor to resolve a given, desired location of a view within the UI, resulting in creation or allocation of the view – which happens as side-effect. The result of this invocation are the UI coordinates of an existing or newly created view.

Definition at line 185 of file view-spec-dsl.hpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
UIC_INLINE_SIZE 

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

◆ UIPathElm

enum UIPathElm
Enumerator
UIC_WINDOW 
UIC_PERSP 
UIC_PANEL 
UIC_VIEW 
UIC_TAB 
UIC_PATH 

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

Function Documentation

◆ operator or() [1/2]

LocationRule gui::interact::operator or ( UICoord::Builder &&  firstRule,
UICoord  secondRule 
)
inline

DSL operator to assemble a sequence of clauses.

Introduced solely for the purpose of writing location specifications within the ViewSpec-DSL, this operator acts on several UI-Coordinate specs to create a sequence of clauses, to be checked against the currently existing UI topology, in the given order, ranging from more specific to more general patterns.

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

References LocationRule::append().

+ Here is the call graph for this function:

◆ operator or() [2/2]

LocationRule&& gui::interact::operator or ( LocationRule &&  ruleSet,
UICoord  furtherRule 
)
inline

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

References LocationRule::append().

+ Here is the call graph for this function:

Variable Documentation

◆ UIC_CURRENT_WINDOW

const Symbol UIC_CURRENT_WINDOW

window spec to refer to the current window

See also
view-locator.cpp

Definition at line 80 of file view-locator.cpp.

Referenced by GenNodeLocationQuery::determineAnchor().

◆ UIC_FIRST_WINDOW

const Symbol UIC_FIRST_WINDOW

window spec to refer to the first window of the application

Definition at line 81 of file view-locator.cpp.

Referenced by GenNodeLocationQuery::determineAnchor().

◆ UIC_ELIDED