Class KeyboardHandlerBase
Defined in File keyboard_handler_base.hpp
Nested Relationships
Nested Types
Inheritance Relationships
Derived Types
public KeyboardHandlerUnixImpl
(Class KeyboardHandlerUnixImpl)public KeyboardHandlerWindowsImpl
(Class KeyboardHandlerWindowsImpl)
Class Documentation
-
class KeyboardHandlerBase
Subclassed by KeyboardHandlerUnixImpl, KeyboardHandlerWindowsImpl
Public Types
-
enum class KeyModifiers : uint32_t
Enum for key modifiers such as CTRL, ALT and SHIFT pressed along side with base key.
Enum represented as a bitmask and could contain multiple values. Multiple values can be settled up with overloaded
|
logical OR operator and extracted with&&
operator.Values:
-
enumerator NONE
-
enumerator SHIFT
-
enumerator ALT
-
enumerator CTRL
-
enumerator NONE
-
enum class KeyCode : uint32_t
Values:
-
enumerator UNKNOWN
-
enumerator EXCLAMATION_MARK
-
enumerator QUOTATION_MARK
-
enumerator HASHTAG_SIGN
-
enumerator DOLLAR_SIGN
-
enumerator PERCENT_SIGN
-
enumerator AMPERSAND
-
enumerator APOSTROPHE
-
enumerator OPENING_PARENTHESIS
-
enumerator CLOSING_PARENTHESIS
-
enumerator STAR
-
enumerator PLUS
-
enumerator COMMA
-
enumerator MINUS
-
enumerator DOT
-
enumerator RIGHT_SLASH
-
enumerator NUMBER_0
-
enumerator NUMBER_1
-
enumerator NUMBER_2
-
enumerator NUMBER_3
-
enumerator NUMBER_4
-
enumerator NUMBER_5
-
enumerator NUMBER_6
-
enumerator NUMBER_7
-
enumerator NUMBER_8
-
enumerator NUMBER_9
-
enumerator COLON
-
enumerator SEMICOLON
-
enumerator LEFT_ANGLE_BRACKET
-
enumerator EQUAL_SIGN
-
enumerator RIGHT_ANGLE_BRACKET
-
enumerator QUESTION_MARK
-
enumerator AT
-
enumerator LEFT_SQUARE_BRACKET
-
enumerator BACK_SLASH
-
enumerator RIGHT_SQUARE_BRACKET
-
enumerator CARET
-
enumerator UNDERSCORE_SIGN
-
enumerator GRAVE_ACCENT_SIGN
-
enumerator A
-
enumerator B
-
enumerator C
-
enumerator D
-
enumerator E
-
enumerator F
-
enumerator G
-
enumerator H
-
enumerator I
-
enumerator J
-
enumerator K
-
enumerator L
-
enumerator M
-
enumerator N
-
enumerator O
-
enumerator P
-
enumerator Q
-
enumerator R
-
enumerator S
-
enumerator T
-
enumerator U
-
enumerator V
-
enumerator W
-
enumerator X
-
enumerator Y
-
enumerator Z
-
enumerator LEFT_CURLY_BRACKET
-
enumerator VERTICAL_BAR
-
enumerator RIGHT_CURLY_BRACKET
-
enumerator TILDA
-
enumerator CURSOR_UP
-
enumerator CURSOR_DOWN
-
enumerator CURSOR_LEFT
-
enumerator CURSOR_RIGHT
-
enumerator ESCAPE
-
enumerator SPACE
-
enumerator ENTER
-
enumerator BACK_SPACE
-
enumerator DELETE_KEY
-
enumerator END
-
enumerator PG_DOWN
-
enumerator PG_UP
-
enumerator HOME
-
enumerator INSERT
-
enumerator F1
-
enumerator F2
-
enumerator F3
-
enumerator F4
-
enumerator F5
-
enumerator F6
-
enumerator F7
-
enumerator F8
-
enumerator F9
-
enumerator F10
-
enumerator F11
-
enumerator F12
-
enumerator END_OF_KEY_CODE_ENUM
-
enumerator UNKNOWN
-
using callback_t = std::function<void(KeyCode, KeyModifiers)>
Type for callback functions.
-
using callback_handle_t = uint64_t
Public Functions
- KEYBOARD_HANDLER_PUBLIC callback_handle_t add_key_press_callback (const callback_t &callback, KeyboardHandlerBase::KeyCode key_code, KeyboardHandlerBase::KeyModifiers key_modifiers=KeyboardHandlerBase::KeyModifiers::NONE)
Adding callable object as a handler for specified key press combination.
- Parameters:
callback – Callable which will be called when key_code will be recognized.
key_code – Value from enum which corresponds to some predefined key press combination.
key_modifiers – Value from enum which corresponds to the key modifiers pressed along side with key.
- Returns:
Return Newly created callback handle if callback was successfully added to the keyboard handler, returns invalid_handle if callback is nullptr or keyboard handler wasn’t successfully initialized.
- KEYBOARD_HANDLER_PUBLIC void delete_key_press_callback (const callback_handle_t &handle) noexcept
Delete callback from keyboard handler callback’s list.
- Parameters:
handle – Callback’s handle returned from add_key_press_callback
Public Static Attributes
- static KEYBOARD_HANDLER_PUBLIC constexpr callback_handle_t invalid_handle = 0
Callback handle returning from add_key_press_callback and using as an argument for the delete_key_press_callback.
Protected Attributes
-
bool is_init_succeed_ = false
-
std::mutex callbacks_mutex_
-
std::unordered_multimap<KeyAndModifiers, callback_data, key_and_modifiers_hash_fn> callbacks_
-
struct callback_data
-
struct key_and_modifiers_hash_fn
Specialized hash function for
unordered_map
with KeyAndModifiers.Public Functions
-
inline std::size_t operator()(const KeyAndModifiers &key_and_mod) const
-
inline std::size_t operator()(const KeyAndModifiers &key_and_mod) const
-
struct KeyAndModifiers
Public Functions
-
inline bool operator==(const KeyAndModifiers &rhs) const
-
inline bool operator!=(const KeyAndModifiers &rhs) const
-
inline bool operator==(const KeyAndModifiers &rhs) const
-
enum class KeyModifiers : uint32_t