MayaFlux 0.2.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 101 of file InputEvents.cpp.

105{
106 auto& promise = co_await GetEventPromise {};
107 auto& source = window->get_event_source();
108
109 Vruta::EventFilter filter;
110 filter.event_type = Core::WindowEventType::MOUSE_BUTTON_RELEASED;
111 filter.button = button;
112
113 while (true) {
114 if (promise.should_terminate) {
115 break;
116 }
117
118 co_await EventAwaiter(source, filter);
119
120 auto [x, y] = source.get_mouse_position();
121 callback(x, y);
122 }
123}
Templated awaitable for accessing a coroutine's promise object.
std::optional< IO::MouseButtons > button
std::optional< Core::WindowEventType > event_type
Filter criteria for window events.

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

Referenced by MayaFlux::on_mouse_released().

+ Here is the caller graph for this function: