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

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

?? rubberband.c

?? 最簡單的窗口管理器
?? C
字號:
/* $Header: RubberBand.c  88/08/09 08:58:55 Xusr Exp $ *//* derived from XCreateTerm.c *//* * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. * *                         All Rights Reserved * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notice appear in all copies and that * both that copyright notice and this permission notice appear in * supporting documentation, and that the name of Digital Equipment * Corporation not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior permission. * * * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. *//* * MODIFICATION HISTORY * * 000 -- Loretta Guarino Reid, DEC Ultrix Engineering Group * 001 -- Ralph R. Swick, DEC/MIT Project Athena *	  tailor to uwm; use global resources created by uwm */#include "uwm.h"#include <X11/Xutil.h>#include <X11/cursorfont.h>#define max(a,b) ( (a) > (b) ? (a) : (b) )#define min(a,b) ( (a) > (b) ? (b) : (a) )#define abs(a) ( (a) > 0 ? (a) : -(a))#define makemult(a, b) ((b==1) ? (a) : (((int)((a) / (b))) * (b)) )#define DCOUNT 2#define PCOUNT 1 + (4 * 2 * DCOUNT)#define BW	PBorderWidth		/* pop-up window border width */#define IBW	PPadding		/* internal border width for pop-up */AskUser(dpy, scr, window, x, y, width, height, hints)	Display *dpy;	int scr;	Window window;	int *x, *y, *width, *height;	XSizeHints *hints;	{	/* XFontStruct *pfont; */#define pfont	PFontInfo		/* text font for pop-up */	Cursor ur, ul, ll, lr;          /* cursors for rubber banding    */	int change_cursor = FALSE;        int current_cursor;        char *text;			/* text for prompt string       */        int nz;                         /* count where zeros are        */        int popw, poph;                 /* width and height of prompt window*/        /* int pfore, pback; */         /* prompt foreground and background */#define pback	 PTextBackground	/* GC popGC, invertGC; */	/* XGCValues xgc; */#define popGC	 PopGC#define invertGC DrawGC        int x1, y1;                     /* location of mouse            */        int x2, y2;                     /* other corner of box          */        int rootx, rooty;         /* for XQueryPointer          */	unsigned int mask;	Window root, subw;		/* for XQueryPointer */        int xa = -1, ya = -1, xb = -1, yb = -1;        int xinc, yinc;        int minwidth, minheight;        int maxwidth, maxheight;        unsigned int defwidth, defheight;        int chosen = -1;        int stop = FALSE;        int changed = TRUE;        int doit = FALSE;        int dx, dy;	int delta;	XPoint box[PCOUNT];        int hsize, vsize;        int zero = '0';                 /* zero offset for char conversion  */        XEvent e;                 /* someplace to put the event   */        int events;                     /* what events we want.             */        Window pop;                     /* pop up prompt window         */	int i;	char *name;	int width_offset, height_offset; /* to subtract if resize increments */	XSetWindowAttributes attr;	/* for setting save unders flag */	if (hints->flags & USPosition) {	  *x = hints->x;	  *y = hints->y;	  *width = hints->width;	  *height = hints->height;          if (hints->flags & PMinSize) {	      if (*width < hints->min_width) *width = hints->min_width;	      if (*height < hints->min_height) *height = hints->min_height;	  }	  return;	}        if (!XFetchName(dpy, window, &name))	  name = "Unnamed Window";	ur = XCreateFontCursor(dpy, XC_ur_angle);	ul = XCreateFontCursor(dpy, XC_ul_angle);	ll = XCreateFontCursor(dpy, XC_ll_angle);	lr = XCreateFontCursor(dpy, XC_lr_angle);	current_cursor = ul;	events = ButtonPressMask | ButtonReleaseMask;	/* pfont = XLoadQueryFont(dpy, "fixed"); */	/* 	 * go get the mouse as soon as you can 	 */	while (1) {	        int res;		if ((res = XGrabPointer (dpy, RootWindow(dpy, scr), FALSE, events, 		  GrabModeAsync, GrabModeAsync, None, ul, CurrentTime )) == 		    GrabSuccess)		  break;		sleep (1);	}	nz = strlen(name);		/* compute number of characters */	text = (char *)malloc( nz + 11 );	(void) strcpy(text, name);	(void) strcat(text, ": 000x000");	nz += 9;	popw = XTextWidth (pfont, text, nz) + 2 * IBW;	poph = pfont->ascent+pfont->descent + 2 * IBW;	/* pfore = WhitePixel(dpy, scr);	 * pback = BlackPixel(dpy, scr);         * xgc.foreground = pfore;         * xgc.background = pback;	 * xgc.font = pfont->fid;	 * popGC = XCreateGC(dpy, RootWindow(dpy, scr),	 *    GCForeground+GCBackground+GCFont, &xgc);	 * xgc.function = GXinvert;	 * xgc.subwindow_mode = IncludeInferiors;	 * invertGC = XCreateGC(dpy, RootWindow(dpy, scr),	 *   GCForeground+GCBackground+GCFont+GCFunction+GCSubwindowMode, &xgc);	 */	pop = XCreateSimpleWindow(dpy, RootWindow(dpy, scr), 		0, 0, popw, poph, BW, pback, pback);	attr.save_under = True;	XChangeWindowAttributes (dpy, pop, CWSaveUnder, &attr);	XMapWindow (dpy, pop);	if (hints->flags&PMinSize) {	  minwidth = hints->min_width;	  minheight = hints->min_height;	} else {	  minwidth = 0;	  minheight = 0;	}	if (hints->flags&PMaxSize) {	  maxwidth = max(hints->max_width, minwidth);	  maxheight = max(hints->max_height, minheight);	} else {	  maxwidth = DisplayWidth(dpy, scr);	  maxheight = DisplayHeight(dpy, scr);	}	if (hints->flags&PResizeInc) {	  xinc = hints->width_inc;	  yinc = hints->height_inc;	} else {	  xinc = 1;	  yinc = 1;	}	if (hints->flags&PSize || hints->flags&USSize) {	  defwidth = hints->width;	  defheight = hints->height;	} else if (hints->flags&PMinSize) {	  defwidth = hints->min_width;	  defheight = hints->min_height;	} else if (hints->flags&PMaxSize) {	  defwidth = hints->max_width;	  defheight = hints->max_height;        } else {		Window dummy;		int xx, yy ;		unsigned int ww,hh,bw,dp;		XGetGeometry(dpy, window, &dummy, &xx, &yy,			     &defwidth, &defheight, &bw, &dp);	}      /* until there are better WM_HINTS, we'll assume that the client's       * minimum width and height are the appropriate offsets to subtract       * when resizing with an explicit resize increment.       */      if (hints->flags&PMinSize && hints->flags&PResizeInc) {	  width_offset = hints->min_width;	  height_offset = hints->min_height;      } else	  width_offset = height_offset = 0;		XQueryPointer (dpy, RootWindow(dpy, scr), &root, &subw, 	  &rootx, &rooty, &x1, &y1, &mask);	hsize = minwidth; 	vsize = minheight;	x2 = x1+hsize; 	y2 = y1+vsize;	while (stop == FALSE) {	    if ( (xb != max (x1, x2)) || (yb != max (y1, y2))		||(xa != min (x1, x2)) || (ya != min (y1, y2)) ) {		xa = min (x1, x2);		ya = min (y1, y2);		xb = max (x1, x2);		yb = max (y1, y2);		for ( i = 0; i < PCOUNT; i += 4) {                    box[i].x = xa; box[i].y = ya;                    if (i+1 == PCOUNT) break;                    box[i+1].x = xb; box[i+1].y = ya;                    box[i+2].x = xb; box[i+2].y = yb;                    box[i+3].x = xa; box[i+3].y = yb;                }		doit = TRUE;	    }	    if (changed) {	        int Hsize = (hsize - width_offset) / xinc;		int Vsize = (vsize - height_offset) / yinc;		int pos = 3;		changed = FALSE;		text[nz - 7] = (Hsize>99) ? (Hsize / 100 + zero)	: ' ';		text[nz - 6] = (Hsize>9)  ? ((Hsize / 10) % 10 + zero)  : ' ';		text[nz - 5] = Hsize % 10 + zero;		if (Vsize>99) text[nz - pos--] = Vsize / 100 + zero;		if (Vsize>9)  text[nz - pos--] = (Vsize / 10) % 10 + zero;		text[nz - pos--]     = Vsize % 10 + zero;		while (pos>0) text[nz - pos--] = ' ';		XDrawImageString(dpy, pop, popGC, IBW, IBW+pfont->ascent,			text, nz);	    }	    if (doit) {		XDrawLines(dpy, RootWindow(dpy, scr), invertGC, box, PCOUNT, 		  CoordModeOrigin);	    }            if (XPending(dpy) &&		XCheckMaskEvent(dpy, ButtonPressMask|ButtonReleaseMask, &e)) {                if ((chosen < 0) && (e.type == ButtonPress)) {			x1 = x2 = ((XButtonEvent *)&e)->x;                        y1 = y2 = ((XButtonEvent *)&e)->y;                        chosen = ((XButtonEvent *)&e)->button;			if (chosen == Button2)				change_cursor = TRUE;                }                else if ((e.type == ButtonRelease) &&                        ((((XButtonEvent *)&e)->button) == chosen)) {                	x2 = ((XButtonEvent *)&e)->x;                	y2 = ((XButtonEvent *)&e)->y;                        stop = TRUE;                }		else                        XQueryPointer (dpy, RootWindow(dpy, scr), &root, 			  &subw, &rootx, &rooty, &x2, &y2, &mask);            }            else        XQueryPointer (dpy, RootWindow(dpy, scr), &root, 	    		  &subw, &rootx, &rooty, &x2, &y2, &mask);	    if (change_cursor) {                if ((x2 >= x1) && (y2 >= y1) &&                    current_cursor != lr) {                    XChangeActivePointerGrab (dpy, events, lr, CurrentTime );                    current_cursor = lr;               }                else if ((x2 >= x1) && (y2 < y1) &&                         current_cursor != ur) {                    XChangeActivePointerGrab (dpy, events, ur, CurrentTime );                    current_cursor = ur;                }                else if ((x2 < x1) && (y2 >= y1) &&                         current_cursor != ll) {                    XChangeActivePointerGrab (dpy, events, ll, CurrentTime );                    current_cursor = ll;                }                else if ((x2 < x1) && (y2 < y1) &&                         (current_cursor != ul)) {                    XChangeActivePointerGrab (dpy, events, ul, CurrentTime );                    current_cursor = ul;                }	    }	    if (chosen != Button2) {		x1 = x2;		y1 = y2;		if (chosen >= 0) {			x2 = defwidth;			if (chosen == Button1)				y2 = defheight;			else				y2 = (DisplayHeight(dpy, scr) - y1);			x2 = x1 + x2;			y2 = y1 + y2;		}	    }	    dx = max(min(abs (x2 - x1), maxwidth), minwidth);	    dx = makemult(dx-minwidth, xinc)+minwidth; 	    dy = max(min(abs(y2 - y1), maxheight), minheight);	    dy = makemult(dy-minheight, yinc)+minheight; 	    	    if (hints->flags & PAspect) {                if ((dx * hints->max_aspect.y > dy * hints->max_aspect.x)) {		   delta = makemult( 		       (dx*hints->max_aspect.y/hints->max_aspect.x) - dy, 		       yinc); 		   if ((dy+delta) <= maxheight)  dy += delta;		   else {		     delta = makemult(		        dx - hints->max_aspect.x * dy/hints->max_aspect.y, 			xinc);		     if ((dx-delta) >= minwidth) dx -= delta;		   }		}                if (dx * hints->min_aspect.y < dy * hints->min_aspect.x) {		   delta = makemult( 		        (hints->min_aspect.x * dy/hints->min_aspect.y) - dx, 			xinc);		   if (dx+delta <= maxwidth) dx += delta;		   else {		     delta = makemult(		       dy - (dx*hints->min_aspect.y / hints->min_aspect.x), 		       yinc); 		     if ((dy-delta) >= minheight) dy -= delta;		   }		}		  	    }	    if (dx != hsize) {	    	hsize = dx;		changed = TRUE;	    }	    if (dy != vsize) {	    	vsize = dy;		changed = TRUE;	    }	    if (x2 < x1)		x2 = x1 - dx;	    else		x2 = x1 + dx;	    if (y2 < y1)		y2 = y1 - dy;	    else	    	y2 = y1 + dy;	}	XUngrabPointer(dpy, CurrentTime);	XDestroyWindow (dpy, pop);	/* XFreeFont(dpy, pfont); */	XFreeCursor (dpy, ur);	XFreeCursor (dpy, ul);	XFreeCursor (dpy, lr);	XFreeCursor (dpy, ll);	free(name);	free(text);	*x = min(x1, x2);	*y = min(y1, y2);	*width = hsize;	*height = vsize;	XSync(dpy, False);	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜美腿成人在线| 亚洲三级在线免费| 欧美久久一区二区| 欧美日韩在线播| 欧美日韩国产一二三| 欧美视频你懂的| 3atv一区二区三区| 日韩午夜av一区| www国产成人免费观看视频 深夜成人网| 欧美精选在线播放| 日韩欧美国产一区二区在线播放| 日韩一区二区三区免费看 | 不卡视频在线看| 成人午夜电影久久影院| www.欧美色图| 欧美丝袜丝nylons| 精品播放一区二区| 日本一二三四高清不卡| 亚洲免费大片在线观看| 亚洲国产精品视频| 极品少妇xxxx偷拍精品少妇| 风间由美一区二区av101| 99久久婷婷国产综合精品电影| 色综合婷婷久久| 日韩午夜激情免费电影| 亚洲国产精品高清| 亚洲成a人v欧美综合天堂 | 国产酒店精品激情| 成人激情av网| 555www色欧美视频| 国产精品毛片大码女人| 亚洲成精国产精品女| 国产乱码一区二区三区| 色老汉一区二区三区| 精品国产乱码91久久久久久网站| 一区在线中文字幕| 青椒成人免费视频| 91亚洲精华国产精华精华液| 欧美精品粉嫩高潮一区二区| 久久久精品中文字幕麻豆发布| 亚洲摸摸操操av| 国产在线一区二区| 欧美三级三级三级爽爽爽| 国产午夜精品美女毛片视频| 亚洲国产成人高清精品| 高清国产一区二区三区| 日韩欧美国产麻豆| 亚洲综合av网| 99精品视频一区| 久久久久久久久蜜桃| 日本伊人精品一区二区三区观看方式| 国产91丝袜在线18| 欧美成人艳星乳罩| 丝瓜av网站精品一区二区| 91原创在线视频| 欧美激情一区二区三区四区| 久久99久久99精品免视看婷婷| 91成人免费在线视频| 亚洲国产高清aⅴ视频| 六月丁香综合在线视频| 欧美日本精品一区二区三区| 亚洲男人天堂av| 91亚洲国产成人精品一区二区三| 国产日韩欧美精品一区| 黄一区二区三区| 精品国产乱码久久久久久久久| 丝袜脚交一区二区| 欧美日韩一级片在线观看| 亚洲精品国产无套在线观| av欧美精品.com| 国产精品成人一区二区三区夜夜夜| 精品一区二区久久| 精品日韩在线一区| 久草中文综合在线| 精品国产乱码久久久久久久久| 久久av资源网| 精品国产乱子伦一区| 黑人巨大精品欧美黑白配亚洲| 亚洲精品一区二区三区四区高清| 热久久久久久久| 久久午夜国产精品| 国产裸体歌舞团一区二区| 国产日本欧美一区二区| 成人午夜大片免费观看| 亚洲视频网在线直播| 日本高清不卡在线观看| 亚洲高清中文字幕| 日韩一区二区电影网| 黄色日韩三级电影| 欧美国产综合一区二区| 色婷婷久久久久swag精品| 亚洲综合一区二区三区| 欧美巨大另类极品videosbest | 亚洲精品国产精品乱码不99| 在线欧美日韩国产| 人人狠狠综合久久亚洲| 国产午夜久久久久| 日本乱码高清不卡字幕| 日本成人在线不卡视频| 国产亚洲精久久久久久| 91老司机福利 在线| 日韩精彩视频在线观看| 久久亚洲综合色| 91麻豆免费视频| 久久精品久久99精品久久| 国产精品毛片高清在线完整版| 在线一区二区视频| 九色|91porny| 亚洲最色的网站| 久久天天做天天爱综合色| 91视频一区二区三区| 美女视频免费一区| 自拍偷拍欧美激情| 日韩精品资源二区在线| 色综合婷婷久久| 国产一区二区三区最好精华液| 亚洲精品福利视频网站| 精品国产精品网麻豆系列| 色综合久久中文综合久久牛| 激情五月婷婷综合| 亚洲电影欧美电影有声小说| 国产精品理论片| 日韩一级高清毛片| 欧美色窝79yyyycom| 大美女一区二区三区| 免费成人美女在线观看| 亚洲免费毛片网站| 亚洲欧美日韩久久| 久久精品人人做人人爽人人| 欧美亚洲图片小说| 99re在线精品| 国产精品一卡二卡| 久久91精品国产91久久小草| 亚洲成年人网站在线观看| 亚洲欧洲日韩女同| 国产精品天干天干在观线| 精品乱人伦一区二区三区| 精品视频1区2区3区| 91麻豆国产福利精品| proumb性欧美在线观看| 国产成人av一区二区三区在线观看| 日本aⅴ免费视频一区二区三区| 亚洲二区在线视频| 一片黄亚洲嫩模| 亚洲精品乱码久久久久久黑人| 国产亚洲短视频| 国产日韩精品视频一区| 国产亚洲成av人在线观看导航 | 丁香婷婷深情五月亚洲| 国产精品自拍av| 韩国毛片一区二区三区| 狠狠色丁香九九婷婷综合五月| 奇米色一区二区三区四区| 日韩激情视频在线观看| 日本亚洲一区二区| 蜜臀91精品一区二区三区| 欧美aⅴ一区二区三区视频| 日韩精品成人一区二区在线| 日本aⅴ精品一区二区三区| 日产精品久久久久久久性色| 麻豆91在线观看| 国产在线精品一区在线观看麻豆| 精品一区二区久久久| 国产成人免费视频网站| av毛片久久久久**hd| 日本韩国欧美一区| 欧美精品免费视频| www日韩大片| 中文字幕一区免费在线观看| 亚洲精品国产无套在线观| 婷婷综合五月天| 不卡一区二区三区四区| 色婷婷国产精品久久包臀| 69精品人人人人| 久久久午夜电影| 一区二区国产盗摄色噜噜| 日韩av中文字幕一区二区三区 | 欧美精品一区二区三区高清aⅴ| 久久久三级国产网站| 亚洲特黄一级片| 日韩在线播放一区二区| 国产一区二区伦理片| 色综合天天综合网天天看片| 正在播放亚洲一区| 国产欧美一区二区三区在线老狼| 亚洲男人的天堂在线aⅴ视频 | 日韩午夜在线影院| 国产精品成人在线观看| 亚洲超丰满肉感bbw| 国产福利精品导航| 欧美日韩一区中文字幕| 国产喂奶挤奶一区二区三区| 一卡二卡欧美日韩| 国产盗摄视频一区二区三区| 欧美日韩久久一区| 亚洲国产精品激情在线观看| 日韩主播视频在线| 在线亚洲人成电影网站色www| 欧美不卡视频一区| 亚洲自拍偷拍av|