1/***********************************************************
2
3Copyright 1987, 1988, 1998  The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included in
12all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
17OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21Except as contained in this notice, the name of The Open Group shall not be
22used in advertising or otherwise to promote the sale, use or other dealings
23in this Software without prior written authorization from The Open Group.
24
25
26Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
27
28                        All Rights Reserved
29
30Permission to use, copy, modify, and distribute this software and its
31documentation for any purpose and without fee is hereby granted,
32provided that the above copyright notice appear in all copies and that
33both that copyright notice and this permission notice appear in
34supporting documentation, and that the name of Digital not be
35used in advertising or publicity pertaining to distribution of the
36software without specific, written prior permission.
37
38DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
39ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
40DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
41ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
42WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
43ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
44SOFTWARE.
45
46******************************************************************/
47
48/*
49 * Event.h - exported types and functions for toolkit event handler
50 *
51 * Author:	Charles Haynes
52 * 		Digital Equipment Corporation
53 * 		Western Software Laboratory
54 * Date:	Sun Dec  6 1987
55 */
56
57#ifndef _Event_h_
58#define _Event_h_
59
60typedef struct _XtGrabRec  *XtGrabList;
61
62#include "PassivGraI.h"
63
64_XFUNCPROTOBEGIN
65
66extern void _XtEventInitialize(
67    void
68);
69
70typedef struct _XtEventRec {
71     XtEventTable	next;
72     EventMask		mask;	/*  also select_data count for RecExt */
73     XtEventHandler	proc;
74     XtPointer		closure;
75     unsigned int	select:1;
76     unsigned int	has_type_specifier:1;
77     unsigned int	async:1; /* not used, here for Digital extension? */
78} XtEventRec;
79
80typedef struct _XtGrabRec {
81    XtGrabList next;
82    Widget   widget;
83    unsigned int exclusive:1;
84    unsigned int spring_loaded:1;
85}XtGrabRec;
86
87typedef struct _BlockHookRec {
88    struct _BlockHookRec* next;
89    XtAppContext app;
90    XtBlockHookProc proc;
91    XtPointer closure;
92} BlockHookRec, *BlockHook;
93
94extern void _XtFreeEventTable(
95    XtEventTable*	/* event_table */
96);
97
98extern Boolean _XtOnGrabList(
99    Widget	/* widget */,
100    XtGrabRec*	/* grabList */
101);
102
103extern void _XtRemoveAllInputs(
104    XtAppContext /* app */
105);
106
107extern void _XtRefreshMapping(
108    XEvent*	/* event */,
109    _XtBoolean	/* dispatch */
110);
111
112extern void _XtSendFocusEvent(
113    Widget	/* child */,
114    int		/* type */);
115
116extern EventMask _XtConvertTypeToMask(
117    int		/* eventType */
118);
119
120/* EventUtil.c */
121extern Widget _XtFindRemapWidget(XEvent *event, Widget widget,
122				 EventMask mask, XtPerDisplayInput pdi);
123extern void _XtUngrabBadGrabs(XEvent *event, Widget widget,
124				 EventMask mask, XtPerDisplayInput pdi);
125extern void _XtFillAncestorList(Widget **listPtr, int *maxElemsPtr,
126				int *numElemsPtr, Widget start,
127				Widget breakWidget);
128
129/* NextEvent.c */
130extern Boolean XtAppPeekEvent_SkipTimer;
131
132_XFUNCPROTOEND
133
134#endif /* _Event_h_ */
135