Changeset 143
- Timestamp:
- 05/15/07 09:49:23 (2 years ago)
- Files:
-
- trunk/src/cmd0.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/cmd0.c
r142 r143 429 429 static bool cmd_sub_action(char cmd, void *db, int oid) 430 430 { 431 const command_type *commands = db;432 433 /* Forward/back don't do anything */434 if (cmd == ARROW_LEFT || cmd == ARROW_RIGHT)435 return FALSE;436 437 /* Clear up */438 screen_load();439 440 431 /* Only handle enter */ 441 432 if (cmd == '\n' || cmd == '\r') 442 commands[oid].hook(); 443 444 return TRUE; 433 { 434 return TRUE; 435 } 436 else 437 { 438 return FALSE; 439 } 445 440 } 446 441 … … 448 443 * Display a list of commands. 449 444 */ 450 static void cmd_menu(command_list *list)445 static bool cmd_menu(command_list *list, void *selection_p) 451 446 { 452 447 menu_type menu; … … 456 451 event_type evt; 457 452 int cursor = 0; 458 453 command_type *selection = selection_p; 459 454 460 455 /* Set up the menu */ … … 474 469 /* Load de screen */ 475 470 screen_load(); 471 472 if (evt.type == EVT_SELECT) 473 { 474 *selection = list->list[evt.index]; 475 } 476 477 if (evt.type == EVT_ESCAPE) 478 { 479 return FALSE; 480 } 481 else 482 { 483 return TRUE; 484 } 476 485 } 477 486 … … 480 489 static bool cmd_list_action(char cmd, void *db, int oid) 481 490 { 482 cmd_menu(&cmds_all[oid]); 483 return TRUE; 491 if (cmd == '\n' || cmd == '\r' || cmd == '\xff') 492 { 493 return cmd_menu(&cmds_all[oid], db); 494 } 495 else 496 { 497 return FALSE; 498 } 484 499 } 485 500 … … 501 516 event_type evt; 502 517 int cursor = 0; 503 518 command_type chosen_command = { NULL, 0, NULL }; 504 519 505 520 /* Set up the menu */ 506 521 WIPE(&menu, menu); 507 menu.cmd_keys = "\ n\r\xff";522 menu.cmd_keys = "\x8B\x8C\n\r"; 508 523 menu.count = N_ELEMENTS(cmds_all) - 1; 524 menu.menu_data = &chosen_command; 509 525 menu_init2(&menu, find_menu_skin(MN_SCROLL), &commands_menu, &area); 510 526 … … 518 534 /* Load de screen */ 519 535 screen_load(); 536 537 /* If a command was chosen, do it. */ 538 if (chosen_command.hook) 539 { 540 chosen_command.hook(); 541 } 520 542 } 521 543
