--- lbbs/src/bbs_net.c 2005/03/21 17:28:01 1.3 +++ lbbs/src/bbs_net.c 2005/03/21 18:01:49 1.5 @@ -30,9 +30,10 @@ #include #include -#define TIME_OUT 15 -#define MAX_PROCESS_BAR_LEN 30 -#define MAXSTATION 26*2 +#define TIME_OUT 15 +#define MAX_PROCESS_BAR_LEN 30 +#define MAXSTATION 26*2 +#define STATION_PER_LINE 4 struct _bbsnet_conf { @@ -81,8 +82,8 @@ load_bbsnet_conf (const char *file_confi bbsnet_conf[item_count].port = t4 ? atoi (t4) : 23; p_menuitem = p_menu->items[item_count] = malloc (sizeof (MENU_ITEM)); - p_menuitem->row = 2 + item_count / 3; - p_menuitem->col = 5 + item_count % 3 * 20; + p_menuitem->row = 2 + item_count / STATION_PER_LINE; + p_menuitem->col = 5 + item_count % STATION_PER_LINE * 20; sprintf (p_menuitem->action, "%d", item_count); p_menuitem->submenu = 0; p_menuitem->priv = 0; @@ -383,7 +384,7 @@ bbsnet_refresh () ("╰══════════════════════════════════════╯"); moveto (23, 0); prints - (" [\x1b[1;32mCtrl+C\x1b[m]退出 [\x1b[1;32m^\x1b[m]第一个 [\x1b[1;32m$\x1b[m]最后一个\033[0;37m\033[m"); + (" [\x1b[1;32mCtrl+C\x1b[m]退出"); iflush (); return 0; @@ -414,7 +415,7 @@ bbsnet_selchange (int new_pos) int bbs_net () { - int ch, result, pos; + int ch, result, pos, i; char file_config[256]; time_t t_last_action; fd_set inputs, testfds; @@ -468,16 +469,14 @@ bbs_net () bbsnet_selchange (pos); break; case KEY_UP: - menu_control (&bbsnet_menu, KEY_UP); - menu_control (&bbsnet_menu, KEY_UP); - menu_control (&bbsnet_menu, KEY_UP); + for (i = 0; i < STATION_PER_LINE; i++) + menu_control (&bbsnet_menu, KEY_UP); pos = bbsnet_menu.p_menu[0]->item_cur_pos; bbsnet_selchange (pos); break; case KEY_DOWN: - menu_control (&bbsnet_menu, KEY_DOWN); - menu_control (&bbsnet_menu, KEY_DOWN); - menu_control (&bbsnet_menu, KEY_DOWN); + for (i = 0; i < STATION_PER_LINE; i++) + menu_control (&bbsnet_menu, KEY_DOWN); pos = bbsnet_menu.p_menu[0]->item_cur_pos; bbsnet_selchange (pos); break; @@ -491,18 +490,10 @@ bbs_net () pos = bbsnet_menu.p_menu[0]->item_cur_pos; bbsnet_selchange (pos); break; - case '^': - pos = bbsnet_menu.p_menu[0]->item_cur_pos = 0; - bbsnet_selchange (pos); - break; - case '$': - pos = bbsnet_menu.p_menu[0]->item_cur_pos - = bbsnet_menu.p_menu[0]->item_count - 1; - if (pos < 0) - pos = 0; - bbsnet_selchange (pos); - break; default: + menu_control (&bbsnet_menu, ch); + pos = bbsnet_menu.p_menu[0]->item_cur_pos; + bbsnet_selchange (pos); break; } }