Previous 199869 Revisions Next

r29560 Saturday 12th April, 2014 at 12:50:07 UTC by Nathan Woods
Fixing menubar issue when pressing 'right' in a submenu
[/branches/new_menus/src/emu/ui]menubar.c menubar.h

branches/new_menus/src/emu/ui/menubar.c
r29559r29560
255255   int code_next_menu = IPT_INVALID;
256256   int code_child_menu = IPT_INVALID;
257257   int code_parent_menu = IPT_INVALID;
258   int code_previous_peer = IPT_INVALID;
259   int code_next_peer = IPT_INVALID;
258   int code_previous_sub_menu = IPT_INVALID;
259   int code_next_sub_menu = IPT_INVALID;
260260   int code_selected = (m_selected_item && m_selected_item->is_invokable())
261261      ? IPT_UI_SELECT
262262      : IPT_INVALID;
r29559r29560
279279         code_next_menu = IPT_UI_DOWN;
280280         if (m_selected_item->child())
281281            code_child_menu = IPT_UI_SELECT;
282         code_previous_peer = IPT_UI_LEFT;
283         code_next_peer = IPT_UI_RIGHT;
282         code_previous_sub_menu = IPT_UI_LEFT;
283         code_next_sub_menu = IPT_UI_RIGHT;
284284         if (m_selected_item->parent()->is_sub_menu())
285285            code_parent_menu = IPT_UI_LEFT;
286286      }
r29559r29560
297297      result = walk_selection_escape();
298298   else if (input_pressed_safe(code_parent_menu))
299299      result = walk_selection_parent();
300   else if (input_pressed_safe(code_previous_peer))
301      result = walk_selection_previous_peer();
302   else if (input_pressed_safe(code_next_peer))
303      result = walk_selection_next_peer();
300   else if (input_pressed_safe(code_previous_sub_menu))
301      result = walk_selection_previous_sub_menu();
302   else if (input_pressed_safe(code_next_sub_menu))
303      result = walk_selection_next_sub_menu();
304304   else if (input_pressed_safe(IPT_UI_CONFIGURE))
305305      toggle_selection();
306306   else if (input_pressed_safe(code_selected))
r29559r29560
464464
465465
466466//-------------------------------------------------
467//  walk_selection_previous_peer
467//  walk_selection_previous_sub_menu
468468//-------------------------------------------------
469469
470bool ui_menubar::walk_selection_previous_peer()
470bool ui_menubar::walk_selection_previous_sub_menu()
471471{
472   bool result = walk_selection_parent() && walk_selection_previous();
472   while(walk_selection_parent())
473      ;
474   bool result = walk_selection_previous();
473475   if (result)
474476      walk_selection_child();
475477   return result;
r29559r29560
477479
478480
479481//-------------------------------------------------
480//  walk_selection_next_peer
482//  walk_selection_next_sub_menu
481483//-------------------------------------------------
482484
483bool ui_menubar::walk_selection_next_peer()
485bool ui_menubar::walk_selection_next_sub_menu()
484486{
485   bool result = walk_selection_parent() && walk_selection_next();
487   while(walk_selection_parent())
488      ;
489   bool result = walk_selection_next();
486490   if (result)
487491      walk_selection_child();
488492   return result;
branches/new_menus/src/emu/ui/menubar.h
r29559r29560
233233   bool walk_selection_child();
234234   bool walk_selection_parent();
235235   bool walk_selection_escape();
236   bool walk_selection_previous_peer();
237   bool walk_selection_next_peer();
236   bool walk_selection_previous_sub_menu();
237   bool walk_selection_next_sub_menu();
238238
239239   // miscellaneous
240240   void draw_child_menu(menu_item *menu, float x, float y);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team