branches/new_menus/src/emu/ui/menubar.c
| r29559 | r29560 | |
| 255 | 255 | int code_next_menu = IPT_INVALID; |
| 256 | 256 | int code_child_menu = IPT_INVALID; |
| 257 | 257 | 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; |
| 260 | 260 | int code_selected = (m_selected_item && m_selected_item->is_invokable()) |
| 261 | 261 | ? IPT_UI_SELECT |
| 262 | 262 | : IPT_INVALID; |
| r29559 | r29560 | |
| 279 | 279 | code_next_menu = IPT_UI_DOWN; |
| 280 | 280 | if (m_selected_item->child()) |
| 281 | 281 | 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; |
| 284 | 284 | if (m_selected_item->parent()->is_sub_menu()) |
| 285 | 285 | code_parent_menu = IPT_UI_LEFT; |
| 286 | 286 | } |
| r29559 | r29560 | |
| 297 | 297 | result = walk_selection_escape(); |
| 298 | 298 | else if (input_pressed_safe(code_parent_menu)) |
| 299 | 299 | 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(); |
| 304 | 304 | else if (input_pressed_safe(IPT_UI_CONFIGURE)) |
| 305 | 305 | toggle_selection(); |
| 306 | 306 | else if (input_pressed_safe(code_selected)) |
| r29559 | r29560 | |
| 464 | 464 | |
| 465 | 465 | |
| 466 | 466 | //------------------------------------------------- |
| 467 | | // walk_selection_previous_peer |
| 467 | // walk_selection_previous_sub_menu |
| 468 | 468 | //------------------------------------------------- |
| 469 | 469 | |
| 470 | | bool ui_menubar::walk_selection_previous_peer() |
| 470 | bool ui_menubar::walk_selection_previous_sub_menu() |
| 471 | 471 | { |
| 472 | | bool result = walk_selection_parent() && walk_selection_previous(); |
| 472 | while(walk_selection_parent()) |
| 473 | ; |
| 474 | bool result = walk_selection_previous(); |
| 473 | 475 | if (result) |
| 474 | 476 | walk_selection_child(); |
| 475 | 477 | return result; |
| r29559 | r29560 | |
| 477 | 479 | |
| 478 | 480 | |
| 479 | 481 | //------------------------------------------------- |
| 480 | | // walk_selection_next_peer |
| 482 | // walk_selection_next_sub_menu |
| 481 | 483 | //------------------------------------------------- |
| 482 | 484 | |
| 483 | | bool ui_menubar::walk_selection_next_peer() |
| 485 | bool ui_menubar::walk_selection_next_sub_menu() |
| 484 | 486 | { |
| 485 | | bool result = walk_selection_parent() && walk_selection_next(); |
| 487 | while(walk_selection_parent()) |
| 488 | ; |
| 489 | bool result = walk_selection_next(); |
| 486 | 490 | if (result) |
| 487 | 491 | walk_selection_child(); |
| 488 | 492 | return result; |