summaryrefslogtreecommitdiffhomepage
path: root/main/floormat-events.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-10-23 19:54:08 +0200
committerStanislaw Halik <sthalik@misaki.pl>2022-10-23 19:54:08 +0200
commit4edf238a0d92e258cc6e11aa2aa4372613929213 (patch)
tree86cec2dae523db8b443333641384ed0c67c3f9af /main/floormat-events.cpp
parentfe5cdbe0fa48e14154be89e89e041a02f842d3b1 (diff)
a
Diffstat (limited to 'main/floormat-events.cpp')
-rw-r--r--main/floormat-events.cpp48
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)