亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

unix中的菜單程序

瀏覽:9日期:2024-06-10 09:07:09

#include <curses.h> #include <stdlib.h>

#define ENTER 10 #define ESCAPE 27 void init_curses() { initscr(); start_color(); init_pair(1,COLOR_WHITE,COLOR_BLUE); init_pair(2,COLOR_BLUE,COLOR_WHITE); init_pair(3,COLOR_RED,COLOR_WHITE); curs_set(0); noecho(); keypad(stdscr,TRUE); } void draw_menubar(WINDOW *menubar) { wbkgd(menubar,COLOR_PAIR(2)); waddstr(menubar,'Menu1'); wattron(menubar,COLOR_PAIR(3)); waddstr(menubar,'(F1)'); wattroff(menubar,COLOR_PAIR(3)); wmove(menubar,0,20); waddstr(menubar,'Menu2'); wattron(menubar,COLOR_PAIR(3)); waddstr(menubar,'(F2)'); wattroff(menubar,COLOR_PAIR(3)); } WINDOW **draw_menu(int start_col) { int i; WINDOW **items; items=(WINDOW **)malloc(9*sizeof(WINDOW *));

items[0]=newwin(10,19,1,start_col); wbkgd(items[0],COLOR_PAIR(2)); box(items[0],ACS_VLINE,ACS_HLINE); items[1]=subwin(items[0],1,17,2,start_col+1); items[2]=subwin(items[0],1,17,3,start_col+1); items[3]=subwin(items[0],1,17,4,start_col+1); items[4]=subwin(items[0],1,17,5,start_col+1); items[5]=subwin(items[0],1,17,6,start_col+1); items[6]=subwin(items[0],1,17,7,start_col+1); items[7]=subwin(items[0],1,17,8,start_col+1); items[8]=subwin(items[0],1,17,9,start_col+1); for (i=1;i<9;i++) wprintw(items[i],'Item%d',i); wbkgd(items[1],COLOR_PAIR(1)); wrefresh(items[0]); return items; } void delete_menu(WINDOW **items,int count) { int i; for (i=0;i<count;i++) delwin(items[i]); free(items); } int scroll_menu(WINDOW **items,int count,int menu_start_col) { int key; int selected=0; while (1) { key=getch(); if (key==KEY_DOWN || key==KEY_UP) { wbkgd(items[selected+1],COLOR_PAIR(2)); wnoutrefresh(items[selected+1]); if (key==KEY_DOWN) { selected=(selected+1) % count; } else { selected=(selected+count-1) % count; } wbkgd(items[selected+1],COLOR_PAIR(1)); wnoutrefresh(items[selected+1]); doupdate(); } else if (key==KEY_LEFT || key==KEY_RIGHT) { delete_menu(items,count+1); touchwin(stdscr); refresh(); items=draw_menu(20-menu_start_col); return scroll_menu(items,8,20-menu_start_col); } else if (key==ESCAPE) { return -1; } else if (key==ENTER) { return selected; } } } int main() { int key; WINDOW *menubar,*messagebar; init_curses(); bkgd(COLOR_PAIR(1)); menubar=subwin(stdscr,1,80,0,0); messagebar=subwin(stdscr,1,79,23,1); draw_menubar(menubar); move(2,1); printw('Press F1 or F2 to open the menus. '); printw('ESC quits.'); refresh();

do { int selected_item; WINDOW **menu_items; key=getch(); werase(messagebar); wrefresh(messagebar); if (key==KEY_F(1)) { menu_items=draw_menu(0); selected_item=scroll_menu(menu_items,8,0); delete_menu(menu_items,9); if (selected_item<0) wprintw(messagebar,'You haven't selected any item.'); else wprintw(messagebar, 'You have selected menu item %d.',selected_item+1); touchwin(stdscr); refresh(); } else if (key==KEY_F(2)) { menu_items=draw_menu(20); selected_item=scroll_menu(menu_items,8,20); delete_menu(menu_items,9); if (selected_item<0) wprintw(messagebar,'You haven't selected any item.'); else wprintw(messagebar, 'You have selected menu item %d.',selected_item+1); touchwin(stdscr); refresh(); } } while (key!=ESCAPE); delwin(menubar); delwin(messagebar); endwin(); return 0; }

標(biāo)簽: Unix系統(tǒng)
主站蜘蛛池模板: 美女的被男人桶爽网站 | 欧美国产日韩在线观看 | 国产aⅴ一区二区三区 | 国产主播福利精品一区二区 | 精品国产欧美一区二区 | 亚洲天堂视频在线免费观看 | 九九免费精品视频 | 久久久久久久一线毛片 | 亚洲欧美卡通成人制服动漫 | 亚洲欧美精品一区天堂久久 | 中文字幕亚洲精品日韩精品 | 欧美高清在线精品一区 | 亚洲国产成人精品91久久久 | 国产中文久久精品 | 亚洲精品国产字幕久久不卡 | 成人 在线播放 | 波多野结衣一区二区三区在线观看 | 手机看片久久国产免费不卡 | 美国特级毛片 | 男女乱淫视频 | 精品国产免费一区二区三区五区 | 国模肉肉人体大尺度啪啪 | 日韩精品午夜视频一区二区三区 | 国模偷拍在线观看免费视频 | 高清一本之道加勒比在线 | 日韩专区亚洲精品欧美专区 | 久久精品一 | 亚洲精品国产手机 | 亚洲国产毛片 | 日韩在线精品视频 | 久久久久国产精品 | 亚洲成人看片 | 日韩视频一区二区三区 | 99久久99久久久99精品齐 | 98国内自拍在线视频 | 亚洲加勒比久久88色综合一区 | 国产99视频精品草莓免视看 | 成人精品国产亚洲欧洲 | 农村寡妇野外情一级毛片 | 五月激激激综合网色播免费 | 欧美另类性视频 |