Kanzi Framework  3.9.0
Kanzi Engine API
kanzi::KeyEvent Class Reference

The KeyEvent holds a pressed, released, or auto-repeated key event which occurs in the host operating system. More...

#include <kanzi/core.ui/platform/input/common/events.hpp>

Inheritance diagram for kanzi::KeyEvent:
[legend]

Public Member Functions

LogicalKey getKey () const
 Returns the LogicalKey value of the key event. More...
 
LogicalKey getKeyDown () const
 Returns the logical key value of the key event if the event is in pressed state. More...
 
size_t getKeyRepeatCount () const
 Returns the key-press repetition count. More...
 
LogicalKey getKeyUp () const
 Returns the logical key value of the key event if the event is in released state. More...
 
KeyModifier getModifiers () const
 Returns the modifiers bit fields of the key event. More...
 
size_t getRawKey () const
 Returns the raw key code of the event, or 0 if the event was created with no raw key code. More...
 
KeyState getState () const
 Returns the state of the key event. More...
 
bool hasAltModifier () const
 Checks whether the key event has any of the Alt key modifiers set. More...
 
bool hasCapsLock () const
 Returns whether the key event is created with the KeyModifier::CapsLock modifier. More...
 
bool hasControlModifier () const
 Checks whether the key event has any of the Control key modifiers set. More...
 
bool hasModifier (KeyModifier modifier) const
 Checks whether the given modifier is set on the key event. More...
 
bool hasShiftModifier () const
 Checks whether the key event has any of the Shift key modifiers set. More...
 
bool hasSuperModifier () const
 Checks whether the key event has any of the Super key modifiers set. More...
 
bool isDown () const
 Returns true if the key event represents a key down status, meaning it has Pressed status. More...
 
bool isKeyModifier () const
 Checks whether the key of the event is a modifier key. More...
 
bool isTranslated () const
 Returns true if the key event holds a translated operating system key event. More...
 
bool isUp () const
 Returns true if the key event represents a key released status. More...
 
bool isValid () const
 Checks whether the key event is valid. More...
 
 KeyEvent (LogicalKey key, KeyModifier modifiers, KeyState state)
 Creates a key event with a logical key, modifiers and state. More...
 
 KeyEvent (size_t rawKeyCode, KeyState state)
 Creates a key event with a rawKeyCode and state. More...
 
 KeyEvent (LogicalKey key, KeyModifier modifiers, size_t repeatCount)
 Creates a key-press repetition event with a logical key, modifiers and repeatCount. More...
 
 KeyEvent (size_t rawKeyCode, size_t repeatCount)
 Creates a key-press repetition event with a logical rawKeyCode and repeatCount. More...
 
- Public Member Functions inherited from kanzi::InputEvent
Type getType () const
 Returns the type of the event. More...
 
 InputEvent (Type type)
 Constructs an event with a given type. More...
 
bool isHandled () const
 Returns true if the event is handled, false if not. More...
 
void markHandled ()
 Marks the event as handled. More...
 
virtual ~InputEvent ()
 Destructor. More...
 

Protected Member Functions

 KeyEvent ()
 Constructor. Creates an invalid key event. More...
 

Protected Attributes

bool m_capsLock
 The Caps lock state. More...
 
LogicalKey m_key
 The translated logical key code. More...
 
KeyModifier m_modifiers
 The key modifier flags applied on the key stroke. More...
 
size_t m_rawKeyCode
 The raw key code, an operating system specific value. More...
 
size_t m_repeatCount
 The key-press repetition count. More...
 
KeyState m_state
 The key event state. More...
 

Additional Inherited Members

- Public Types inherited from kanzi::InputEvent
enum  Type {
  Key, Pointer, Touch, WindowResized,
  WindowResizeRequest, WindowFocusLost, WindowFocusGained, WindowHidden,
  WindowResourcesLost, WindowOrientationChanged, WindowRedrawRequest, WindowClosed,
  ApplicationPaused, ApplicationSleep, ApplicationWakeup, DebugToggleHud,
  DebugSetHud, UserEvent
}
 InputEvent type enumeration. More...
 

Detailed Description

The KeyEvent holds a pressed, released, or auto-repeated key event which occurs in the host operating system.

Contains the logical key code translated from the raw operating system specific key code and the key modifiers of the key.

Operating system adaptations must map the raw key code into a LogicalKey value, set the applicable key modifiers, and, if possible, provide the key symbol that maps the raw key code to the current hardware keyboard layout.

If the application does not detect any key modifiers or the modifier presented by the operating system does not match any modifier defined by Kanzi, set KeyModifier::Undefined.

When the operating system key code does not match any logical key defined in Kanzi, create the key event with the raw key code set. When you create a KeyEvent in this way, you tell Kanzi that the raw key code is the only valid information when handling the event.

The type of the event is InputEvent::Key.

Constructor & Destructor Documentation

◆ KeyEvent() [1/5]

kanzi::KeyEvent::KeyEvent ( LogicalKey  key,
KeyModifier  modifiers,
KeyState  state 
)
explicit

Creates a key event with a logical key, modifiers and state.

The raw key code of the key event created in this way is set to 0.

Parameters
keyThe logical key code of the event.
modifiersThe key modifiers accompanying the key event.
stateThe key state.

◆ KeyEvent() [2/5]

kanzi::KeyEvent::KeyEvent ( size_t  rawKeyCode,
KeyState  state 
)
explicit

Creates a key event with a rawKeyCode and state.

Use this constructor when the raw key code does not map to any logical key code defined in Kanzi.

Parameters
rawKeyCodeThe operating system specific raw key code.
stateThe key state.

◆ KeyEvent() [3/5]

