Creates an Event coroutine that triggers on mouse scroll.
- Parameters
-
| window | Window to listen to |
| callback | Function to call on scroll with ScrollData |
- Returns
- Event coroutine that can be added to EventManager
Example:
[](double xoffset, double yoffset) {
});
Vruta::Event mouse_scrolled(std::shared_ptr< Core::Window > window, std::function< void(double, double)> callback)
Creates an Event coroutine that triggers on mouse scroll.
Definition at line 148 of file InputEvents.cpp.
151{
153 auto& source = window->get_event_source();
154
156 filter.
event_type = Core::WindowEventType::MOUSE_SCROLLED;
157
158 while (true) {
159 if (promise.should_terminate) {
160 break;
161 }
162
163 auto event = co_await EventAwaiter(source, filter);
164
165 if (auto* scroll_data = std::get_if<Core::WindowEvent::ScrollData>(&event.data)) {
166 callback(scroll_data->x_offset, scroll_data->y_offset);
167 }
168 }
169}
Event-domain promise accessor with optional NetworkSource ownership transfer.
std::optional< Core::WindowEventType > event_type
Filter criteria for window events.
References MayaFlux::Vruta::EventFilter::event_type, and MayaFlux::Core::MOUSE_SCROLLED.
Referenced by MayaFlux::on_scroll().