Lumiera  0.pre.03
»edit your freedom«
drag-relocate-controller.hpp File Reference

Go to the source code of this file.

Description

Concrete implementation of a dragging gesture to relocate an UI entity.

This gesture controller is maintained as an InteractionState holder within the InteractionDirector and serves as target to receive signals, in order to observe a draggable widget and possibly activate on formation of a dragging gesture. When this happens, the DragRelocateController is responsible for observing the mouse movements, to integrate a movement delta, and finally to recognise the end of the dragging gesture and invoke the associated command on the entity to be dragged, which serves as Subject for this gesture and the resulting command.

Note
this implementation level header is meant to be included solely for the purpose of creating an instance from within GestureState, the facility managing InvocationState instances.
Todo:
WIP and prototypical implementation as of 3/2021
See also
////TODO_test usage example

Definition in file drag-relocate-controller.hpp.

Classes

class  DragRelocateController
 Gesture controller for dragging objects within the Timeline display. More...
 

Variables

const gdouble DISTANCE_THRESHOLD = 5.0
 
const size_t OBSERVER_BUFF_SIZ
 heuristics for sizing the inline buffer where the Subject will construct its Observer/Adapter More...
 

Namespaces

 stage
 Lumiera GTK UI implementation root.
 
 stage::interact
 UI interaction control.