diff options
Diffstat (limited to 'src/emu/ui/sliders.cpp')
-rw-r--r-- | src/emu/ui/sliders.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/emu/ui/sliders.cpp b/src/emu/ui/sliders.cpp index e494213aa1b..d53ad402943 100644 --- a/src/emu/ui/sliders.cpp +++ b/src/emu/ui/sliders.cpp @@ -17,9 +17,9 @@ #include "ui/sliders.h" -ui_menu_sliders::ui_menu_sliders(running_machine &machine, render_container *container, bool _menuless_mode) : ui_menu(machine, container) +ui_menu_sliders::ui_menu_sliders(running_machine &machine, render_container *container, bool menuless_mode) : ui_menu(machine, container) { - menuless_mode = hidden = _menuless_mode; + m_menuless_mode = m_hidden = menuless_mode; } ui_menu_sliders::~ui_menu_sliders() @@ -35,7 +35,7 @@ void ui_menu_sliders::handle() const ui_menu_event *menu_event; /* process the menu */ - menu_event = process(UI_MENU_PROCESS_LR_REPEAT | (hidden ? UI_MENU_PROCESS_CUSTOM_ONLY : 0)); + menu_event = process(UI_MENU_PROCESS_LR_REPEAT | (m_hidden ? UI_MENU_PROCESS_CUSTOM_ONLY : 0)); if (menu_event != nullptr) { /* handle keys if there is a valid item selected */ @@ -49,10 +49,10 @@ void ui_menu_sliders::handle() { /* toggle visibility */ case IPT_UI_ON_SCREEN_DISPLAY: - if (menuless_mode) + if (m_menuless_mode) ui_menu::stack_pop(machine()); else - hidden = !hidden; + m_hidden = !m_hidden; break; /* decrease value */ @@ -103,19 +103,25 @@ void ui_menu_sliders::handle() } /* if we are selecting an invalid item and we are hidden, skip to the next one */ - else if (hidden) + else if (m_hidden) { /* if we got here via up or page up, select the previous item */ if (menu_event->iptkey == IPT_UI_UP || menu_event->iptkey == IPT_UI_PAGE_UP) { - selected = (selected + item.size() - 1) % item.size(); + do + { + selected = (selected + item.size() - 1) % item.size(); + } while(((slider_state&)item[selected]).hidden); validate_selection(-1); } /* otherwise select the next item */ else if (menu_event->iptkey == IPT_UI_DOWN || menu_event->iptkey == IPT_UI_PAGE_DOWN) { - selected = (selected + 1) % item.size(); + do + { + selected = (selected + 1) % item.size(); + } while(((slider_state&)item[selected]).hidden); validate_selection(1); } } @@ -252,5 +258,5 @@ UINT32 ui_menu_sliders::ui_handler(running_machine &machine, render_container *c ui_menu::stack_pop(machine); ui_menu_sliders *uim = dynamic_cast<ui_menu_sliders *>(menu_stack); - return uim && uim->menuless_mode ? 0 : UI_HANDLER_CANCEL; + return uim && uim->m_menuless_mode ? 0 : UI_HANDLER_CANCEL; } |