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

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

?? props.c

?? 安裝DDD之前
?? C
字號:
/* $Id: props.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 <Xm/Xm.h>#include <Xm/MwmUtil.h>#include "mwm.h"Atom XA_MIT_PRIORITY_COLORS;Atom XA_WM_CHANGE_STATE;Atom XA_WM_STATE;Atom XA_WM_COLORMAP_WINDOWS;Atom XA_WM_PROTOCOLS;Atom XA_WM_TAKE_FOCUS;Atom XA_WM_DELETE_WINDOW;Atom XA_WM_SAVE_YOURSELF;Atom XA_WM_DESKTOP;Atom XA_MWM_HINTS;Atom XA_MWM_MESSAGES;Atom XA_MWM_MENU;Atom XA_MWM_INFO;/*********************************************************************** * * <Properties description> * ***********************************************************************//* * Intern some commonly used atoms */voidPROP_Initialize(void){    XA_MIT_PRIORITY_COLORS = XInternAtom(dpy, "_MIT_PRIORITY_COLORS", False);    XA_WM_CHANGE_STATE = XInternAtom(dpy, "WM_CHANGE_STATE", False);    XA_WM_STATE = XInternAtom(dpy, "WM_STATE", False);    XA_WM_COLORMAP_WINDOWS = XInternAtom(dpy, "WM_COLORMAP_WINDOWS", False);    XA_WM_PROTOCOLS = XInternAtom(dpy, "WM_PROTOCOLS", False);    XA_WM_TAKE_FOCUS = XInternAtom(dpy, "WM_TAKE_FOCUS", False);    XA_WM_DELETE_WINDOW = XInternAtom(dpy, "WM_DELETE_WINDOW", False);    XA_WM_SAVE_YOURSELF = XInternAtom(dpy, "WM_SAVE_YOURSELF", False);    XA_WM_DESKTOP = XInternAtom(dpy, "WM_DESKTOP", False);    XA_MWM_HINTS = XInternAtom(dpy, _XA_MWM_HINTS, False);    XA_MWM_MESSAGES = XInternAtom(dpy, _XA_MWM_MESSAGES, False);    XA_MWM_MENU = XInternAtom(dpy, _XA_MWM_MENU, False);    XA_MWM_INFO = XInternAtom(dpy, _XA_MWM_INFO, False);}/* * set the behavior property on the root window.  This will be used for the * f.set_behavior function */voidPROP_SetBehavior(ScreenInfo *scr, Boolean custom){    PropMotifWmInfo info;    /* set the MWM_INFO property on the Root */    if (custom)	info.flags = MWM_INFO_STARTUP_CUSTOM;    else	info.flags = MWM_INFO_STARTUP_STANDARD;    info.wmWindow = scr->root_win;    XChangeProperty(dpy, scr->root_win, XA_MWM_INFO, XA_MWM_INFO,		    32, PropModeReplace,		    (unsigned char *)&info, PROP_MWM_INFO_ELEMENTS);}/* * clear the behavior property on the root window. */voidPROP_ClearBehavior(ScreenInfo *scr){    /* set the MWM_INFO property on the Root */    XChangeProperty(dpy, scr->root_win, XA_MWM_INFO, XA_MWM_INFO,		    32, PropModeReplace,		    NULL, 0);}/* * get the current state of the behavior property.  This also will be used * by f.set_behavior */intPROP_GetBehavior(ScreenInfo *scr){    int actual_format, ret;    Atom actual_type;    unsigned long nitems, bytesafter;    PropMotifWmInfo *info;    if (XGetWindowProperty(dpy, scr->root_win, XA_MWM_INFO, 0L,			   PROP_MOTIF_WM_INFO_ELEMENTS, False,			   XA_MWM_INFO, &actual_type, &actual_format,			   &nitems, &bytesafter,			   (unsigned char **)&info) == Success)    {	if (nitems > 0 && info)	    ret = info->flags;	else	    ret = 0;	XFree((char *)info);	return ret;    }    return 0;}/* * Make sure property priority colors is empty */voidPROP_SetPriorityColors(ScreenInfo *scr){    XChangeProperty(dpy, scr->root_win, XA_MIT_PRIORITY_COLORS,		    XA_CARDINAL, 32, PropModeReplace, NULL, 0);}/* * check the desktop. */BooleanPROP_CheckDesktop(ScreenInfo *scr){    Atom atype;    int aformat;    unsigned long nitems, bytes_remain;    unsigned char *prop;    Boolean restart = False;    /*     * Set the current desktop number to zero     * Multiple desks are available even in non-virtual     * compilations     */    scr->current_desk = 0;    if ((XGetWindowProperty(dpy, scr->root_win, XA_WM_DESKTOP, 0L, 1L, True,			    XA_WM_DESKTOP, &atype, &aformat, &nitems,			    &bytes_remain, &prop)) == Success)    {	if (prop != NULL)	{	    restart = True;	    scr->current_desk = *(unsigned long *)prop;	}    }    return restart;}/* * This is used to tell applications which windows on the screen are * top level appication windows, and which windows are the icon windows * that go with them. */voidPROP_SetState(MwmWindow *tmp_win, int state){    unsigned long data[2];	/* "suggested" by ICCCM version 1 */    data[0] = (unsigned long)state;    data[1] = (unsigned long)tmp_win->icon_w;/*  data[2] = (unsigned long) tmp_win->icon_pixmap_w; */    XChangeProperty(dpy, tmp_win->w, XA_WM_STATE, XA_WM_STATE, 32,		    PropModeReplace, (unsigned char *)data, 2);}/* * ICCCM Client Messages - Section 4.2.8 of the ICCCM dictates that all * client messages will have the following form: * *     event type       ClientMessage *     message type     XA_WM_PROTOCOLS *     window           tmp->w *     format           32 *     data[0]          message atom *     data[1]          time stamp */voidPROP_SendClientMessage(Window w, Atom a, Time timestamp){    XClientMessageEvent ev;    ev.type = ClientMessage;    ev.window = w;    ev.message_type = XA_WM_PROTOCOLS;    ev.format = 32;    ev.data.l[0] = a;    ev.data.l[1] = timestamp;    XSendEvent(dpy, w, False, 0L, (XEvent *)&ev);}/* * verify that a client is expecting to receive a ClientMessage from mwm */BooleanPROP_VerifyMwmMessage(MwmWindow *win, Atom message){    unsigned int i;    for (i = 0; i < win->num_messages; i++)    {	if (win->mwm_messages[i] == message)	    return True;    }    return False;}/* * send a mwm specific message */voidPROP_SendMwmMessage(Window w, Atom a, Time timestamp){    XClientMessageEvent ev;    ev.type = ClientMessage;    ev.window = w;    ev.message_type = XA_MWM_MESSAGES;    ev.format = 32;    ev.data.l[0] = a;    ev.data.l[1] = timestamp;    XSendEvent(dpy, w, False, 0L, (XEvent *)&ev);}/* * Reads the property MOTIF_WM_HINTS */voidPROP_GetMwmHints(MwmWindow *win){    int actual_format;    Atom actual_type;    unsigned long nitems, bytesafter;    if (XGetWindowProperty(dpy, win->w, XA_MWM_HINTS, 0L,			   PROP_MOTIF_WM_HINTS_ELEMENTS, False, XA_MWM_HINTS,			   &actual_type, &actual_format, &nitems, &bytesafter,			   (unsigned char **)&win->mwm_hints) == Success)    {	if (nitems >= PROP_MOTIF_WM_HINTS_ELEMENTS)	    return;	XFree((char *)win->mwm_hints);    }    win->mwm_hints = NULL;}/* * Reads the property MOTIF_WM_MENU */voidPROP_GetMwmMenu(MwmWindow *win){    int actual_format;    Atom actual_type;    unsigned long nitems, bytesafter;    if (XGetWindowProperty(dpy, win->w, XA_MWM_MENU,			   0L, 1024L, False,			   XA_MWM_MENU, &actual_type, &actual_format,			   &nitems, &bytesafter,			   (unsigned char **)&win->mwm_menu) == Success)    {	if (bytesafter)	    fprintf(stderr, "Maximum size of MWM_MENU exceeded\n");	return;    }    win->mwm_menu = NULL;}/* * Reads the property MOTIF_WM_MESSAGES */voidPROP_GetMwmMessages(MwmWindow *win){    int actual_format;    Atom actual_type;    unsigned long bytesafter;    if (XGetWindowProperty(dpy, win->w, XA_MWM_MESSAGES, 0L, 1024L, False,			   AnyPropertyType, &actual_type, &actual_format,			   &win->num_messages, &bytesafter,			   (unsigned char **)&win->mwm_messages) == Success)    {	if (bytesafter)	    fprintf(stderr, "Maximum size of MWM_MESSAGES exceeded: %ld.\n", bytesafter);	return;    }    win->mwm_messages = NULL;}/* * gets application supplied size info */voidPROP_GetWindowSizeHints(MwmWindow *win){    long supplied = 0;    if (!XGetWMNormalHints(dpy, win->w, &win->hints, &supplied))	win->hints.flags = 0;    /* Beat up our copy of the hints, so that all important field are     * filled in! */    if (win->hints.flags & PResizeInc)    {	if (win->hints.width_inc == 0)	    win->hints.width_inc = 1;	if (win->hints.height_inc == 0)	    win->hints.height_inc = 1;    }    else    {	win->hints.width_inc = 1;	win->hints.height_inc = 1;    }    /*     * ICCCM says that PMinSize is the default if no PBaseSize is given,     * and vice-versa.     */    if (!(win->hints.flags & PBaseSize))    {	if (win->hints.flags & PMinSize)	{	    win->hints.base_width = win->hints.min_width;	    win->hints.base_height = win->hints.min_height;	}	else	{	    win->hints.base_width = 0;	    win->hints.base_height = 0;	}    }    if (!(win->hints.flags & PMinSize))    {	win->hints.min_width = win->hints.base_width;	win->hints.min_height = win->hints.base_height;    }    if (!(win->hints.flags & PMaxSize))    {	win->hints.max_width = MAX_WINDOW_WIDTH;	win->hints.max_height = MAX_WINDOW_HEIGHT;    }    if (win->hints.max_width < win->hints.min_width)	win->hints.max_width = MAX_WINDOW_WIDTH;    if (win->hints.max_height < win->hints.min_height)	win->hints.max_height = MAX_WINDOW_HEIGHT;    /* Zero width/height windows are bad news! */    if (win->hints.min_height <= 0)	win->hints.min_height = 1;    if (win->hints.min_width <= 0)	win->hints.min_width = 1;    if (!(win->hints.flags & PWinGravity))    {	win->hints.win_gravity = NorthWestGravity;	win->hints.flags |= PWinGravity;    }}/* * finds out which protocols the window supports */voidPROP_GetWmProtocols(MwmWindow *win){    unsigned long flags = 0L;    Atom *protocols = NULL, *ap;    int i, n;    Atom atype;    int aformat;    unsigned long bytes_remain, nitems;    if (win == NULL)	return;    /*     * First, try the Xlib function to read the protocols.     * This is what Twm uses.     */    if (XGetWMProtocols(dpy, win->w, &protocols, &n))    {	win->flags &= ~(WM_TAKES_FOCUS | WM_DELS_WINDOW | WM_SAVE_SELF | MWM_MESSAGES);	for (i = 0, ap = protocols; i < n; i++, ap++)	{	    if (*ap == (Atom)XA_WM_TAKE_FOCUS)		flags |= WM_TAKES_FOCUS;	    if (*ap == (Atom)XA_WM_DELETE_WINDOW)		flags |= WM_DELS_WINDOW;	    if (*ap == (Atom)XA_WM_SAVE_YOURSELF)		flags |= WM_SAVE_SELF;	    if (*ap == (Atom)XA_MWM_MESSAGES)		flags |= MWM_MESSAGES;	}	if (protocols)	    XFree((char *)protocols);    }    /*     * Next, read it the hard way. mosaic from Coreldraw needs to      * be read in this way.     */    else if ((XGetWindowProperty(dpy, win->w, XA_WM_PROTOCOLS, 0L, 10L, False,				 XA_WM_PROTOCOLS, &atype, &aformat, &nitems,				 &bytes_remain,				 (unsigned char **)&protocols)) == Success)    {	win->flags &= ~(WM_TAKES_FOCUS | WM_DELS_WINDOW | WM_SAVE_SELF | MWM_MESSAGES);	for (i = 0, ap = protocols; (unsigned long)i < nitems; i++, ap++)	{	    if (*ap == (Atom)XA_WM_TAKE_FOCUS)		flags |= WM_TAKES_FOCUS;	    if (*ap == (Atom)XA_WM_DELETE_WINDOW)		flags |= WM_DELS_WINDOW;	    if (*ap == (Atom)XA_WM_SAVE_YOURSELF)		flags |= WM_SAVE_SELF;	    if (*ap == (Atom)XA_MWM_MESSAGES)		flags |= MWM_MESSAGES;	}	if (protocols)	    XFree((char *)protocols);    }    win->flags |= flags;}/* * Gets the WM_COLORMAP_WINDOWS property from the window * This property typically doesn't exist, but a few applications * use it. These seem to occur mostly on SGI machines. */voidPROP_GetWmColormapWindows(MwmWindow *tmp){    if (tmp->cmap_windows != (Window *)NULL)	XFree((void *)tmp->cmap_windows);    if (!XGetWMColormapWindows(dpy, tmp->w, &tmp->cmap_windows,			       &tmp->number_cmap_windows))    {	tmp->number_cmap_windows = 0;	tmp->cmap_windows = NULL;    }}/* * get the icon name */voidPROP_GetWmIconName(MwmWindow *tmp){    Atom actual_type;    int actual_format;    unsigned long nitems, bytesafter;    unsigned char *prop;    if (XGetWindowProperty(dpy, tmp->w, XA_WM_ICON_NAME, 0L, 200L, False,		       XA_STRING, &actual_type, &actual_format, &nitems,		       &bytesafter, &prop)	== Success && prop != NULL)    {	tmp->icon_label = (char *)prop; /* FIXME */    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
岛国精品在线播放| 日本一区二区三区免费乱视频| 国产亚洲成av人在线观看导航| 亚洲成人精品影院| 色88888久久久久久影院野外| 国产欧美综合在线观看第十页| 国产一区二区三区香蕉| 日韩欧美国产电影| 另类小说综合欧美亚洲| 欧美日韩黄色一区二区| 亚洲欧美日韩久久| 成人精品鲁一区一区二区| 亚洲国产精品成人久久综合一区| 国产一区二区三区蝌蚪| 久久品道一品道久久精品| 国产综合一区二区| 久久精品水蜜桃av综合天堂| 福利一区福利二区| 国产精品乱码妇女bbbb| 91日韩精品一区| 亚洲一区二区综合| 91精品一区二区三区久久久久久| 国产精品入口麻豆原神| 国产精一品亚洲二区在线视频| 久久综合久久综合九色| 国产999精品久久久久久绿帽| 亚洲国产成人一区二区三区| 91麻豆国产福利在线观看| 一区二区三区在线视频免费| 3d成人动漫网站| 国产一区二区三区在线看麻豆| 久久精品亚洲一区二区三区浴池| kk眼镜猥琐国模调教系列一区二区 | 激情六月婷婷久久| 中文欧美字幕免费| 91福利在线观看| 蜜芽一区二区三区| 国产欧美视频在线观看| 一本一道综合狠狠老| 日韩高清一区二区| 日韩一区二区免费高清| 国产精品一区二区不卡| 中文字幕欧美区| 精品国精品国产| 成人av网站在线观看免费| 亚洲国产精品欧美一二99| 2021国产精品久久精品| 色综合久久66| 久久精品久久精品| 国产精品天美传媒沈樵| 欧美色涩在线第一页| 久色婷婷小香蕉久久| 亚洲三级小视频| 亚洲国产精品t66y| 欧美日韩性生活| 国产超碰在线一区| 午夜欧美电影在线观看| 国产精品丝袜黑色高跟| 91免费版在线| 精品一区二区三区免费播放| 欧美精品一区二区三区视频| 91成人在线精品| 成人免费高清在线观看| 日韩黄色免费网站| 日韩美女视频一区二区 | 亚洲图片欧美色图| www激情久久| 99精品黄色片免费大全| 久久国产精品无码网站| 亚洲电影在线播放| 中文字幕精品一区| 精品国产一区二区三区久久久蜜月| 日本乱码高清不卡字幕| 国产精品小仙女| 日韩成人免费看| 亚洲一区二区三区爽爽爽爽爽| 国产精品情趣视频| 久久久99久久精品欧美| 在线亚洲欧美专区二区| 不卡影院免费观看| 偷偷要91色婷婷| 亚洲国产欧美在线| ㊣最新国产の精品bt伙计久久| 欧美xingq一区二区| 91精品国产aⅴ一区二区| 欧美怡红院视频| 色综合久久久久久久| 成人动漫在线一区| 福利一区在线观看| 成人激情免费视频| 成人丝袜18视频在线观看| 国产精品99久久久久久有的能看| 亚洲3atv精品一区二区三区| 日韩精彩视频在线观看| 日本午夜一区二区| 国产一区二区91| 国产另类ts人妖一区二区| 天堂久久一区二区三区| 另类人妖一区二区av| 精品一区二区三区免费观看 | 日本高清无吗v一区| 色哟哟日韩精品| 欧美视频一区二区三区在线观看 | 人人爽香蕉精品| 日日摸夜夜添夜夜添精品视频| 亚洲午夜久久久久久久久电影网 | 欧美极品美女视频| 国产精品你懂的在线欣赏| 国产亚洲综合在线| 欧美经典一区二区| 国产精品国产自产拍高清av| 亚洲欧洲日本在线| 亚洲午夜在线观看视频在线| 日韩二区三区在线观看| 老司机精品视频一区二区三区| 久久精品免费看| 成人a免费在线看| 在线一区二区三区做爰视频网站| 日本韩国欧美在线| 69久久夜色精品国产69蝌蚪网| 日韩欧美中文字幕精品| 国产亚洲短视频| 亚洲黄色免费网站| 日韩制服丝袜av| 国产成人av影院| av在线不卡电影| 91麻豆产精品久久久久久 | 亚洲欧美日韩小说| 偷拍一区二区三区| 国产一区二区三区免费在线观看| www.亚洲在线| 91精品视频网| 久久久精品国产免大香伊| 综合久久国产九一剧情麻豆| 亚洲丰满少妇videoshd| 韩国三级在线一区| 成人av网站在线观看免费| 欧美日韩精品系列| 欧美高清在线一区二区| 亚洲成av人综合在线观看| 国产在线播精品第三| 91天堂素人约啪| 欧美一区二区三区四区高清| 久久嫩草精品久久久精品一| 国产精品大尺度| 久久精品国产**网站演员| 91香蕉视频在线| 精品国产乱子伦一区| 亚洲精品自拍动漫在线| 国产一区二区h| 欧美日本高清视频在线观看| 国产精品系列在线| 六月丁香婷婷久久| 欧美色区777第一页| 日韩午夜激情免费电影| 伊人夜夜躁av伊人久久| 六月丁香婷婷久久| 色吧成人激情小说| 国产亚洲一区字幕| 老司机精品视频线观看86| 欧美偷拍一区二区| 国产偷国产偷亚洲高清人白洁| 日韩和欧美的一区| 欧美性做爰猛烈叫床潮| 亚洲三级久久久| 国产成人福利片| www成人在线观看| 日本特黄久久久高潮| 欧美主播一区二区三区美女| 91精品国产一区二区| 一区二区三区在线视频观看| 色天使色偷偷av一区二区| 亚洲另类一区二区| 欧洲激情一区二区| 日韩av不卡一区二区| 欧美一级理论性理论a| 蜜臀av一区二区| 久久综合视频网| 粉嫩av一区二区三区在线播放| 国产精品电影一区二区三区| 在线免费不卡电影| 三级一区在线视频先锋| 欧美不卡激情三级在线观看| 国产自产2019最新不卡| 中文字幕第一页久久| 色综合久久精品| 肉丝袜脚交视频一区二区| 精品国产乱码久久久久久夜甘婷婷 | 亚洲一区二区三区四区五区中文| 欧美日韩黄色影视| 极品瑜伽女神91| 国产精品色噜噜| 欧美综合一区二区| 久久99精品久久久| 国产精品久久久久久久久快鸭| 在线观看一区日韩| 免费不卡在线观看| 国产精品国产精品国产专区不片| 色综合久久综合网欧美综合网| 天天免费综合色|