diff options
Diffstat (limited to 'src/frontend/mame/ui/menu.cpp')
-rw-r--r-- | src/frontend/mame/ui/menu.cpp | 162 |
1 files changed, 81 insertions, 81 deletions
diff --git a/src/frontend/mame/ui/menu.cpp b/src/frontend/mame/ui/menu.cpp index aa7d90f0ea3..b0a84d3a95c 100644 --- a/src/frontend/mame/ui/menu.cpp +++ b/src/frontend/mame/ui/menu.cpp @@ -911,110 +911,110 @@ void menu::handle_events(uint32_t flags, event &ev) { switch (local_menu_event.event_type) { - // if we are hovering over a valid item, select it with a single click - case ui_event::MOUSE_DOWN: - if (custom_mouse_down()) - return; + // if we are hovering over a valid item, select it with a single click + case ui_event::type::MOUSE_DOWN: + if (custom_mouse_down()) + return; - if ((flags & PROCESS_ONLYCHAR) == 0) + if ((flags & PROCESS_ONLYCHAR) == 0) + { + if (m_hover >= 0 && m_hover < m_items.size()) + m_selected = m_hover; + else if (m_hover == HOVER_ARROW_UP) { - if (m_hover >= 0 && m_hover < m_items.size()) - m_selected = m_hover; - else if (m_hover == HOVER_ARROW_UP) + if ((flags & FLAG_UI_DATS) != 0) { - if ((flags & FLAG_UI_DATS) != 0) - { - top_line -= m_visible_items - (last_item_visible() ? 1 : 0); - return; - } - m_selected -= m_visible_items; - if (m_selected < 0) - m_selected = 0; top_line -= m_visible_items - (last_item_visible() ? 1 : 0); + return; } - else if (m_hover == HOVER_ARROW_DOWN) + m_selected -= m_visible_items; + if (m_selected < 0) + m_selected = 0; + top_line -= m_visible_items - (last_item_visible() ? 1 : 0); + } + else if (m_hover == HOVER_ARROW_DOWN) + { + if ((flags & FLAG_UI_DATS) != 0) { - if ((flags & FLAG_UI_DATS) != 0) - { - top_line += m_visible_lines - 2; - return; - } - m_selected += m_visible_lines - 2 + is_first_selected(); - if (m_selected > m_items.size() - 1) - m_selected = m_items.size() - 1; top_line += m_visible_lines - 2; + return; } + m_selected += m_visible_lines - 2 + is_first_selected(); + if (m_selected > m_items.size() - 1) + m_selected = m_items.size() - 1; + top_line += m_visible_lines - 2; } - break; + } + break; - // if we are hovering over a valid item, fake a UI_SELECT with a double-click - case ui_event::MOUSE_DOUBLE_CLICK: - if (!(flags & PROCESS_ONLYCHAR) && m_hover >= 0 && m_hover < m_items.size()) + // if we are hovering over a valid item, fake a UI_SELECT with a double-click + case ui_event::type::MOUSE_DOUBLE_CLICK: + if (!(flags & PROCESS_ONLYCHAR) && m_hover >= 0 && m_hover < m_items.size()) + { + m_selected = m_hover; + ev.iptkey = IPT_UI_SELECT; + if (is_last_selected()) { - m_selected = m_hover; - ev.iptkey = IPT_UI_SELECT; - if (is_last_selected()) + ev.iptkey = IPT_UI_CANCEL; + stack_pop(); + } + stop = true; + } + break; + + // caught scroll event + case ui_event::type::MOUSE_WHEEL: + if (!(flags & PROCESS_ONLYCHAR)) + { + if (local_menu_event.zdelta > 0) + { + if ((flags & FLAG_UI_DATS) != 0) + { + top_line -= local_menu_event.num_lines; + return; + } + if (is_first_selected()) + select_last_item(); + else { - ev.iptkey = IPT_UI_CANCEL; - stack_pop(); + m_selected -= local_menu_event.num_lines; + validate_selection(-1); } - stop = true; + top_line -= (m_selected <= top_line && top_line != 0); + if (m_selected <= top_line && m_visible_items != m_visible_lines) + top_line -= local_menu_event.num_lines; } - break; - - // caught scroll event - case ui_event::MOUSE_WHEEL: - if (!(flags & PROCESS_ONLYCHAR)) + else { - if (local_menu_event.zdelta > 0) + if ((flags & FLAG_UI_DATS)) { - if ((flags & FLAG_UI_DATS) != 0) - { - top_line -= local_menu_event.num_lines; - return; - } - if (is_first_selected()) - select_last_item(); - else - { - m_selected -= local_menu_event.num_lines; - validate_selection(-1); - } - top_line -= (m_selected <= top_line && top_line != 0); - if (m_selected <= top_line && m_visible_items != m_visible_lines) - top_line -= local_menu_event.num_lines; + top_line += local_menu_event.num_lines; + return; } + if (is_last_selected()) + select_first_item(); else { - if ((flags & FLAG_UI_DATS)) - { - top_line += local_menu_event.num_lines; - return; - } - if (is_last_selected()) - select_first_item(); - else - { - m_selected += local_menu_event.num_lines; - validate_selection(1); - } - top_line += (m_selected >= top_line + m_visible_items + (top_line != 0)); - if (m_selected >= (top_line + m_visible_items + (top_line != 0))) - top_line += local_menu_event.num_lines; + m_selected += local_menu_event.num_lines; + validate_selection(1); } + top_line += (m_selected >= top_line + m_visible_items + (top_line != 0)); + if (m_selected >= (top_line + m_visible_items + (top_line != 0))) + top_line += local_menu_event.num_lines; } - break; + } + break; - // translate CHAR events into specials - case ui_event::IME_CHAR: - ev.iptkey = IPT_SPECIAL; - ev.unichar = local_menu_event.ch; - stop = true; - break; + // translate CHAR events into specials + case ui_event::type::IME_CHAR: + ev.iptkey = IPT_SPECIAL; + ev.unichar = local_menu_event.ch; + stop = true; + break; - // ignore everything else - default: - break; + // ignore everything else + default: + break; } } } |