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

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

?? tkwinwm.c

?? linux系統下的音頻通信
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*  * tkWinWm.c -- * *	This module takes care of the interactions between a Tk-based *	application and the window manager.  Among other things, it *	implements the "wm" command and passes geometry information *	to the window manager. * * Copyright (c) 1995-1997 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tkWinWm.c 1.67 97/09/23 17:39:47 */#include "tkWinInt.h"/* * Event structure for synthetic activation events.  These events are * placed on the event queue whenever a toplevel gets a WM_MOUSEACTIVATE * message. */typedef struct ActivateEvent {    Tcl_Event ev;    TkWindow *winPtr;} ActivateEvent;/* * A data structure of the following type holds information for * each window manager protocol (such as WM_DELETE_WINDOW) for * which a handler (i.e. a Tcl command) has been defined for a * particular top-level window. */typedef struct ProtocolHandler {    Atom protocol;		/* Identifies the protocol. */    struct ProtocolHandler *nextPtr;				/* Next in list of protocol handlers for				 * the same top-level window, or NULL for				 * end of list. */    Tcl_Interp *interp;		/* Interpreter in which to invoke command. */    char command[4];		/* Tcl command to invoke when a client				 * message for this protocol arrives. 				 * The actual size of the structure varies				 * to accommodate the needs of the actual				 * command. THIS MUST BE THE LAST FIELD OF				 * THE STRUCTURE. */} ProtocolHandler;#define HANDLER_SIZE(cmdLength) \    ((unsigned) (sizeof(ProtocolHandler) - 3 + cmdLength))/* * A data structure of the following type holds window-manager-related * information for each top-level window in an application. */typedef struct TkWmInfo {    TkWindow *winPtr;		/* Pointer to main Tk information for				 * this window. */    HWND wrapper;		/* This is the decorative frame window				 * created by the window manager to wrap				 * a toplevel window.  This window is				 * a direct child of the root window. */    Tk_Uid titleUid;		/* Title to display in window caption.  If				 * NULL, use name of widget. */    Tk_Uid iconName;		/* Name to display in icon. */    TkWindow *masterPtr;	/* Master window for TRANSIENT_FOR property,				 * or NULL. */    XWMHints hints;		/* Various pieces of information for				 * window manager. */    char *leaderName;		/* Path name of leader of window group				 * (corresponds to hints.window_group).				 * Malloc-ed. Note:  this field doesn't				 * get updated if leader is destroyed. */    Tk_Window icon;		/* Window to use as icon for this window,				 * or NULL. */    Tk_Window iconFor;		/* Window for which this window is icon, or				 * NULL if this isn't an icon for anyone. */    /*     * Information used to construct an XSizeHints structure for     * the window manager:     */    int defMinWidth, defMinHeight, defMaxWidth, defMaxHeight;				/* Default resize limits given by system. */    int sizeHintsFlags;		/* Flags word for XSizeHints structure.				 * If the PBaseSize flag is set then the				 * window is gridded;  otherwise it isn't				 * gridded. */    int minWidth, minHeight;	/* Minimum dimensions of window, in				 * grid units, not pixels. */    int maxWidth, maxHeight;	/* Maximum dimensions of window, in				 * grid units, not pixels, or 0 to default. */    Tk_Window gridWin;		/* Identifies the window that controls				 * gridding for this top-level, or NULL if				 * the top-level isn't currently gridded. */    int widthInc, heightInc;	/* Increments for size changes (# pixels				 * per step). */    struct {	int x;	/* numerator */	int y;  /* denominator */    } minAspect, maxAspect;	/* Min/max aspect ratios for window. */    int reqGridWidth, reqGridHeight;				/* The dimensions of the window (in				 * grid units) requested through				 * the geometry manager. */    int gravity;		/* Desired window gravity. */    /*     * Information used to manage the size and location of a window.     */    int width, height;		/* Desired dimensions of window, specified				 * in grid units.  These values are				 * set by the "wm geometry" command and by				 * ConfigureNotify events (for when wm				 * resizes window).  -1 means user hasn't				 * requested dimensions. */    int x, y;			/* Desired X and Y coordinates for window.				 * These values are set by "wm geometry",				 * plus by ConfigureNotify events (when wm				 * moves window).  These numbers are				 * different than the numbers stored in				 * winPtr->changes because (a) they could be				 * measured from the right or bottom edge				 * of the screen (see WM_NEGATIVE_X and				 * WM_NEGATIVE_Y flags) and (b) if the window				 * has been reparented then they refer to the				 * parent rather than the window itself. */    int borderWidth, borderHeight;				/* Width and height of window dressing, in				 * pixels for the current style/exStyle.  This				 * includes the border on both sides of the				 * window. */    int configWidth, configHeight;				/* Dimensions passed to last request that we				 * issued to change geometry of window.  Used				 * to eliminate redundant resize operations. */    HMENU hMenu;		/* the hMenu associated with this menu */    DWORD style, exStyle;	/* Style flags for the wrapper window. */    /*     * List of children of the toplevel which have private colormaps.     */    TkWindow **cmapList;	/* Array of window with private colormaps. */    int cmapCount;		/* Number of windows in array. */    /*     * Miscellaneous information.     */    ProtocolHandler *protPtr;	/* First in list of protocol handlers for				 * this window (NULL means none). */    int cmdArgc;		/* Number of elements in cmdArgv below. */    char **cmdArgv;		/* Array of strings to store in the				 * WM_COMMAND property.  NULL means nothing				 * available. */    char *clientMachine;	/* String to store in WM_CLIENT_MACHINE				 * property, or NULL. */    int flags;			/* Miscellaneous flags, defined below. */    struct TkWmInfo *nextPtr;	/* Next in list of all top-level windows. */} WmInfo;/* * Flag values for WmInfo structures: * * WM_NEVER_MAPPED -		non-zero means window has never been *				mapped;  need to update all info when *				window is first mapped. * WM_UPDATE_PENDING -		non-zero means a call to UpdateGeometryInfo *				has already been scheduled for this *				window;  no need to schedule another one. * WM_NEGATIVE_X -		non-zero means x-coordinate is measured in *				pixels from right edge of screen, rather *				than from left edge. * WM_NEGATIVE_Y -		non-zero means y-coordinate is measured in *				pixels up from bottom of screen, rather than *				down from top. * WM_UPDATE_SIZE_HINTS -	non-zero means that new size hints need to be *				propagated to window manager. * WM_SYNC_PENDING -		set to non-zero while waiting for the window *				manager to respond to some state change. * WM_MOVE_PENDING -		non-zero means the application has requested *				a new position for the window, but it hasn't *				been reflected through the window manager *				yet. * WM_COLORAMPS_EXPLICIT -	non-zero means the colormap windows were *				set explicitly via "wm colormapwindows". * WM_ADDED_TOPLEVEL_COLORMAP - non-zero means that when "wm colormapwindows" *				was called the top-level itself wasn't *				specified, so we added it implicitly at *				the end of the list. */#define WM_NEVER_MAPPED			(1<<0)#define WM_UPDATE_PENDING		(1<<1)#define WM_NEGATIVE_X			(1<<2)#define WM_NEGATIVE_Y			(1<<3)#define WM_UPDATE_SIZE_HINTS		(1<<4)#define WM_SYNC_PENDING			(1<<5)#define WM_CREATE_PENDING		(1<<6)#define WM_MOVE_PENDING			(1<<7)#define WM_COLORMAPS_EXPLICIT		(1<<8)#define WM_ADDED_TOPLEVEL_COLORMAP	(1<<9)#define WM_WIDTH_NOT_RESIZABLE		(1<<10)#define WM_HEIGHT_NOT_RESIZABLE		(1<<11)/* * Window styles for various types of toplevel windows. */#define WM_OVERRIDE_STYLE (WS_POPUP|WS_CLIPCHILDREN|CS_DBLCLKS)#define EX_OVERRIDE_STYLE (WS_EX_TOOLWINDOW)#define WM_TOPLEVEL_STYLE (WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN|CS_DBLCLKS)#define EX_TOPLEVEL_STYLE (0)#define WM_TRANSIENT_STYLE \		(WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_CLIPSIBLINGS|CS_DBLCLKS)#define EX_TRANSIENT_STYLE \		(WS_EX_TOOLWINDOW|WS_EX_DLGMODALFRAME)/* * This module keeps a list of all top-level windows. */static WmInfo *firstWmPtr = NULL;	/* Points to first top-level window. */static WmInfo *foregroundWmPtr = NULL; /* Points to the foreground window. *//* * The variable below is used to enable or disable tracing in this * module.  If tracing is enabled, then information is printed on * standard output about interesting interactions with the window * manager. */static int wmTracing = 0;/* * The following structure is the official type record for geometry * management of top-level windows. */static void		TopLevelReqProc(ClientData dummy, Tk_Window tkwin);static Tk_GeomMgr wmMgrType = {    "wm",				/* name */    TopLevelReqProc,			/* requestProc */    (Tk_GeomLostSlaveProc *) NULL,	/* lostSlaveProc */};/* * Global system palette.  This value always refers to the currently * installed foreground logical palette. */static HPALETTE systemPalette = NULL;/* * Window that is being constructed.  This value is set immediately * before a call to CreateWindowEx, and is used by SetLimits. * This is a gross hack needed to work around Windows brain damage * where it sends the WM_GETMINMAXINFO message before the WM_CREATE * window. */static TkWindow *createWindow = NULL;/* * Flag indicating whether this module has been initialized yet. */static int initialized = 0;/* * Class for toplevel windows. */static WNDCLASS toplevelClass;/* * This flag is cleared when the first window is mapped in a non-iconic * state. */static int firstWindow = 1;/* * Forward declarations for procedures defined in this file: */static int		ActivateWindow _ANSI_ARGS_((Tcl_Event *evPtr,			    int flags));static void		ConfigureEvent _ANSI_ARGS_((TkWindow *winPtr,			    XConfigureEvent *eventPtr));static void		ConfigureTopLevel _ANSI_ARGS_((WINDOWPOS *pos));static void		GenerateConfigureNotify _ANSI_ARGS_((			    TkWindow *winPtr));static void		GetMaxSize _ANSI_ARGS_((WmInfo *wmPtr,			    int *maxWidthPtr, int *maxHeightPtr));static void		GetMinSize _ANSI_ARGS_((WmInfo *wmPtr,			    int *minWidthPtr, int *minHeightPtr));static TkWindow *	GetTopLevel _ANSI_ARGS_((HWND hwnd));static void		InitWm _ANSI_ARGS_((void));static int		InstallColormaps _ANSI_ARGS_((HWND hwnd, int message,			    int isForemost));static void		InvalidateSubTree _ANSI_ARGS_((TkWindow *winPtr,			    Colormap colormap));static int		ParseGeometry _ANSI_ARGS_((Tcl_Interp *interp,			    char *string, TkWindow *winPtr));static void		RefreshColormap _ANSI_ARGS_((Colormap colormap));static void		SetLimits _ANSI_ARGS_((HWND hwnd, MINMAXINFO *info));static LRESULT CALLBACK	TopLevelProc _ANSI_ARGS_((HWND hwnd, UINT message,			    WPARAM wParam, LPARAM lParam));static void		TopLevelEventProc _ANSI_ARGS_((ClientData clientData,			    XEvent *eventPtr));static void		TopLevelReqProc _ANSI_ARGS_((ClientData dummy,			    Tk_Window tkwin));static void		UpdateGeometryInfo _ANSI_ARGS_((			    ClientData clientData));static void		UpdateWrapper _ANSI_ARGS_((TkWindow *winPtr));static LRESULT CALLBACK	WmProc _ANSI_ARGS_((HWND hwnd, UINT message,			    WPARAM wParam, LPARAM lParam));/* *---------------------------------------------------------------------- * * InitWm -- * *	This routine creates the Wm toplevel decorative frame class. * * Results: *	None. * * Side effects: *	Registers a new window class. * *---------------------------------------------------------------------- */static voidInitWm(void){    if (initialized) {        return;    }    initialized = 1;    toplevelClass.style = CS_HREDRAW | CS_VREDRAW | CS_CLASSDC;    toplevelClass.cbClsExtra = 0;    toplevelClass.cbWndExtra = 0;    toplevelClass.hInstance = Tk_GetHINSTANCE();    toplevelClass.hbrBackground = NULL;    toplevelClass.lpszMenuName = NULL;    toplevelClass.lpszClassName = TK_WIN_TOPLEVEL_CLASS_NAME;    toplevelClass.lpfnWndProc = WmProc;    toplevelClass.hIcon = LoadIcon(Tk_GetHINSTANCE(), "tk");    toplevelClass.hCursor = LoadCursor(NULL, IDC_ARROW);    if (!RegisterClass(&toplevelClass)) {	panic("Unable to register TkTopLevel class");    }}/* *---------------------------------------------------------------------- * * GetTopLevel -- * *	This function retrieves the TkWindow associated with the *	given HWND. * * Results: *	Returns the matching TkWindow. * * Side effects: *	None. * *---------------------------------------------------------------------- */static TkWindow *GetTopLevel(hwnd)    HWND hwnd;{    /*     * If this function is called before the CreateWindowEx call     * has completed, then the user data slot will not have been     * set yet, so we use the global createWindow variable.     */    if (createWindow) {	return createWindow;    }    return (TkWindow *) GetWindowLong(hwnd, GWL_USERDATA);}/* *---------------------------------------------------------------------- * * SetLimits -- * *	Updates the minimum and maximum window size constraints. * * Results: *	None. * * Side effects: *	Changes the values of the info pointer to reflect the current *	minimum and maximum size values. * *---------------------------------------------------------------------- */static voidSetLimits(hwnd, info)    HWND hwnd;    MINMAXINFO *info;{    register WmInfo *wmPtr;    int maxWidth, maxHeight;    int minWidth, minHeight;    int base;    TkWindow *winPtr = GetTopLevel(hwnd);    if (winPtr == NULL) {	return;    }    wmPtr = winPtr->wmInfoPtr;        /*     * Copy latest constraint info.     */    wmPtr->defMinWidth = info->ptMinTrackSize.x;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费国产精品| 久久精品99国产精品日本| 成人爱爱电影网址| 综合分类小说区另类春色亚洲小说欧美| 国产成人精品一区二 | 欧美精品久久久久久久久老牛影院| 夜夜嗨av一区二区三区| 自拍av一区二区三区| 蜜桃视频免费观看一区| 欧美精品一区二区三区在线| 国产99久久久久久免费看农村| 欧美高清在线精品一区| 一本一道波多野结衣一区二区| 亚洲一卡二卡三卡四卡五卡| 欧美一区二区在线免费播放| 国产一区二区不卡在线| 亚洲特级片在线| 欧美一区二区三区日韩视频| 国产成人午夜电影网| 一区二区三区中文字幕精品精品 | 久久精品72免费观看| 国产日产欧美一区| 欧美色老头old∨ideo| 精品一区二区久久| 亚洲欧美国产毛片在线| 日韩视频在线你懂得| 亚洲免费色视频| 久久电影国产免费久久电影 | 欧美一区二区免费视频| 久久精品99久久久| 亚洲精品v日韩精品| 欧美va亚洲va香蕉在线| 91亚洲国产成人精品一区二区三 | 在线不卡免费av| 不卡av在线免费观看| 日韩国产欧美三级| 中文字幕字幕中文在线中不卡视频| 日韩欧美亚洲一区二区| 91蜜桃传媒精品久久久一区二区| 免费久久精品视频| 一区二区三区欧美亚洲| 久久久国产精品麻豆| 欧美二区三区91| 色94色欧美sute亚洲线路二| 国产成人啪免费观看软件| 免费人成在线不卡| 91麻豆精品国产91久久久资源速度| 91九色02白丝porn| 国产一区在线视频| 视频一区在线播放| 一区二区三区在线高清| 国产欧美一区二区精品性色超碰| 欧美精品少妇一区二区三区| av在线播放不卡| 国产一区二区三区免费播放| 日韩av成人高清| 午夜精品视频在线观看| 亚洲人一二三区| 中文字幕一区二区在线观看| 久久久久免费观看| 精品国产一区二区三区久久久蜜月 | 国产乱码精品一区二区三区av | 99精品黄色片免费大全| 国产成人99久久亚洲综合精品| 麻豆精品国产传媒mv男同| 五月天国产精品| 成人av免费观看| 国产在线看一区| 美国av一区二区| 免费一级片91| 免费高清在线一区| 另类专区欧美蜜桃臀第一页| 免费观看在线色综合| 日韩成人伦理电影在线观看| 五月天激情小说综合| 成人午夜又粗又硬又大| 国产91丝袜在线播放| 国产精品91xxx| 成人白浆超碰人人人人| 99热精品国产| 91丨porny丨国产| 在线视频欧美精品| 欧美午夜宅男影院| 欧美一区二区三区在| 日韩美女天天操| 久久久噜噜噜久久中文字幕色伊伊| 国产亚洲制服色| 中文字幕日韩av资源站| 亚洲综合丁香婷婷六月香| 五月天国产精品| 国产一区二区在线视频| 成人av动漫网站| 欧美女孩性生活视频| 欧美一二三四区在线| 久久久青草青青国产亚洲免观| 国产女人18毛片水真多成人如厕 | 国产精品乱人伦一区二区| 国产精品激情偷乱一区二区∴| 九一久久久久久| 麻豆精品久久精品色综合| 国产精一品亚洲二区在线视频| 国产馆精品极品| 色综合欧美在线| 欧美精品日韩一本| 久久理论电影网| 亚洲精品国产品国语在线app| 性久久久久久久| 国产呦萝稀缺另类资源| 一本大道久久a久久精二百| 9191精品国产综合久久久久久| 精品国产91久久久久久久妲己| 亚洲欧美在线高清| 久久成人精品无人区| 91丨九色丨蝌蚪丨老版| 欧美精选在线播放| 国产欧美久久久精品影院| 亚洲国产精品久久人人爱| 国产在线不卡一区| 欧美日韩一级大片网址| 国产亚洲成aⅴ人片在线观看| 亚洲精品欧美激情| 国产九色精品成人porny| 欧美主播一区二区三区美女| 久久嫩草精品久久久精品一| 一区二区三区日韩欧美精品 | 国产成人日日夜夜| 欧美精品粉嫩高潮一区二区| 日本一二三四高清不卡| 奇米亚洲午夜久久精品| 91蜜桃传媒精品久久久一区二区| 欧美精品一区二区精品网| 一区二区视频在线| 国产91精品一区二区麻豆网站| 3d动漫精品啪啪| 亚洲日韩欧美一区二区在线| 国产在线不卡一区| 欧美一区二区三区人| 亚洲最新视频在线观看| 成人午夜av电影| 久久综合狠狠综合久久激情| 图片区小说区国产精品视频| 日本乱人伦一区| 中文字幕制服丝袜成人av| 国模一区二区三区白浆| 91精品免费在线| 亚洲一区二区精品久久av| 99热这里都是精品| 国产精品视频一区二区三区不卡| 久久99精品久久久久久国产越南| 欧洲一区二区三区免费视频| 中文字幕一区二区在线播放| 成人中文字幕电影| 久久综合色天天久久综合图片| 日韩精品成人一区二区在线| 欧美又粗又大又爽| 一区二区三区日韩精品视频| 99热精品国产| 亚洲女女做受ⅹxx高潮| 99久久er热在这里只有精品15 | 久久久久久亚洲综合| 免费欧美在线视频| 日韩精品中午字幕| 蜜桃av一区二区三区电影| 日韩三级视频中文字幕| 免费人成在线不卡| 日韩午夜激情电影| 久久99久久99精品免视看婷婷 | 成人av在线观| 国产精品看片你懂得| 99久久精品情趣| 亚洲尤物在线视频观看| 欧美日韩一区二区电影| 五月开心婷婷久久| 日韩精品中文字幕一区| 国产福利91精品| 国产精品欧美经典| 91小视频免费观看| 亚洲成人av一区二区| 日韩一卡二卡三卡国产欧美| 国产在线不卡视频| 国产精品国产自产拍高清av王其 | 三级久久三级久久| 日韩欧美一级在线播放| 国产大陆a不卡| 国产精品视频麻豆| 欧美性大战久久久久久久| 蜜桃精品视频在线观看| 国产农村妇女毛片精品久久麻豆| 成人美女在线观看| 尤物视频一区二区| 日韩欧美一级精品久久| 懂色av一区二区三区免费看| 亚洲欧美色一区| 日韩视频一区二区三区在线播放| 国内成+人亚洲+欧美+综合在线| 欧美高清一级片在线观看| 欧美日韩中字一区| 国产盗摄一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 日韩一级黄色片|