53 #ifndef STAGE_INTERACT_CMD_CONTEXT_H 54 #define STAGE_INTERACT_CMD_CONTEXT_H 82 class InteractionState;
111 Symbol getCmdID()
const {
return cmdID_; }
113 virtual void updateOffset (
double deltaX,
double deltaY) =0;
114 virtual void markGestureCompleted() =0;
122 void updateOffset (
double,
double)
override { }
123 void markGestureCompleted()
override { }
144 virtual void buildGestureObserver (
Symbol cmdID,
Buffer) =0;
145 virtual Gtk::Widget& exposeWidget() =0;
187 void setupRelocateDrag();
214 scope (Spec scopeSpec)
221 element (Spec elementSpec)
227 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.