| 17 |
#include "bbs.h" |
#include "bbs.h" |
| 18 |
#include "bbs_cmd.h" |
#include "bbs_cmd.h" |
| 19 |
#include "user_priv.h" |
#include "user_priv.h" |
|
#include "reg_ex.h" |
|
| 20 |
#include "bbs_cmd.h" |
#include "bbs_cmd.h" |
| 21 |
#include "menu.h" |
#include "menu.h" |
| 22 |
#include "log.h" |
#include "log.h" |
| 587 |
return -1; |
return -1; |
| 588 |
} |
} |
| 589 |
|
|
| 590 |
|
if (p_menu->item_cur_pos > 0 && |
| 591 |
|
checkpriv(&BBS_priv, 0, p_menu->items[p_menu->item_cur_pos]->priv) != 0 && |
| 592 |
|
checklevel(&BBS_priv, p_menu->items[p_menu->item_cur_pos]->level) != 0) |
| 593 |
|
{ |
| 594 |
|
menu_selectable = 1; |
| 595 |
|
} |
| 596 |
|
|
| 597 |
if (p_menu->title.show) |
if (p_menu->title.show) |
| 598 |
{ |
{ |
| 599 |
show_top(p_menu->title.text); |
show_top(p_menu->title.text); |
| 680 |
switch (key) |
switch (key) |
| 681 |
{ |
{ |
| 682 |
case CR: |
case CR: |
|
igetch(1); // Cleanup remaining '\n' in the buffer |
|
| 683 |
case KEY_RIGHT: |
case KEY_RIGHT: |
| 684 |
if (p_menu->items[p_menu->item_cur_pos]->submenu) |
if (p_menu->items[p_menu->item_cur_pos]->submenu) |
| 685 |
{ |
{ |
| 695 |
{ |
{ |
| 696 |
return menu_control(p_menu_set, KEY_LEFT); |
return menu_control(p_menu_set, KEY_LEFT); |
| 697 |
} |
} |
|
break; |
|
| 698 |
} |
} |
| 699 |
else |
else |
| 700 |
{ |
{ |
| 701 |
return (exec_cmd(p_menu->items[p_menu->item_cur_pos]->action, |
return (exec_cmd(p_menu->items[p_menu->item_cur_pos]->action, |
| 702 |
p_menu->items[p_menu->item_cur_pos]->name)); |
p_menu->items[p_menu->item_cur_pos]->name)); |
| 703 |
} |
} |
| 704 |
|
break; |
| 705 |
case KEY_LEFT: |
case KEY_LEFT: |
| 706 |
if (p_menu_set->menu_select_depth > 0) |
if (p_menu_set->menu_select_depth > 0) |
| 707 |
{ |
{ |
| 710 |
{ |
{ |
| 711 |
return menu_control(p_menu_set, KEY_LEFT); |
return menu_control(p_menu_set, KEY_LEFT); |
| 712 |
} |
} |
|
break; |
|
| 713 |
} |
} |
| 714 |
else |
else |
| 715 |
{ |
{ |
| 716 |
display_menu_cursor(p_menu, 0); |
display_menu_cursor(p_menu, 0); |
| 717 |
p_menu->item_cur_pos = p_menu->item_count - 1; |
p_menu->item_cur_pos = p_menu->item_count - 1; |
| 718 |
while (!p_menu->items[p_menu->item_cur_pos]->display || |
while (p_menu->item_cur_pos >= 0 && (!p_menu->items[p_menu->item_cur_pos]->display || |
| 719 |
p_menu->items[p_menu->item_cur_pos]->priv != 0 || |
p_menu->items[p_menu->item_cur_pos]->priv != 0 || |
| 720 |
p_menu->items[p_menu->item_cur_pos]->level != 0) |
p_menu->items[p_menu->item_cur_pos]->level != 0)) |
| 721 |
{ |
{ |
| 722 |
p_menu->item_cur_pos--; |
p_menu->item_cur_pos--; |
| 723 |
} |
} |
| 724 |
display_menu_cursor(p_menu, 1); |
display_menu_cursor(p_menu, 1); |
|
break; |
|
| 725 |
} |
} |
| 726 |
|
break; |
| 727 |
case KEY_UP: |
case KEY_UP: |
| 728 |
display_menu_cursor(p_menu, 0); |
display_menu_cursor(p_menu, 0); |
| 729 |
do |
do |
| 763 |
} |
} |
| 764 |
} |
} |
| 765 |
} |
} |
| 766 |
|
break; |
| 767 |
} |
} |
| 768 |
|
|
| 769 |
return 0; |
return 0; |