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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? advanced.c

?? 《Linux程序設計權威指南》源代碼
?? C
字號:
	/* File: advanced.c */	#include <X11/Xlib.h>	#include <X11/Xutil.h>	#include <X11/Xos.h>	#include <X11/Xatom.h>	#include <stdio.h>	//globals for simplicity	int screen_num;	Colormap cmap;	GC gc;	GC dimgc, lightgc, panelgc;	typedef struct _button {		Window  win;		int x, y, w, h;		char *label;	} button;	button buttons[4] = {		{0, 0, 0, 0, 0, "black"},		{0, 0, 0, 0, 0, "red"},		{0, 0, 0, 0, 0, "green"},		{0, 0, 0, 0, 0, "blue"}	};	void create_button(int n, Display *display, Window parent,		int x, int y, int w, int h)	{		buttons[n].x = x;		buttons[n].y = y;		buttons[n].w = w;		buttons[n].h = h;		buttons[n].win = XCreateSimpleWindow(display, 	//display			parent, 			//父窗口			x, y, w, h, 		//位置和大小			0, 			//邊界寬度			BlackPixel(display,DefaultScreen(display)), //前景色			WhitePixel(display,DefaultScreen(display)));//背景色		//選擇窗口感興趣的事件掩碼		XSelectInput(display, buttons[n].win, 			ExposureMask | 			ButtonPressMask |		//按下			ButtonReleaseMask |		//抬起			ButtonMotionMask | 		//移動			KeyPressMask |			StructureNotifyMask);		XMapWindow(display, buttons[n].win);        }	void wait_button_release(Display *display)	{        	XEvent ev;        	XGrabServer(display);        	while(1){                	XNextEvent(display, &ev);                	switch  (ev.type) {                	        case ButtonRelease:                                	XUngrabServer(display);                                	return;                        	default:                                	break;                	}        	}	}	void process_button(int n, Display *display)	{		XColor color;		int w = buttons[n].w;		int h = buttons[n].h;		//border		XDrawLine(display, buttons[n].win, dimgc, 0, 0, w, 0);		XDrawLine(display, buttons[n].win, dimgc, 0, 1, w, 1);		XDrawLine(display, buttons[n].win, dimgc, 0, 1, 0, h-1);		XDrawLine(display, buttons[n].win, dimgc, 1, 1, 1, h-2);		XDrawLine(display, buttons[n].win, lightgc, 0, h-1, w-1, h-1);		XDrawLine(display, buttons[n].win, lightgc, 1, h-2, w-2, h-2);		XDrawLine(display, buttons[n].win, lightgc, w-1, 0, w-1, h-1);		XDrawLine(display, buttons[n].win, lightgc, w-2, 1, w-2, h-1);		wait_button_release(display);		//border		XDrawLine(display, buttons[n].win, lightgc, 0, 0, w, 0);		XDrawLine(display, buttons[n].win, lightgc, 0, 1, w, 1);		XDrawLine(display, buttons[n].win, lightgc, 0, 1, 0, h-1);		XDrawLine(display, buttons[n].win, lightgc, 1, 1, 1, h-2);		XDrawLine(display, buttons[n].win, dimgc, 0, h-1, w-1, h-1);		XDrawLine(display, buttons[n].win, dimgc, 1, h-2, w-2, h-2);		XDrawLine(display, buttons[n].win, dimgc, w-1, 0, w-1, h-1);		XDrawLine(display, buttons[n].win, dimgc, w-2, 1, w-2, h-1);		//set color		if(!XParseColor(display, cmap, buttons[n].label, &color)){                        printf("Cannot parse color name\n");                        exit(1);                }                if(!XAllocColor(display, cmap, &color)){                        printf("Cannot allocate color\n");                        exit(1);                }                XSetForeground(display, gc, color.pixel);	}	void button_flush(int n, Display *display)	{		int w = buttons[n].w;		int h = buttons[n].h;		//fill		XFillRectangle(display, buttons[n].win, panelgc, 0, 0, w, h);		//border		XDrawLine(display, buttons[n].win, lightgc, 0, 0, w, 0);		XDrawLine(display, buttons[n].win, lightgc, 0, 1, w, 1);		XDrawLine(display, buttons[n].win, lightgc, 0, 1, 0, h-1);		XDrawLine(display, buttons[n].win, lightgc, 1, 1, 1, h-2);		XDrawLine(display, buttons[n].win, dimgc, 0, h-1, w-1, h-1);		XDrawLine(display, buttons[n].win, dimgc, 1, h-2, w-2, h-2);		XDrawLine(display, buttons[n].win, dimgc, w-1, 0, w-1, h-1);		XDrawLine(display, buttons[n].win, dimgc, w-2, 1, w-2, h-1);		//label		XDrawString(display, buttons[n].win, gc, 10, 16,			buttons[n].label, strlen(buttons[n].label));	}	GC create_gc(Display *display, Window win, char *rgb)	{		XColor color;		GC mygc;		unsigned long valuemask = 0;		XGCValues values;		mygc = XCreateGC(display, win, valuemask, &values);		if(!XParseColor(display, cmap, rgb, &color)){                        printf("Cannot parse color name:%s\n", rgb);                        exit(1);                }                if(!XAllocColor(display, cmap, &color)){                        printf("Cannot allocate color\n");                        exit(1);                }                XSetForeground(display, mygc, color.pixel);		return mygc;	}	int main(int argc, char **argv)	{		Display *display;		Window win;			//窗口ID		Window win_draw;		unsigned int width, height;	//窗口尺寸		unsigned int border_width = 4;	//邊界空白		unsigned int display_width, display_height;//屏幕尺寸		int i;		int count;		XEvent report;		unsigned long valuemask = 0;		XGCValues values;		char *getenv();		XColor color;		//draw		int x1, y1, x2, y2;			// 和X 服務器連接		if ( (display=XOpenDisplay(getenv("DISPLAY"))) == NULL ){			printf("Cannot connect to X server %s");			exit(-1);		}		//獲得缺省的 screen_num		screen_num = DefaultScreen(display);		//獲得屏幕的寬度和高度		display_width = DisplayWidth(display, screen_num);		display_height = DisplayHeight(display, screen_num);		cmap = DefaultColormap(display, screen_num);			//指定所建立窗口的寬度和高度		width = display_width/2;		height = display_height/2;			//建立窗口		win = XCreateSimpleWindow(display, 	//display			RootWindow(display,screen_num), //父窗口			0, 0, width, height, 		//位置和大小			border_width, 			//邊界寬度			BlackPixel(display,screen_num), //前景色			WhitePixel(display,screen_num));//背景色		//選擇窗口感興趣的事件掩碼		XSelectInput(display, win, 			ExposureMask | 			ButtonPressMask |		//按下			ButtonReleaseMask |		//抬起			ButtonMotionMask | 		//移動			KeyPressMask |			StructureNotifyMask);		//建立GC		gc = XCreateGC(display, win, valuemask, &values);               	XSetLineAttributes(display, gc, 3, 			LineSolid, CapRound, JoinRound);		panelgc = create_gc(display, win, "#C0C0C0");		dimgc = create_gc(display, win, "#666666");		lightgc = create_gc(display, win, "#F5F5F5");		//建立繪圖窗口		win_draw = XCreateSimpleWindow(display, //display			win, 				//父窗口			10, 10, width - 140,height - 40,//位置和大小			border_width, 			//邊界寬度			BlackPixel(display,screen_num), //前景色			WhitePixel(display,screen_num));//背景色		//選擇窗口感興趣的事件掩碼		XSelectInput(display, win_draw, 			ExposureMask | 			ButtonPressMask |		//按下			ButtonReleaseMask |		//抬起			ButtonMotionMask | 		//移動			KeyPressMask |			StructureNotifyMask);		//建立按鈕窗口		for(i=0; i<4; i++)			create_button(i, display, win,				width - 100, i * 30 + 30, 80, 20);		//顯示窗口		XMapWindow(display, win);		XMapWindow(display, win_draw);		//進入事件循環		while (1)  {			//取得隊列中的事件			XNextEvent(display, &report);			switch  (report.type) {			//曝光事件, 窗口應重繪			case Expose:				//取得最后一個曝光事件				if (report.xexpose.count != 0) break;				XClearArea(display, win, 0, 0, 					width, height, False);				for(i=0;i<4;i++) button_flush(i, display);				break;			//窗口尺寸改變, 重新取得窗口的寬度和高度			case ConfigureNotify:				width = report.xconfigure.width;				height = report.xconfigure.height;				break;			//鼠標左鍵開始繪圖.			case ButtonPress:				if(report.xbutton.button == Button1 &&				   report.xbutton.window == win_draw){					x1 = report.xbutton.x;					y1 = report.xbutton.y;					XDrawPoint(display, win_draw, gc,x1,y1);				} else if(report.xbutton.button == Button1 &&                                    report.xbutton.window == buttons[0].win){					process_button(0, display);				} else if(report.xbutton.button == Button1 &&                                    report.xbutton.window == buttons[1].win){					process_button(1, display);				} else if(report.xbutton.button == Button1 &&                                    report.xbutton.window == buttons[2].win){					process_button(2, display);				} else if(report.xbutton.button == Button1 &&                                    report.xbutton.window == buttons[3].win){					process_button(3, display);				} else if(report.xbutton.button == Button3){					XFreeGC(display, gc);					exit(1);				}				break;			case ButtonRelease:				if(report.xbutton.button == Button1 &&				   report.xbutton.window == win_draw){					x2 = report.xbutton.x;					y2 = report.xbutton.y;					XDrawLine(display, win_draw, gc, 						x1, y1, x2, y2);				}				break;			case MotionNotify:				if(report.xmotion.state & Button1Mask &&				   report.xmotion.window == win_draw){					x2 = report.xmotion.x;					y2 = report.xmotion.y;					XDrawLine(display, win_draw, gc,						x1, y1, x2, y2);					x1 = x2;					y1 = y2;				}				break;			case KeyPress:				XFreeGC(display, gc);				exit(1);			default:								break;			}		}	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
