diff options
Diffstat (limited to 'src/osd/interface/uievents.h')
-rw-r--r-- | src/osd/interface/uievents.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/osd/interface/uievents.h b/src/osd/interface/uievents.h new file mode 100644 index 00000000000..199d612713a --- /dev/null +++ b/src/osd/interface/uievents.h @@ -0,0 +1,61 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles, Vas Crabb +/*************************************************************************** + + uievents.h + + OSD UI event interfaces + +***************************************************************************/ +#ifndef MAME_OSD_INTERFACE_UIEVENTS_H +#define MAME_OSD_INTERFACE_UIEVENTS_H + + +//************************************************************************** +// FORWARD DECLARATIONS +//************************************************************************** + +class render_target; + + +namespace osd { + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// UI event handler interface + +class ui_event_handler +{ +protected: + ~ui_event_handler() = default; + +public: + enum class pointer + { + UNKNOWN, + MOUSE, + PEN, + TOUCH + }; + + // window events + virtual void push_window_focus_event(render_target *target) = 0; + virtual void push_window_defocus_event(render_target *target) = 0; + + // legacy mouse events + virtual void push_mouse_wheel_event(render_target *target, s32 x, s32 y, short delta, int lines) = 0; + + // pointer events + virtual void push_pointer_update(render_target *target, pointer type, u16 ptrid, u16 device, s32 x, s32 y, u32 buttons, u32 pressed, u32 released, s16 clicks) = 0; + virtual void push_pointer_leave(render_target *target, pointer type, u16 ptrid, u16 device, s32 x, s32 y, u32 released, s16 clicks) = 0; + virtual void push_pointer_abort(render_target *target, pointer type, u16 ptrid, u16 device, s32 x, s32 y, u32 released, s16 clicks) = 0; + + // text input events + virtual void push_char_event(render_target *target, char32_t ch) = 0; +}; + +} // namespace osd + +#endif // MAME_OSD_INTERFACE_UIEVENTS_H |