Input Manager converts the events from the given event queue into input specific messages. More...
#include <kanzi/core.ui/input/input_manager.hpp>
Public Member Functions | |
void | attach (Screen &screen) |
Attaches a screen node to an Input Manager. | |
void | detach (Screen &screen) |
Detaches the screen node from an Input Manager. | |
Screen * | getScreen () const |
Gets the Screen node currently associated with the Input Manager. | |
InputManager (Domain *domain) | |
Create an Input Manager. | |
void | notifyNodeDetached (Node &node) |
Node notifies the Input Manager that Kanzi is detaching it from the node tree. | |
void | processEvent (InputEvent &inputEvent, Node2D &screen) |
Processes a single input event. | |
void | processEvents (EventQueue &queue, Node2D &screen) |
Processes a queue of input events. | |
void | resetInput () |
Cancels and resets all the ongoing gesture recognitions in the Input Manager, and cleans up the input manipulators from the manipulator collection. | |
void | resetOverlayScopeInput (const OverlayScope &overlay) |
Cancels and resets ongoing touch and key gesture recognition of a given overlay focus scope, and cleans up the input manipulators from the manipulator collection. | |
void | resetOverlayScopeKeyInput (const OverlayScope &overlay) |
Cancels and resets all key input manipulators of a given overlay focus scope, and cleans up the cancelled input manipulators from the manipulator collection. | |
bool | setInputManipulatorState (InputManipulator &inputManipulator, InputManipulator::State state) |
Sets the state of an inputManipulator and, based on that state, synchronizes the input manipulators registered to the Input Manager. | |
void | updateEffectivelyEnabledState (Node &root) |
Node tells the Input Manager to update the Node::EffectivelyEnabledProperty for a root node and its descendant nodes in the same overlay scope. | |
void | updateHoverStates (const PointerEvent &pointerEvent, Node2D *node) |
Processes pointer events to update hover states of the nodes in a subtree of the passed node. | |
~InputManager () | |
Destructor. | |
Gesture processing input manipulator collection methods | |
void | attachInputManipulator (InputManipulator *manipulator) |
Adds an input manipulator to the collection of gesture processing input manipulators. | |
void | detachInputManipulator (InputManipulator &manipulator) |
Removes an input manipulator from the collection of gesture processing input manipulators. | |
Input Manager converts the events from the given event queue into input specific messages.
The events supported are key, touch, and mouse pointer events. The key events are forwarded to key manipulators, and the touch and pointer events are unified into press, change and release messages, and forwarded to InputManipulators, which in turn handles the input and dispatch those through proprietary messages. The input manipulators are gathered automatically from the node or its children passed as argument to the processEvents() method.
|
explicit |
Create an Input Manager.
domain | The domain that owns the Input Manager. |
kanzi::InputManager::~InputManager | ( | ) |
Destructor.
void kanzi::InputManager::processEvents | ( | EventQueue & | queue, |
Node2D & | screen ) |
Processes a queue of input events.
queue | Event queue that holds events that are processed. |
screen | The screen that receives the events that are processed. |
void kanzi::InputManager::processEvent | ( | InputEvent & | inputEvent, |
Node2D & | screen ) |
Processes a single input event.
Use this method instead of processEvents() if your target platform requires immediate processing of individual events and does not support queuing a batch of multiple events into an EventQueue.
inputEvent | The event to process. |
screen | The screen that receives the events that are processed. |
bool kanzi::InputManager::setInputManipulatorState | ( | InputManipulator & | inputManipulator, |
InputManipulator::State | state ) |
Sets the state of an inputManipulator and, based on that state, synchronizes the input manipulators registered to the Input Manager.
Do not call this method from the InputManipulator::notifyTouchInside(), InputManipulator::notifyTouchOutside() or InputManipulator::notifyKeyInput() method.
inputManipulator | The input manipulator whose state to set. |
state | The state to which to set the input manipulator. |
void kanzi::InputManager::resetInput | ( | ) |
Cancels and resets all the ongoing gesture recognitions in the Input Manager, and cleans up the input manipulators from the manipulator collection.
void kanzi::InputManager::resetOverlayScopeInput | ( | const OverlayScope & | overlay | ) |
Cancels and resets ongoing touch and key gesture recognition of a given overlay focus scope, and cleans up the input manipulators from the manipulator collection.
overlay | The overlay focus scope for which to cancel input and clean up input manipulators. |
void kanzi::InputManager::resetOverlayScopeKeyInput | ( | const OverlayScope & | overlay | ) |
Cancels and resets all key input manipulators of a given overlay focus scope, and cleans up the cancelled input manipulators from the manipulator collection.
overlay | The overlay focus scope for which to cancel input and clean up key input manipulators. |
Node notifies the Input Manager that Kanzi is detaching it from the node tree.
node | The node which is detached. |
Node tells the Input Manager to update the Node::EffectivelyEnabledProperty for a root node and its descendant nodes in the same overlay scope.
When a node gets effectively disabled, Input Manager resets all input manipulators for that node.
root | The root node of the subtree in which the Kanzi updates the values of the Node::EffectivelyEnabledProperty. |
void kanzi::InputManager::attachInputManipulator | ( | InputManipulator * | manipulator | ) |
Adds an input manipulator to the collection of gesture processing input manipulators.
manipulator | The input manipulator to add to the gesture processing collection. |
void kanzi::InputManager::detachInputManipulator | ( | InputManipulator & | manipulator | ) |
Removes an input manipulator from the collection of gesture processing input manipulators.
manipulator | The input manipulator to remove from the gesture processing collection. |
void kanzi::InputManager::updateHoverStates | ( | const PointerEvent & | pointerEvent, |
Node2D * | node ) |
Processes pointer events to update hover states of the nodes in a subtree of the passed node.
pointerEvent | Pointer event to process. |
node | The node where the hit testing starts. |
Screen * kanzi::InputManager::getScreen | ( | ) | const |