44 #ifndef STAGE_INTERACT_CMD_CONTEXT_H 45 #define STAGE_INTERACT_CMD_CONTEXT_H 73 class InteractionState;
102 Symbol getCmdID()
const {
return cmdID_; }
104 virtual void updateOffset (
double deltaX,
double deltaY) =0;
105 virtual void markGestureCompleted() =0;
113 void updateOffset (
double,
double)
override { }
114 void markGestureCompleted()
override { }
135 virtual void buildGestureObserver (
Symbol cmdID,
Buffer) =0;
136 virtual Gtk::Widget& exposeWidget() =0;
178 void setupRelocateDrag();
205 scope (Spec scopeSpec)
212 element (Spec elementSpec)
218 const Spec spec = HERE;
Types marked with this mix-in may be moved and move-assigned.
CmdContext && linkSubject(Subject &subj)
Builder operation: define the subject to use for the following interaction bindings.
Any copy and copy construction prohibited.
Types marked with this mix-in may be moved but not copied.
Abstract foundation for context dependent UI interactions.
Token or Atom with distinct identity.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
A handle to allow for safe »remote implantation« of an unknown subclass into a given opaque InPlaceBu...
Marker types to indicate a literal string and a Symbol.
Lumiera GTK UI implementation root.
Helper allowing type erasure while holding the actual object inline.
»Null Object« when no gesture is being tracked currently.
A template for generating hash based ID tags carrying compile-time type info.
Lumiera error handling (C++ interface).
Hash implementation based on a lumiera unique object id (LUID) When invoking the default ctor...
Helper for dynamic command argument resolution.
Collaboration interface for tracking the formation of a gesture.
Builder to define a binding to relate some entity or place within the UI with a specific from of inte...
Role-Interface: the Subject of Interaction.