kanzi::KeyEvent::KeyEvent ( LogicalKey  key,
KeyModifier  modifiers,
size_t  repeatCount 
)
explicit

Creates a key-press repetition event with a logical key, modifiers and repeatCount.

Parameters
keyThe logical key code of the event.
modifiersThe key modifiers accompanying the key event.
repeatCountThe key-press repetition count.
Since
Kanzi 3.9.0

◆ KeyEvent() [4/5]

kanzi::KeyEvent::KeyEvent ( size_t  rawKeyCode,
size_t  repeatCount 
)
explicit

Creates a key-press repetition event with a logical rawKeyCode and repeatCount.

Parameters
rawKeyCodeThe operating system specific raw key code.
repeatCountThe key-press repetition count.
Since
Kanzi 3.9.0

◆ KeyEvent() [5/5]

kanzi::KeyEvent::KeyEvent ( )
explicitprotected

Constructor. Creates an invalid key event.

Member Function Documentation

◆ isValid()

bool kanzi::KeyEvent::isValid ( ) const

Checks whether the key event is valid.

A key event is valid if it has either the raw key value or the LogicalKey value set.

Returns
If the key event is valid, returns true, otherwise false.
Since
Kanzi 3.9.0

◆ getRawKey()

size_t kanzi::KeyEvent::getRawKey ( ) const
inline

Returns the raw key code of the event, or 0 if the event was created with no raw key code.

Note that this method returns the value that is specific to the operating system.

◆ getKey()

LogicalKey kanzi::KeyEvent::getKey ( ) const
inline

Returns the LogicalKey value of the key event.

◆ getModifiers()

KeyModifier kanzi::KeyEvent::getModifiers ( ) const
inline

Returns the modifiers bit fields of the key event.

Since
Kanzi 3.8.0 returns KeyModifier.

◆ getState()

KeyState kanzi::KeyEvent::getState ( ) const
inline

Returns the state of the key event.

See also
State

◆ isDown()

bool kanzi::KeyEvent::isDown ( ) const
inline

Returns true if the key event represents a key down status, meaning it has Pressed status.

See also
State

◆ isUp()

bool kanzi::KeyEvent::isUp ( ) const
inline

Returns true if the key event represents a key released status.

◆ hasModifier()

bool kanzi::KeyEvent::hasModifier ( KeyModifier  modifier) const
inline

Checks whether the given modifier is set on the key event.

Returns
true if the modifier is set, false otherwise.

◆ isKeyModifier()

bool kanzi::KeyEvent::isKeyModifier ( ) const

Checks whether the key of the event is a modifier key.

Returns
If the key is a modifier key, returns true, otherwise false.
Since
Kanzi 3.9.0

◆ getKeyDown()

LogicalKey kanzi::KeyEvent::getKeyDown ( ) const
inline

Returns the logical key value of the key event if the event is in pressed state.

Returns
The logical key value if pressed, KeyMax if the key is not pressed.

◆ getKeyRepeatCount()

size_t kanzi::KeyEvent::getKeyRepeatCount ( ) const
inline

Returns the key-press repetition count.

Returns
The key-press repetition count. If the key is not pressed, returns 0u.
Since
Kanzi 3.9.0

◆ getKeyUp()

LogicalKey kanzi::KeyEvent::getKeyUp ( ) const
inline

Returns the logical key value of the key event if the event is in released state.

Returns
The logical key value if released, KeyMax if the key is not in released state.

◆ isTranslated()

bool kanzi::KeyEvent::isTranslated ( ) const
inline

Returns true if the key event holds a translated operating system key event.

◆ hasShiftModifier()

bool kanzi::KeyEvent::hasShiftModifier ( ) const

Checks whether the key event has any of the Shift key modifiers set.

Returns
If the key event has one of the Shift modifiers set, true, otherwise false.
See also
KeyModifier

◆ hasAltModifier()

bool kanzi::KeyEvent::hasAltModifier ( ) const

Checks whether the key event has any of the Alt key modifiers set.

Returns
If the key event has one of the Alt modifiers set, true, otherwise false.
See also
KeyModifier

◆ hasControlModifier()

bool kanzi::KeyEvent::hasControlModifier ( ) const

Checks whether the key event has any of the Control key modifiers set.

Returns
If the key event has one of the Control modifiers set, true, otherwise false.
See also
KeyModifier

◆ hasSuperModifier()

bool kanzi::KeyEvent::hasSuperModifier ( ) const

Checks whether the key event has any of the Super key modifiers set.

Returns
If the key event has one of the Super modifiers set, true, otherwise false.
See also
KeyModifier

◆ hasCapsLock()

bool kanzi::KeyEvent::hasCapsLock ( ) const
inline

Returns whether the key event is created with the KeyModifier::CapsLock modifier.

Returns
If the key event is created with the KeyModifier::CapsLock modifier, true, otherwise false.
Since
Kanzi 3.9.0

Member Data Documentation

◆ m_rawKeyCode

size_t kanzi::KeyEvent::m_rawKeyCode
protected

The raw key code, an operating system specific value.

If you create the event with no raw key code, this value is 0.

◆ m_repeatCount

size_t kanzi::KeyEvent::m_repeatCount
protected

The key-press repetition count.

Since
Kanzi 3.9.0

◆ m_modifiers

KeyModifier kanzi::KeyEvent::m_modifiers
protected

The key modifier flags applied on the key stroke.

◆ m_key

LogicalKey kanzi::KeyEvent::m_key
protected

The translated logical key code.

◆ m_state

KeyState kanzi::KeyEvent::m_state
protected

The key event state.

◆ m_capsLock

bool kanzi::KeyEvent::m_capsLock
protected

The Caps lock state.


The documentation for this class was generated from the following file: