summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/ui/menu.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2020-10-10 03:11:01 +1100
committer Vas Crabb <vas@vastheman.com>2020-10-10 03:11:01 +1100
commitd822e7ec4ad29eeb7724e9249ef97a7220f541e0 (patch)
tree3db9fd33235502b2bef495a342efb949f813de24 /src/frontend/mame/ui/menu.cpp
parent7ae53fff264c9d4c75a06a2edebd5346590e138b (diff)
Miscellaneous cleanup:
* osd/windows: Use steady clock for timing double-clicks. * emu/uiinput.cpp: Made the event type a scoped enum.
Diffstat (limited to 'src/frontend/mame/ui/menu.cpp')
-rw-r--r--src/frontend/mame/ui/menu.cpp162
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;
}
}
}