Lumiera
0.pre.03
»edit your freedom«
|
#include "stage/interact/interaction-state.hpp"
Abstract foundation for context dependent UI interactions.
While forming an interaction gesture, context state is picked up incrementally, and maintained here, together with parameters of degree, amount or relative position. Typically, a concrete implementation subclass is geared for one specific kind of interaction or gesture and used as target for wiring Signals to trigger and carry out this specific interaction. The GestureState holder within InteractionDirector is responsible for allocating and maintaining those concrete InteractionState instances, which can then be used to issue complex commands for subjects and further arguments picked up from the interaction.
write type comment...
WIP-WIP as of /3/2021 ///////////////////////////////////TODO do we need a translation unit interaction-state.cpp (otherwise delete it!)
Definition at line 76 of file interaction-state.hpp.
Public Member Functions | |
virtual void | linkTrigger (Subject &, Symbol cmdID)=0 |
Hook up a trigger signal to initiate a specific interaction gesture. More... | |
Protected Member Functions | |
virtual | ~InteractionState () |
this is an interface | |
Additional Inherited Members | |
Private Member Functions inherited from NonCopyable | |
NonCopyable (NonCopyable const &)=delete | |
NonCopyable & | operator= (NonCopyable const &)=delete |
Hook up a trigger signal to initiate a specific interaction gesture.
Within the concrete controller implementation for each gesture, the Subject interface shall be used to access an actual widget and to wire this widget's signals to a private implementation function within the concrete gesture controller. The purpose is then to observe this widget and to activate recognition of the gesture when applicable.
Subject | the subject of the interaction gesture; typically implemented by a controller or widget responsible for the UI entity involved. |
cmdID | the actual command to be issued on completion of the interaction |
Implemented in DragRelocateController.