diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-23 19:54:08 +0200 |
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-23 19:54:08 +0200 |
| commit | 4edf238a0d92e258cc6e11aa2aa4372613929213 (patch) | |
| tree | 86cec2dae523db8b443333641384ed0c67c3f9af /main/floormat-events.cpp | |
| parent | fe5cdbe0fa48e14154be89e89e041a02f842d3b1 (diff) | |
a
Diffstat (limited to 'main/floormat-events.cpp')
| -rw-r--r-- | main/floormat-events.cpp | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/main/floormat-events.cpp b/main/floormat-events.cpp index 8d5fa61a..527a979a 100644 --- a/main/floormat-events.cpp +++ b/main/floormat-events.cpp @@ -17,53 +17,55 @@ void main_impl::viewportEvent(Platform::Sdl2Application::ViewportEvent& event) void main_impl::mousePressEvent(Platform::Sdl2Application::MouseEvent& event) { - event. - if (app.on_mouse_down()) + if (app.on_mouse_down(mouse_button_event{event.position(), + (SDL_Keymod)(std::uint16_t)event.modifiers(), + mouse_button(event.button()), + std::uint8_t(std::min(255, event.clickCount()))})) return event.setAccepted(); } void main_impl::mouseReleaseEvent(Platform::Sdl2Application::MouseEvent& event) { - if (_imgui.handleMouseReleaseEvent(event)) + if (app.on_mouse_down({event.position(), + (SDL_Keymod)(std::uint16_t)event.modifiers(), + mouse_button(event.button()), + std::uint8_t(std::min(255, event.clickCount()))})) return event.setAccepted(); - do_mouse_release((int)event.button()); } void main_impl::mouseMoveEvent(Platform::Sdl2Application::MouseMoveEvent& event) { - _cursor_in_imgui = _imgui.handleMouseMoveEvent(event); - if (_cursor_in_imgui) - _cursor_pixel = std::nullopt; - else - _cursor_pixel = event.position(); - recalc_cursor_tile(); - if (_cursor_tile) - do_mouse_move(*_cursor_tile); + if (app.on_mouse_move({event.position(), event.relativePosition(), + (mouse_button)(std::uint8_t)(std::uint32_t)event.buttons(), + (SDL_Keymod)(std::uint16_t)event.modifiers()})) + return event.setAccepted(); } void main_impl::mouseScrollEvent(Platform::Sdl2Application::MouseScrollEvent& event) { - if (_imgui.handleMouseScrollEvent(event)) + if (app.on_mouse_scroll(mouse_scroll_event{event.offset(), event.position(), + (SDL_Keymod)(std::uint16_t)event.modifiers()})) return event.setAccepted(); } void main_impl::textInputEvent(Platform::Sdl2Application::TextInputEvent& event) { - if (_imgui.handleTextInputEvent(event)) - { - keys = {}; - event.setAccepted(); - } + if (app.on_text_input_event({event.text()})) + return event.setAccepted(); +} + +void main_impl::textEditingEvent(Platform::Sdl2Application::TextEditingEvent& event) +{ + if (app.on_text_editing_event({event.text(), event.start(), event.length()})) + return event.setAccepted(); } void main_impl::keyPressEvent(Platform::Sdl2Application::KeyEvent& event) { - if (_imgui.handleKeyPressEvent(event)) - { - keys = {}; + if (app.on_key_down({(SDL_Keycode)(std::uint32_t)event.key(), + (SDL_Keymod)(std::uint16_t)event.modifiers(), + event.isRepeated()})) return event.setAccepted(); - } - do_key(event.key(), event.modifiers(), true, event.isRepeated()); } void main_impl::keyReleaseEvent(Platform::Sdl2Application::KeyEvent& event) |
