⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xregstflt.c

📁 早期freebsd实现
💻 C
字号:
/* * $XConsortium: XRegstFlt.c,v 1.11 91/06/05 09:17:42 rws Exp $ */ /*  * Copyright 1990, 1991 by OMRON Corporation  * Copyright 1991 by the Massachusetts Institute of Technology  *  * Permission to use, copy, modify, distribute, and sell this software and its  * documentation for any purpose is hereby granted without fee, 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 names of OMRON and MIT not be used in  * advertising or publicity pertaining to distribution of the software without  * specific, written prior permission.  OMRON and MIT make no representations  * about the suitability of this software for any purpose.  It is provided  * "as is" without express or implied warranty.  *  * OMRON AND MIT DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO  * EVENT SHALL OMRON OR MIT 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  * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR  * PERFORMANCE OF THIS SOFTWARE.   *  *	Author:	Seiji Kuwari	OMRON Corporation  *				kuwa@omron.co.jp  *				kuwa%omron.co.jp@uunet.uu.net  */				#include "Xlibint.h"#include "Xlcint.h"static void_XFreeIMFilters(display)    Display *display;{    register XFilterEventList fl;    while (fl = display->im_filters) {        display->im_filters = fl->next;        Xfree((char *)fl);    }}/* * Register a filter with the filter machinery by event mask. */void_XRegisterFilterByMask(display, window, event_mask, filter, client_data)    Display *display;    Window window;    unsigned long event_mask;    Bool (*filter)(#if NeedNestedPrototypes		   Display*, Window, XEvent*, XPointer#endif		   );    XPointer client_data;{    XFilterEventRec		*rec;    rec = (XFilterEventList)Xmalloc(sizeof(XFilterEventRec));    if (!rec)	return;    rec->window = window;    rec->event_mask = event_mask;    rec->start_type = 0;    rec->end_type = 0;    rec->filter = filter;    rec->client_data = client_data;    LockDisplay(display);    rec->next = display->im_filters;    display->im_filters = rec;    display->free_funcs->im_filters = _XFreeIMFilters;    UnlockDisplay(display);}/* * Register a filter with the filter machinery by type code. */void_XRegisterFilterByType(display, window, start_type, end_type,		       filter, client_data)    Display *display;    Window window;    int start_type;    int end_type;    Bool (*filter)(#if NeedNestedPrototypes		   Display*, Window, XEvent*, XPointer#endif		   );    XPointer client_data;{    XFilterEventRec		*rec;    rec = (XFilterEventList)Xmalloc(sizeof(XFilterEventRec));    if (!rec)	return;    rec->window = window;    rec->event_mask = 0;    rec->start_type = start_type;    rec->end_type = end_type;    rec->filter = filter;    rec->client_data = client_data;    LockDisplay(display);    rec->next = display->im_filters;    display->im_filters = rec;    display->free_funcs->im_filters = _XFreeIMFilters;    UnlockDisplay(display);}void_XUnregisterFilter(display, window, filter, client_data)    Display *display;    Window window;    Bool (*filter)(#if NeedNestedPrototypes		   Display*, Window, XEvent*, XPointer#endif		   );    XPointer client_data;{    register XFilterEventList	*prev, fl;    for (prev = &display->im_filters; fl = *prev; ) {	if (fl->window == window &&	    fl->filter == filter && fl->client_data == client_data) {	    *prev = fl->next;	    Xfree((char *)fl);	} else	    prev = &fl->next;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -