diff options
author | Vas Crabb <vas@vastheman.com> | 2021-03-12 01:15:08 +1100 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2021-03-12 01:15:08 +1100 |
commit | 4cf96da22c09651c1da2b27ee61028d558e7af49 (patch) | |
tree | 4482cdc706be33b29d050fb8b0f84c457ba20ba9 /src/emu | |
parent | b38a77bca54c007f995b9bb47687354d154b6be5 (diff) |
-A few incremental UI code improvements:
* Simplified message when toggling UI controls.
* Show actual configured UI toggle key, not misleading hard-coded text.
* Push window activated/deactivated events to UI manager.
* Simplified SDL window event handling code - events are pretty precise.
-Miscellaneous code cleanup.
Diffstat (limited to 'src/emu')
-rw-r--r-- | src/emu/uiinput.cpp | 42 | ||||
-rw-r--r-- | src/emu/uiinput.h | 29 |
2 files changed, 49 insertions, 22 deletions
diff --git a/src/emu/uiinput.cpp b/src/emu/uiinput.cpp index 497ce3e7030..d1398591687 100644 --- a/src/emu/uiinput.cpp +++ b/src/emu/uiinput.cpp @@ -295,11 +295,37 @@ g_profiler.stop(); } /*------------------------------------------------- + push_window_focus_event - pushes a focus + event to the specified render_target +-------------------------------------------------*/ + +void ui_input_manager::push_window_focus_event(render_target *target) +{ + ui_event event = { ui_event::type::NONE }; + event.event_type = ui_event::type::WINDOW_FOCUS; + event.target = target; + push_event(event); +} + +/*------------------------------------------------- + push_window_defocus_event - pushes a defocus + event to the specified render_target +-------------------------------------------------*/ + +void ui_input_manager::push_window_defocus_event(render_target *target) +{ + ui_event event = { ui_event::type::NONE }; + event.event_type = ui_event::type::WINDOW_DEFOCUS; + event.target = target; + push_event(event); +} + +/*------------------------------------------------- push_mouse_move_event - pushes a mouse move event to the specified render_target -------------------------------------------------*/ -void ui_input_manager::push_mouse_move_event(render_target* target, s32 x, s32 y) +void ui_input_manager::push_mouse_move_event(render_target *target, s32 x, s32 y) { ui_event event = { ui_event::type::NONE }; event.event_type = ui_event::type::MOUSE_MOVE; @@ -314,7 +340,7 @@ void ui_input_manager::push_mouse_move_event(render_target* target, s32 x, s32 y mouse leave event to the specified render_target -------------------------------------------------*/ -void ui_input_manager::push_mouse_leave_event(render_target* target) +void ui_input_manager::push_mouse_leave_event(render_target *target) { ui_event event = { ui_event::type::NONE }; event.event_type = ui_event::type::MOUSE_LEAVE; @@ -327,7 +353,7 @@ void ui_input_manager::push_mouse_leave_event(render_target* target) down event to the specified render_target -------------------------------------------------*/ -void ui_input_manager::push_mouse_down_event(render_target* target, s32 x, s32 y) +void ui_input_manager::push_mouse_down_event(render_target *target, s32 x, s32 y) { ui_event event = { ui_event::type::NONE }; event.event_type = ui_event::type::MOUSE_DOWN; @@ -342,7 +368,7 @@ void ui_input_manager::push_mouse_down_event(render_target* target, s32 x, s32 y down event to the specified render_target -------------------------------------------------*/ -void ui_input_manager::push_mouse_up_event(render_target* target, s32 x, s32 y) +void ui_input_manager::push_mouse_up_event(render_target *target, s32 x, s32 y) { ui_event event = { ui_event::type::NONE }; event.event_type = ui_event::type::MOUSE_UP; @@ -357,7 +383,7 @@ push_mouse_down_event - pushes a mouse down event to the specified render_target -------------------------------------------------*/ -void ui_input_manager::push_mouse_rdown_event(render_target* target, s32 x, s32 y) +void ui_input_manager::push_mouse_rdown_event(render_target *target, s32 x, s32 y) { ui_event event = { ui_event::type::NONE }; event.event_type = ui_event::type::MOUSE_RDOWN; @@ -372,7 +398,7 @@ push_mouse_down_event - pushes a mouse down event to the specified render_target -------------------------------------------------*/ -void ui_input_manager::push_mouse_rup_event(render_target* target, s32 x, s32 y) +void ui_input_manager::push_mouse_rup_event(render_target *target, s32 x, s32 y) { ui_event event = { ui_event::type::NONE }; event.event_type = ui_event::type::MOUSE_RUP; @@ -387,7 +413,7 @@ void ui_input_manager::push_mouse_rup_event(render_target* target, s32 x, s32 y) a mouse double-click event to the specified render_target -------------------------------------------------*/ -void ui_input_manager::push_mouse_double_click_event(render_target* target, s32 x, s32 y) +void ui_input_manager::push_mouse_double_click_event(render_target *target, s32 x, s32 y) { ui_event event = { ui_event::type::NONE }; event.event_type = ui_event::type::MOUSE_DOUBLE_CLICK; @@ -401,7 +427,7 @@ void ui_input_manager::push_mouse_double_click_event(render_target* target, s32 push_char_event - pushes a char event to the specified render_target -------------------------------------------------*/ -void ui_input_manager::push_char_event(render_target* target, char32_t ch) +void ui_input_manager::push_char_event(render_target *target, char32_t ch) { ui_event event = { ui_event::type::NONE }; event.event_type = ui_event::type::IME_CHAR; diff --git a/src/emu/uiinput.h b/src/emu/uiinput.h index 17747fc9f98..29b18d06d30 100644 --- a/src/emu/uiinput.h +++ b/src/emu/uiinput.h @@ -15,12 +15,6 @@ /*************************************************************************** - CONSTANTS -***************************************************************************/ - -#define EVENT_QUEUE_SIZE 128 - -/*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ @@ -29,6 +23,8 @@ struct ui_event enum class type { NONE, + WINDOW_FOCUS, + WINDOW_DEFOCUS, MOUSE_MOVE, MOUSE_LEAVE, MOUSE_DOWN, @@ -90,20 +86,25 @@ public: running_machine &machine() const { return m_machine; } // queueing events - void push_mouse_move_event(render_target* target, s32 x, s32 y); - void push_mouse_leave_event(render_target* target); - void push_mouse_down_event(render_target* target, s32 x, s32 y); - void push_mouse_up_event(render_target* target, s32 x, s32 y); - void push_mouse_rdown_event(render_target* target, s32 x, s32 y); - void push_mouse_rup_event(render_target* target, s32 x, s32 y); - void push_mouse_double_click_event(render_target* target, s32 x, s32 y); - void push_char_event(render_target* target, char32_t ch); + void push_window_focus_event(render_target *target); + void push_window_defocus_event(render_target *target); + void push_mouse_move_event(render_target *target, s32 x, s32 y); + void push_mouse_leave_event(render_target *target); + void push_mouse_down_event(render_target *target, s32 x, s32 y); + void push_mouse_up_event(render_target *target, s32 x, s32 y); + void push_mouse_rdown_event(render_target *target, s32 x, s32 y); + void push_mouse_rup_event(render_target *target, s32 x, s32 y); + void push_mouse_double_click_event(render_target *target, s32 x, s32 y); + void push_char_event(render_target *target, char32_t ch); void push_mouse_wheel_event(render_target *target, s32 x, s32 y, short delta, int ucNumLines); void mark_all_as_pressed(); private: + // constants + constexpr static unsigned EVENT_QUEUE_SIZE = 128; + // internal state running_machine & m_machine; // reference to our machine |