Add touch events

This commit is contained in:
Nikita Lisitsa 2023-07-18 15:24:20 +03:00
parent a4e7b318ed
commit e37bdf6bd2
7 changed files with 21 additions and 0 deletions

View file

@ -16,6 +16,7 @@ namespace psemek::app
void on_event(mouse_move_event const &) override; void on_event(mouse_move_event const &) override;
void on_event(mouse_wheel_event const &) override; void on_event(mouse_wheel_event const &) override;
void on_event(mouse_button_event const &) override; void on_event(mouse_button_event const &) override;
void on_event(touch_event const &) override;
void on_event(key_event const &) override; void on_event(key_event const &) override;
void stop() override; void stop() override;

View file

@ -12,6 +12,7 @@ namespace psemek::app
virtual void on_event(mouse_move_event const &) {} virtual void on_event(mouse_move_event const &) {}
virtual void on_event(mouse_wheel_event const &) {} virtual void on_event(mouse_wheel_event const &) {}
virtual void on_event(mouse_button_event const &) {} virtual void on_event(mouse_button_event const &) {}
virtual void on_event(touch_event const &) {}
virtual void on_event(key_event const &) {} virtual void on_event(key_event const &) {}
virtual ~event_handler() {} virtual ~event_handler() {}

View file

@ -45,6 +45,9 @@ namespace psemek::app
state.mouse_button_down.erase(event.button); state.mouse_button_down.erase(event.button);
} }
inline void apply(event_state &, touch_event const &)
{}
inline void apply(event_state & state, key_event const & event) inline void apply(event_state & state, key_event const & event)
{ {
if (event.down) if (event.down)

View file

@ -38,6 +38,11 @@ namespace psemek::app
bool down; bool down;
}; };
struct touch_event
{
geom::point<int, 2> position;
};
enum class keycode enum class keycode
{ {
// TODO // TODO

View file

@ -14,6 +14,7 @@ namespace psemek::app
void on_event(mouse_move_event const &) override; void on_event(mouse_move_event const &) override;
void on_event(mouse_wheel_event const &) override; void on_event(mouse_wheel_event const &) override;
void on_event(mouse_button_event const &) override; void on_event(mouse_button_event const &) override;
void on_event(touch_event const &) override;
void on_event(key_event const &) override; void on_event(key_event const &) override;
void update() override; void update() override;

View file

@ -28,6 +28,11 @@ namespace psemek::app
apply(state_, event); apply(state_, event);
} }
void application_base::on_event(touch_event const & event)
{
apply(state_, event);
}
void application_base::on_event(key_event const & event) void application_base::on_event(key_event const & event)
{ {
apply(state_, event); apply(state_, event);

View file

@ -28,6 +28,11 @@ namespace psemek::app
on_event_impl(event); on_event_impl(event);
} }
void scene_application::on_event(touch_event const & event)
{
on_event_impl(event);
}
void scene_application::on_event(key_event const & event) void scene_application::on_event(key_event const & event)
{ {
on_event_impl(event); on_event_impl(event);