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

◆ mouse_released()

MAYAFLUX_API Vruta::Event MayaFlux::Kriya::mouse_released ( std::shared_ptr< Core::Window window,
IO::MouseButtons  button,
std::function< void(double, double)>  callback 
)

Creates an Event coroutine that triggers on specific mouse button release.

Parameters
windowWindow to listen to
buttonMouse button to wait for
callbackFunction to call on button release
Returns
Event coroutine that can be added to EventManager

Example:

[](double x, double y) {
// Handle right mouse button release at (x, y)
});
Vruta::Event mouse_released(std::shared_ptr< Core::Window > window, IO::MouseButtons button, std::function< void(double, double)> callback)
Creates an Event coroutine that triggers on specific mouse button release.

Definition at line 126 of file InputEvents.cpp.

130{
131 auto& promise = co_await GetEventPromise {};
132 auto& source = window->get_event_source();
133
135 filter.event_type = Core::WindowEventType::MOUSE_BUTTON_RELEASED;
136 filter.button = button;
137
138 while (true) {
139 if (promise.should_terminate) {
140 break;
141 }
142
143 co_await WindowEventAwaiter(source, filter);
144
145 auto [x, y] = source.get_mouse_position();
146 callback(x, y);
147 }
148}
Event-domain promise accessor with optional NetworkSource ownership transfer.
std::optional< Core::WindowEventType > event_type
std::optional< IO::MouseButtons > button
Filter criteria for GLFW window input events.

References MayaFlux::Vruta::WindowEventFilter::button, MayaFlux::Vruta::WindowEventFilter::event_type, and MayaFlux::Core::MOUSE_BUTTON_RELEASED.

Referenced by MayaFlux::Nexus::Wiring::finalise(), MayaFlux::on_mouse_released(), and MayaFlux::Portal::Forma::Context::register_handlers().

+ Here is the caller graph for this function: