summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/interface/uievents.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/interface/uievents.h')
-rw-r--r--src/osd/interface/uievents.h61
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