1 /* $XFree86: xc/lib/GL/dri/xf86dristr.h,v 1.9 2001/03/21 16:01:08 dawes Exp $ */
2 /**************************************************************************
3 
4 Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
5 Copyright 2000 VA Linux Systems, Inc.
6 Copyright (c) 2002 Apple Computer, Inc.
7 All Rights Reserved.
8 
9 Permission is hereby granted, free of charge, to any person obtaining a
10 copy of this software and associated documentation files (the
11 "Software"), to deal in the Software without restriction, including
12 without limitation the rights to use, copy, modify, merge, publish,
13 distribute, sub license, and/or sell copies of the Software, and to
14 permit persons to whom the Software is furnished to do so, subject to
15 the following conditions:
16 
17 The above copyright notice and this permission notice (including the
18 next paragraph) shall be included in all copies or substantial portions
19 of the Software.
20 
21 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
24 IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
25 ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 
29 **************************************************************************/
30 
31 /*
32  * Authors:
33  *   Kevin E. Martin <martin@valinux.com>
34  *   Jens Owen <jens@valinux.com>
35  *   Rickard E. (Rik) Fiath <faith@valinux.com>
36  *
37  */
38 
39 #ifndef _APPLEWMSTR_H_
40 #define _APPLEWMSTR_H_
41 
42 #include "applewm.h"
43 
44 #define APPLEWMNAME "Apple-WM"
45 
46 #define APPLE_WM_MAJOR_VERSION	1	/* current version numbers */
47 #define APPLE_WM_MINOR_VERSION	0
48 #define APPLE_WM_PATCH_VERSION	0
49 
50 typedef struct _AppleWMQueryVersion {
51     CARD8	reqType;		/* always WMReqCode */
52     CARD8	wmReqType;		/* always X_WMQueryVersion */
53     CARD16	length B16;
54 } xAppleWMQueryVersionReq;
55 #define sz_xAppleWMQueryVersionReq	4
56 
57 typedef struct {
58     BYTE	type;			/* X_Reply */
59     BOOL	pad1;
60     CARD16	sequenceNumber B16;
61     CARD32	length B32;
62     CARD16	majorVersion B16;	/* major version of WM protocol */
63     CARD16	minorVersion B16;	/* minor version of WM protocol */
64     CARD32	patchVersion B32;       /* patch version of WM protocol */
65     CARD32	pad3 B32;
66     CARD32	pad4 B32;
67     CARD32	pad5 B32;
68     CARD32	pad6 B32;
69 } xAppleWMQueryVersionReply;
70 #define sz_xAppleWMQueryVersionReply	32
71 
72 typedef struct _AppleWMQueryDirectRenderingCapable {
73     CARD8	reqType;		/* always WMReqCode */
74     CARD8	wmReqType;		/* X_WMQueryDirectRenderingCapable */
75     CARD16	length B16;
76     CARD32	screen B32;
77 } xAppleWMQueryDirectRenderingCapableReq;
78 #define sz_xAppleWMQueryDirectRenderingCapableReq	8
79 
80 typedef struct {
81     BYTE	type;			/* X_Reply */
82     BOOL	pad1;
83     CARD16	sequenceNumber B16;
84     CARD32	length B32;
85     BOOL	isCapable;
86     BOOL	pad2;
87     BOOL	pad3;
88     BOOL	pad4;
89     CARD32	pad5 B32;
90     CARD32	pad6 B32;
91     CARD32	pad7 B32;
92     CARD32	pad8 B32;
93     CARD32	pad9 B32;
94 } xAppleDRIQueryDirectRenderingCapableReply;
95 #define sz_xAppleWMQueryDirectRenderingCapableReply	32
96 
97 typedef struct _AppleWMAuthConnection {
98     CARD8	reqType;		/* always WMReqCode */
99     CARD8	wmReqType;		/* always X_WMCloseConnection */
100     CARD16	length B16;
101     CARD32	screen B32;
102     CARD32      magic B32;
103 } xAppleWMAuthConnectionReq;
104 #define sz_xAppleWMAuthConnectionReq	12
105 
106 typedef struct {
107     BYTE        type;
108     BOOL        pad1;
109     CARD16      sequenceNumber B16;
110     CARD32      length B32;
111     CARD32      authenticated B32;
112     CARD32      pad2 B32;
113     CARD32      pad3 B32;
114     CARD32      pad4 B32;
115     CARD32      pad5 B32;
116     CARD32      pad6 B32;
117 } xAppleWMAuthConnectionReply;
118 #define zx_xAppleWMAuthConnectionReply  32
119 
120 typedef struct _AppleWMCreateSurface {
121     CARD8	reqType;		/* always WMReqCode */
122     CARD8	wmReqType;		/* always X_WMCreateSurface */
123     CARD16	length B16;
124     CARD32	screen B32;
125     CARD32	drawable B32;
126     CARD32	client_id B32;
127 } xAppleWMCreateSurfaceReq;
128 #define sz_xAppleWMCreateSurfaceReq	16
129 
130 typedef struct {
131     BYTE	type;			/* X_Reply */
132     BOOL	pad1;
133     CARD16	sequenceNumber B16;
134     CARD32	length B32;
135     CARD32	key_0 B32;
136     CARD32	key_1 B32;
137     CARD32	uid B32;
138     CARD32	pad4 B32;
139     CARD32	pad5 B32;
140     CARD32	pad6 B32;
141 } xAppleWMCreateSurfaceReply;
142 #define sz_xAppleWMCreateSurfaceReply	32
143 
144 typedef struct _AppleWMDestroySurface {
145     CARD8	reqType;		/* always WMReqCode */
146     CARD8	wmReqType;		/* always X_WMDestroySurface */
147     CARD16	length B16;
148     CARD32	screen B32;
149     CARD32	drawable B32;
150 } xAppleWMDestroySurfaceReq;
151 #define sz_xAppleWMDestroySurfaceReq	12
152 
153 typedef struct _AppleWMDisableUpdate {
154     CARD8	reqType;		/* always WMReqCode */
155     CARD8	wmReqType;		/* always X_WMDisableUpdate */
156     CARD16	length B16;
157     CARD32	screen B32;
158 } xAppleWMDisableUpdateReq;
159 #define sz_xAppleWMDisableUpdateReq	8
160 
161 typedef struct _AppleWMReenableUpdate {
162     CARD8	reqType;		/* always WMReqCode */
163     CARD8	wmReqType;		/* always X_WMReenableUpdate */
164     CARD16	length B16;
165     CARD32	screen B32;
166 } xAppleWMReenableUpdateReq;
167 #define sz_xAppleWMReenableUpdateReq	8
168 
169 typedef struct _AppleWMSelectInput {
170     CARD8	reqType;		/* always WMReqCode */
171     CARD8	wmReqType;		/* always X_WMSelectInput */
172     CARD16	length B16;
173     CARD32	mask B32;
174 } xAppleWMSelectInputReq;
175 #define sz_xAppleWMSelectInputReq	8
176 
177 typedef struct _AppleWMNotify {
178 	BYTE	type;		/* always eventBase + event type */
179 	BYTE	kind;
180 	CARD16	sequenceNumber B16;
181 	Time	time B32;	/* time of change */
182 	CARD16	pad1 B16;
183 	CARD32	arg B32;
184 	CARD32	pad3 B32;
185 } xAppleWMNotifyEvent;
186 #define sz_xAppleWMNotifyEvent	20
187 
188 typedef struct _AppleWMSetWindowMenu {
189     CARD8	reqType;		/* always WMReqCode */
190     CARD8	wmReqType;		/* always X_WMSetWindowMenu */
191     CARD16	length B16;
192     CARD16	nitems B16;
193     CARD16	pad1 B16;
194 } xAppleWMSetWindowMenuReq;
195 #define sz_xAppleWMSetWindowMenuReq	8
196 
197 typedef struct _AppleWMSetWindowMenuCheck {
198     CARD8	reqType;		/* always WMReqCode */
199     CARD8	wmReqType;		/* always X_WMSetWindowMenuCheck */
200     CARD16	length B16;
201     CARD32	index;
202 } xAppleWMSetWindowMenuCheckReq;
203 #define sz_xAppleWMSetWindowMenuCheckReq 8
204 
205 typedef struct _AppleWMSetFrontProcess {
206     CARD8	reqType;		/* always WMReqCode */
207     CARD8	wmReqType;		/* always X_WMSetFrontProcess */
208     CARD16	length B16;
209 } xAppleWMSetFrontProcessReq;
210 #define sz_xAppleWMSetFrontProcessReq 4
211 
212 typedef struct _AppleWMSetWindowLevel {
213     CARD8	reqType;		/* always WMReqCode */
214     CARD8	wmReqType;		/* always X_WMSetWindowLevel */
215     CARD16	length B16;
216     CARD32	window;
217     CARD32	level;
218 } xAppleWMSetWindowLevelReq;
219 #define sz_xAppleWMSetWindowLevelReq 12
220 
221 typedef struct _AppleWMSetCanQuit {
222     CARD8	reqType;		/* always WMReqCode */
223     CARD8	wmReqType;		/* always X_WMSetCanQuit */
224     CARD16	length B16;
225     CARD32	state;
226 } xAppleWMSetCanQuitReq;
227 #define sz_xAppleWMSetCanQuitReq 8
228 
229 typedef struct _AppleWMFrameGetRect {
230     CARD8	reqType;		/* always WMReqCode */
231     CARD8	wmReqType;		/* always X_WMFrameGetRect */
232     CARD16	length B16;
233     CARD16	frame_class B16;
234     CARD16	frame_rect B16;
235     CARD16	ix B16;
236     CARD16	iy B16;
237     CARD16	iw B16;
238     CARD16	ih B16;
239     CARD16	ox B16;
240     CARD16	oy B16;
241     CARD16	ow B16;
242     CARD16	oh B16;
243 } xAppleWMFrameGetRectReq;
244 #define sz_xAppleWMFrameGetRectReq	24
245 
246 typedef struct {
247     BYTE	type;			/* X_Reply */
248     BOOL	pad1;
249     CARD16	sequenceNumber B16;
250     CARD32	length B32;
251     CARD16	x B16;
252     CARD16	y B16;
253     CARD16	w B16;
254     CARD16	h B16;
255     CARD32	pad3 B32;
256     CARD32	pad4 B32;
257     CARD32	pad5 B32;
258     CARD32	pad6 B32;
259 } xAppleWMFrameGetRectReply;
260 #define sz_xAppleWMFrameGetRectReply	32
261 
262 typedef struct _AppleWMFrameHitTest {
263     CARD8	reqType;		/* always WMReqCode */
264     CARD8	wmReqType;		/* always X_WMFrameHitTest */
265     CARD16	length B16;
266     CARD16	frame_class B16;
267     CARD16	pad1 B16;
268     CARD16	px B16;
269     CARD16	py B16;
270     CARD16	ix B16;
271     CARD16	iy B16;
272     CARD16	iw B16;
273     CARD16	ih B16;
274     CARD16	ox B16;
275     CARD16	oy B16;
276     CARD16	ow B16;
277     CARD16	oh B16;
278 } xAppleWMFrameHitTestReq;
279 #define sz_xAppleWMFrameHitTestReq	28
280 
281 typedef struct {
282     BYTE	type;			/* X_Reply */
283     BOOL	pad1;
284     CARD16	sequenceNumber B16;
285     CARD32	length B32;
286     CARD32	ret B32;
287     CARD32	pad2 B32;
288     CARD32	pad3 B32;
289     CARD32	pad4 B32;
290     CARD32	pad5 B32;
291     CARD32	pad6 B32;
292 } xAppleWMFrameHitTestReply;
293 #define sz_xAppleWMFrameHitTestReply	32
294 
295 typedef struct _AppleWMFrameDraw {
296     CARD8	reqType;		/* always WMReqCode */
297     CARD8	wmReqType;		/* always X_WMFrameDraw */
298     CARD16	length B16;
299     CARD32	screen B32;
300     CARD32	window B32;
301     CARD16	frame_class B16;
302     CARD16	frame_attr B16;
303     CARD16	ix B16;
304     CARD16	iy B16;
305     CARD16	iw B16;
306     CARD16	ih B16;
307     CARD16	ox B16;
308     CARD16	oy B16;
309     CARD16	ow B16;
310     CARD16	oh B16;
311     CARD32	title_length B32;
312 } xAppleWMFrameDrawReq;
313 #define sz_xAppleWMFrameDrawReq	36
314 
315 #ifdef _APPLEWM_SERVER_
316 
317 void AppleWMSendEvent (
318 #if NeedFunctionPrototypes
319     int			/* type */,
320     unsigned int	/* mask */,
321     int			/* which */,
322     int			/* arg */
323 #endif
324 );
325 
326 unsigned int AppleWMSelectedEvents (
327 #if NeedFunctionPrototypes
328     void
329 #endif
330 );
331 
332 #endif /* _APPLEWM_SERVER_ */
333 #endif /* _APPLEWMSTR_H_ */
334