From 027e67b32a9cca3cac4a186e73fdcc42faeab8c4 Mon Sep 17 00:00:00 2001 From: WBoerenkamps Date: Sat, 16 Nov 2024 15:21:49 +0100 Subject: added eventManager reference to interfaces --- src/crepe/api/KeyCodes.h | 318 ++++++++++++++++++++++++++--------------------- 1 file changed, 179 insertions(+), 139 deletions(-) (limited to 'src/crepe/api/KeyCodes.h') diff --git a/src/crepe/api/KeyCodes.h b/src/crepe/api/KeyCodes.h index e5a91fc..a326527 100644 --- a/src/crepe/api/KeyCodes.h +++ b/src/crepe/api/KeyCodes.h @@ -1,146 +1,186 @@ #pragma once +//! \file InputEnums.h +//! \brief Defines enums for mouse buttons and keyboard keycodes used in the application. + +//! \enum MouseButton +//! \brief Enumeration for mouse button inputs, including standard and extended buttons. enum class MouseButton { - NONE = 0, - LEFT_MOUSE = 1, - RIGHT_MOUSE = 2, - MIDDLE_MOUSE = 3, - X1_MOUSE = 4, - X2_MOUSE = 5, - SCROLL_UP = 6, - SCROLL_DOWN = 7, + //! No mouse button input. + NONE = 0, + //! Left mouse button. + LEFT_MOUSE = 1, + //! Right mouse button. + RIGHT_MOUSE = 2, + //! Middle mouse button (scroll wheel press). + MIDDLE_MOUSE = 3, + //! First extended mouse button. + X1_MOUSE = 4, + //! Second extended mouse button. + X2_MOUSE = 5, + //! Scroll wheel upward movement. + SCROLL_UP = 6, + //! Scroll wheel downward movement. + SCROLL_DOWN = 7 }; +//! \enum Keycode +//! \brief Enumeration for keyboard key inputs, including printable characters, function keys, and keypad keys. enum class Keycode : int { - NONE = 0, - SPACE = 32, - APOSTROPHE = 39, /* ' */ - COMMA = 44, /* , */ - MINUS = 45, /* - */ - PERIOD = 46, /* . */ - SLASH = 47, /* / */ - - D0 = 48, /* 0 */ - D1 = 49, /* 1 */ - D2 = 50, /* 2 */ - D3 = 51, /* 3 */ - D4 = 52, /* 4 */ - D5 = 53, /* 5 */ - D6 = 54, /* 6 */ - D7 = 55, /* 7 */ - D8 = 56, /* 8 */ - D9 = 57, /* 9 */ - - SEMICOLON = 59, /* ; */ - EQUAL = 61, /* = */ - - A = 65, - B = 66, - C = 67, - D = 68, - E = 69, - F = 70, - G = 71, - H = 72, - I = 73, - J = 74, - K = 75, - L = 76, - M = 77, - N = 78, - O = 79, - P = 80, - Q = 81, - R = 82, - S = 83, - T = 84, - U = 85, - V = 86, - W = 87, - X = 88, - Y = 89, - Z = 90, - - LEFT_BRACKET = 91, /* [ */ - BACKSLASH = 92, /* \ */ - RIGHT_BRACKET = 93, /* ] */ - GRAVE_ACCENT = 96, /* ` */ - - WORLD1 = 161, /* non-US #1 */ - WORLD2 = 162, /* non-US #2 */ - - /* Function keys */ - ESCAPE = 256, - ENTER = 257, - TAB = 258, - BACKSPACE = 259, - INSERT = 260, - DELETE = 261, - RIGHT = 262, - LEFT = 263, - DOWN = 264, - UP = 265, - PAGE_UP = 266, - PAGE_DOWN = 267, - HOME = 268, - END = 269, - CAPS_LOCK = 280, - SCROLL_LOCK = 281, - NUM_LOCK = 282, - PRINT_SCREEN = 283, - PAUSE = 284, - F1 = 290, - F2 = 291, - F3 = 292, - F4 = 293, - F5 = 294, - F6 = 295, - F7 = 296, - F8 = 297, - F9 = 298, - F10 = 299, - F11 = 300, - F12 = 301, - F13 = 302, - F14 = 303, - F15 = 304, - F16 = 305, - F17 = 306, - F18 = 307, - F19 = 308, - F20 = 309, - F21 = 310, - F22 = 311, - F23 = 312, - F24 = 313, - F25 = 314, - - /* Keypad */ - KP0 = 320, - KP1 = 321, - KP2 = 322, - KP3 = 323, - KP4 = 324, - KP5 = 325, - KP6 = 326, - KP7 = 327, - KP8 = 328, - KP9 = 329, - KP_DECIMAL = 330, - KP_DIVIDE = 331, - KP_MULTIPLY = 332, - KP_SUBTRACT = 333, - KP_ADD = 334, - KP_ENTER = 335, - KP_EQUAL = 336, - - LEFT_SHIFT = 340, - LEFT_CONTROL = 341, - LEFT_ALT = 342, - LEFT_SUPER = 343, - RIGHT_SHIFT = 344, - RIGHT_CONTROL = 345, - RIGHT_ALT = 346, - RIGHT_SUPER = 347, - MENU = 348 + //! No key input. + NONE = 0, + //! Spacebar. + SPACE = 32, + //! Apostrophe ('). + APOSTROPHE = 39, + //! Comma (,). + COMMA = 44, + //! Minus (-). + MINUS = 45, + //! Period (.). + PERIOD = 46, + //! Slash (/). + SLASH = 47, + //! Digit 0. + D0 = 48, + //! Digit 1. + D1 = 49, + //! Digit 2. + D2 = 50, + //! Digit 3. + D3 = 51, + //! Digit 4. + D4 = 52, + //! Digit 5. + D5 = 53, + //! Digit 6. + D6 = 54, + //! Digit 7. + D7 = 55, + //! Digit 8. + D8 = 56, + //! Digit 9. + D9 = 57, + //! Semicolon (;). + SEMICOLON = 59, + //! Equal sign (=). + EQUAL = 61, + //! Key 'A'. + A = 65, + //! Key 'B'. + B = 66, + //! Key 'C'. + C = 67, + //! Key 'D'. + D = 68, + //! Key 'E'. + E = 69, + //! Key 'F'. + F = 70, + //! Key 'G'. + G = 71, + //! Key 'H'. + H = 72, + //! Key 'I'. + I = 73, + //! Key 'J'. + J = 74, + //! Key 'K'. + K = 75, + //! Key 'L'. + L = 76, + //! Key 'M'. + M = 77, + //! Key 'N'. + N = 78, + //! Key 'O'. + O = 79, + //! Key 'P'. + P = 80, + //! Key 'Q'. + Q = 81, + //! Key 'R'. + R = 82, + //! Key 'S'. + S = 83, + //! Key 'T'. + T = 84, + //! Key 'U'. + U = 85, + //! Key 'V'. + V = 86, + //! Key 'W'. + W = 87, + //! Key 'X'. + X = 88, + //! Key 'Y'. + Y = 89, + //! Key 'Z'. + Z = 90, + //! Left bracket ([). + LEFT_BRACKET = 91, + //! Backslash (\). + BACKSLASH = 92, + //! Right bracket (]). + RIGHT_BRACKET = 93, + //! Grave accent (`). + GRAVE_ACCENT = 96, + //! Non-US key #1. + WORLD1 = 161, + //! Non-US key #2. + WORLD2 = 162, + //! Escape key. + ESCAPE = 256, + //! Enter key. + ENTER = 257, + //! Tab key. + TAB = 258, + //! Backspace key. + BACKSPACE = 259, + //! Insert key. + INSERT = 260, + //! Delete key. + DELETE = 261, + //! Right arrow key. + RIGHT = 262, + //! Left arrow key. + LEFT = 263, + //! Down arrow key. + DOWN = 264, + //! Up arrow key. + UP = 265, + //! Page Up key. + PAGE_UP = 266, + //! Page Down key. + PAGE_DOWN = 267, + //! Home key. + HOME = 268, + //! End key. + END = 269, + //! Caps Lock key. + CAPS_LOCK = 280, + //! Scroll Lock key. + SCROLL_LOCK = 281, + //! Num Lock key. + NUM_LOCK = 282, + //! Print Screen key. + PRINT_SCREEN = 283, + //! Pause key. + PAUSE = 284, + //! Function keys (F1-F25). + F1 = 290, F2 = 291, F3 = 292, F4 = 293, F5 = 294, + F6 = 295, F7 = 296, F8 = 297, F9 = 298, F10 = 299, + F11 = 300, F12 = 301, F13 = 302, F14 = 303, F15 = 304, + F16 = 305, F17 = 306, F18 = 307, F19 = 308, F20 = 309, + F21 = 310, F22 = 311, F23 = 312, F24 = 313, F25 = 314, + //! Keypad digits and operators. + KP0 = 320, KP1 = 321, KP2 = 322, KP3 = 323, KP4 = 324, + KP5 = 325, KP6 = 326, KP7 = 327, KP8 = 328, KP9 = 329, + KP_DECIMAL = 330, KP_DIVIDE = 331, KP_MULTIPLY = 332, + KP_SUBTRACT = 333, KP_ADD = 334, KP_ENTER = 335, KP_EQUAL = 336, + //! Modifier keys. + LEFT_SHIFT = 340, LEFT_CONTROL = 341, LEFT_ALT = 342, LEFT_SUPER = 343, + RIGHT_SHIFT = 344, RIGHT_CONTROL = 345, RIGHT_ALT = 346, RIGHT_SUPER = 347, + //! Menu key. + MENU = 348 }; -- cgit v1.2.3 From 8209678e20605936b2ce58331c1a65d8f23fee91 Mon Sep 17 00:00:00 2001 From: WBoerenkamps Date: Sat, 16 Nov 2024 15:26:48 +0100 Subject: make format --- src/crepe/api/EventManager.cpp | 13 +- src/crepe/api/EventManager.h | 2 +- src/crepe/api/EventManager.hpp | 15 +- src/crepe/api/IKeyListener.cpp | 72 ++++---- src/crepe/api/IKeyListener.h | 4 +- src/crepe/api/IMouseListener.cpp | 40 ++-- src/crepe/api/IMouseListener.h | 4 +- src/crepe/api/KeyCodes.h | 386 +++++++++++++++++++++------------------ 8 files changed, 295 insertions(+), 241 deletions(-) (limited to 'src/crepe/api/KeyCodes.h') diff --git a/src/crepe/api/EventManager.cpp b/src/crepe/api/EventManager.cpp index a04f08b..7f47938 100644 --- a/src/crepe/api/EventManager.cpp +++ b/src/crepe/api/EventManager.cpp @@ -8,10 +8,12 @@ EventManager & EventManager::get_instance() { } void EventManager::dispatch_events() { - using HandlersMap = std::unordered_map>>; + using HandlersMap = std::unordered_map< + int, std::vector>>; using HandlersVec = std::vector>; - for (auto event_it = this->events_queue.begin(); event_it != this->events_queue.end();) { + for (auto event_it = this->events_queue.begin(); + event_it != this->events_queue.end();) { std::unique_ptr & event = std::get<0>(*event_it); int channel = std::get<1>(*event_it); std::type_index event_type = std::get<2>(*event_it); @@ -25,7 +27,8 @@ void EventManager::dispatch_events() { auto handlers = handlers_map.find(channel); if (handlers != handlers_map.end()) { HandlersVec & callbacks = handlers->second; - for (auto handler_it = callbacks.begin(); handler_it != callbacks.end(); ++handler_it) { + for (auto handler_it = callbacks.begin(); + handler_it != callbacks.end(); ++handler_it) { if ((*handler_it)->exec(*event)) { event_it = events_queue.erase(event_it); event_handled = true; @@ -39,7 +42,8 @@ void EventManager::dispatch_events() { auto handlers_it = this->subscribers.find(event_type); if (handlers_it != this->subscribers.end()) { HandlersVec & handlers = handlers_it->second; - for (auto handler_it = handlers.begin(); handler_it != handlers.end(); ++handler_it) { + for (auto handler_it = handlers.begin(); + handler_it != handlers.end(); ++handler_it) { // remove event from queue since and continue when callback returns true if ((*handler_it)->exec(*event)) { event_it = this->events_queue.erase(event_it); @@ -55,4 +59,3 @@ void EventManager::dispatch_events() { } } } - diff --git a/src/crepe/api/EventManager.h b/src/crepe/api/EventManager.h index 1ff4031..783db62 100644 --- a/src/crepe/api/EventManager.h +++ b/src/crepe/api/EventManager.h @@ -11,7 +11,7 @@ #include "EventHandler.h" namespace crepe { - + /** * \class EventManager * \brief The EventManager class is responsible for managing the subscription, triggering, diff --git a/src/crepe/api/EventManager.hpp b/src/crepe/api/EventManager.hpp index 1e505f4..d901492 100644 --- a/src/crepe/api/EventManager.hpp +++ b/src/crepe/api/EventManager.hpp @@ -4,7 +4,8 @@ namespace crepe { template void EventManager::subscribe(EventHandler && callback, int channel) { - using HandlersMap = std::unordered_map>>; + using HandlersMap = std::unordered_map< + int, std::vector>>; using HandlersVec = std::vector>; std::type_index event_type = typeid(EventType); @@ -29,7 +30,8 @@ template void EventManager::queue_event(EventType && event, int channel) { std::type_index event_type = std::type_index(typeid(EventType)); - auto event_ptr = std::make_unique(std::forward(event)); + auto event_ptr + = std::make_unique(std::forward(event)); std::tuple, int, std::type_index> tuple( std::move(event_ptr), channel, event_type); @@ -38,7 +40,8 @@ void EventManager::queue_event(EventType && event, int channel) { template void EventManager::trigger_event(const EventType & event, int channel) { - using HandlersMap = std::unordered_map>>; + using HandlersMap = std::unordered_map< + int, std::vector>>; using HandlersVec = std::vector>; std::type_index event_type = std::type_index(typeid(EventType)); @@ -68,8 +71,10 @@ void EventManager::trigger_event(const EventType & event, int channel) { } template -void EventManager::unsubscribe(const EventHandler & callback, int channel) { - using HandlersMap = std::unordered_map>>; +void EventManager::unsubscribe(const EventHandler & callback, + int channel) { + using HandlersMap = std::unordered_map< + int, std::vector>>; using HandlersVec = std::vector>; std::type_index event_type(typeid(EventType)); diff --git a/src/crepe/api/IKeyListener.cpp b/src/crepe/api/IKeyListener.cpp index 81d30b8..cd255df 100644 --- a/src/crepe/api/IKeyListener.cpp +++ b/src/crepe/api/IKeyListener.cpp @@ -3,64 +3,68 @@ using namespace crepe; // Constructor with default channel -IKeyListener::IKeyListener() : channel(0), active(true), event_manager(EventManager::get_instance()) { - this->subscribe_events(); +IKeyListener::IKeyListener() + : channel(0), + active(true), + event_manager(EventManager::get_instance()) { + this->subscribe_events(); } // Constructor with specified channel -IKeyListener::IKeyListener(int channel) : channel(channel), active(true), event_manager(EventManager::get_instance()) { - this->subscribe_events(); +IKeyListener::IKeyListener(int channel) + : channel(channel), + active(true), + event_manager(EventManager::get_instance()) { + this->subscribe_events(); } // Destructor, unsubscribe events -IKeyListener::~IKeyListener() { - this->unsubscribe_events(); -} +IKeyListener::~IKeyListener() { this->unsubscribe_events(); } // Subscribe to key events void IKeyListener::subscribe_events() { - key_pressed_handler = [this](const KeyPressEvent& event) { - return this->on_key_pressed(event); - }; - key_released_handler = [this](const KeyReleaseEvent& event) { - return this->on_key_released(event); - }; + key_pressed_handler = [this](const KeyPressEvent & event) { + return this->on_key_pressed(event); + }; + key_released_handler = [this](const KeyReleaseEvent & event) { + return this->on_key_released(event); + }; - event_manager.subscribe( - std::move(this->key_pressed_handler), this->channel); - event_manager.subscribe( - std::move(this->key_released_handler), this->channel); + event_manager.subscribe(std::move(this->key_pressed_handler), + this->channel); + event_manager.subscribe( + std::move(this->key_released_handler), this->channel); } // Unsubscribe from key events void IKeyListener::unsubscribe_events() { - event_manager.unsubscribe( - this->key_pressed_handler, this->channel); - event_manager.unsubscribe( - this->key_released_handler, this->channel); + event_manager.unsubscribe(this->key_pressed_handler, + this->channel); + event_manager.unsubscribe(this->key_released_handler, + this->channel); } // Activate key listening void IKeyListener::activate_keys() { - if (this->active) { - return; - } - this->active = true; - this->subscribe_events(); + if (this->active) { + return; + } + this->active = true; + this->subscribe_events(); } // Deactivate key listening void IKeyListener::deactivate_keys() { - if (!this->active) { - return; - } - this->active = false; - this->unsubscribe_events(); + if (!this->active) { + return; + } + this->active = false; + this->unsubscribe_events(); } // Set a new channel for key events void IKeyListener::set_channel(int channel) { - this->unsubscribe_events(); - this->channel = channel; - this->subscribe_events(); + this->unsubscribe_events(); + this->channel = channel; + this->subscribe_events(); } diff --git a/src/crepe/api/IKeyListener.h b/src/crepe/api/IKeyListener.h index 77fbf1e..e170120 100644 --- a/src/crepe/api/IKeyListener.h +++ b/src/crepe/api/IKeyListener.h @@ -5,7 +5,7 @@ #include "EventManager.h" namespace crepe { - + /** * \class IKeyListener * \brief Interface for keyboard event handling in the application. @@ -78,7 +78,7 @@ private: EventHandler key_pressed_handler; //!< Key release event handler. EventHandler key_released_handler; - EventManager& event_manager; + EventManager & event_manager; }; } // namespace crepe diff --git a/src/crepe/api/IMouseListener.cpp b/src/crepe/api/IMouseListener.cpp index f49004a..bfa49f8 100644 --- a/src/crepe/api/IMouseListener.cpp +++ b/src/crepe/api/IMouseListener.cpp @@ -2,19 +2,17 @@ using namespace crepe; -IMouseListener::IMouseListener(int channel) - : event_manager(EventManager::get_instance()), channel(channel) { - this->subscribe_events(); +IMouseListener::IMouseListener(int channel) + : event_manager(EventManager::get_instance()), + channel(channel) { + this->subscribe_events(); } -IMouseListener::IMouseListener() - : event_manager(EventManager::get_instance()) { - this->subscribe_events(); +IMouseListener::IMouseListener() : event_manager(EventManager::get_instance()) { + this->subscribe_events(); } -IMouseListener::~IMouseListener() { - this->unsubscribe_events(); -} +IMouseListener::~IMouseListener() { this->unsubscribe_events(); } void IMouseListener::subscribe_events() { // Define handler lambdas and subscribe them @@ -32,18 +30,26 @@ void IMouseListener::subscribe_events() { }; // Subscribe event handlers (no need for std::move) - event_manager.subscribe(std::move(mouse_click_handler), this->channel); - event_manager.subscribe(std::move(mouse_press_handler), this->channel); - event_manager.subscribe(std::move(mouse_release_handler), this->channel); - event_manager.subscribe(std::move(mouse_move_handler), this->channel); + event_manager.subscribe(std::move(mouse_click_handler), + this->channel); + event_manager.subscribe(std::move(mouse_press_handler), + this->channel); + event_manager.subscribe(std::move(mouse_release_handler), + this->channel); + event_manager.subscribe(std::move(mouse_move_handler), + this->channel); } void IMouseListener::unsubscribe_events() { // Unsubscribe event handlers - event_manager.unsubscribe(mouse_click_handler, this->channel); - event_manager.unsubscribe(mouse_press_handler, this->channel); - event_manager.unsubscribe(mouse_release_handler, this->channel); - event_manager.unsubscribe(mouse_move_handler, this->channel); + event_manager.unsubscribe(mouse_click_handler, + this->channel); + event_manager.unsubscribe(mouse_press_handler, + this->channel); + event_manager.unsubscribe(mouse_release_handler, + this->channel); + event_manager.unsubscribe(mouse_move_handler, + this->channel); } void IMouseListener::activate_mouse() { diff --git a/src/crepe/api/IMouseListener.h b/src/crepe/api/IMouseListener.h index 3b9e317..37d2f00 100644 --- a/src/crepe/api/IMouseListener.h +++ b/src/crepe/api/IMouseListener.h @@ -5,7 +5,7 @@ #include "EventManager.h" namespace crepe { - + /** * \class IMouseListener * \brief Interface for mouse event handling in the application. @@ -116,7 +116,7 @@ private: EventHandler mouse_release_handler; //! Mouse move event handler. EventHandler mouse_move_handler; - EventManager& event_manager; + EventManager & event_manager; }; } //namespace crepe diff --git a/src/crepe/api/KeyCodes.h b/src/crepe/api/KeyCodes.h index a326527..feed0b2 100644 --- a/src/crepe/api/KeyCodes.h +++ b/src/crepe/api/KeyCodes.h @@ -1,186 +1,222 @@ #pragma once -//! \file InputEnums.h -//! \brief Defines enums for mouse buttons and keyboard keycodes used in the application. - //! \enum MouseButton //! \brief Enumeration for mouse button inputs, including standard and extended buttons. enum class MouseButton { - //! No mouse button input. - NONE = 0, - //! Left mouse button. - LEFT_MOUSE = 1, - //! Right mouse button. - RIGHT_MOUSE = 2, - //! Middle mouse button (scroll wheel press). - MIDDLE_MOUSE = 3, - //! First extended mouse button. - X1_MOUSE = 4, - //! Second extended mouse button. - X2_MOUSE = 5, - //! Scroll wheel upward movement. - SCROLL_UP = 6, - //! Scroll wheel downward movement. - SCROLL_DOWN = 7 + //! No mouse button input. + NONE = 0, + //! Left mouse button. + LEFT_MOUSE = 1, + //! Right mouse button. + RIGHT_MOUSE = 2, + //! Middle mouse button (scroll wheel press). + MIDDLE_MOUSE = 3, + //! First extended mouse button. + X1_MOUSE = 4, + //! Second extended mouse button. + X2_MOUSE = 5, + //! Scroll wheel upward movement. + SCROLL_UP = 6, + //! Scroll wheel downward movement. + SCROLL_DOWN = 7 }; //! \enum Keycode //! \brief Enumeration for keyboard key inputs, including printable characters, function keys, and keypad keys. enum class Keycode : int { - //! No key input. - NONE = 0, - //! Spacebar. - SPACE = 32, - //! Apostrophe ('). - APOSTROPHE = 39, - //! Comma (,). - COMMA = 44, - //! Minus (-). - MINUS = 45, - //! Period (.). - PERIOD = 46, - //! Slash (/). - SLASH = 47, - //! Digit 0. - D0 = 48, - //! Digit 1. - D1 = 49, - //! Digit 2. - D2 = 50, - //! Digit 3. - D3 = 51, - //! Digit 4. - D4 = 52, - //! Digit 5. - D5 = 53, - //! Digit 6. - D6 = 54, - //! Digit 7. - D7 = 55, - //! Digit 8. - D8 = 56, - //! Digit 9. - D9 = 57, - //! Semicolon (;). - SEMICOLON = 59, - //! Equal sign (=). - EQUAL = 61, - //! Key 'A'. - A = 65, - //! Key 'B'. - B = 66, - //! Key 'C'. - C = 67, - //! Key 'D'. - D = 68, - //! Key 'E'. - E = 69, - //! Key 'F'. - F = 70, - //! Key 'G'. - G = 71, - //! Key 'H'. - H = 72, - //! Key 'I'. - I = 73, - //! Key 'J'. - J = 74, - //! Key 'K'. - K = 75, - //! Key 'L'. - L = 76, - //! Key 'M'. - M = 77, - //! Key 'N'. - N = 78, - //! Key 'O'. - O = 79, - //! Key 'P'. - P = 80, - //! Key 'Q'. - Q = 81, - //! Key 'R'. - R = 82, - //! Key 'S'. - S = 83, - //! Key 'T'. - T = 84, - //! Key 'U'. - U = 85, - //! Key 'V'. - V = 86, - //! Key 'W'. - W = 87, - //! Key 'X'. - X = 88, - //! Key 'Y'. - Y = 89, - //! Key 'Z'. - Z = 90, - //! Left bracket ([). - LEFT_BRACKET = 91, - //! Backslash (\). - BACKSLASH = 92, - //! Right bracket (]). - RIGHT_BRACKET = 93, - //! Grave accent (`). - GRAVE_ACCENT = 96, - //! Non-US key #1. - WORLD1 = 161, - //! Non-US key #2. - WORLD2 = 162, - //! Escape key. - ESCAPE = 256, - //! Enter key. - ENTER = 257, - //! Tab key. - TAB = 258, - //! Backspace key. - BACKSPACE = 259, - //! Insert key. - INSERT = 260, - //! Delete key. - DELETE = 261, - //! Right arrow key. - RIGHT = 262, - //! Left arrow key. - LEFT = 263, - //! Down arrow key. - DOWN = 264, - //! Up arrow key. - UP = 265, - //! Page Up key. - PAGE_UP = 266, - //! Page Down key. - PAGE_DOWN = 267, - //! Home key. - HOME = 268, - //! End key. - END = 269, - //! Caps Lock key. - CAPS_LOCK = 280, - //! Scroll Lock key. - SCROLL_LOCK = 281, - //! Num Lock key. - NUM_LOCK = 282, - //! Print Screen key. - PRINT_SCREEN = 283, - //! Pause key. - PAUSE = 284, - //! Function keys (F1-F25). - F1 = 290, F2 = 291, F3 = 292, F4 = 293, F5 = 294, - F6 = 295, F7 = 296, F8 = 297, F9 = 298, F10 = 299, - F11 = 300, F12 = 301, F13 = 302, F14 = 303, F15 = 304, - F16 = 305, F17 = 306, F18 = 307, F19 = 308, F20 = 309, - F21 = 310, F22 = 311, F23 = 312, F24 = 313, F25 = 314, - //! Keypad digits and operators. - KP0 = 320, KP1 = 321, KP2 = 322, KP3 = 323, KP4 = 324, - KP5 = 325, KP6 = 326, KP7 = 327, KP8 = 328, KP9 = 329, - KP_DECIMAL = 330, KP_DIVIDE = 331, KP_MULTIPLY = 332, - KP_SUBTRACT = 333, KP_ADD = 334, KP_ENTER = 335, KP_EQUAL = 336, - //! Modifier keys. - LEFT_SHIFT = 340, LEFT_CONTROL = 341, LEFT_ALT = 342, LEFT_SUPER = 343, - RIGHT_SHIFT = 344, RIGHT_CONTROL = 345, RIGHT_ALT = 346, RIGHT_SUPER = 347, - //! Menu key. - MENU = 348 + //! No key input. + NONE = 0, + //! Spacebar. + SPACE = 32, + //! Apostrophe ('). + APOSTROPHE = 39, + //! Comma (,). + COMMA = 44, + //! Minus (-). + MINUS = 45, + //! Period (.). + PERIOD = 46, + //! Slash (/). + SLASH = 47, + //! Digit 0. + D0 = 48, + //! Digit 1. + D1 = 49, + //! Digit 2. + D2 = 50, + //! Digit 3. + D3 = 51, + //! Digit 4. + D4 = 52, + //! Digit 5. + D5 = 53, + //! Digit 6. + D6 = 54, + //! Digit 7. + D7 = 55, + //! Digit 8. + D8 = 56, + //! Digit 9. + D9 = 57, + //! Semicolon (;). + SEMICOLON = 59, + //! Equal sign (=). + EQUAL = 61, + //! Key 'A'. + A = 65, + //! Key 'B'. + B = 66, + //! Key 'C'. + C = 67, + //! Key 'D'. + D = 68, + //! Key 'E'. + E = 69, + //! Key 'F'. + F = 70, + //! Key 'G'. + G = 71, + //! Key 'H'. + H = 72, + //! Key 'I'. + I = 73, + //! Key 'J'. + J = 74, + //! Key 'K'. + K = 75, + //! Key 'L'. + L = 76, + //! Key 'M'. + M = 77, + //! Key 'N'. + N = 78, + //! Key 'O'. + O = 79, + //! Key 'P'. + P = 80, + //! Key 'Q'. + Q = 81, + //! Key 'R'. + R = 82, + //! Key 'S'. + S = 83, + //! Key 'T'. + T = 84, + //! Key 'U'. + U = 85, + //! Key 'V'. + V = 86, + //! Key 'W'. + W = 87, + //! Key 'X'. + X = 88, + //! Key 'Y'. + Y = 89, + //! Key 'Z'. + Z = 90, + //! Left bracket ([). + LEFT_BRACKET = 91, + //! Backslash (\). + BACKSLASH = 92, + //! Right bracket (]). + RIGHT_BRACKET = 93, + //! Grave accent (`). + GRAVE_ACCENT = 96, + //! Non-US key #1. + WORLD1 = 161, + //! Non-US key #2. + WORLD2 = 162, + //! Escape key. + ESCAPE = 256, + //! Enter key. + ENTER = 257, + //! Tab key. + TAB = 258, + //! Backspace key. + BACKSPACE = 259, + //! Insert key. + INSERT = 260, + //! Delete key. + DELETE = 261, + //! Right arrow key. + RIGHT = 262, + //! Left arrow key. + LEFT = 263, + //! Down arrow key. + DOWN = 264, + //! Up arrow key. + UP = 265, + //! Page Up key. + PAGE_UP = 266, + //! Page Down key. + PAGE_DOWN = 267, + //! Home key. + HOME = 268, + //! End key. + END = 269, + //! Caps Lock key. + CAPS_LOCK = 280, + //! Scroll Lock key. + SCROLL_LOCK = 281, + //! Num Lock key. + NUM_LOCK = 282, + //! Print Screen key. + PRINT_SCREEN = 283, + //! Pause key. + PAUSE = 284, + //! Function keys (F1-F25). + F1 = 290, + F2 = 291, + F3 = 292, + F4 = 293, + F5 = 294, + F6 = 295, + F7 = 296, + F8 = 297, + F9 = 298, + F10 = 299, + F11 = 300, + F12 = 301, + F13 = 302, + F14 = 303, + F15 = 304, + F16 = 305, + F17 = 306, + F18 = 307, + F19 = 308, + F20 = 309, + F21 = 310, + F22 = 311, + F23 = 312, + F24 = 313, + F25 = 314, + //! Keypad digits and operators. + KP0 = 320, + KP1 = 321, + KP2 = 322, + KP3 = 323, + KP4 = 324, + KP5 = 325, + KP6 = 326, + KP7 = 327, + KP8 = 328, + KP9 = 329, + KP_DECIMAL = 330, + KP_DIVIDE = 331, + KP_MULTIPLY = 332, + KP_SUBTRACT = 333, + KP_ADD = 334, + KP_ENTER = 335, + KP_EQUAL = 336, + //! Modifier keys. + LEFT_SHIFT = 340, + LEFT_CONTROL = 341, + LEFT_ALT = 342, + LEFT_SUPER = 343, + RIGHT_SHIFT = 344, + RIGHT_CONTROL = 345, + RIGHT_ALT = 346, + RIGHT_SUPER = 347, + //! Menu key. + MENU = 348 }; -- cgit v1.2.3 From 9a46acde813e00e574e70439795dedcdc9a8192a Mon Sep 17 00:00:00 2001 From: WBoerenkamps Date: Wed, 20 Nov 2024 18:41:50 +0100 Subject: dispatch fixed and priority added --- src/crepe/api/EventManager.cpp | 73 ++++++++------------- src/crepe/api/EventManager.hpp | 95 ++++++++++----------------- src/crepe/api/KeyCodes.h | 29 ++++++--- src/test/EventTest.cpp | 142 +---------------------------------------- 4 files changed, 84 insertions(+), 255 deletions(-) (limited to 'src/crepe/api/KeyCodes.h') diff --git a/src/crepe/api/EventManager.cpp b/src/crepe/api/EventManager.cpp index 27a304f..4f88e97 100644 --- a/src/crepe/api/EventManager.cpp +++ b/src/crepe/api/EventManager.cpp @@ -8,58 +8,37 @@ EventManager & EventManager::get_instance() { } void EventManager::dispatch_events() { - using HandlersMap - = std::unordered_map>>; - using HandlersVec = std::vector>; + for (auto event_it = this->events_queue.begin(); event_it != this->events_queue.end();) { + std::unique_ptr& event = (*event_it).event; + int channel = (*event_it).channel; + std::type_index event_type = (*event_it).type; - for (auto event_it = this->events_queue.begin(); event_it != this->events_queue.end();) { - std::unique_ptr & event = (*event_it).event; - int channel = (*event_it).channel; - std::type_index event_type = (*event_it).type; + bool event_handled = false; + auto handlers_it = this->subscribers.find(event_type); + if (handlers_it != this->subscribers.end()) { + std::vector& handlers = handlers_it->second; + + std::sort(handlers.begin(), handlers.end(), [](const CallbackEntry& a, const CallbackEntry& b) { + return a.priority > b.priority; + }); - bool event_handled = false; + for (auto handler_it = handlers.begin(); handler_it != handlers.end(); ++handler_it) { + // If callback is executed and returns true, remove the event from the queue + if ((*handler_it).callback->exec(*event)) { + event_it = this->events_queue.erase(event_it); + event_handled = true; + break; + } + } + } - if (channel) { - auto handlers_it = subscribers_by_event_id.find(event_type); - if (handlers_it != subscribers_by_event_id.end()) { - HandlersMap & handlers_map = handlers_it->second; - auto handlers = handlers_map.find(channel); - if (handlers != handlers_map.end()) { - HandlersVec & callbacks = handlers->second; - for (auto handler_it = callbacks.begin(); handler_it != callbacks.end(); - ++handler_it) { - if ((*handler_it)->exec(*event)) { - event_it = events_queue.erase(event_it); - event_handled = true; - break; - } - } - } - } - } else { - // Handle event for all channels - auto handlers_it = this->subscribers.find(event_type); - if (handlers_it != this->subscribers.end()) { - HandlersVec & handlers = handlers_it->second; - for (auto handler_it = handlers.begin(); handler_it != handlers.end(); - ++handler_it) { - // remove event from queue since and continue when callback returns true - if ((*handler_it)->exec(*event)) { - event_it = this->events_queue.erase(event_it); - event_handled = true; - break; - } - } - } - } - - if (!event_handled) { - ++event_it; - } - } + if (!event_handled) { + ++event_it; + } + } } + void EventManager::clear(){ this->subscribers.clear(); this->events_queue.clear(); - this->subscribers_by_event_id.clear(); } diff --git a/src/crepe/api/EventManager.hpp b/src/crepe/api/EventManager.hpp index 3a40336..481017d 100644 --- a/src/crepe/api/EventManager.hpp +++ b/src/crepe/api/EventManager.hpp @@ -4,17 +4,20 @@ namespace crepe { template void EventManager::subscribe(const EventHandler & callback, int channel, int priority) { - using HandlersVec = std::vector; std::type_index event_type = typeid(EventType); std::unique_ptr> handler = std::make_unique>(callback); - HandlersVec & handlers = this->subscribers[event_type]; + std::vector & handlers = this->subscribers[event_type]; handlers.emplace_back(CallbackEntry{ .callback = std::move(handler), .channel = channel, .priority = priority, }); + // Sort handlers by priority (highest first) + std::sort(handlers.begin(), handlers.end(), [](const CallbackEntry &a, const CallbackEntry &b) { + return a.priority > b.priority; + }); } template @@ -36,72 +39,44 @@ void EventManager::queue_event(const EventType & event, int channel,int priority template void EventManager::trigger_event(const EventType & event, int channel) { - using HandlersMap - = std::unordered_map>>; - using HandlersVec = std::vector>; + std::type_index event_type = typeid(EventType); - std::type_index event_type = typeid(EventType); - - if (channel == CHANNEL_ALL) { - HandlersMap & handlers_map = this->subscribers_by_event_id[event_type]; - auto handlers_it = handlers_map.find(channel); + auto handlers_it = this->subscribers.find(event_type); + if (handlers_it != this->subscribers.end()) { + const std::vector &handlers = handlers_it->second; - if (handlers_it != handlers_map.end()) { - HandlersVec & handlers = handlers_it->second; - for (auto it = handlers.begin(); it != handlers.end(); ++it) { - // stops when callback returns true - if ((*it)->exec(event)) { - break; - } - } - } - } else { - HandlersVec & handlers = this->subscribers[event_type]; - for (auto it = handlers.begin(); it != handlers.end(); ++it) { - // stops when callback returns true - if ((*it)->exec(event)) { - break; - } - } - } + for (const CallbackEntry &handler : handlers) { + if (handler.channel != channel && handler.channel != CHANNEL_ALL) { + continue; + } + if (handler.callback->exec(event)) { + break; + } + } + } } + template void EventManager::unsubscribe(const EventHandler & callback, int channel) { - using HandlersMap - = std::unordered_map>>; - using HandlersVec = std::vector>; + std::type_index event_type = typeid(EventType); + std::string handler_name = callback.target_type().name(); - std::type_index event_type = typeid(EventType); - std::string handler_name = callback.target_type().name(); + // Find the list of handlers for this event type + auto handlers_it = this->subscribers.find(event_type); + if (handlers_it != this->subscribers.end()) { + std::vector & handlers = handlers_it->second; - if (channel) { - auto subscriber_list = this->subscribers_by_event_id.find(event_type); - if (subscriber_list != this->subscribers_by_event_id.end()) { - HandlersMap & handlers_map = subscriber_list->second; - auto handlers = handlers_map.find(channel); - if (handlers != handlers_map.end()) { - HandlersVec & callbacks = handlers->second; - for (auto it = callbacks.begin(); it != callbacks.end(); ++it) { - if ((*it)->get_type() == handler_name) { - it = callbacks.erase(it); - return; - } - } - } - } - } else { - auto handlers_it = this->subscribers.find(event_type); - if (handlers_it != this->subscribers.end()) { - HandlersVec & handlers = handlers_it->second; - for (auto it = handlers.begin(); it != handlers.end(); ++it) { - if ((*it)->get_type() == handler_name) { - it = handlers.erase(it); - return; - } - } - } - } + for (auto it = handlers.begin(); it != handlers.end(); ) { + // Match based on handler type and channel + if (it->callback->get_type() == handler_name && it->channel == channel) { + it = handlers.erase(it); + return; + } + ++it; + } + } } + } // namespace crepe diff --git a/src/crepe/api/KeyCodes.h b/src/crepe/api/KeyCodes.h index feed0b2..16c2108 100644 --- a/src/crepe/api/KeyCodes.h +++ b/src/crepe/api/KeyCodes.h @@ -1,7 +1,6 @@ #pragma once -//! \enum MouseButton -//! \brief Enumeration for mouse button inputs, including standard and extended buttons. +//! Enumeration for mouse button inputs, including standard and extended buttons. enum class MouseButton { //! No mouse button input. NONE = 0, @@ -18,12 +17,11 @@ enum class MouseButton { //! Scroll wheel upward movement. SCROLL_UP = 6, //! Scroll wheel downward movement. - SCROLL_DOWN = 7 + SCROLL_DOWN = 7, }; -//! \enum Keycode -//! \brief Enumeration for keyboard key inputs, including printable characters, function keys, and keypad keys. -enum class Keycode : int { +//! Enumeration for keyboard key inputs, including printable characters, function keys, and keypad keys. +enum class Keycode { //! No key input. NONE = 0, //! Spacebar. @@ -164,7 +162,10 @@ enum class Keycode : int { PRINT_SCREEN = 283, //! Pause key. PAUSE = 284, - //! Function keys (F1-F25). + /** + * \name Function keys (F1-F25). + * \{ + */ F1 = 290, F2 = 291, F3 = 292, @@ -190,7 +191,11 @@ enum class Keycode : int { F23 = 312, F24 = 313, F25 = 314, - //! Keypad digits and operators. + /// \} + /** + * \name Keypad digits and operators. + * \{ + */ KP0 = 320, KP1 = 321, KP2 = 322, @@ -208,6 +213,11 @@ enum class Keycode : int { KP_ADD = 334, KP_ENTER = 335, KP_EQUAL = 336, + /// \} + /** + * \name Modifier keys. + * \{ + */ //! Modifier keys. LEFT_SHIFT = 340, LEFT_CONTROL = 341, @@ -217,6 +227,7 @@ enum class Keycode : int { RIGHT_CONTROL = 345, RIGHT_ALT = 346, RIGHT_SUPER = 347, + /// \} //! Menu key. - MENU = 348 + MENU = 348, }; diff --git a/src/test/EventTest.cpp b/src/test/EventTest.cpp index 19f6d2e..3a78590 100644 --- a/src/test/EventTest.cpp +++ b/src/test/EventTest.cpp @@ -105,8 +105,8 @@ TEST_F(EventManagerTest, EventManagerTest_priority_order) { // Subscribe handlers with different priorities event_manager.subscribe(handler_priority_1, CHANNEL_ALL, 1); - event_manager.subscribe(handler_priority_2, CHANNEL_ALL, 2); event_manager.subscribe(handler_priority_3, CHANNEL_ALL, 3); + event_manager.subscribe(handler_priority_2, CHANNEL_ALL, 2); // Trigger the event event_manager.trigger_event(MouseClickEvent{ @@ -242,9 +242,9 @@ TEST_F(EventManagerTest, EventManagerTest_dispatch_priority) { EXPECT_EQ(e.button, MouseButton::LEFT_MOUSE); return false; // Allows propagation }; - event_manager.subscribe(mouse_handler1,CHANNEL_ALL,1); event_manager.subscribe(mouse_handler2,CHANNEL_ALL,2); - event_manager.subscribe(mouse_handler2,CHANNEL_ALL,3); + event_manager.subscribe(mouse_handler1,CHANNEL_ALL,1); + event_manager.subscribe(mouse_handler3,CHANNEL_ALL,3); event_manager.queue_event(MouseClickEvent{ .mouse_x = 100, .mouse_y = 200, @@ -278,7 +278,6 @@ TEST_F(EventManagerTest, EventManagerTest_unsubscribe) { EXPECT_EQ(e.button, MouseButton::LEFT_MOUSE); return false; // Allows propagation }; - // Subscribe handlers event_manager.subscribe(mouse_handler1); event_manager.subscribe(mouse_handler2); @@ -333,138 +332,3 @@ TEST_F(EventManagerTest, EventManagerTest_unsubscribe) { EXPECT_FALSE(triggered2); // Handler 2 should NOT be triggered } -// TEST_F(EventManagerTest, OnKeyPressedTest) { -// MockKeyListener mock_key_listener; -// EventManager& event_manager = EventManager::get_instance(); - -// // Create the KeyPressEvent object -// KeyPressEvent key_event = KeyPressEvent{ -// .key = Keycode::A, -// .repeat = false -// }; - -// // Set up the mock expectation with direct object passing -// EXPECT_CALL(mock_key_listener, on_key_pressed(key_event)) -// .Times(1) // Expect it to be called exactly once -// .WillOnce(::testing::Return(true)); // Return value (can be true/false) - - -// // Queue the event -// event_manager.queue_event(key_event); - -// // Dispatch the event to trigger the mock -// event_manager.dispatch_events(); // Trigger event dispatch - -// // The mock will ensure the on_key_pressed method is called -// } - - - -// TEST_F(EventManagerTest, OnKeyReleaseTest) { -// MockKeyListener mock_key_listener; -// EventManager& event_manager = EventManager::get_instance(); - -// // Create the KeyPressEvent object -// KeyReleaseEvent key_event = KeyReleaseEvent{ -// .key = Keycode::A, -// }; - -// // Set up the mock expectation with direct object passing -// EXPECT_CALL(mock_key_listener, on_key_released(key_event)) -// .Times(1) // Expect it to be called exactly once -// .WillOnce(::testing::Return(true)); // Return value (can be true/false) - - -// // Queue the event -// event_manager.queue_event(key_event); - -// // Dispatch the event to trigger the mock -// event_manager.dispatch_events(); // Trigger event dispatch - -// // The mock will ensure the on_key_pressed method is called -// } - -// TEST_F(EventManagerTest, UnsubscribeEventsTest) { -// EventManager& event_manager = EventManager::get_instance(); -// KeyPressEvent key_event{ -// .key = Keycode::A, -// .repeat = false -// }; - -// // Create the mock listener -// MockKeyListener mock_key_listener; - -// // Set up the mock expectation that on_key_pressed will be called once initially -// EXPECT_CALL(mock_key_listener, on_key_pressed(key_event)) -// .Times(1) // Expect it to be called exactly once -// .WillOnce(::testing::Return(true)); // Return value (can be true/false) - -// event_manager.queue_event(key_event); -// event_manager.dispatch_events(); // Should trigger on_key_pressed once - -// // Now unsubscribe the listener -// event_manager.unsubscribe(std::bind(&MockKeyListener::on_key_pressed, &mock_key_listener, std::placeholders::_1)); - -// // Set up the expectation that on_key_pressed will NOT be called after unsubscribing -// EXPECT_CALL(mock_key_listener, on_key_pressed(key_event)) -// .Times(0); // Should not be called after unsubscribe - -// // Queue and dispatch the event again (after unsubscribe) -// event_manager.queue_event(key_event); -// event_manager.dispatch_events(); // Should NOT trigger on_key_pressed after unsubscribe -// } - -// TEST_F(EventManagerTest, OnMouseButtonPressedTest) { -// MockMouseListener mock_mouse_listener; -// EventManager& event_manager = EventManager::get_instance(); - -// // Create the MouseButtonPressEvent object -// MousePressEvent mouse_event{ -// .mouse_x = 100, -// .mouse_y = 150, -// .button = MouseButton::LEFT_MOUSE -// }; - -// // Set up the mock expectation with direct object passing -// EXPECT_CALL(mock_mouse_listener, on_mouse_pressed(mouse_event)) -// .Times(1) // Expect it to be called exactly once -// .WillOnce(::testing::Return(true)); // Return value (can be true/false) - -// // Queue the event -// event_manager.queue_event(mouse_event); - -// // Dispatch the event to trigger the mock -// event_manager.dispatch_events(); // Should trigger on_mouse_button_pressed once -// } - -// TEST_F(EventManagerTest, UnsubscribeMouseEventsTest) { -// EventManager& event_manager = EventManager::get_instance(); -// MousePressEvent mouse_event{ -// .mouse_x = 100, -// .mouse_y = 150, -// .button = MouseButton::LEFT_MOUSE -// }; - -// // Create the mock listener -// MockMouseListener mock_mouse_listener; - -// // Set up the mock expectation that on_mouse_button_pressed will be called once initially -// EXPECT_CALL(mock_mouse_listener, on_mouse_pressed(mouse_event)) -// .Times(1) // Expect it to be called exactly once -// .WillOnce(::testing::Return(true)); // Return value (can be true/false) - -// // Queue and dispatch the event (should trigger on_mouse_button_pressed) -// event_manager.queue_event(mouse_event); -// event_manager.dispatch_events(); // Should trigger on_mouse_button_pressed once - -// // Now unsubscribe the listener -// event_manager.unsubscribe(std::bind(&MockMouseListener::on_mouse_pressed, &mock_mouse_listener, std::placeholders::_1)); - -// // Set up the expectation that on_mouse_button_pressed will NOT be called after unsubscribing -// EXPECT_CALL(mock_mouse_listener, on_mouse_pressed(mouse_event)) -// .Times(0); // Should not be called after unsubscribe - -// // Queue and dispatch the event again (after unsubscribe) -// event_manager.queue_event(mouse_event); -// event_manager.dispatch_events(); // Should NOT trigger on_mouse_button_pressed after unsubscribe -// } -- cgit v1.2.3 From 1cc120a0031cfc19c35240da8390d9129b4d75a3 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Wed, 20 Nov 2024 21:55:19 +0100 Subject: fix doxygen comments on keycodes --- src/crepe/api/KeyCodes.h | 238 ++++++++++++++++------------------------------- 1 file changed, 79 insertions(+), 159 deletions(-) (limited to 'src/crepe/api/KeyCodes.h') diff --git a/src/crepe/api/KeyCodes.h b/src/crepe/api/KeyCodes.h index 16c2108..9e173e0 100644 --- a/src/crepe/api/KeyCodes.h +++ b/src/crepe/api/KeyCodes.h @@ -2,166 +2,88 @@ //! Enumeration for mouse button inputs, including standard and extended buttons. enum class MouseButton { - //! No mouse button input. - NONE = 0, - //! Left mouse button. - LEFT_MOUSE = 1, - //! Right mouse button. - RIGHT_MOUSE = 2, - //! Middle mouse button (scroll wheel press). - MIDDLE_MOUSE = 3, - //! First extended mouse button. - X1_MOUSE = 4, - //! Second extended mouse button. - X2_MOUSE = 5, - //! Scroll wheel upward movement. - SCROLL_UP = 6, - //! Scroll wheel downward movement. - SCROLL_DOWN = 7, + NONE = 0, //!< No mouse button input. + LEFT_MOUSE = 1, //!< Left mouse button. + RIGHT_MOUSE = 2, //!< Right mouse button. + MIDDLE_MOUSE = 3, //!< Middle mouse button (scroll wheel press). + X1_MOUSE = 4, //!< First extended mouse button. + X2_MOUSE = 5, //!< Second extended mouse button. + SCROLL_UP = 6, //!< Scroll wheel upward movement. + SCROLL_DOWN = 7, //!< Scroll wheel downward movement. }; //! Enumeration for keyboard key inputs, including printable characters, function keys, and keypad keys. enum class Keycode { - //! No key input. - NONE = 0, - //! Spacebar. - SPACE = 32, - //! Apostrophe ('). - APOSTROPHE = 39, - //! Comma (,). - COMMA = 44, - //! Minus (-). - MINUS = 45, - //! Period (.). - PERIOD = 46, - //! Slash (/). - SLASH = 47, - //! Digit 0. - D0 = 48, - //! Digit 1. - D1 = 49, - //! Digit 2. - D2 = 50, - //! Digit 3. - D3 = 51, - //! Digit 4. - D4 = 52, - //! Digit 5. - D5 = 53, - //! Digit 6. - D6 = 54, - //! Digit 7. - D7 = 55, - //! Digit 8. - D8 = 56, - //! Digit 9. - D9 = 57, - //! Semicolon (;). - SEMICOLON = 59, - //! Equal sign (=). - EQUAL = 61, - //! Key 'A'. - A = 65, - //! Key 'B'. - B = 66, - //! Key 'C'. - C = 67, - //! Key 'D'. - D = 68, - //! Key 'E'. - E = 69, - //! Key 'F'. - F = 70, - //! Key 'G'. - G = 71, - //! Key 'H'. - H = 72, - //! Key 'I'. - I = 73, - //! Key 'J'. - J = 74, - //! Key 'K'. - K = 75, - //! Key 'L'. - L = 76, - //! Key 'M'. - M = 77, - //! Key 'N'. - N = 78, - //! Key 'O'. - O = 79, - //! Key 'P'. - P = 80, - //! Key 'Q'. - Q = 81, - //! Key 'R'. - R = 82, - //! Key 'S'. - S = 83, - //! Key 'T'. - T = 84, - //! Key 'U'. - U = 85, - //! Key 'V'. - V = 86, - //! Key 'W'. - W = 87, - //! Key 'X'. - X = 88, - //! Key 'Y'. - Y = 89, - //! Key 'Z'. - Z = 90, - //! Left bracket ([). - LEFT_BRACKET = 91, - //! Backslash (\). - BACKSLASH = 92, - //! Right bracket (]). - RIGHT_BRACKET = 93, - //! Grave accent (`). - GRAVE_ACCENT = 96, - //! Non-US key #1. - WORLD1 = 161, - //! Non-US key #2. - WORLD2 = 162, - //! Escape key. - ESCAPE = 256, - //! Enter key. - ENTER = 257, - //! Tab key. - TAB = 258, - //! Backspace key. - BACKSPACE = 259, - //! Insert key. - INSERT = 260, - //! Delete key. - DELETE = 261, - //! Right arrow key. - RIGHT = 262, - //! Left arrow key. - LEFT = 263, - //! Down arrow key. - DOWN = 264, - //! Up arrow key. - UP = 265, - //! Page Up key. - PAGE_UP = 266, - //! Page Down key. - PAGE_DOWN = 267, - //! Home key. - HOME = 268, - //! End key. - END = 269, - //! Caps Lock key. - CAPS_LOCK = 280, - //! Scroll Lock key. - SCROLL_LOCK = 281, - //! Num Lock key. - NUM_LOCK = 282, - //! Print Screen key. - PRINT_SCREEN = 283, - //! Pause key. - PAUSE = 284, + NONE = 0, //!< No key input. + SPACE = 32, //!< Spacebar. + APOSTROPHE = 39, //!< Apostrophe ('). + COMMA = 44, //!< Comma (,). + MINUS = 45, //!< Minus (-). + PERIOD = 46, //!< Period (.). + SLASH = 47, //!< Slash (/). + D0 = 48, //!< Digit 0. + D1 = 49, //!< Digit 1. + D2 = 50, //!< Digit 2. + D3 = 51, //!< Digit 3. + D4 = 52, //!< Digit 4. + D5 = 53, //!< Digit 5. + D6 = 54, //!< Digit 6. + D7 = 55, //!< Digit 7. + D8 = 56, //!< Digit 8. + D9 = 57, //!< Digit 9. + SEMICOLON = 59, //!< Semicolon (;). + EQUAL = 61, //!< Equal sign (=). + A = 65, //!< Key 'A'. + B = 66, //!< Key 'B'. + C = 67, //!< Key 'C'. + D = 68, //!< Key 'D'. + E = 69, //!< Key 'E'. + F = 70, //!< Key 'F'. + G = 71, //!< Key 'G'. + H = 72, //!< Key 'H'. + I = 73, //!< Key 'I'. + J = 74, //!< Key 'J'. + K = 75, //!< Key 'K'. + L = 76, //!< Key 'L'. + M = 77, //!< Key 'M'. + N = 78, //!< Key 'N'. + O = 79, //!< Key 'O'. + P = 80, //!< Key 'P'. + Q = 81, //!< Key 'Q'. + R = 82, //!< Key 'R'. + S = 83, //!< Key 'S'. + T = 84, //!< Key 'T'. + U = 85, //!< Key 'U'. + V = 86, //!< Key 'V'. + W = 87, //!< Key 'W'. + X = 88, //!< Key 'X'. + Y = 89, //!< Key 'Y'. + Z = 90, //!< Key 'Z'. + LEFT_BRACKET = 91, //!< Left bracket ([). + BACKSLASH = 92, //!< Backslash (\). + RIGHT_BRACKET = 93, //!< Right bracket (]). + GRAVE_ACCENT = 96, //!< Grave accent (`). + WORLD1 = 161, //!< Non-US key #1. + WORLD2 = 162, //!< Non-US key #2. + ESCAPE = 256, //!< Escape key. + ENTER = 257, //!< Enter key. + TAB = 258, //!< Tab key. + BACKSPACE = 259, //!< Backspace key. + INSERT = 260, //!< Insert key. + DELETE = 261, //!< Delete key. + RIGHT = 262, //!< Right arrow key. + LEFT = 263, //!< Left arrow key. + DOWN = 264, //!< Down arrow key. + UP = 265, //!< Up arrow key. + PAGE_UP = 266, //!< Page Up key. + PAGE_DOWN = 267, //!< Page Down key. + HOME = 268, //!< Home key. + END = 269, //!< End key. + CAPS_LOCK = 280, //!< Caps Lock key. + SCROLL_LOCK = 281, //!< Scroll Lock key. + NUM_LOCK = 282, //!< Num Lock key. + PRINT_SCREEN = 283, //!< Print Screen key. + PAUSE = 284, //!< Pause key. /** * \name Function keys (F1-F25). * \{ @@ -218,7 +140,6 @@ enum class Keycode { * \name Modifier keys. * \{ */ - //! Modifier keys. LEFT_SHIFT = 340, LEFT_CONTROL = 341, LEFT_ALT = 342, @@ -228,6 +149,5 @@ enum class Keycode { RIGHT_ALT = 346, RIGHT_SUPER = 347, /// \} - //! Menu key. - MENU = 348, + MENU = 348, //!< Menu key. }; -- cgit v1.2.3