Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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. 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. 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

spotLocator_ new assets_
 
LocationQueryAccess loactionQuery
 
LocationQueryAccess locationQuery
 
spotLocator_ new navigator_
 
spotLocator_ new SpotLocator
 
spotLocator_ new tracker_
 
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...
 
spotLocator_ new uiState_
 

Typedef Documentation

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

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

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 128 of file view-spec-dsl.hpp.

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 176 of file view-spec-dsl.hpp.

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.

The result of this invocation are the UI coordinates of an existing or newly created view.

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

Enumeration Type Documentation

anonymous enum
Enumerator
UIC_INLINE_SIZE 

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

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

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

References LocationRule::append().

+ Here is the call graph for this function:

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

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

References LocationRule::append().

+ Here is the call graph for this function:

Variable Documentation

spotLocator_ new SpotLocator

Definition at line 87 of file interaction-director.cpp.

spotLocator_ new navigator_

Definition at line 88 of file interaction-director.cpp.

spotLocator_ new tracker_

Definition at line 89 of file interaction-director.cpp.

spotLocator_ new uiState_

Definition at line 90 of file interaction-director.cpp.

spotLocator_ new assets_

Definition at line 91 of file interaction-director.cpp.

const Symbol UIC_CURRENT_WINDOW

window spec to refer to the current window

See also
view-locator.cpp

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

Referenced by GenNodeLocationQuery::determineAnchor().

const Symbol UIC_FIRST_WINDOW

window spec to refer to the first window of the application

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

Referenced by GenNodeLocationQuery::determineAnchor().

LocationQueryAccess loactionQuery

access UI service to query and discover locations within UI topology

LocationQueryAccess locationQuery

global access point to some implementation of the LocationQuery API. Typically, this is provided by the Navigator service in conjunction with the ViewLocator; both are components managed by the InteractionDirector. Thus, when the UI starts, a suitable access functor will be installed here, and likewise removed/disabled on shutdown. ///////////////////////////////////////////////////////////////////////////////////////TICKET #1127 looks like we could get rid of that global state

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

Referenced by UILocationSolver_test::simple_usage_example(), and UICoordResolver_test::verify_simpleUsage().