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

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

?? resize.c

?? 安裝DDD之前
?? C
字號:
/* $Id: resize.c,v 1.1 2004/08/28 19:25:46 dannybackx Exp $ *//*****************************************************************************//**       Copyright 1988 by Evans & Sutherland Computer Corporation,        **//**                          Salt Lake City, Utah                           **//**  Portions Copyright 1989 by the Massachusetts Institute of Technology   **//**                        Cambridge, 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  permis-    **//**    sion  notice appear in supporting  documentation,  and  that  the    **//**    names of Evans & Sutherland and M.I.T. not be used in advertising    **//**    in publicity pertaining to distribution of the  software  without    **//**    specific, written prior permission.                                  **//**                                                                         **//**    EVANS & SUTHERLAND AND M.I.T. DISCLAIM ALL WARRANTIES WITH REGARD    **//**    TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES  OF  MERCHANT-    **//**    ABILITY  AND  FITNESS,  IN  NO  EVENT SHALL EVANS & SUTHERLAND OR    **//**    M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL  DAM-    **//**    AGES 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.                                     **//*****************************************************************************//**************************************************************************** * This module is based on Twm, but has been siginificantly modified  * by Rob Nation  ****************************************************************************//*********************************************************************** * The rest of it is all my fault -- MLM * mwm - "LessTif Window Manager" ***********************************************************************/#include <LTconfig.h>#include <stdio.h>#include <string.h>#include <Xm/Xm.h>#include <Xm/MwmUtil.h>#include "mwm.h"static int dragx;		/* all these variables are used */static int dragy;		/* in resize operations */static int dragWidth;static int dragHeight;static int origx;static int origy;static int origWidth;static int origHeight;static int ymotion, xmotion;static int last_width, last_height;/* * display the size in the dimensions window */static voiddisplay_size(ScreenInfo *scr, MwmWindow *tmp_win, int width, int height,	     Boolean Init){    char str[100];    int dwidth, dheight, offset, ssw;    if (last_width == width && last_height == height)	return;    ssw = XTextWidth(scr->components[MWM_FEEDBACK].font,		     " +8888 x +8888 ", 15);    last_width = width;    last_height = height;    dheight = height - tmp_win->title_height -	2 * tmp_win->boundary_width -	2 * tmp_win->matte_width;    dwidth = width - 2 * tmp_win->boundary_width -	2 * tmp_win->matte_width;    dwidth -= tmp_win->hints.base_width;    dheight -= tmp_win->hints.base_height;    dwidth /= tmp_win->hints.width_inc;    dheight /= tmp_win->hints.height_inc;    sprintf(str, " %4d x %-4d ", dwidth, dheight);    offset = (ssw + SIZE_HINDENT * 2 -	      XTextWidth(scr->components[MWM_FEEDBACK].font,			 str, strlen(str))) / 2;    if (Init)    {	XClearWindow(dpy, scr->size_win);	if (scr->d_depth >= 2)	    DEC_DrawShadows(tmp_win, scr->size_win,			    0, 0,			    ssw + SIZE_HINDENT * 2,			    scr->components[MWM_FEEDBACK].f_height +			    SIZE_VINDENT * 2,			    scr->components[MWM_FEEDBACK].top_GC,			    scr->components[MWM_FEEDBACK].bot_GC);    }    else    {	XClearArea(dpy, scr->size_win, SIZE_HINDENT, SIZE_VINDENT,		   ssw, scr->components[MWM_FEEDBACK].f_height,		   False);    }    XDrawString(dpy, scr->size_win, scr->components[MWM_FEEDBACK].normal_GC,		offset, scr->components[MWM_FEEDBACK].f_y + SIZE_VINDENT,		str, 13);}/* * move the rubberband around.  This is called for each motion event when we * are resizing */static voidresize_window(ScreenInfo *scr, int x_root, int y_root, MwmWindow *tmp_win){    int action = 0;    unsigned int width, height;    int ww, wh;    int wx, wy;    int MaxH, MaxW;    static int last_w = -10000, last_h = -10000;    if ((y_root <= origy) || ((ymotion == 1) && (y_root < origy + origHeight - 1)))    {	dragy = y_root;	dragHeight = origy + origHeight - y_root;	action = 1;	ymotion = 1;    }    else if ((y_root >= origy + origHeight - 1) ||	     ((ymotion == -1) && (y_root > origy)))    {	dragy = origy;	dragHeight = 1 + y_root - dragy;	action = 1;	ymotion = -1;    }    if ((x_root <= origx) ||	((xmotion == 1) && (x_root < origx + origWidth - 1)))    {	dragx = x_root;	dragWidth = origx + origWidth - x_root;	action = 1;	xmotion = 1;    }    if ((x_root >= origx + origWidth - 1) ||	((xmotion == -1) && (x_root > origx)))    {	dragx = origx;	dragWidth = 1 + x_root - origx;	action = 1;	xmotion = -1;    }    if (action)    {	WIN_ConstrainWindow(scr, tmp_win, &dragWidth, &dragHeight);	if (xmotion == 1)	    dragx = origx + origWidth - dragWidth;	if (ymotion == 1)	    dragy = origy + origHeight - dragHeight;	/* update size of the pager_view window */	if ((scr->mwm_pager != NULL) &&	    (dragx < scr->mwm_pager->frame_x + scr->mwm_pager->frame_width) &&	    (dragx + dragWidth > scr->mwm_pager->frame_x) &&	    (dragy < scr->mwm_pager->frame_y + scr->mwm_pager->frame_height) &&	    (dragy + dragHeight > scr->mwm_pager->frame_y) &&	    ((!(scr->flags & OpaqueResize)) ||	     ((scr->flags & OpaqueResize) && (!(tmp_win->flags & MAPPED)))))	    WIN_DrawOutline(scr, scr->root_win, 0, 0, 0, 0);	if (scr->mwm_pager)	{	    width = scr->mwm_pager->frame_width -		2 * scr->mwm_pager->boundary_width -		2 * scr->mwm_pager->matte_width;	    height = scr->mwm_pager->frame_height -		scr->mwm_pager->title_height -		2 * scr->mwm_pager->boundary_width -		2 * scr->mwm_pager->matte_width;	    MaxW = scr->virt_x_max + scr->d_width;	    MaxH = scr->virt_y_max + scr->d_height;	    if (!(tmp_win->flags & STICKY))	    {		/* show the actual window */		wx = (dragx + scr->virt_x) * (int)width / MaxW;		wy = (dragy + scr->virt_y) * (int)height / MaxH;		ww = dragWidth * (int)width / MaxW;		wh = dragHeight * (int)height / MaxH;		if ((last_w - ww >= 2) || (last_w - ww <= -2) ||		    (last_h - wh >= 2) || (last_h - wh <= -2))		{		    if (ww < 2)			ww = 2;		    if (wh < 2)			wh = 2;		    XMoveResizeWindow(dpy, tmp_win->pager_view, wx, wy, ww, wh);		    last_h = wh;		    last_w = ww;		}	    }	}	if ((!(scr->flags & OpaqueResize)) ||	    ((scr->flags & OpaqueResize) && (!(tmp_win->flags & MAPPED))))	{	    WIN_DrawOutline(scr, scr->root_win, dragx - tmp_win->bw, dragy - tmp_win->bw,		    dragWidth + 2 * tmp_win->bw, dragHeight + 2 * tmp_win->bw);	}	else	{	    DEC_ConfigureDecorations(scr, tmp_win, dragx - tmp_win->bw,			    dragy - tmp_win->bw, dragWidth, dragHeight, False);	}    }    if (Mwm.show_feedback & MWM_FEEDBACK_RESIZE)	display_size(scr, tmp_win, dragWidth, dragHeight, False);}/* * Starts a window resize operation */voidRESIZE_EventLoop(ScreenInfo *scr, Window w, MwmWindow *tmp_win,		 int val1, int val2, int val1_unit, int val2_unit){    Bool finished = False, done = False;    int x, y, delta_x, delta_y;    Window ResizeWindow;    XEvent oevent;    if ((w == None) || (tmp_win == NULL))	return;    /* Already checked this in functions.c, but its here too incase     * there's a resize on initial placement. */    if (tmp_win && !(tmp_win->functions & MWM_FUNC_RESIZE))    {	XBell(dpy, scr->screen);	return;    }    /* can't resize icons */    if (tmp_win->flags & ICONIFIED)	return;    ResizeWindow = tmp_win->frame;    if ((val1 != 0) && (val2 != 0))    {	dragWidth = val1 * val1_unit / 100;	dragHeight = val2 * val2_unit / 100;	WIN_ConstrainWindow(scr, tmp_win, &dragWidth, &dragHeight);	DEC_ConfigureDecorations(scr, tmp_win, tmp_win->frame_x,			       tmp_win->frame_y, dragWidth, dragHeight, False);	ResizeWindow = None;	PAGER_Clear(scr);	return;    }    COLOR_PushRootColorMap(scr);    if (menuFromFrameOrWindowOrTitlebar)    {	/* warp the pointer to the cursor position from before menu appeared */	XWarpPointer(dpy, None, scr->root_win, 0, 0, 0, 0, Stashed_X, Stashed_Y);	XFlush(dpy);    }    if (!MISC_Grab(scr, MOVE_CURS))    {	XBell(dpy, scr->screen);	return;    }    if ((!(scr->flags & OpaqueResize)) ||	((scr->flags & OpaqueResize) && (!(tmp_win->flags & MAPPED))))	XGrabServer(dpy);    pagerOn = False;    XGetGeometry(dpy, (Drawable)ResizeWindow, &JunkRoot,		 &dragx, &dragy, (unsigned int *)&dragWidth,		 (unsigned int *)&dragHeight, &JunkBW, &JunkDepth);    dragx += tmp_win->bw;    dragy += tmp_win->bw;    origx = dragx;    origy = dragy;    origWidth = dragWidth;    origHeight = dragHeight;    ymotion = xmotion = 0;    /* pop up a resize dimensions window */    if (Mwm.show_feedback & MWM_FEEDBACK_RESIZE)	XMapRaised(dpy, scr->size_win);    last_width = 0;    last_height = 0;    if (Mwm.show_feedback & MWM_FEEDBACK_RESIZE)	display_size(scr, tmp_win, origWidth, origHeight, True);    /* Get the current position to determine which border to resize */    if ((scr->pressed_win != scr->root_win) && (scr->pressed_win != None))    {	if (scr->pressed_win == tmp_win->sides[0])	/* top */	    ymotion = 1;	if (scr->pressed_win == tmp_win->sides[1])	/* right */	    xmotion = -1;	if (scr->pressed_win == tmp_win->sides[2])	/* bottom */	    ymotion = -1;	if (scr->pressed_win == tmp_win->sides[3])	/* left */	    xmotion = 1;	if (scr->pressed_win == tmp_win->corners[0])	{			/* upper-left */	    ymotion = 1;	    xmotion = 1;	}	if (scr->pressed_win == tmp_win->corners[1])	{			/* upper-right */	    xmotion = -1;	    ymotion = 1;	}	if (scr->pressed_win == tmp_win->corners[2])	{			/* lower right */	    ymotion = -1;	    xmotion = 1;	}	if (scr->pressed_win == tmp_win->corners[3])	{			/* lower left */	    ymotion = -1;	    xmotion = -1;	}    }    /* draw the rubber-band window */    if ((!(scr->flags & OpaqueResize)) ||	((scr->flags & OpaqueResize) && (!(tmp_win->flags & MAPPED))))	WIN_DrawOutline(scr, scr->root_win, dragx - tmp_win->bw, dragy - tmp_win->bw, dragWidth + 2 * tmp_win->bw,			dragHeight + 2 * tmp_win->bw);    /* loop to resize */    while (!finished)    {	XMaskEvent(dpy, ButtonPressMask | ButtonReleaseMask | KeyPressMask |		 ButtonMotionMask | PointerMotionMask | ExposureMask, &oevent);	MISC_StashEventTime(&oevent);	if (oevent.type == MotionNotify)	    /* discard any extra motion events before a release */	    while (XCheckMaskEvent(dpy, ButtonMotionMask | ButtonReleaseMask |				   PointerMotionMask, &oevent))	    {		MISC_StashEventTime(&oevent);		if (oevent.type == ButtonRelease)		    break;	    }	done = False;	/* Handle a limited number of key press events to allow mouseless	 * operation */	if (oevent.type == KeyPress)	    MISC_KeyboardShortcut(scr, &oevent, ButtonRelease);	switch (oevent.type)	{	case ButtonPress:	    XAllowEvents(dpy, ReplayPointer, CurrentTime);	case KeyPress:	    done = True;	    break;	case ButtonRelease:	    finished = True;	    done = True;	    break;	case MotionNotify:	    x = oevent.xmotion.x_root;	    y = oevent.xmotion.y_root;	    /* need to move the viewport */	    PAN_PanDesktop(scr, scr->edge_scroll_x, scr->edge_scroll_y, &x, &y,			   &delta_x, &delta_y, False, &oevent);	    origx -= delta_x;	    origy -= delta_y;	    dragx -= delta_x;	    dragy -= delta_y;	    resize_window(scr, x, y, tmp_win);	    done = True;	default:	    break;	}	if (!done)	{	    if ((!(scr->flags & OpaqueResize)) ||		((scr->flags & OpaqueResize) && (!(tmp_win->flags & MAPPED))))		WIN_DrawOutline(scr, scr->root_win, 0, 0, 0, 0);	    EVENT_Dispatch(&oevent);	    if ((!(scr->flags & OpaqueResize)) ||		((scr->flags & OpaqueResize) && (!(tmp_win->flags & MAPPED))))		WIN_DrawOutline(scr, scr->root_win, dragx - tmp_win->bw, dragy - tmp_win->bw,		    dragWidth + 2 * tmp_win->bw, dragHeight + 2 * tmp_win->bw);	}    }    /* erase the rubber-band */    if ((!(scr->flags & OpaqueResize)) ||	((scr->flags & OpaqueResize) && (!(tmp_win->flags & MAPPED))))	WIN_DrawOutline(scr, scr->root_win, 0, 0, 0, 0);    /* pop down the size window */    if (Mwm.show_feedback & MWM_FEEDBACK_RESIZE)	XUnmapWindow(dpy, scr->size_win);    pagerOn = True;    WIN_ConstrainWindow(scr, tmp_win, &dragWidth, &dragHeight);    DEC_ConfigureDecorations(scr, tmp_win, dragx - tmp_win->bw,			     dragy - tmp_win->bw, dragWidth, dragHeight, False);    COLOR_PopRootColorMap(scr);    ResizeWindow = None;    XUngrabServer(dpy);    MISC_Ungrab(scr);    PAGER_Clear(scr);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品视频免费观看| 日韩女优视频免费观看| 国产91高潮流白浆在线麻豆 | 国产乱码精品一区二区三区av| 午夜精品福利一区二区三区av | 国产精品乱码久久久久久| 日韩欧美视频在线| 精品美女在线播放| 欧美精品一区二| 久久噜噜亚洲综合| 国产精品网站一区| 亚洲免费观看在线视频| 亚洲综合色在线| 调教+趴+乳夹+国产+精品| 日韩精品高清不卡| 国产一区二区三区免费在线观看| 国产精品888| bt7086福利一区国产| 91高清视频在线| 在线播放中文一区| 久久久www成人免费无遮挡大片| 久久久久久久性| 亚洲精品国产成人久久av盗摄 | 亚洲一区二区三区三| 性久久久久久久| 国产在线精品免费| 9i看片成人免费高清| 欧美日韩一区在线观看| 日韩一区二区麻豆国产| 欧美激情艳妇裸体舞| 亚洲精品日日夜夜| 日本va欧美va瓶| 丁香亚洲综合激情啪啪综合| 欧美主播一区二区三区美女| 亚洲精品一线二线三线| 亚洲精品视频免费观看| 国产一区二区女| 欧美日本在线播放| 国产精品嫩草久久久久| 日韩精品成人一区二区在线| 成人午夜又粗又硬又大| 在线成人高清不卡| 亚洲色图一区二区| 国产一区在线观看麻豆| 在线播放中文字幕一区| 亚洲色图欧美激情| 国产不卡在线一区| 欧美一区二区视频观看视频| 亚洲欧洲一区二区三区| 国模大尺度一区二区三区| 欧美综合一区二区| 18涩涩午夜精品.www| 国内精品自线一区二区三区视频| 欧美日本乱大交xxxxx| 亚洲美女一区二区三区| 国产电影一区二区三区| 日韩欧美国产午夜精品| 一区二区三区欧美激情| 国产·精品毛片| 欧美一区二区观看视频| 亚洲国产一区二区三区青草影视| 成人99免费视频| 久久久久国产一区二区三区四区| 亚洲成人你懂的| 欧美综合色免费| 一区二区三区欧美| 色老头久久综合| 亚洲欧美国产77777| 成人黄色免费短视频| 欧美—级在线免费片| 国产毛片精品一区| 精品国产精品一区二区夜夜嗨| 日韩电影网1区2区| 日韩免费一区二区| 久99久精品视频免费观看| 制服丝袜激情欧洲亚洲| 亚洲成a人v欧美综合天堂下载| 在线免费一区三区| 亚洲午夜久久久久久久久久久| 91视视频在线观看入口直接观看www | 日韩成人av影视| 91精品国产91综合久久蜜臀| 男女性色大片免费观看一区二区| 91精选在线观看| 激情欧美日韩一区二区| 精品裸体舞一区二区三区| 激情六月婷婷综合| 国产精品乱人伦| 91国偷自产一区二区三区观看| 亚洲精品视频在线看| 欧美日韩久久久一区| 日韩影院免费视频| 国产日韩v精品一区二区| 成人福利视频网站| 亚洲国产欧美在线| 精品国产一区二区三区久久影院| 国产大陆精品国产| 亚洲精品视频免费观看| 在线综合亚洲欧美在线视频| 韩国av一区二区三区在线观看| 国产精品美女久久福利网站| 欧美无砖砖区免费| 国产一区二区三区香蕉| 亚洲特黄一级片| 91精品国产综合久久婷婷香蕉| 国产成+人+日韩+欧美+亚洲| 一区二区三区在线影院| 日韩欧美国产综合一区| 99久久精品免费看国产免费软件| 一区二区三区欧美日| 久久夜色精品一区| 91成人国产精品| 国产一区二区美女诱惑| 一区二区日韩电影| 久久精品一区八戒影视| 欧美色综合久久| 国产精品一线二线三线精华| 亚洲国产成人高清精品| 欧美—级在线免费片| 91精品国产91久久综合桃花| 成人福利电影精品一区二区在线观看| 亚洲第一在线综合网站| 国产丝袜在线精品| 91精品国产综合久久久久| 成人av在线一区二区三区| 久久综合综合久久综合| 亚洲另类色综合网站| 国产亚洲va综合人人澡精品| 欧美猛男gaygay网站| 成人激情校园春色| 激情小说欧美图片| 午夜欧美视频在线观看| 国产精品国产三级国产专播品爱网 | 国产久卡久卡久卡久卡视频精品| 亚洲一线二线三线久久久| 亚洲国产精品高清| 精品国产一区久久| 欧美精品tushy高清| 91麻豆精品国产自产在线观看一区| 成人国产精品免费网站| 国产一区二区三区电影在线观看| 奇米综合一区二区三区精品视频| 一区二区三区日韩| 亚洲激情五月婷婷| 国产精品麻豆一区二区| 久久精子c满五个校花| 精品精品国产高清一毛片一天堂| 91精品国产色综合久久不卡蜜臀| 欧美视频精品在线观看| 在线看日本不卡| 在线视频你懂得一区二区三区| 99免费精品视频| 91丨九色丨黑人外教| 色呦呦一区二区三区| 色婷婷av一区二区三区gif| 91视频国产观看| 色欧美片视频在线观看| 色婷婷亚洲精品| 欧美老女人在线| 欧美一区二区福利在线| 欧美mv日韩mv亚洲| 久久品道一品道久久精品| 日本一区二区免费在线观看视频 | 成人综合在线网站| 国产成人精品一区二区三区四区| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩国产高清在线| 免费观看久久久4p| 国产一级精品在线| www.欧美亚洲| 日本精品裸体写真集在线观看 | 国产精品18久久久久久vr| 国产伦精一区二区三区| 懂色av一区二区三区蜜臀| 91免费观看视频在线| 精品视频免费在线| 日韩亚洲欧美中文三级| 国产三级精品视频| 一区二区在线电影| 美女在线观看视频一区二区| 国产精品一区二区不卡| aaa欧美日韩| 日韩视频中午一区| 中文字幕一区二区三区乱码在线| 精品无码三级在线观看视频| 成人国产电影网| 国产精品免费观看视频| 日本亚洲天堂网| 激情五月激情综合网| 在线看日韩精品电影| 日韩欧美国产午夜精品| 亚洲女同女同女同女同女同69| 日韩av二区在线播放| av成人免费在线观看| 日韩视频一区二区| 一区二区三区日韩欧美精品| 国产精品99久久久久久有的能看| 在线观看av不卡| 中文字幕av不卡| 看电视剧不卡顿的网站|