summaryrefslogtreecommitdiffstats
path: root/src/emu
diff options
context:
space:
mode:
author npwoods <npwoods@mess.org>2019-07-21 12:44:58 -0400
committer npwoods <npwoods@mess.org>2019-07-21 15:22:19 -0400
commitd580d86073c1d68f9abef809ff25a25487270cb5 (patch)
treea601439d207275d3554e0c3a7cd620b8ee4c3465 /src/emu
parent5733eb5488409aaf9967b39c7c23468679496d9e (diff)
Added ui_input_manager::[set_]presses_enabled() and exposed to LUA
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/uiinput.cpp17
-rw-r--r--src/emu/uiinput.h5
2 files changed, 18 insertions, 4 deletions
diff --git a/src/emu/uiinput.cpp b/src/emu/uiinput.cpp
index 78cc662022a..e6b0920e926 100644
--- a/src/emu/uiinput.cpp
+++ b/src/emu/uiinput.cpp
@@ -34,6 +34,7 @@ enum
ui_input_manager::ui_input_manager(running_machine &machine)
: m_machine(machine)
+ , m_presses_enabled(true)
, m_current_mouse_target(nullptr)
, m_current_mouse_down(false)
, m_current_mouse_field(nullptr)
@@ -62,12 +63,20 @@ ui_input_manager::ui_input_manager(running_machine &machine)
void ui_input_manager::frame_update()
{
- /* update the state of all the UI keys */
+ // update the state of all the UI keys
for (ioport_type code = ioport_type(IPT_UI_FIRST + 1); code < IPT_UI_LAST; ++code)
{
- bool pressed = machine().ioport().type_pressed(code);
- if (!pressed || m_seqpressed[code] != SEQ_PRESSED_RESET)
- m_seqpressed[code] = pressed;
+ if (m_presses_enabled)
+ {
+ bool pressed = machine().ioport().type_pressed(code);
+ if (!pressed || m_seqpressed[code] != SEQ_PRESSED_RESET)
+ m_seqpressed[code] = pressed;
+ }
+ else
+ {
+ // UI key presses are disabled
+ m_seqpressed[code] = false;
+ }
}
// perform mouse hit testing
diff --git a/src/emu/uiinput.h b/src/emu/uiinput.h
index 2a7aeeff084..1504133b13d 100644
--- a/src/emu/uiinput.h
+++ b/src/emu/uiinput.h
@@ -78,6 +78,10 @@ public:
/* return true if a key down for the given user interface sequence is detected */
bool pressed(int code);
+ // enable/disable UI key presses
+ bool presses_enabled() const { return m_presses_enabled; }
+ void set_presses_enabled(bool enabled) { m_presses_enabled = enabled; }
+
/* return true if a key down for the given user interface sequence is detected, or if
autorepeat at the given speed is triggered */
bool pressed_repeat(int code, int speed);
@@ -104,6 +108,7 @@ private:
running_machine & m_machine; // reference to our machine
/* pressed states; retrieved with ui_input_pressed() */
+ bool m_presses_enabled;
osd_ticks_t m_next_repeat[IPT_COUNT];
u8 m_seqpressed[IPT_COUNT];