亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? checklist.c

?? 本軟件件包是EM8624高清解碼軟件的LINUX文件系統(tǒng)以及驅(qū)動程序和根文件系統(tǒng)。軟件包里包含原碼
?? C
字號:
/* *  checklist.c -- implements the checklist box * *  ORIGINAL AUTHOR: Savio Lam (lam836@cs.cuhk.hk) *     Stuart Herbert - S.Herbert@sheffield.ac.uk: radiolist extension *     Alessandro Rubini - rubini@ipvvis.unipv.it: merged the two *  MODIFIED FOR LINUX KERNEL CONFIG BY: William Roadcap (roadcap@cfw.com) * *  This program is free software; you can redistribute it and/or *  modify it under the terms of the GNU General Public License *  as published by the Free Software Foundation; either version 2 *  of the License, or (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include "dialog.h"static int list_width, check_x, item_x, checkflag;/* * Print list item */static voidprint_item (WINDOW * win, const char *item, int status,	    int choice, int selected){    int i;    /* Clear 'residue' of last item */    wattrset (win, menubox_attr);    wmove (win, choice, 0);    for (i = 0; i < list_width; i++)	waddch (win, ' ');    wmove (win, choice, check_x);    wattrset (win, selected ? check_selected_attr : check_attr);    if (checkflag == FLAG_CHECK)	wprintw (win, "[%c]", status ? 'X' : ' ');    else	wprintw (win, "(%c)", status ? 'X' : ' ');    wattrset (win, selected ? tag_selected_attr : tag_attr);    mvwaddch(win, choice, item_x, item[0]);    wattrset (win, selected ? item_selected_attr : item_attr);    waddstr (win, (char *)item+1);}/* * Print the scroll indicators. */static voidprint_arrows (WINDOW * win, int choice, int item_no, int scroll,		int y, int x, int height){    wmove(win, y, x);    if (scroll > 0) {	wattrset (win, uarrow_attr);	waddch (win, ACS_UARROW);	waddstr (win, "(-)");    }    else {	wattrset (win, menubox_attr);	waddch (win, ACS_HLINE);	waddch (win, ACS_HLINE);	waddch (win, ACS_HLINE);	waddch (win, ACS_HLINE);    }   y = y + height + 1;   wmove(win, y, x);   if ((height < item_no) && (scroll + choice < item_no - 1)) {	wattrset (win, darrow_attr);	waddch (win, ACS_DARROW);	waddstr (win, "(+)");    }    else {	wattrset (win, menubox_border_attr);	waddch (win, ACS_HLINE);	waddch (win, ACS_HLINE);	waddch (win, ACS_HLINE);	waddch (win, ACS_HLINE);   }}/* *  Display the termination buttons */static voidprint_buttons( WINDOW *dialog, int height, int width, int selected){    int x = width / 2 - 11;    int y = height - 2;    print_button (dialog, "Select", y, x, selected == 0);    print_button (dialog, " Help ", y, x + 14, selected == 1);    wmove(dialog, y, x+1 + 14*selected);    wrefresh (dialog);}/* * Display a dialog box with a list of options that can be turned on or off * The `flag' parameter is used to select between radiolist and checklist. */intdialog_checklist (const char *title, const char *prompt, int height, int width,	int list_height, int item_no, const char * const * items, int flag)	{    int i, x, y, box_x, box_y;    int key = 0, button = 0, choice = 0, scroll = 0, max_choice, *status;    WINDOW *dialog, *list;    checkflag = flag;    /* Allocate space for storing item on/off status */    if ((status = malloc (sizeof (int) * item_no)) == NULL) {	endwin ();	fprintf (stderr,		 "\nCan't allocate memory in dialog_checklist().\n");	exit (-1);    }    /* Initializes status */    for (i = 0; i < item_no; i++) {	status[i] = !strcasecmp (items[i * 3 + 2], "on");	if (!choice && status[i])            choice = i;    }    max_choice = MIN (list_height, item_no);    /* center dialog box on screen */    x = (COLS - width) / 2;    y = (LINES - height) / 2;    draw_shadow (stdscr, y, x, height, width);    dialog = newwin (height, width, y, x);    keypad (dialog, TRUE);    draw_box (dialog, 0, 0, height, width, dialog_attr, border_attr);    wattrset (dialog, border_attr);    mvwaddch (dialog, height-3, 0, ACS_LTEE);    for (i = 0; i < width - 2; i++)	waddch (dialog, ACS_HLINE);    wattrset (dialog, dialog_attr);    waddch (dialog, ACS_RTEE);    if (title != NULL && strlen(title) >= width-2 ) {	/* truncate long title -- mec */	char * title2 = malloc(width-2+1);	memcpy( title2, title, width-2 );	title2[width-2] = '\0';	title = title2;    }    if (title != NULL) {	wattrset (dialog, title_attr);	mvwaddch (dialog, 0, (width - strlen(title))/2 - 1, ' ');	waddstr (dialog, (char *)title);	waddch (dialog, ' ');    }    wattrset (dialog, dialog_attr);    print_autowrap (dialog, prompt, width - 2, 1, 3);    list_width = width - 6;    box_y = height - list_height - 5;    box_x = (width - list_width) / 2 - 1;    /* create new window for the list */    list = subwin (dialog, list_height, list_width, y+box_y+1, x+box_x+1);    keypad (list, TRUE);    /* draw a box around the list items */    draw_box (dialog, box_y, box_x, list_height + 2, list_width + 2,	      menubox_border_attr, menubox_attr);    /* Find length of longest item in order to center checklist */    check_x = 0;    for (i = 0; i < item_no; i++) 	check_x = MAX (check_x, + strlen (items[i * 3 + 1]) + 4);    check_x = (list_width - check_x) / 2;    item_x = check_x + 4;    if (choice >= list_height) {	scroll = choice - list_height + 1;	choice -= scroll;    }    /* Print the list */    for (i = 0; i < max_choice; i++) {	print_item (list, items[(scroll+i) * 3 + 1],		    status[i+scroll], i, i == choice);    }    wnoutrefresh (list);    print_arrows(dialog, choice, item_no, scroll,			box_y, box_x + check_x + 5, list_height);    print_buttons(dialog, height, width, 0);    while (key != ESC) {	key = wgetch (dialog);    	for (i = 0; i < max_choice; i++)            if (toupper(key) == toupper(items[(scroll+i)*3+1][0]))                break;	if ( i < max_choice || key == KEY_UP || key == KEY_DOWN || 	    key == '+' || key == '-' ) {	    if (key == KEY_UP || key == '-') {		if (!choice) {		    if (!scroll)			continue;		    /* Scroll list down */		    if (list_height > 1) {			/* De-highlight current first item */			print_item (list, items[scroll * 3 + 1],					status[scroll], 0, FALSE);			scrollok (list, TRUE);			wscrl (list, -1);			scrollok (list, FALSE);		    }		    scroll--;		    print_item (list, items[scroll * 3 + 1],				status[scroll], 0, TRUE);		    wnoutrefresh (list);    		    print_arrows(dialog, choice, item_no, scroll,				box_y, box_x + check_x + 5, list_height);		    wrefresh (dialog);		    continue;	/* wait for another key press */		} else		    i = choice - 1;	    } else if (key == KEY_DOWN || key == '+') {		if (choice == max_choice - 1) {		    if (scroll + choice >= item_no - 1)			continue;		    /* Scroll list up */		    if (list_height > 1) {			/* De-highlight current last item before scrolling up */			print_item (list, items[(scroll + max_choice - 1) * 3 + 1],				    status[scroll + max_choice - 1],				    max_choice - 1, FALSE);			scrollok (list, TRUE);			scroll (list);			scrollok (list, FALSE);		    }		    scroll++;		    print_item (list, items[(scroll + max_choice - 1) * 3 + 1],				status[scroll + max_choice - 1],				max_choice - 1, TRUE);		    wnoutrefresh (list);    		    print_arrows(dialog, choice, item_no, scroll,				box_y, box_x + check_x + 5, list_height);		    wrefresh (dialog);		    continue;	/* wait for another key press */		} else		    i = choice + 1;	    }	    if (i != choice) {		/* De-highlight current item */		print_item (list, items[(scroll + choice) * 3 + 1],			    status[scroll + choice], choice, FALSE);		/* Highlight new item */		choice = i;		print_item (list, items[(scroll + choice) * 3 + 1],			    status[scroll + choice], choice, TRUE);		wnoutrefresh (list);		wrefresh (dialog);	    }	    continue;		/* wait for another key press */	}	switch (key) {	case 'H':	case 'h':	case '?':	    delwin (dialog);	    free (status);	    return 1;	case TAB:	case KEY_LEFT:	case KEY_RIGHT:	    button = ((key == KEY_LEFT ? --button : ++button) < 0)			? 1 : (button > 1 ? 0 : button);	    print_buttons(dialog, height, width, button);	    wrefresh (dialog);	    break;	case 'S':	case 's':	case ' ':	case '\n':	    if (!button) {		if (flag == FLAG_CHECK) {		    status[scroll + choice] = !status[scroll + choice];		    wmove (list, choice, check_x);		    wattrset (list, check_selected_attr);		    wprintw (list, "[%c]", status[scroll + choice] ? 'X' : ' ');		} else {		    if (!status[scroll + choice]) {			for (i = 0; i < item_no; i++)			    status[i] = 0;			status[scroll + choice] = 1;			for (i = 0; i < max_choice; i++)			    print_item (list, items[(scroll + i) * 3 + 1],					status[scroll + i], i, i == choice);		    }		}		wnoutrefresh (list);		wrefresh (dialog);            		for (i = 0; i < item_no; i++) {		    if (status[i]) {			if (flag == FLAG_CHECK) {			    fprintf (stderr, "\"%s\" ", items[i * 3]);			} else {			    fprintf (stderr, "%s", items[i * 3]);			}		    }		}            }	    delwin (dialog);	    free (status);	    return button;	case 'X':	case 'x':	    key = ESC;	case ESC:	    break;	}    }    delwin (dialog);    free (status);    return -1;			/* ESC pressed */}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情文学综合网| 国产精品美女久久久久久久久| 亚洲精品日产精品乱码不卡| www.欧美色图| 亚洲欧美日韩在线不卡| 91福利区一区二区三区| 亚洲一区中文日韩| 91精品国产综合久久福利| 日本中文字幕一区| 久久久久久99久久久精品网站| 国产精品12区| 亚洲美女免费视频| 欧美日韩一区二区在线视频| 蜜桃av一区二区| 国产色婷婷亚洲99精品小说| 99久久99久久综合| 亚洲h动漫在线| 日韩欧美一区二区在线视频| 国产乱码精品一品二品| 成人欧美一区二区三区小说| 欧美剧情电影在线观看完整版免费励志电影 | 99精品视频在线观看免费| 亚洲女同一区二区| 日韩一级完整毛片| 成人精品一区二区三区中文字幕| 亚洲激情av在线| 91精品国产综合久久久蜜臀图片| 国产中文一区二区三区| 日韩码欧中文字| 91精品国产综合久久福利软件| 国产a级毛片一区| 一区二区欧美视频| 久久久777精品电影网影网| 在线免费观看视频一区| 狠狠色狠狠色综合日日91app| 亚洲欧美日韩在线播放| 精品人在线二区三区| 色婷婷国产精品综合在线观看| 日韩高清欧美激情| 亚洲视频精选在线| 欧美精品一区二| 欧美色手机在线观看| 国产一区二区美女诱惑| 视频一区在线播放| 椎名由奈av一区二区三区| 精品欧美乱码久久久久久 | 蜜臀av一区二区在线观看| 国产精品伦理在线| 精品成人在线观看| 欧美精品一卡二卡| 日本久久一区二区三区| 国产99久久精品| 久久国产婷婷国产香蕉| 亚洲妇熟xx妇色黄| 亚洲欧美一区二区不卡| 国产午夜精品福利| 精品理论电影在线| 欧美精品免费视频| 欧美色男人天堂| 色偷偷久久一区二区三区| 国产.欧美.日韩| 国产美女在线观看一区| 麻豆成人av在线| 七七婷婷婷婷精品国产| 亚洲电影视频在线| 亚洲一区欧美一区| 一区二区三区四区亚洲| 亚洲免费观看高清完整版在线观看熊| 精品成人一区二区三区四区| 日韩视频在线你懂得| 在线播放一区二区三区| 欧美色图一区二区三区| 在线视频综合导航| 色欧美片视频在线观看| 色综合婷婷久久| 97久久精品人人做人人爽50路| 高清成人免费视频| 成人免费看黄yyy456| 欧美极品aⅴ影院| 午夜视频一区二区三区| 亚洲欧美自拍偷拍| 国产精品久久久久久久第一福利| 久久亚洲二区三区| 久久综合网色—综合色88| 精品久久久三级丝袜| ww久久中文字幕| 国产欧美日韩视频一区二区| 国产午夜一区二区三区| 欧美国产97人人爽人人喊| 中文字幕中文在线不卡住| 亚洲欧美电影一区二区| 亚洲宅男天堂在线观看无病毒| 亚洲永久精品大片| 日韩av中文在线观看| 久久99国内精品| 国产精品性做久久久久久| 不卡一区二区中文字幕| 色偷偷久久人人79超碰人人澡| 日本久久精品电影| 91麻豆精品国产| 久久久激情视频| 亚洲欧美激情一区二区| 亚洲国产aⅴ成人精品无吗| 奇米777欧美一区二区| 国产黑丝在线一区二区三区| www.一区二区| 欧美日本一道本在线视频| 日韩精品一区国产麻豆| 中文字幕一区二区三区四区不卡 | 欧美福利电影网| 精品国产91乱码一区二区三区 | 国产成人av电影在线| 色拍拍在线精品视频8848| 3atv在线一区二区三区| 国产视频一区二区在线观看| 一区二区欧美在线观看| 九九热在线视频观看这里只有精品 | 日韩视频免费直播| 国产精品色在线观看| 亚洲成人中文在线| 国产精品一级二级三级| 色婷婷av一区二区三区gif| 日韩一二三四区| 亚洲欧美另类图片小说| 极品少妇xxxx偷拍精品少妇| 91丨九色丨蝌蚪丨老版| 日韩欧美国产精品一区| 亚洲私人黄色宅男| 卡一卡二国产精品| 99精品欧美一区二区三区小说 | 国产精品情趣视频| 丝袜a∨在线一区二区三区不卡| 国产99久久久久| 在线不卡一区二区| 中文字幕亚洲精品在线观看 | 亚洲国产综合91精品麻豆| 国产高清成人在线| 日韩一级片网站| 亚洲国产cao| 97国产精品videossex| 精品粉嫩aⅴ一区二区三区四区| 亚洲综合视频网| a4yy欧美一区二区三区| 久久久亚洲精华液精华液精华液| 天天影视涩香欲综合网| 91女神在线视频| 中文字幕国产一区| 寂寞少妇一区二区三区| 777a∨成人精品桃花网| 亚洲综合激情网| 91美女片黄在线观看| 中文字幕+乱码+中文字幕一区| 久久er99精品| 欧美大片顶级少妇| 日韩国产在线一| 欧美日本韩国一区二区三区视频 | 久久夜色精品国产噜噜av| 日日摸夜夜添夜夜添亚洲女人| 91网站在线观看视频| 国产精品久99| 成人理论电影网| 中文久久乱码一区二区| 国产精品1024久久| 久久婷婷成人综合色| 韩国欧美国产一区| 久久久99精品久久| 国产麻豆成人精品| 国产亚洲综合色| 国产成人精品免费一区二区| 国产视频911| 成人免费va视频| 成人免费视频在线观看| 色婷婷综合久久久久中文| 亚洲视频在线一区二区| 色素色在线综合| 亚洲网友自拍偷拍| 欧美疯狂性受xxxxx喷水图片| 午夜精品免费在线| 日韩午夜在线影院| 国产毛片精品视频| 欧美国产欧美综合| 99久久精品免费观看| 一级日本不卡的影视| 欧美福利视频一区| 精品一区二区日韩| 国产三级久久久| 91蜜桃在线免费视频| 亚洲国产另类av| 日韩精品一区二区三区视频在线观看| 免费av成人在线| 欧美—级在线免费片| 色av成人天堂桃色av| 亚洲成av人片在线| 精品国产自在久精品国产| 成人免费视频网站在线观看| 亚洲精品成人在线| 日韩久久久精品| www.欧美日韩国产在线| 午夜激情久久久| 国产日韩欧美亚洲|