Called when a key is pressed while the element has focus.
Focus is transferred on mouse press. The callback fires only once per key press, even if the key is held.
- Parameters
-
| id | Element id to bind to. |
| key | The key to listen for. |
| fn | Callback receiving element id. |
Definition at line 68 of file Context.cpp.
69{
70 const int key_code = static_cast<int>(key);
71 m_callbacks[id].key_press[key_code] = std::move(fn);
72
74 const std::string key_name = std::to_string(key_code);
76 std::make_shared<Vruta::Event>(
79 m_name +
"_key_press_" + key_name);
81 }
82}
std::unordered_map< int, KeyHandlerState > m_registered_keys
void handle_key_press(IO::Keys key)
Vruta::EventManager & m_event_manager
std::shared_ptr< Core::Window > m_window
std::unordered_map< uint32_t, ElementCallbacks > m_callbacks
void add_event(const std::shared_ptr< Event > &event, const std::string &name="")
Add a event to the manager.
Vruta::Event key_pressed(std::shared_ptr< Core::Window > window, IO::Keys key, std::function< void()> callback)
Creates an Event coroutine that triggers on specific key press.
References MayaFlux::Vruta::EventManager::add_event(), handle_key_press(), MayaFlux::Kriya::key_pressed(), m_callbacks, m_event_manager, m_name, m_registered_keys, and m_window.