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

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

?? decorate.c

?? 安裝DDD之前
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*****************************************************************************//**       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 <string.h>#include <Xm/Xm.h>#include <Xm/MwmUtil.h>#include "mwm.h"#include <X11/extensions/shape.h>/* * button dimensions */static int lbut_styles[2] ={    22,    55};static int rbut_style_min[2] ={    22,    22};static int rbut_style_max[2] ={    55,    55};/* * change some window attributes */static voidset_value_attributes(ScreenInfo *scr, MwmWindow *t, unsigned long *valuemask,		     XSetWindowAttributes *attributes, ComponentInfo *comp){    *valuemask = CWBorderPixel;    if (scr->mwm_highlight == t)    {	attributes->border_pixel = comp->active_background;	if (comp->active_background_pixmap != XmUNSPECIFIED_PIXMAP)	{	    attributes->background_pixmap = comp->active_background_pixmap;	    *valuemask |= CWBackPixmap;	}	else	{	    attributes->background_pixel = comp->active_background;	    *valuemask |= CWBackPixel;	}    }    else    {	attributes->border_pixel = comp->background;	if (comp->background_pixmap != XmUNSPECIFIED_PIXMAP)	{	    attributes->background_pixmap = comp->background_pixmap;	    *valuemask |= CWBackPixmap;	}	else	{	    attributes->background_pixel = comp->background;	    *valuemask |= CWBackPixel;	}    }}static voiddraw_corners(MwmWindow *t, int i, GC hor, GC vert){    XSegment seg[2];    int n = 0;    switch (i)    {    case 0:	seg[0].x1 = t->boundary_width - 1;	seg[0].x2 = t->corner_width;	seg[0].y1 = t->boundary_width - 1;	seg[0].y2 = t->boundary_width - 1;	n = 1;	break;    case 1:	seg[0].x1 = 0;	seg[0].x2 = t->corner_width - t->boundary_width;	seg[0].y1 = t->boundary_width - 1;	seg[0].y2 = t->boundary_width - 1;	n = 1;	break;    case 2:	seg[0].x1 = t->boundary_width - 1;	seg[0].x2 = t->corner_width - 2;	seg[0].y1 = t->corner_width - t->boundary_width + t->bw;	seg[0].y2 = t->corner_width - t->boundary_width + t->bw;	n = 1;	break;    case 3:	seg[0].x1 = 0;	seg[0].x2 = t->corner_width - t->boundary_width;	seg[0].y1 = t->corner_width - t->boundary_width + t->bw;	seg[0].y2 = t->corner_width - t->boundary_width + t->bw;	n = 1;	break;    }    XDrawSegments(dpy, t->corners[i], hor, seg, n);    switch (i)    {    case 0:	seg[0].y1 = t->boundary_width - 1;	seg[0].y2 = t->corner_width;	seg[0].x1 = t->boundary_width - 1;	seg[0].x2 = t->boundary_width - 1;	n = 1;	break;    case 1:	seg[0].y1 = t->boundary_width - 1;	seg[0].y2 = t->corner_width - 2;	seg[0].x1 = t->corner_width - t->boundary_width;	seg[0].x2 = t->corner_width - t->boundary_width;	n = 1;	break;    case 2:	seg[0].y1 = 0;	seg[0].y2 = t->corner_width - t->boundary_width;	seg[0].x1 = t->boundary_width - 1;	seg[0].x2 = t->boundary_width - 1;	n = 1;	break;    case 3:	seg[0].y1 = 0;	seg[0].y2 = t->corner_width - t->boundary_width + t->bw;	seg[0].x1 = t->corner_width - t->boundary_width;	seg[0].x2 = t->corner_width - t->boundary_width;	n = 1;	break;    }    XDrawSegments(dpy, t->corners[i], vert, seg, 1);}/* * draws a pattern within a window */static voiddraw_pattern(Window win, GC ShadowGC, GC ReliefGC, int h1, int w1, int t1){    XSegment seg[2];    int i, h, b, u, w, r, l;    h = t1 * h1 / 200;    b = (t1 >> 1) + h;    u = t1 - b - 1;    w = t1 * w1 / 200;    r = (t1 >> 1) + w;    l = t1 - r - 1;    i = 0;    seg[i].x1 = l;    seg[i].y1 = u;    seg[i].x2 = r;    seg[i++].y2 = u;    seg[i].x1 = l;    seg[i].y1 = u;    seg[i].x2 = l;    seg[i++].y2 = b;    XDrawSegments(dpy, win, ShadowGC, seg, i);    i = 0;    seg[i].x1 = l;    seg[i].y1 = b;    seg[i].x2 = r;    seg[i++].y2 = b;    seg[i].x1 = r;    seg[i].y1 = u;    seg[i].x2 = r;    seg[i++].y2 = b;    XDrawSegments(dpy, win, ReliefGC, seg, i);}/* * relieve a rectangle */static voidrelieve_rectangle(Window win, int x, int y, int w, int h, GC Hilite, GC Shadow){    XDrawLine(dpy, win, Hilite, x, y, w + x - 1, y);    XDrawLine(dpy, win, Hilite, x, y, x, h + y - 1);    XDrawLine(dpy, win, Hilite, x, y + 1, w + x - 2, y + 1);    XDrawLine(dpy, win, Hilite, x + 1, y + 1, x + 1, h + y - 2);    XDrawLine(dpy, win, Shadow, x, h + y - 1, w + x - 1, h + y - 1);    XDrawLine(dpy, win, Shadow, w + x - 1, y, w + x - 1, h + y - 1);    XDrawLine(dpy, win, Shadow, x + 1, h + y - 2, w + x - 2, h + y - 2);    XDrawLine(dpy, win, Shadow, w + x - 2, y + 1, w + x - 2, h + y - 2);}/* * draw border windows */voidDEC_DrawBorder(MwmWindow *t, Window win, int x, int y, int w, int h,	       GC ReliefGC, GC ShadowGC){    XSegment seg[4];    int i;    /* top */    if (win == t->sides[0])    {	i = 0;	seg[i].x1 = x;	seg[i].y1 = y;	seg[i].x2 = w + x - 1;	seg[i++].y2 = y;	seg[i].x1 = x;	seg[i].y1 = y;	seg[i].x2 = x;	seg[i++].y2 = h + y - 1;	XDrawSegments(dpy, win, ReliefGC, seg, i);	i = 0;	seg[i].x1 = x + t->boundary_width;	seg[i].y1 = y + h - 1;	seg[i].x2 = w + x - 1 - t->boundary_width;	seg[i++].y2 = y + h - 1;	seg[i].x1 = x + w - 1;	seg[i].y1 = y;	seg[i].x2 = x + w - 1;	seg[i++].y2 = y + h - 1;	XDrawSegments(dpy, win, ShadowGC, seg, i);    }    /* right */    else if (win == t->sides[1])    {	i = 0;	seg[i].x1 = x;	seg[i].y1 = y;	seg[i].x2 = w + x - 1;	seg[i++].y2 = y;	seg[i].x1 = x;	seg[i].y1 = y + t->boundary_width - 1;	seg[i].x2 = x;	seg[i++].y2 = h + y - 1 - t->boundary_width;	XDrawSegments(dpy, win, ReliefGC, seg, i);	i = 0;	seg[i].x1 = x;	seg[i].y1 = y + h - 1;	seg[i].x2 = w + x - 1;	seg[i++].y2 = y + h - 1;	seg[i].x1 = x + w - 1;	seg[i].y1 = y;	seg[i].x2 = x + w - 1;	seg[i++].y2 = y + h - 1;	XDrawSegments(dpy, win, ShadowGC, seg, i);    }    /* bottom */    else if (win == t->sides[2])    {	i = 0;	seg[i].x1 = x + t->boundary_width;	seg[i].y1 = y;	seg[i].x2 = w + x - t->boundary_width;	seg[i++].y2 = y;	seg[i].x1 = x;	seg[i].y1 = y;	seg[i].x2 = x;	seg[i++].y2 = h + y - 1;	XDrawSegments(dpy, win, ReliefGC, seg, i);	i = 0;	seg[i].x1 = x;	seg[i].y1 = y + h - 1;	seg[i].x2 = w + x - 1;	seg[i++].y2 = y + h - 1;	seg[i].x1 = x + w - 1;	seg[i].y1 = y;	seg[i].x2 = x + w - 1;	seg[i++].y2 = y + h - 1;	XDrawSegments(dpy, win, ShadowGC, seg, i);    }    /* left */    else    {	i = 0;	seg[i].x1 = x;	seg[i].y1 = y;	seg[i].x2 = w + x - 1;	seg[i++].y2 = y;	seg[i].x1 = x;	seg[i].y1 = y;	seg[i].x2 = x;	seg[i++].y2 = h + y - 1;	XDrawSegments(dpy, win, ReliefGC, seg, i);	i = 0;	seg[i].x1 = x;	seg[i].y1 = y + h - 1;	seg[i].x2 = w + x - 1;	seg[i++].y2 = y + h - 1;	seg[i].x1 = x + w - 1;	seg[i].y1 = y + t->boundary_width - 1;	seg[i].x2 = x + w - 1;	seg[i++].y2 = y + h - t->boundary_width;	XDrawSegments(dpy, win, ShadowGC, seg, i);    }}/* * draws the relief pattern around a window */voidDEC_DrawShadows(MwmWindow *t, Window win, int x, int y, int w, int h,		GC ReliefGC, GC ShadowGC){    XSegment seg[4];    int i;    i = 0;    seg[i].x1 = x;    seg[i].y1 = y;    seg[i].x2 = w + x - 1;    seg[i++].y2 = y;    seg[i].x1 = x;    seg[i].y1 = y;    seg[i].x2 = x;    seg[i++].y2 = h + y - 1;    XDrawSegments(dpy, win, ReliefGC, seg, i);    i = 0;    seg[i].x1 = x;    seg[i].y1 = y + h - 1;    seg[i].x2 = w + x - 1;    seg[i++].y2 = y + h - 1;    seg[i].x1 = x + w - 1;    seg[i].y1 = y;    seg[i].x2 = x + w - 1;    seg[i++].y2 = y + h - 1;    XDrawSegments(dpy, win, ShadowGC, seg, i);}/* * Interprets the property MOTIF_WM_HINTS, sets decoration and functions * accordingly */voidDEC_SelectDecorations(ScreenInfo *scr, MwmWindow *t){    int border_width, resize_width;    border_width = scr->frame_border_width;    resize_width = scr->resize_border_width;    if (t->mwm_hints && (t->mwm_hints->flags & MWM_HINTS_FUNCTIONS))    {	t->functions = t->mwm_hints->functions;	/*	 * functions affect the decorations! if the user says no iconify	 * function, then the iconify button doesn't show up.  So do functions	 * first.	 */	if (t->functions & MWM_FUNC_ALL)	{	    /* If we get ALL + some other things, that means to use ALL except	     * the other things... */	    t->functions &= ~MWM_FUNC_ALL;	    t->functions = (MWM_FUNC_RESIZE | MWM_FUNC_MOVE | MWM_FUNC_MINIMIZE |			    MWM_FUNC_MAXIMIZE | MWM_FUNC_CLOSE)		& (~(t->functions));	}	if (t->flags & TRANSIENT)	    t->functions &= scr->transient_functions;	else	    t->functions &= t->client_functions;    }    else if (t->flags & TRANSIENT)	t->functions = scr->transient_functions;    else	t->functions = t->client_functions;    if (t->mwm_hints && (t->mwm_hints->flags & MWM_HINTS_DECORATIONS))    {	t->decorations = t->mwm_hints->decorations;	/*	 * next, figure out the decorations	 */	if (t->decorations & MWM_DECOR_ALL)	{	    /* If we get ALL + some other things, that means to use ALL except	     * the other things... */	    t->decorations &= ~MWM_DECOR_ALL;	    t->decorations = (MWM_DECOR_BORDER | MWM_DECOR_RESIZEH |			      MWM_DECOR_TITLE | MWM_DECOR_MENU |			      MWM_DECOR_MINIMIZE | MWM_DECOR_MAXIMIZE)		& (~t->decorations);	}	if (t->flags & TRANSIENT)	    t->decorations &= scr->transient_decoration;	else	    t->decorations &= t->client_decoration;    }    else if (t->flags & TRANSIENT)	t->decorations = scr->transient_decoration;    else	t->decorations = t->client_decoration;    /*     * Now I have the un-altered decor and functions, but with the ALL     * attribute cleared and interpreted. I need to modify the decorations     * that are affected by the functions     */    if (!(t->functions & MWM_FUNC_RESIZE))	t->decorations &= ~MWM_DECOR_RESIZEH;    /* MWM_FUNC_MOVE has no impact on decorations. */    if (!(t->functions & MWM_FUNC_MINIMIZE))	t->decorations &= ~MWM_DECOR_MINIMIZE;    if (!(t->functions & MWM_FUNC_MAXIMIZE))	t->decorations &= ~MWM_DECOR_MAXIMIZE;    /* MWM_FUNC_CLOSE has no impact on decorations. */    /*     * This rule is implicit, but its easier to deal with if I take care of      * it now     */    if (t->decorations & (MWM_DECOR_MENU | MWM_DECOR_MINIMIZE | MWM_DECOR_MAXIMIZE))	t->decorations |= MWM_DECOR_TITLE;    if (t->decorations & (MWM_DECOR_TITLE | MWM_DECOR_RESIZEH))	t->decorations |= MWM_DECOR_BORDER;    if (t->wShaped)	t->decorations &= ~(MWM_DECOR_BORDER | MWM_DECOR_RESIZEH);    /*     * Assume no decorations, and build up     */    t->boundary_width = 0;    t->corner_width = 0;    t->title_height = 0;    if (t->decorations & MWM_DECOR_BORDER)    {	/* A narrow border is displayed (5 pixels - 2 relief, 1 top, 2	 * shadow) */	t->boundary_width = border_width;    }    if (t->decorations & MWM_DECOR_TITLE)    {	/* A title barm with no buttons in it - window gets a 1 pixel wide	 * black border. */	t->title_height = scr->components[MWM_TITLE_A].f_height + 3;    }    if (t->decorations & MWM_DECOR_RESIZEH)    {	/* A wide border, with corner tiles is desplayed (10 pixels - 2	 * relief, 2 shadow) */	t->boundary_width = resize_width;	t->corner_width = scr->components[MWM_TITLE_A].f_height + 3 +	    t->boundary_width;    }    t->bw = 0;    if (t->title_height > 0)	t->title_height += t->bw;}/* * Interprets the property MOTIF_WM_HINTS, sets decoration and functions * accordingly */voidDEC_ReselectDecorations(ScreenInfo *scr, MwmWindow *t){    int border_width, resize_width, i;    unsigned long valuemask;	/* mask for create windows */    XSetWindowAttributes attributes;	/* attributes for create windows */    border_width = scr->frame_border_width;    resize_width = scr->resize_border_width;    if (t->mwm_hints && (t->mwm_hints->flags & MWM_HINTS_FUNCTIONS))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品盗摄一区二区三区| 亚洲自拍偷拍av| 国产精品欧美综合在线| 尤物在线观看一区| 久久国产人妖系列| 在线视频观看一区| 国产欧美一区二区在线| 日韩中文字幕91| 在线精品观看国产| 国产精品免费视频一区| 美女国产一区二区三区| 欧美日韩一区三区| 亚洲美女偷拍久久| 成人深夜福利app| 日韩免费在线观看| 日韩精品亚洲一区二区三区免费| 成人黄色软件下载| 久久亚洲欧美国产精品乐播| 午夜一区二区三区视频| 99re在线视频这里只有精品| 久久久国产精华| 韩国一区二区三区| 8x福利精品第一导航| 一区二区三区免费| 9l国产精品久久久久麻豆| 久久天堂av综合合色蜜桃网| 奇米色一区二区三区四区| 欧美伊人精品成人久久综合97| 国产欧美精品一区二区三区四区 | 精品久久久久99| 亚洲不卡一区二区三区| 色噜噜偷拍精品综合在线| 国产精品理伦片| 国产sm精品调教视频网站| 国产色产综合产在线视频| 国产成人精品综合在线观看 | 麻豆久久一区二区| 欧美一区二区三区在线观看| 亚洲成人免费视频| 宅男噜噜噜66一区二区66| 丝袜美腿亚洲一区| 日韩视频一区二区三区在线播放| 视频一区二区不卡| 91精品国产91久久久久久一区二区 | 在线综合亚洲欧美在线视频| 日韩专区中文字幕一区二区| 欧美精品在欧美一区二区少妇| 亚洲一二三区不卡| 9191久久久久久久久久久| 午夜国产不卡在线观看视频| 7777精品伊人久久久大香线蕉超级流畅 | 欧美午夜精品理论片a级按摩| 一区av在线播放| 欧美日韩dvd在线观看| 日日骚欧美日韩| 精品乱人伦小说| 粉嫩久久99精品久久久久久夜| 中文欧美字幕免费| 欧美在线观看18| 婷婷久久综合九色综合绿巨人| 欧美久久久影院| 国产一区二区网址| 国产精品天干天干在线综合| 色狠狠一区二区| 青椒成人免费视频| 中文字幕乱码亚洲精品一区| 日本韩国欧美一区二区三区| 视频在线在亚洲| 欧美韩国日本不卡| 欧美性xxxxxxxx| 九一久久久久久| 亚洲图片欧美激情| 日韩欧美视频一区| 一本在线高清不卡dvd| 日韩av中文字幕一区二区| 中文字幕第一区二区| 欧美中文字幕一区二区三区亚洲| 美日韩一级片在线观看| 亚洲欧洲www| 日韩欧美亚洲另类制服综合在线| 99久久久无码国产精品| 日韩av不卡一区二区| 国产精品久久99| 91精品国产综合久久精品app | 久久品道一品道久久精品| 99国产欧美另类久久久精品| 日韩av电影免费观看高清完整版| 国产拍欧美日韩视频二区| 67194成人在线观看| fc2成人免费人成在线观看播放| 蜜桃av噜噜一区| 亚洲国产视频a| 国产精品麻豆99久久久久久| 日韩视频一区二区在线观看| 欧美性猛交xxxx乱大交退制版| 国产福利一区二区三区| 免费在线观看视频一区| 亚洲精品综合在线| 国产精品色眯眯| 2020国产精品| 欧美变态凌虐bdsm| 欧美高清视频一二三区| 91麻豆免费看| youjizz久久| 大陆成人av片| 国产福利不卡视频| 国产麻豆精品在线观看| 日本不卡123| 日韩激情视频在线观看| 亚洲成年人网站在线观看| 亚洲国产另类精品专区| 亚洲欧美一区二区三区国产精品 | 亚洲国产综合视频在线观看| 亚洲视频在线一区二区| 国产精品色婷婷久久58| 中文字幕欧美国产| 亚洲国产精品成人久久综合一区| 久久久av毛片精品| 精品国产乱码久久久久久夜甘婷婷| 欧美精选午夜久久久乱码6080| 精品视频123区在线观看| 欧美综合欧美视频| 欧美剧情片在线观看| 日韩视频一区二区三区 | 欧美日韩色一区| 欧美精品色一区二区三区| 欧美视频一区在线观看| 欧美日韩国产片| 欧美精品v国产精品v日韩精品| 欧美日韩国产色站一区二区三区| 欧美高清视频在线高清观看mv色露露十八 | 亚洲色图在线播放| 亚洲免费在线看| 亚洲h在线观看| 日韩电影免费在线看| 精品一区二区三区蜜桃| 韩国午夜理伦三级不卡影院| 国产精品一区二区久久不卡| 国产69精品久久777的优势| www.亚洲国产| 在线观看不卡一区| 日韩欧美成人一区二区| 中文字幕欧美三区| 夜夜操天天操亚洲| 免费欧美在线视频| 粉嫩aⅴ一区二区三区四区| 91网站在线播放| 欧美日韩精品系列| 欧美成人精品二区三区99精品| 久久久久久久久岛国免费| 亚洲天堂av老司机| 日本午夜一本久久久综合| 国产一区二区三区视频在线播放| 丁香六月综合激情| 欧美日韩精品一区二区三区蜜桃| 久久网站最新地址| 亚洲午夜久久久久久久久电影网 | 日韩美女主播在线视频一区二区三区| 精品国产一区二区亚洲人成毛片| 国产精品毛片大码女人| 日韩avvvv在线播放| 91在线国产福利| 欧美本精品男人aⅴ天堂| 综合av第一页| 麻豆国产精品官网| 色94色欧美sute亚洲线路一ni| 日韩无一区二区| 亚洲精品乱码久久久久久久久 | 亚洲伦在线观看| 久久成人免费网站| 在线看一区二区| 久久久不卡网国产精品一区| 亚洲福中文字幕伊人影院| 国产成人精品亚洲午夜麻豆| 欧美艳星brazzers| 国产精品女主播av| 麻豆国产精品视频| 欧美日韩1234| 中文字幕永久在线不卡| 老鸭窝一区二区久久精品| 91国产精品成人| 国产精品三级在线观看| 国内精品久久久久影院一蜜桃| 欧美性受xxxx| 日韩一区欧美小说| 国产精品自在欧美一区| 欧美一区二区观看视频| 亚洲激情在线激情| av中文字幕不卡| 欧美激情一区二区三区四区| 久久电影国产免费久久电影| 欧美日本在线观看| 亚洲一区二区影院| 在线一区二区视频| 中文字幕在线不卡一区二区三区| 久久99精品久久久久久国产越南 | 欧美日韩高清一区| 亚洲主播在线播放| 色88888久久久久久影院按摩 | 亚洲第四色夜色|