Private
dragThe dragToScroll value of every pointer ID. See PointerDriver#registerPointer.
Protected
hintsThe hints for each pointer. The keys are pointer IDs, while the values are that pointer's hint.
Private
nextThe next available pointer ID. See PointerDriver#registerPointer
Protected
statesThe current state for each registered and enabled root. Contains whether each root is pressing, hovering, and which pointer is bound to it
Private
canCheck if a given pointer can dispatch an event to a given root. Also automatically assigns pointer to root if possible. For internal use only.
The root's state. Although the function could technically get the state itself, it's passed to avoid repetition since you will need the state yourself
Is the pointer giving active input (pressing button or scrolling)? If so, then it can auto-assign if the root is not being pressed by another pointer
Private
denormaliseDenormalise normalised pointer coordinates. Internal use only.
Private
dispatchDispatch an event to a root.
Returns true if the event was captured
Get a pointer's hint.
The registered pointer ID
Returns the given pointer ID's hint. If the pointer ID is not registered, PointerHint.None is returned.
Dispatch a LeaveRootEvent event to any root with the given pointer assigned. Event will only be dispatched if the root was being hovered. Pointer will also be unassigned from root.
The registered pointer ID
Dispatch a LeaveRootEvent event to a given root. Event will only be dispatched if the root was being hovered.
The registered pointer ID
Returns true if the event was captured
Dispatch a pointer event to a given root. The type of PointerEvent is decided automatically based on the root's state and whether its pressing or not.
If null, the last pressing state is used, meaning that the pressing state has not changed. Useful if getting pointer movement in an event based environment where you only know when a pointer press occurs, but not if the pointer is pressed or not
The registered pointer ID
The normalised (non-integer range from 0 to 1) X coordinate of the pointer event. 0 is the left edge of the root, while 1 is the right edge of the root.
The normalised (non-integer range from 0 to 1) Y coordinate of the pointer event. 0 is the top edge of the root, while 1 is the bottom edge of the root.
Is the pointer pressed? If null, then the last pressing state will be used. A bitmask where each set bit represents a different button being pressed
Is shift being pressed?
Is control being pressed?
Is alt being pressed?
Returns true if the pointer event was captured.
Dispatches a leave-root event for the disabled root and deletes the state of the disabled root from PointerDriver#states.
Creates a state for the enabled root in PointerDriver#states.
Hook called by Root#dispatchEvent
Hook called by Root#requestFocus and Root#clearFocus
Register a new pointer.
If true, then dragging will result in PointerWheelEvent events if no widget captures the events.
Returns PointerDriver#nextPointerID and increments it
Protected
setSet a pointer's hint.
The registered pointer ID
The new pointer hint
Returns true if the pointer hint changed, else, false
Private
unassignUnassign a pointer from a given root and its state.
Hook called by Root#preLayoutUpdate
Dispatch a mouse wheel event in a given 2D direction. Event will only be dispatched if the root was being hovered.
The registered pointer ID
The normalised (non-integer range from 0 to 1) X coordinate of the pointer event. 0 is the left edge of the root, while 1 is the right edge of the root.
The normalised (non-integer range from 0 to 1) Y coordinate of the pointer event. 0 is the top edge of the root, while 1 is the bottom edge of the root.
How much was scrolled horizontally, in pixels
How much was scrolled vertically, in pixels
How much was scrolled in the Z axis, in pixels. Rarely used
How the delta values should be interpreted
Is shift being pressed?
Is control being pressed?
Is alt being pressed?
Returns true if the pointer event was captured.
A generic pointer driver.
Does nothing on its own, but provides an API for sending pointer events to registered roots and (un)registering pointers.