Lumiera  0.pre.03
»edit your freedom«
stage::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

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.
 
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 = 8 }
 
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
 Builder to define a binding to relate some entity or place within the UI with a specific from of interaction gesture or context dependent command invocation. More...
 
class  DragRelocateController
 Gesture controller for dragging objects within the Timeline display. 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  GestureObserver
 Collaboration interface for tracking the formation of a gesture. More...
 
class  GestureState
 Holder for InteractionState dedicated to UI gestures and complex interactions. More...
 
class  InactiveObserver
 »Null Object« when no gesture is being tracked currently. 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 for context dependent UI interactions. 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  Subject
 Role-Interface: the Subject of Interaction. 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 {"currentWindow"}
 window spec to refer to the current window More...
 
const Symbol UIC_ELIDED {"."}
 indicate that a component is elided or irrelevant here
 
const Symbol UIC_FIRST_WINDOW {"firstWindow"}
 window spec to refer to the first window of the application
 

Typedef Documentation

◆ 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

using ViewSpec = LocatorSpec<UIC_VIEW>

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.

Function Documentation

◆ operator or()

LocationRule stage::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 197 of file ui-location-solver.hpp.

Variable Documentation

◆ UIC_CURRENT_WINDOW

const Symbol UIC_CURRENT_WINDOW {"currentWindow"}

window spec to refer to the current window

See also
view-locator.cpp

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