applewmproto.h revision 17ca54c3
1/************************************************************************** 2 3Copyright (c) 2002 Apple Computer, Inc. 4All Rights Reserved. 5 6Permission is hereby granted, free of charge, to any person obtaining a 7copy of this software and associated documentation files (the 8"Software"), to deal in the Software without restriction, including 9without limitation the rights to use, copy, modify, merge, publish, 10distribute, sub license, and/or sell copies of the Software, and to 11permit persons to whom the Software is furnished to do so, subject to 12the following conditions: 13 14The above copyright notice and this permission notice (including the 15next paragraph) shall be included in all copies or substantial portions 16of the Software. 17 18THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 22ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 26**************************************************************************/ 27 28#ifndef _APPLEWMPROTO_H_ 29#define _APPLEWMPROTO_H_ 30 31#include <X11/extensions/applewmconst.h> 32#include <X11/X.h> 33#include <X11/Xmd.h> 34 35#define APPLEWMNAME "Apple-WM" 36 37#define APPLE_WM_MAJOR_VERSION 1 /* current version numbers */ 38#define APPLE_WM_MINOR_VERSION 3 39#define APPLE_WM_PATCH_VERSION 0 40 41#define X_AppleWMQueryVersion 0 42#define X_AppleWMFrameGetRect 1 43#define X_AppleWMFrameHitTest 2 44#define X_AppleWMFrameDraw 3 45#define X_AppleWMDisableUpdate 4 46#define X_AppleWMReenableUpdate 5 47#define X_AppleWMSelectInput 6 48#define X_AppleWMSetWindowMenuCheck 7 49#define X_AppleWMSetFrontProcess 8 50#define X_AppleWMSetWindowLevel 9 51#define X_AppleWMSetCanQuit 10 52#define X_AppleWMSetWindowMenu 11 53#define X_AppleWMSendPSN 12 54#define X_AppleWMAttachTransient 13 55 56/* For the purpose of the structure definitions in this file, 57we must redefine the following types in terms of Xmd.h's types, which may 58include bit fields. All of these are #undef'd at the end of this file, 59restoring the definitions in X.h. */ 60 61#define Window CARD32 62#define Drawable CARD32 63#define Font CARD32 64#define Pixmap CARD32 65#define Cursor CARD32 66#define Colormap CARD32 67#define GContext CARD32 68#define Atom CARD32 69#define VisualID CARD32 70#define Time CARD32 71#define KeyCode CARD8 72#define KeySym CARD32 73 74typedef struct _AppleWMQueryVersion { 75 CARD8 reqType; /* always WMReqCode */ 76 CARD8 wmReqType; /* always X_AppleWMQueryVersion */ 77 CARD16 length B16; 78} xAppleWMQueryVersionReq; 79#define sz_xAppleWMQueryVersionReq 4 80 81typedef struct { 82 BYTE type; /* X_Reply */ 83 BOOL pad1; 84 CARD16 sequenceNumber B16; 85 CARD32 length B32; 86 CARD16 majorVersion B16; /* major version of WM protocol */ 87 CARD16 minorVersion B16; /* minor version of WM protocol */ 88 CARD32 patchVersion B32; /* patch version of WM protocol */ 89 CARD32 pad3 B32; 90 CARD32 pad4 B32; 91 CARD32 pad5 B32; 92 CARD32 pad6 B32; 93} xAppleWMQueryVersionReply; 94#define sz_xAppleWMQueryVersionReply 32 95 96typedef struct _AppleWMDisableUpdate { 97 CARD8 reqType; /* always WMReqCode */ 98 CARD8 wmReqType; /* always X_AppleWMDisableUpdate */ 99 CARD16 length B16; 100 CARD32 screen B32; 101} xAppleWMDisableUpdateReq; 102#define sz_xAppleWMDisableUpdateReq 8 103 104typedef struct _AppleWMReenableUpdate { 105 CARD8 reqType; /* always WMReqCode */ 106 CARD8 wmReqType; /* always X_AppleWMReenableUpdate */ 107 CARD16 length B16; 108 CARD32 screen B32; 109} xAppleWMReenableUpdateReq; 110#define sz_xAppleWMReenableUpdateReq 8 111 112typedef struct _AppleWMSelectInput { 113 CARD8 reqType; /* always WMReqCode */ 114 CARD8 wmReqType; /* always X_AppleWMSelectInput */ 115 CARD16 length B16; 116 CARD32 mask B32; 117} xAppleWMSelectInputReq; 118#define sz_xAppleWMSelectInputReq 8 119 120typedef struct _AppleWMNotify { 121 BYTE type; /* always eventBase + event type */ 122 BYTE kind; 123 CARD16 sequenceNumber B16; 124 Time time B32; /* time of change */ 125 CARD16 pad1 B16; 126 CARD32 arg B32; 127 CARD32 pad3 B32; 128 CARD32 pad4 B32; 129 CARD32 pad5 B32; 130 CARD32 pad6 B32; 131} xAppleWMNotifyEvent; 132#define sz_xAppleWMNotifyEvent 32 133 134typedef struct _AppleWMSetWindowMenu { 135 CARD8 reqType; /* always WMReqCode */ 136 CARD8 wmReqType; /* always X_AppleWMSetWindowMenu */ 137 CARD16 length B16; 138 CARD16 nitems B16; 139 CARD16 pad1 B16; 140} xAppleWMSetWindowMenuReq; 141#define sz_xAppleWMSetWindowMenuReq 8 142 143typedef struct _AppleWMSetWindowMenuCheck { 144 CARD8 reqType; /* always WMReqCode */ 145 CARD8 wmReqType; /* always X_AppleWMSetWindowMenuCheck */ 146 CARD16 length B16; 147 CARD32 index; 148} xAppleWMSetWindowMenuCheckReq; 149#define sz_xAppleWMSetWindowMenuCheckReq 8 150 151typedef struct _AppleWMSetFrontProcess { 152 CARD8 reqType; /* always WMReqCode */ 153 CARD8 wmReqType; /* always X_AppleWMSetFrontProcess */ 154 CARD16 length B16; 155} xAppleWMSetFrontProcessReq; 156#define sz_xAppleWMSetFrontProcessReq 4 157 158typedef struct _AppleWMSetWindowLevel { 159 CARD8 reqType; /* always WMReqCode */ 160 CARD8 wmReqType; /* always X_AppleWMSetWindowLevel */ 161 CARD16 length B16; 162 CARD32 window; 163 CARD32 level; 164} xAppleWMSetWindowLevelReq; 165#define sz_xAppleWMSetWindowLevelReq 12 166 167typedef struct _AppleWMSendPSN { 168 CARD8 reqType; /* always WMReqCode */ 169 CARD8 wmReqType; /* always X_AppleWMSendPSN */ 170 CARD16 length B16; 171 CARD32 psn_hi; 172 CARD32 psn_lo; 173} xAppleWMSendPSNReq; 174#define sz_xAppleWMSendPSNReq 12 175 176typedef struct _AppleWMAttachTransient { 177 CARD8 reqType; /* always WMReqCode */ 178 CARD8 wmReqType; /* always X_AppleWMAttachTransient */ 179 CARD16 length B16; 180 CARD32 child; 181 CARD32 parent; 182} xAppleWMAttachTransientReq; 183#define sz_xAppleWMAttachTransientReq 12 184 185typedef struct _AppleWMSetCanQuit { 186 CARD8 reqType; /* always WMReqCode */ 187 CARD8 wmReqType; /* always X_AppleWMSetCanQuit */ 188 CARD16 length B16; 189 CARD32 state; 190} xAppleWMSetCanQuitReq; 191#define sz_xAppleWMSetCanQuitReq 8 192 193typedef struct _AppleWMFrameGetRect { 194 CARD8 reqType; /* always WMReqCode */ 195 CARD8 wmReqType; /* always X_AppleWMFrameGetRect */ 196 CARD16 length B16; 197 CARD16 frame_class B16; 198 CARD16 frame_rect B16; 199 CARD16 ix B16; 200 CARD16 iy B16; 201 CARD16 iw B16; 202 CARD16 ih B16; 203 CARD16 ox B16; 204 CARD16 oy B16; 205 CARD16 ow B16; 206 CARD16 oh B16; 207} xAppleWMFrameGetRectReq; 208#define sz_xAppleWMFrameGetRectReq 24 209 210typedef struct { 211 BYTE type; /* X_Reply */ 212 BOOL pad1; 213 CARD16 sequenceNumber B16; 214 CARD32 length B32; 215 CARD16 x B16; 216 CARD16 y B16; 217 CARD16 w B16; 218 CARD16 h B16; 219 CARD32 pad3 B32; 220 CARD32 pad4 B32; 221 CARD32 pad5 B32; 222 CARD32 pad6 B32; 223} xAppleWMFrameGetRectReply; 224#define sz_xAppleWMFrameGetRectReply 32 225 226typedef struct _AppleWMFrameHitTest { 227 CARD8 reqType; /* always WMReqCode */ 228 CARD8 wmReqType; /* always X_AppleWMFrameHitTest */ 229 CARD16 length B16; 230 CARD16 frame_class B16; 231 CARD16 pad1 B16; 232 CARD16 px B16; 233 CARD16 py B16; 234 CARD16 ix B16; 235 CARD16 iy B16; 236 CARD16 iw B16; 237 CARD16 ih B16; 238 CARD16 ox B16; 239 CARD16 oy B16; 240 CARD16 ow B16; 241 CARD16 oh B16; 242} xAppleWMFrameHitTestReq; 243#define sz_xAppleWMFrameHitTestReq 28 244 245typedef struct { 246 BYTE type; /* X_Reply */ 247 BOOL pad1; 248 CARD16 sequenceNumber B16; 249 CARD32 length B32; 250 CARD32 ret B32; 251 CARD32 pad2 B32; 252 CARD32 pad3 B32; 253 CARD32 pad4 B32; 254 CARD32 pad5 B32; 255 CARD32 pad6 B32; 256} xAppleWMFrameHitTestReply; 257#define sz_xAppleWMFrameHitTestReply 32 258 259typedef struct _AppleWMFrameDraw { 260 CARD8 reqType; /* always WMReqCode */ 261 CARD8 wmReqType; /* always X_AppleWMFrameDraw */ 262 CARD16 length B16; 263 CARD32 screen B32; 264 CARD32 window B32; 265 CARD16 frame_class B16; 266 CARD16 frame_attr B16; 267 CARD16 ix B16; 268 CARD16 iy B16; 269 CARD16 iw B16; 270 CARD16 ih B16; 271 CARD16 ox B16; 272 CARD16 oy B16; 273 CARD16 ow B16; 274 CARD16 oh B16; 275 CARD32 title_length B32; 276} xAppleWMFrameDrawReq; 277#define sz_xAppleWMFrameDrawReq 36 278 279/* restore these definitions back to the typedefs in X.h */ 280#undef Window 281#undef Drawable 282#undef Font 283#undef Pixmap 284#undef Cursor 285#undef Colormap 286#undef GContext 287#undef Atom 288#undef VisualID 289#undef Time 290#undef KeyCode 291#undef KeySym 292 293#endif /* _APPLEWMPROTO_H_ */ 294