MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ on_release() [1/2]

void MayaFlux::Portal::Forma::Context::on_release ( uint32_t  id,
IO::Keys  key,
KeyFn  fn 
)

Called when a key is released while the element has focus.

Parameters
idElement id to bind to.
keyThe key to listen for.
fnCallback receiving element id.

Definition at line 84 of file Context.cpp.

85{
86 const int key_code = static_cast<int>(key);
87 m_callbacks[id].key_release[key_code] = std::move(fn);
88
89 if (!m_registered_keys[key_code].has_release) {
90 const std::string key_name = std::to_string(key_code);
92 std::make_shared<Vruta::Event>(
94 [this, key]() { handle_key_release(key); })),
95 m_name + "_key_release_" + key_name);
96 m_registered_keys[key_code].has_release = true;
97 }
98}
std::unordered_map< int, KeyHandlerState > m_registered_keys
Definition Context.hpp:244
void handle_key_release(IO::Keys key)
Definition Context.cpp:392
Vruta::EventManager & m_event_manager
Definition Context.hpp:248
std::shared_ptr< Core::Window > m_window
Definition Context.hpp:247
std::unordered_map< uint32_t, ElementCallbacks > m_callbacks
Definition Context.hpp:252
void add_event(const std::shared_ptr< Event > &event, const std::string &name="")
Add a event to the manager.
Vruta::Event key_released(std::shared_ptr< Core::Window > window, IO::Keys key, std::function< void()> callback)
Creates an Event coroutine that triggers on specific key release.

References MayaFlux::Vruta::EventManager::add_event(), handle_key_release(), MayaFlux::Kriya::key_released(), m_callbacks, m_event_manager, m_name, m_registered_keys, and m_window.

+ Here is the call graph for this function: