class new in Git master
#include <Magnum/Ui/Event.h>
PointerEvent Pointer press or release event.
Constructors, destructors, conversion operators
- PointerEvent(Nanoseconds time, PointerEventSource source, Pointer pointer, bool primary, Long id) explicit
- Constructor.
Public functions
- auto time() const -> Nanoseconds
- Time at which the event happened.
- auto source() const -> PointerEventSource
- Pointer event source.
- auto pointer() const -> Pointer
- Pointer type that got pressed or released.
- auto isPrimary() const -> bool
- Whether the pointer is primary.
- auto id() const -> Long
- Pointer ID.
- auto position() const -> Vector2
- Event position.
- auto isCaptured() const -> bool
- Whether the event is captured on a node.
- void setCaptured(bool captured)
- Set whether to capture the event on a node.
- auto isHovering() const -> bool
- Whether the event is called on a node that's currently hovered.
- auto isFocused() const -> bool
- Whether the event is called on a node that's currently focused.
- auto isAccepted() const -> bool
- Whether the event is accepted.
- void setAccepted(bool accepted = true)
- Set the event as accepted.
Function documentation
Magnum:: Ui:: PointerEvent:: PointerEvent(Nanoseconds time,
PointerEventSource source,
Pointer pointer,
bool primary,
Long id) explicit
Constructor.
Parameters | |
---|---|
time | Time at which the event happened |
source | Pointer event source |
pointer | Pointer type that got pressed or released |
primary | Whether the pointer is primary |
id | Pointer ID |
The time
may get used for UI animations. A default-constructed value causes an animation play time to be in the past, thus immediately transitioning to a stopped state. The pointer
is expected to match source
, primary
is expected to be true
for PointerEventSource::
PointerEventSource Magnum:: Ui:: PointerEvent:: source() const
Pointer event source.
bool Magnum:: Ui:: PointerEvent:: isPrimary() const
Whether the pointer is primary.
Used to distinguish among multiple pointers in a multi-touch scenario. Events coming from PointerEventSource::
Long Magnum:: Ui:: PointerEvent:: id() const
Pointer ID.
Used to distinguish among multiple pointers in a multi-touch scenario. Events coming from PointerEventSource::
bool Magnum:: Ui:: PointerEvent:: isCaptured() const
Whether the event is captured on a node.
On a press event is always implicitly true
, on a release event is true
only if the event happens on a captured node.
void Magnum:: Ui:: PointerEvent:: setCaptured(bool captured)
Set whether to capture the event on a node.
By default, after a press event of a primary pointer, a node captures all following pointer and key events until and including a release of the primary pointer, even if they happen outside of the node area. Press and release events of non-primary pointers are sent to the captured node but don't affect it in any way.
If capture is disabled, the events are always sent to the actual node under the pointer. Which means that for example a node can receive a pointer press event without a corresponding release later, or a release alone.
Calling this function only makes sense on a pointer press event or a non-primary pointer release event, it has no effect on primary pointer release event or a tap or click event.
bool Magnum:: Ui:: PointerEvent:: isHovering() const
Whether the event is called on a node that's currently hovered.
Returns true
if AbstractUserInterface::false
otherwise. In particular, is false
for a press or release event that happened without a preceding move on given node, is also false
if a release event happens outside of a captured node.
Note that even if this function returns true
, the event handler still controls whether the pointer is actually treated as being in an active area of the node by either accepting the event or not accepting it and letting it potentially fall through to other nodes.
bool Magnum:: Ui:: PointerEvent:: isFocused() const
Whether the event is called on a node that's currently focused.
Returns true
if AbstractUserInterface::false
otherwise. Unlike isHovering(), returns true
also if the actual pointer position is outside of the area of the node the event is called on, for example in case of an event capture.
void Magnum:: Ui:: PointerEvent:: setAccepted(bool accepted = true)
Set the event as accepted.
Once an event is accepted, it doesn't propagate further.