18成人在线视频| 欧美激情一区二区在线| 97se亚洲国产综合在线| 国产剧情一区二区三区| 麻豆精品一二三| 精品一区二区三区免费| 精品一区免费av| 国产成人综合网| 成人福利电影精品一区二区在线观看| 国产九色sp调教91| 成人中文字幕合集| 成人av在线电影| 一本到高清视频免费精品| 色婷婷亚洲婷婷| 欧美日韩高清一区| 日韩免费看的电影| 国产午夜精品久久久久久免费视| 久久久久国产精品免费免费搜索| 国产日韩欧美精品一区| 亚洲欧美日韩久久| 五月婷婷激情综合网| 久久国产精品第一页| 成人午夜免费电影| 91成人国产精品| 精品国产麻豆免费人成网站| 中文久久乱码一区二区| 一区二区视频在线看| 琪琪久久久久日韩精品| 国产xxx精品视频大全| 色琪琪一区二区三区亚洲区| 欧美巨大另类极品videosbest| 日韩精品在线一区二区| 中文字幕免费不卡| 亚洲国产精品久久艾草纯爱| 久久成人免费日本黄色| 不卡视频在线看| 7777精品伊人久久久大香线蕉的 | 精品久久久久久亚洲综合网| 久久影院电视剧免费观看| 亚洲欧美aⅴ...| 麻豆成人久久精品二区三区红 | 国产精品美女久久久久久2018| 国产精品久久久久久久蜜臀| 日韩精品成人一区二区三区| 国产成人小视频| 欧美一区永久视频免费观看| 亚洲视频一区二区免费在线观看 | 日韩精品成人一区二区在线| 成人免费视频免费观看| 在线成人午夜影院| 亚洲精品日韩综合观看成人91| 久久国产尿小便嘘嘘尿| 精品视频一区三区九区| 国产精品久久久久7777按摩 | 精品久久久久久久久久久院品网| 国产精品国产三级国产aⅴ原创| 日韩av成人高清| 91视频国产资源| 亚洲国产精品高清| 免费高清不卡av| 欧美日免费三级在线| 亚洲婷婷综合久久一本伊一区| 经典一区二区三区| 欧美男人的天堂一二区| 一区二区三区中文在线观看| 99国产精品久久久久久久久久 | 日韩影院在线观看| 91丨porny丨中文| 国产精品久久久久国产精品日日| 激情综合网av| 精品国产不卡一区二区三区| 蜜桃精品视频在线| 日韩一区二区电影网| 亚洲成人先锋电影| 欧美写真视频网站| 一个色在线综合| 欧美日韩视频在线一区二区| 亚洲国产一区二区三区| 色拍拍在线精品视频8848| 日韩理论片中文av| 91玉足脚交白嫩脚丫在线播放| 久久精品人人做人人爽人人| 国产二区国产一区在线观看| 久久久不卡网国产精品二区| 一本色道久久综合亚洲精品按摩| 国产精品白丝在线| 91在线看国产| 亚洲国产毛片aaaaa无费看| 欧美午夜在线一二页| 日韩精品一二区| 日韩欧美精品在线| 国产一区二区在线观看视频| 国产亚洲成aⅴ人片在线观看 | 自拍视频在线观看一区二区| 91视频在线看| 视频在线观看一区二区三区| 日韩欧美色电影| 国产suv精品一区二区883| 中文字幕永久在线不卡| 色av成人天堂桃色av| 日韩高清不卡一区二区| 欧美v日韩v国产v| 岛国一区二区在线观看| 亚洲一区二三区| 欧美一二区视频| 成人的网站免费观看| 一区二区日韩av| 日韩视频免费观看高清完整版 | 亚洲国产精品一区二区www| 欧美日韩免费在线视频| 久久精品国产77777蜜臀| 欧美国产精品专区| 欧美性色综合网| 国产成人精品免费| 亚洲高清不卡在线| 欧美激情中文不卡| www久久精品| 99v久久综合狠狠综合久久| 石原莉奈在线亚洲三区| 日本一区二区三区电影| 欧美日韩一区二区三区四区 | 午夜av一区二区| 亚洲国产精品二十页| 欧美日韩国产小视频在线观看| 国产美女视频91| 日本vs亚洲vs韩国一区三区| 国产精品国产精品国产专区不片| 91精品免费在线观看| 成人高清视频免费观看| 裸体一区二区三区| 一区二区三区日韩在线观看| 久久婷婷综合激情| 欧美精品tushy高清| 99久久精品国产一区二区三区| 久久超级碰视频| 亚洲韩国一区二区三区| 亚洲图片欧美激情| 国产精品污网站| 精品久久久久久久久久久久包黑料 | 色婷婷综合久久久| 国产1区2区3区精品美女| 久久se精品一区二区| 日日夜夜免费精品| 亚洲综合色区另类av| 亚洲欧美偷拍卡通变态| 亚洲高清视频中文字幕| 成人欧美一区二区三区白人| 欧美激情在线观看视频免费| 久久综合视频网| 亚洲精品一线二线三线无人区| 91精品久久久久久久91蜜桃| 欧美日韩午夜影院| 欧美日韩aaaaaa| 欧美日韩亚洲不卡| 7777精品伊人久久久大香线蕉经典版下载 | 色老头久久综合| 99精品视频一区| 色综合一个色综合亚洲| 一本一道综合狠狠老| 在线视频观看一区| 精品视频在线视频| 日韩一区和二区| 精品久久99ma| 国产偷国产偷精品高清尤物| 国产欧美日韩久久| 国产精品美女久久久久久久久久久| 国产视频一区在线播放| 欧美国产1区2区| 亚洲人成影院在线观看| 成人免费一区二区三区在线观看| 亚洲日本欧美天堂| 亚洲一二三四在线| 日本在线不卡视频一二三区| 久草精品在线观看| 成人av在线网| 色婷婷亚洲综合| 日韩精品综合一本久道在线视频| 精品sm捆绑视频| 亚洲色图视频网| 日韩国产欧美在线视频| 国产精品996| 色婷婷av一区二区三区之一色屋| 欧美日韩夫妻久久| 久久久精品欧美丰满| 亚洲日本一区二区| 男女激情视频一区| va亚洲va日韩不卡在线观看| 欧美日韩在线亚洲一区蜜芽| 欧美成人bangbros| 日韩美女精品在线| 麻豆成人综合网| 色综合久久精品| 国产亚洲一区字幕| 亚洲国产精品综合小说图片区| 国产老肥熟一区二区三区| 日本韩国精品一区二区在线观看| 日韩一区二区三区av| 一区二区在线电影| 风间由美一区二区三区在线观看| 欧美日韩一级视频|