2130 lines
55 KiB
C
2130 lines
55 KiB
C
|
/*
|
|||
|
* $Xorg: Xproto.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $
|
|||
|
*/
|
|||
|
|
|||
|
/* Definitions for the X window system used by server and c bindings */
|
|||
|
|
|||
|
/*
|
|||
|
* This packet-construction scheme makes the following assumptions:
|
|||
|
*
|
|||
|
* 1. The compiler is able
|
|||
|
* to generate code which addresses one- and two-byte quantities.
|
|||
|
* In the worst case, this would be done with bit-fields. If bit-fields
|
|||
|
* are used it may be necessary to reorder the request fields in this file,
|
|||
|
* depending on the order in which the machine assigns bit fields to
|
|||
|
* machine words. There may also be a problem with sign extension,
|
|||
|
* as K+R specify that bitfields are always unsigned.
|
|||
|
*
|
|||
|
* 2. 2- and 4-byte fields in packet structures must be ordered by hand
|
|||
|
* such that they are naturally-aligned, so that no compiler will ever
|
|||
|
* insert padding bytes.
|
|||
|
*
|
|||
|
* 3. All packets are hand-padded to a multiple of 4 bytes, for
|
|||
|
* the same reason.
|
|||
|
*/
|
|||
|
|
|||
|
#ifndef XPROTO_H
|
|||
|
#define XPROTO_H
|
|||
|
|
|||
|
/***********************************************************
|
|||
|
|
|||
|
Copyright 1987, 1998 The Open Group
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
The above copyright notice and this permission notice shall be included in
|
|||
|
all copies or substantial portions of the Software.
|
|||
|
|
|||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|||
|
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|||
|
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
|
|||
|
Except as contained in this notice, the name of The Open Group shall not be
|
|||
|
used in advertising or otherwise to promote the sale, use or other dealings
|
|||
|
in this Software without prior written authorization from The Open Group.
|
|||
|
|
|||
|
|
|||
|
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
|||
|
|
|||
|
All Rights Reserved
|
|||
|
|
|||
|
Permission to use, copy, modify, and distribute this software and its
|
|||
|
documentation for any purpose and without fee is hereby granted,
|
|||
|
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 name of Digital not be
|
|||
|
used in advertising or publicity pertaining to distribution of the
|
|||
|
software without specific, written prior permission.
|
|||
|
|
|||
|
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
|||
|
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
|||
|
DIGITAL 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 TORTIOUS ACTION,
|
|||
|
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
|||
|
SOFTWARE.
|
|||
|
|
|||
|
******************************************************************/
|
|||
|
|
|||
|
#include <X11/Xmd.h>
|
|||
|
#include <X11/Xprotostr.h>
|
|||
|
|
|||
|
/*
|
|||
|
* Define constants for the sizes of the network packets. The sz_ prefix is
|
|||
|
* used instead of something more descriptive so that the symbols are no more
|
|||
|
* than 32 characters in length (which causes problems for some compilers).
|
|||
|
*/
|
|||
|
#define sz_xSegment 8
|
|||
|
#define sz_xPoint 4
|
|||
|
#define sz_xRectangle 8
|
|||
|
#define sz_xArc 12
|
|||
|
#define sz_xConnClientPrefix 12
|
|||
|
#define sz_xConnSetupPrefix 8
|
|||
|
#define sz_xConnSetup 32
|
|||
|
#define sz_xPixmapFormat 8
|
|||
|
#define sz_xDepth 8
|
|||
|
#define sz_xVisualType 24
|
|||
|
#define sz_xWindowRoot 40
|
|||
|
#define sz_xTimecoord 8
|
|||
|
#define sz_xHostEntry 4
|
|||
|
#define sz_xCharInfo 12
|
|||
|
#define sz_xFontProp 8
|
|||
|
#define sz_xTextElt 2
|
|||
|
#define sz_xColorItem 12
|
|||
|
#define sz_xrgb 8
|
|||
|
#define sz_xGenericReply 32
|
|||
|
#define sz_xGetWindowAttributesReply 44
|
|||
|
#define sz_xGetGeometryReply 32
|
|||
|
#define sz_xQueryTreeReply 32
|
|||
|
#define sz_xInternAtomReply 32
|
|||
|
#define sz_xGetAtomNameReply 32
|
|||
|
#define sz_xGetPropertyReply 32
|
|||
|
#define sz_xListPropertiesReply 32
|
|||
|
#define sz_xGetSelectionOwnerReply 32
|
|||
|
#define sz_xGrabPointerReply 32
|
|||
|
#define sz_xQueryPointerReply 32
|
|||
|
#define sz_xGetMotionEventsReply 32
|
|||
|
#define sz_xTranslateCoordsReply 32
|
|||
|
#define sz_xGetInputFocusReply 32
|
|||
|
#define sz_xQueryKeymapReply 40
|
|||
|
#define sz_xQueryFontReply 60
|
|||
|
#define sz_xQueryTextExtentsReply 32
|
|||
|
#define sz_xListFontsReply 32
|
|||
|
#define sz_xGetFontPathReply 32
|
|||
|
#define sz_xGetImageReply 32
|
|||
|
#define sz_xListInstalledColormapsReply 32
|
|||
|
#define sz_xAllocColorReply 32
|
|||
|
#define sz_xAllocNamedColorReply 32
|
|||
|
#define sz_xAllocColorCellsReply 32
|
|||
|
#define sz_xAllocColorPlanesReply 32
|
|||
|
#define sz_xQueryColorsReply 32
|
|||
|
#define sz_xLookupColorReply 32
|
|||
|
#define sz_xQueryBestSizeReply 32
|
|||
|
#define sz_xQueryExtensionReply 32
|
|||
|
#define sz_xListExtensionsReply 32
|
|||
|
#define sz_xSetMappingReply 32
|
|||
|
#define sz_xGetKeyboardControlReply 52
|
|||
|
#define sz_xGetPointerControlReply 32
|
|||
|
#define sz_xGetScreenSaverReply 32
|
|||
|
#define sz_xListHostsReply 32
|
|||
|
#define sz_xSetModifierMappingReply 32
|
|||
|
#define sz_xError 32
|
|||
|
#define sz_xEvent 32
|
|||
|
#define sz_xKeymapEvent 32
|
|||
|
#define sz_xReq 4
|
|||
|
#define sz_xResourceReq 8
|
|||
|
#define sz_xCreateWindowReq 32
|
|||
|
#define sz_xChangeWindowAttributesReq 12
|
|||
|
#define sz_xChangeSaveSetReq 8
|
|||
|
#define sz_xReparentWindowReq 16
|
|||
|
#define sz_xConfigureWindowReq 12
|
|||
|
#define sz_xCirculateWindowReq 8
|
|||
|
#define sz_xInternAtomReq 8
|
|||
|
#define sz_xChangePropertyReq 24
|
|||
|
#define sz_xDeletePropertyReq 12
|
|||
|
#define sz_xGetPropertyReq 24
|
|||
|
#define sz_xSetSelectionOwnerReq 16
|
|||
|
#define sz_xConvertSelectionReq 24
|
|||
|
#define sz_xSendEventReq 44
|
|||
|
#define sz_xGrabPointerReq 24
|
|||
|
#define sz_xGrabButtonReq 24
|
|||
|
#define sz_xUngrabButtonReq 12
|
|||
|
#define sz_xChangeActivePointerGrabReq 16
|
|||
|
#define sz_xGrabKeyboardReq 16
|
|||
|
#define sz_xGrabKeyReq 16
|
|||
|
#define sz_xUngrabKeyReq 12
|
|||
|
#define sz_xAllowEventsReq 8
|
|||
|
#define sz_xGetMotionEventsReq 16
|
|||
|
#define sz_xTranslateCoordsReq 16
|
|||
|
#define sz_xWarpPointerReq 24
|
|||
|
#define sz_xSetInputFocusReq 12
|
|||
|
#define sz_xOpenFontReq 12
|
|||
|
#define sz_xQueryTextExtentsReq 8
|
|||
|
#define sz_xListFontsReq 8
|
|||
|
#define sz_xSetFontPathReq 8
|
|||
|
#define sz_xCreatePixmapReq 16
|
|||
|
#define sz_xCreateGCReq 16
|
|||
|
#define sz_xChangeGCReq 12
|
|||
|
#define sz_xCopyGCReq 16
|
|||
|
#define sz_xSetDashesReq 12
|
|||
|
#define sz_xSetClipRectanglesReq 12
|
|||
|
#define sz_xCopyAreaReq 28
|
|||
|
#define sz_xCopyPlaneReq 32
|
|||
|
#define sz_xPolyPointReq 12
|
|||
|
#define sz_xPolySegmentReq 12
|
|||
|
#define sz_xFillPolyReq 16
|
|||
|
#define sz_xPutImageReq 24
|
|||
|
#define sz_xGetImageReq 20
|
|||
|
#define sz_xPolyTextReq 16
|
|||
|
#define sz_xImageTextReq 16
|
|||
|
#define sz_xCreateColormapReq 16
|
|||
|
#define sz_xCopyColormapAndFreeReq 12
|
|||
|
#define sz_xAllocColorReq 16
|
|||
|
#define sz_xAllocNamedColorReq 12
|
|||
|
#define sz_xAllocColorCellsReq 12
|
|||
|
#define sz_xAllocColorPlanesReq 16
|
|||
|
#define sz_xFreeColorsReq 12
|
|||
|
#define sz_xStoreColorsReq 8
|
|||
|
#define sz_xStoreNamedColorReq 16
|
|||
|
#define sz_xQueryColorsReq 8
|
|||
|
#define sz_xLookupColorReq 12
|
|||
|
#define sz_xCreateCursorReq 32
|
|||
|
#define sz_xCreateGlyphCursorReq 32
|
|||
|
#define sz_xRecolorCursorReq 20
|
|||
|
#define sz_xQueryBestSizeReq 12
|
|||
|
#define sz_xQueryExtensionReq 8
|
|||
|
#define sz_xChangeKeyboardControlReq 8
|
|||
|
#define sz_xBellReq 4
|
|||
|
#define sz_xChangePointerControlReq 12
|
|||
|
#define sz_xSetScreenSaverReq 12
|
|||
|
#define sz_xChangeHostsReq 8
|
|||
|
#define sz_xListHostsReq 4
|
|||
|
#define sz_xChangeModeReq 4
|
|||
|
#define sz_xRotatePropertiesReq 12
|
|||
|
#define sz_xReply 32
|
|||
|
#define sz_xGrabKeyboardReply 32
|
|||
|
#define sz_xListFontsWithInfoReply 60
|
|||
|
#define sz_xSetPointerMappingReply 32
|
|||
|
#define sz_xGetKeyboardMappingReply 32
|
|||
|
#define sz_xGetPointerMappingReply 32
|
|||
|
#define sz_xGetModifierMappingReply 32
|
|||
|
#define sz_xListFontsWithInfoReq 8
|
|||
|
#define sz_xPolyLineReq 12
|
|||
|
#define sz_xPolyArcReq 12
|
|||
|
#define sz_xPolyRectangleReq 12
|
|||
|
#define sz_xPolyFillRectangleReq 12
|
|||
|
#define sz_xPolyFillArcReq 12
|
|||
|
#define sz_xPolyText8Req 16
|
|||
|
#define sz_xPolyText16Req 16
|
|||
|
#define sz_xImageText8Req 16
|
|||
|
#define sz_xImageText16Req 16
|
|||
|
#define sz_xSetPointerMappingReq 4
|
|||
|
#define sz_xForceScreenSaverReq 4
|
|||
|
#define sz_xSetCloseDownModeReq 4
|
|||
|
#define sz_xClearAreaReq 16
|
|||
|
#define sz_xSetAccessControlReq 4
|
|||
|
#define sz_xGetKeyboardMappingReq 8
|
|||
|
#define sz_xSetModifierMappingReq 4
|
|||
|
#define sz_xPropIconSize 24
|
|||
|
#define sz_xChangeKeyboardMappingReq 8
|
|||
|
|
|||
|
|
|||
|
/* For the purpose of the structure definitions in this file,
|
|||
|
we must redefine the following types in terms of Xmd.h's types, which may
|
|||
|
include bit fields. All of these are #undef'd at the end of this file,
|
|||
|
restoring the definitions in X.h. */
|
|||
|
|
|||
|
#define Window CARD32
|
|||
|
#define Drawable CARD32
|
|||
|
#define Font CARD32
|
|||
|
#define Pixmap CARD32
|
|||
|
#define Cursor CARD32
|
|||
|
#define Colormap CARD32
|
|||
|
#define GContext CARD32
|
|||
|
#define Atom CARD32
|
|||
|
#define VisualID CARD32
|
|||
|
#define Time CARD32
|
|||
|
#define KeyCode CARD8
|
|||
|
#define KeySym CARD32
|
|||
|
|
|||
|
#define X_TCP_PORT 6000 /* add display number */
|
|||
|
|
|||
|
#define xTrue 1
|
|||
|
#define xFalse 0
|
|||
|
|
|||
|
|
|||
|
typedef CARD16 KeyButMask;
|
|||
|
|
|||
|
/*****************
|
|||
|
connection setup structure. This is followed by
|
|||
|
numRoots xWindowRoot structs.
|
|||
|
*****************/
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 byteOrder;
|
|||
|
BYTE pad;
|
|||
|
CARD16 majorVersion B16, minorVersion B16;
|
|||
|
CARD16 nbytesAuthProto B16; /* Authorization protocol */
|
|||
|
CARD16 nbytesAuthString B16; /* Authorization string */
|
|||
|
CARD16 pad2 B16;
|
|||
|
} xConnClientPrefix;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 success;
|
|||
|
BYTE lengthReason; /*num bytes in string following if failure */
|
|||
|
CARD16 majorVersion B16,
|
|||
|
minorVersion B16;
|
|||
|
CARD16 length B16; /* 1/4 additional bytes in setup info */
|
|||
|
} xConnSetupPrefix;
|
|||
|
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD32 release B32;
|
|||
|
CARD32 ridBase B32,
|
|||
|
ridMask B32;
|
|||
|
CARD32 motionBufferSize B32;
|
|||
|
CARD16 nbytesVendor B16; /* number of bytes in vendor string */
|
|||
|
CARD16 maxRequestSize B16;
|
|||
|
CARD8 numRoots; /* number of roots structs to follow */
|
|||
|
CARD8 numFormats; /* number of pixmap formats */
|
|||
|
CARD8 imageByteOrder; /* LSBFirst, MSBFirst */
|
|||
|
CARD8 bitmapBitOrder; /* LeastSignificant, MostSign...*/
|
|||
|
CARD8 bitmapScanlineUnit, /* 8, 16, 32 */
|
|||
|
bitmapScanlinePad; /* 8, 16, 32 */
|
|||
|
KeyCode minKeyCode, maxKeyCode;
|
|||
|
CARD32 pad2 B32;
|
|||
|
} xConnSetup;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 depth;
|
|||
|
CARD8 bitsPerPixel;
|
|||
|
CARD8 scanLinePad;
|
|||
|
CARD8 pad1;
|
|||
|
CARD32 pad2 B32;
|
|||
|
} xPixmapFormat;
|
|||
|
|
|||
|
/* window root */
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 depth;
|
|||
|
CARD8 pad1;
|
|||
|
CARD16 nVisuals B16; /* number of xVisualType structures following */
|
|||
|
CARD32 pad2 B32;
|
|||
|
} xDepth;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
VisualID visualID B32;
|
|||
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|||
|
CARD8 c_class;
|
|||
|
#else
|
|||
|
CARD8 class;
|
|||
|
#endif
|
|||
|
CARD8 bitsPerRGB;
|
|||
|
CARD16 colormapEntries B16;
|
|||
|
CARD32 redMask B32, greenMask B32, blueMask B32;
|
|||
|
CARD32 pad B32;
|
|||
|
} xVisualType;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
Window windowId B32;
|
|||
|
Colormap defaultColormap B32;
|
|||
|
CARD32 whitePixel B32, blackPixel B32;
|
|||
|
CARD32 currentInputMask B32;
|
|||
|
CARD16 pixWidth B16, pixHeight B16;
|
|||
|
CARD16 mmWidth B16, mmHeight B16;
|
|||
|
CARD16 minInstalledMaps B16, maxInstalledMaps B16;
|
|||
|
VisualID rootVisualID B32;
|
|||
|
CARD8 backingStore;
|
|||
|
BOOL saveUnders;
|
|||
|
CARD8 rootDepth;
|
|||
|
CARD8 nDepths; /* number of xDepth structures following */
|
|||
|
} xWindowRoot;
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************
|
|||
|
* Structure Defns
|
|||
|
* Structures needed for replies
|
|||
|
*****************************************************************/
|
|||
|
|
|||
|
/* Used in GetMotionEvents */
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD32 time B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
} xTimecoord;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 family;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
} xHostEntry;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
INT16 leftSideBearing B16,
|
|||
|
rightSideBearing B16,
|
|||
|
characterWidth B16,
|
|||
|
ascent B16,
|
|||
|
descent B16;
|
|||
|
CARD16 attributes B16;
|
|||
|
} xCharInfo;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
Atom name B32;
|
|||
|
CARD32 value B32;
|
|||
|
} xFontProp;
|
|||
|
|
|||
|
/*
|
|||
|
* non-aligned big-endian font ID follows this struct
|
|||
|
*/
|
|||
|
typedef struct { /* followed by string */
|
|||
|
CARD8 len; /* number of *characters* in string, or FontChange (255)
|
|||
|
for font change, or 0 if just delta given */
|
|||
|
INT8 delta;
|
|||
|
} xTextElt;
|
|||
|
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD32 pixel B32;
|
|||
|
CARD16 red B16, green B16, blue B16;
|
|||
|
CARD8 flags; /* DoRed, DoGreen, DoBlue booleans */
|
|||
|
CARD8 pad;
|
|||
|
} xColorItem;
|
|||
|
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD16 red B16, green B16, blue B16, pad B16;
|
|||
|
} xrgb;
|
|||
|
|
|||
|
typedef CARD8 KEYCODE;
|
|||
|
|
|||
|
|
|||
|
/*****************
|
|||
|
* XRep:
|
|||
|
* meant to be 32 byte quantity
|
|||
|
*****************/
|
|||
|
|
|||
|
/* GenericReply is the common format of all replies. The "data" items
|
|||
|
are specific to each individual reply type. */
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE data1; /* depends on reply type */
|
|||
|
CARD16 sequenceNumber B16; /* of last request received by server */
|
|||
|
CARD32 length B32; /* 4 byte quantities beyond size of GenericReply */
|
|||
|
CARD32 data00 B32;
|
|||
|
CARD32 data01 B32;
|
|||
|
CARD32 data02 B32;
|
|||
|
CARD32 data03 B32;
|
|||
|
CARD32 data04 B32;
|
|||
|
CARD32 data05 B32;
|
|||
|
} xGenericReply;
|
|||
|
|
|||
|
/* Individual reply formats. */
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 backingStore;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* NOT 0; this is an extra-large reply */
|
|||
|
VisualID visualID B32;
|
|||
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|||
|
CARD16 c_class B16;
|
|||
|
#else
|
|||
|
CARD16 class B16;
|
|||
|
#endif
|
|||
|
CARD8 bitGravity;
|
|||
|
CARD8 winGravity;
|
|||
|
CARD32 backingBitPlanes B32;
|
|||
|
CARD32 backingPixel B32;
|
|||
|
BOOL saveUnder;
|
|||
|
BOOL mapInstalled;
|
|||
|
CARD8 mapState;
|
|||
|
BOOL override;
|
|||
|
Colormap colormap B32;
|
|||
|
CARD32 allEventMasks B32;
|
|||
|
CARD32 yourEventMask B32;
|
|||
|
CARD16 doNotPropagateMask B16;
|
|||
|
CARD16 pad B16;
|
|||
|
} xGetWindowAttributesReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 depth;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
Window root B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
CARD16 width B16, height B16;
|
|||
|
CARD16 borderWidth B16;
|
|||
|
CARD16 pad1 B16;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
} xGetGeometryReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
Window root B32, parent B32;
|
|||
|
CARD16 nChildren B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
} xQueryTreeReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
Atom atom B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
} xInternAtomReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* of additional bytes */
|
|||
|
CARD16 nameLength B16; /* # of characters in name */
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xGetAtomNameReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 format;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* of additional bytes */
|
|||
|
Atom propertyType B32;
|
|||
|
CARD32 bytesAfter B32;
|
|||
|
CARD32 nItems B32; /* # of 8, 16, or 32-bit entities in reply */
|
|||
|
CARD32 pad1 B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
} xGetPropertyReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD16 nProperties B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xListPropertiesReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
Window owner B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
} xGetSelectionOwnerReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE status;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
CARD32 pad1 B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
} xGrabPointerReply;
|
|||
|
|
|||
|
typedef xGrabPointerReply xGrabKeyboardReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BOOL sameScreen;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
Window root B32, child B32;
|
|||
|
INT16 rootX B16, rootY B16, winX B16, winY B16;
|
|||
|
CARD16 mask B16;
|
|||
|
CARD16 pad1 B16;
|
|||
|
CARD32 pad B32;
|
|||
|
} xQueryPointerReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD32 nEvents B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
} xGetMotionEventsReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BOOL sameScreen;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
Window child B32;
|
|||
|
INT16 dstX B16, dstY B16;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
} xTranslateCoordsReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 revertTo;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
Window focus B32;
|
|||
|
CARD32 pad1 B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
} xGetInputFocusReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 2, NOT 0; this is an extra-large reply */
|
|||
|
BYTE map[32];
|
|||
|
} xQueryKeymapReply;
|
|||
|
|
|||
|
/* Warning: this MUST match (up to component renaming) xListFontsWithInfoReply */
|
|||
|
typedef struct _xQueryFontReply {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* definitely > 0, even if "nCharInfos" is 0 */
|
|||
|
xCharInfo minBounds;
|
|||
|
#ifndef WORD64
|
|||
|
CARD32 walign1 B32;
|
|||
|
#endif
|
|||
|
xCharInfo maxBounds;
|
|||
|
#ifndef WORD64
|
|||
|
CARD32 walign2 B32;
|
|||
|
#endif
|
|||
|
CARD16 minCharOrByte2 B16, maxCharOrByte2 B16;
|
|||
|
CARD16 defaultChar B16;
|
|||
|
CARD16 nFontProps B16; /* followed by this many xFontProp structures */
|
|||
|
CARD8 drawDirection;
|
|||
|
CARD8 minByte1, maxByte1;
|
|||
|
BOOL allCharsExist;
|
|||
|
INT16 fontAscent B16, fontDescent B16;
|
|||
|
CARD32 nCharInfos B32; /* followed by this many xCharInfo structures */
|
|||
|
} xQueryFontReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 drawDirection;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
INT16 fontAscent B16, fontDescent B16;
|
|||
|
INT16 overallAscent B16, overallDescent B16;
|
|||
|
INT32 overallWidth B32, overallLeft B32, overallRight B32;
|
|||
|
CARD32 pad B32;
|
|||
|
} xQueryTextExtentsReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD16 nFonts B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xListFontsReply;
|
|||
|
|
|||
|
/* Warning: this MUST match (up to component renaming) xQueryFontReply */
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 nameLength; /* 0 indicates end-of-reply-sequence */
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* definitely > 0, even if "nameLength" is 0 */
|
|||
|
xCharInfo minBounds;
|
|||
|
#ifndef WORD64
|
|||
|
CARD32 walign1 B32;
|
|||
|
#endif
|
|||
|
xCharInfo maxBounds;
|
|||
|
#ifndef WORD64
|
|||
|
CARD32 walign2 B32;
|
|||
|
#endif
|
|||
|
CARD16 minCharOrByte2 B16, maxCharOrByte2 B16;
|
|||
|
CARD16 defaultChar B16;
|
|||
|
CARD16 nFontProps B16; /* followed by this many xFontProp structures */
|
|||
|
CARD8 drawDirection;
|
|||
|
CARD8 minByte1, maxByte1;
|
|||
|
BOOL allCharsExist;
|
|||
|
INT16 fontAscent B16, fontDescent B16;
|
|||
|
CARD32 nReplies B32; /* hint as to how many more replies might be coming */
|
|||
|
} xListFontsWithInfoReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD16 nPaths B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xGetFontPathReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 depth;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
VisualID visual B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xGetImageReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD16 nColormaps B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xListInstalledColormapsReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
CARD16 red B16, green B16, blue B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pixel B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
} xAllocColorReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
CARD32 pixel B32;
|
|||
|
CARD16 exactRed B16, exactGreen B16, exactBlue B16;
|
|||
|
CARD16 screenRed B16, screenGreen B16, screenBlue B16;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
} xAllocNamedColorReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD16 nPixels B16, nMasks B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xAllocColorCellsReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD16 nPixels B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 redMask B32, greenMask B32, blueMask B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
} xAllocColorPlanesReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD16 nColors B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xQueryColorsReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
CARD16 exactRed B16, exactGreen B16, exactBlue B16;
|
|||
|
CARD16 screenRed B16, screenGreen B16, screenBlue B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
} xLookupColorReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
CARD16 width B16, height B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xQueryBestSizeReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
BOOL present;
|
|||
|
CARD8 major_opcode;
|
|||
|
CARD8 first_event;
|
|||
|
CARD8 first_error;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xQueryExtensionReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 nExtensions;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xListExtensionsReply;
|
|||
|
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 success;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xSetMappingReply;
|
|||
|
typedef xSetMappingReply xSetPointerMappingReply;
|
|||
|
typedef xSetMappingReply xSetModifierMappingReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
CARD8 nElts; /* how many elements does the map have */
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xGetPointerMappingReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type;
|
|||
|
CARD8 keySymsPerKeyCode;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xGetKeyboardMappingReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type;
|
|||
|
CARD8 numKeyPerModifier;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD32 pad1 B32;
|
|||
|
CARD32 pad2 B32;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
} xGetModifierMappingReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BOOL globalAutoRepeat;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 5 */
|
|||
|
CARD32 ledMask B32;
|
|||
|
CARD8 keyClickPercent, bellPercent;
|
|||
|
CARD16 bellPitch B16, bellDuration B16;
|
|||
|
CARD16 pad B16;
|
|||
|
BYTE map[32]; /* bit masks start here */
|
|||
|
} xGetKeyboardControlReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
CARD16 accelNumerator B16, accelDenominator B16;
|
|||
|
CARD16 threshold B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
} xGetPointerControlReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32; /* 0 */
|
|||
|
CARD16 timeout B16, interval B16;
|
|||
|
BOOL preferBlanking;
|
|||
|
BOOL allowExposures;
|
|||
|
CARD16 pad2 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
} xGetScreenSaverReply;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Reply */
|
|||
|
BOOL enabled;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
CARD32 length B32;
|
|||
|
CARD16 nHosts B16;
|
|||
|
CARD16 pad1 B16;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xListHostsReply;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************
|
|||
|
* Xerror
|
|||
|
* All errors are 32 bytes
|
|||
|
*****************************************************************/
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type; /* X_Error */
|
|||
|
BYTE errorCode;
|
|||
|
CARD16 sequenceNumber B16; /* the nth request from this client */
|
|||
|
CARD32 resourceID B32;
|
|||
|
CARD16 minorCode B16;
|
|||
|
CARD8 majorCode;
|
|||
|
BYTE pad1;
|
|||
|
CARD32 pad3 B32;
|
|||
|
CARD32 pad4 B32;
|
|||
|
CARD32 pad5 B32;
|
|||
|
CARD32 pad6 B32;
|
|||
|
CARD32 pad7 B32;
|
|||
|
} xError;
|
|||
|
|
|||
|
/*****************************************************************
|
|||
|
* xEvent
|
|||
|
* All events are 32 bytes
|
|||
|
*****************************************************************/
|
|||
|
|
|||
|
typedef struct _xEvent {
|
|||
|
union {
|
|||
|
struct {
|
|||
|
BYTE type;
|
|||
|
BYTE detail;
|
|||
|
CARD16 sequenceNumber B16;
|
|||
|
} u;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Time time B32;
|
|||
|
Window root B32, event B32, child B32;
|
|||
|
INT16 rootX B16, rootY B16, eventX B16, eventY B16;
|
|||
|
KeyButMask state B16;
|
|||
|
BOOL sameScreen;
|
|||
|
BYTE pad1;
|
|||
|
} keyButtonPointer;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Time time B32;
|
|||
|
Window root B32, event B32, child B32;
|
|||
|
INT16 rootX B16, rootY B16, eventX B16, eventY B16;
|
|||
|
KeyButMask state B16;
|
|||
|
BYTE mode; /* really XMode */
|
|||
|
BYTE flags; /* sameScreen and focus booleans, packed together */
|
|||
|
#define ELFlagFocus (1<<0)
|
|||
|
#define ELFlagSameScreen (1<<1)
|
|||
|
} enterLeave;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window window B32;
|
|||
|
BYTE mode; /* really XMode */
|
|||
|
BYTE pad1, pad2, pad3;
|
|||
|
} focus;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window window B32;
|
|||
|
CARD16 x B16, y B16, width B16, height B16;
|
|||
|
CARD16 count B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
} expose;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Drawable drawable B32;
|
|||
|
CARD16 x B16, y B16, width B16, height B16;
|
|||
|
CARD16 minorEvent B16;
|
|||
|
CARD16 count B16;
|
|||
|
BYTE majorEvent;
|
|||
|
BYTE pad1, pad2, pad3;
|
|||
|
} graphicsExposure;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Drawable drawable B32;
|
|||
|
CARD16 minorEvent B16;
|
|||
|
BYTE majorEvent;
|
|||
|
BYTE bpad;
|
|||
|
} noExposure;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window window B32;
|
|||
|
CARD8 state;
|
|||
|
BYTE pad1, pad2, pad3;
|
|||
|
} visibility;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window parent B32, window B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
CARD16 width B16, height B16, borderWidth B16;
|
|||
|
BOOL override;
|
|||
|
BYTE bpad;
|
|||
|
} createNotify;
|
|||
|
/*
|
|||
|
* The event fields in the structures for DestroyNotify, UnmapNotify,
|
|||
|
* MapNotify, ReparentNotify, ConfigureNotify, CirculateNotify, GravityNotify,
|
|||
|
* must be at the same offset because server internal code is depending upon
|
|||
|
* this to patch up the events before they are delivered.
|
|||
|
* Also note that MapRequest, ConfigureRequest and CirculateRequest have
|
|||
|
* the same offset for the event window.
|
|||
|
*/
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window event B32, window B32;
|
|||
|
} destroyNotify;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window event B32, window B32;
|
|||
|
BOOL fromConfigure;
|
|||
|
BYTE pad1, pad2, pad3;
|
|||
|
} unmapNotify;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window event B32, window B32;
|
|||
|
BOOL override;
|
|||
|
BYTE pad1, pad2, pad3;
|
|||
|
} mapNotify;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window parent B32, window B32;
|
|||
|
} mapRequest;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window event B32, window B32, parent B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
BOOL override;
|
|||
|
BYTE pad1, pad2, pad3;
|
|||
|
} reparent;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window event B32, window B32, aboveSibling B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
CARD16 width B16, height B16, borderWidth B16;
|
|||
|
BOOL override;
|
|||
|
BYTE bpad;
|
|||
|
} configureNotify;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window parent B32, window B32, sibling B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
CARD16 width B16, height B16, borderWidth B16;
|
|||
|
CARD16 valueMask B16;
|
|||
|
CARD32 pad1 B32;
|
|||
|
} configureRequest;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window event B32, window B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
CARD32 pad1 B32, pad2 B32, pad3 B32, pad4 B32;
|
|||
|
} gravity;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window window B32;
|
|||
|
CARD16 width B16, height B16;
|
|||
|
} resizeRequest;
|
|||
|
struct {
|
|||
|
/* The event field in the circulate record is really the parent when this
|
|||
|
is used as a CirculateRequest instead of a CirculateNotify */
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window event B32, window B32, parent B32;
|
|||
|
BYTE place; /* Top or Bottom */
|
|||
|
BYTE pad1, pad2, pad3;
|
|||
|
} circulate;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window window B32;
|
|||
|
Atom atom B32;
|
|||
|
Time time B32;
|
|||
|
BYTE state; /* NewValue or Deleted */
|
|||
|
BYTE pad1;
|
|||
|
CARD16 pad2 B16;
|
|||
|
} property;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Time time B32;
|
|||
|
Window window B32;
|
|||
|
Atom atom B32;
|
|||
|
} selectionClear;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Time time B32;
|
|||
|
Window owner B32, requestor B32;
|
|||
|
Atom selection B32, target B32, property B32;
|
|||
|
} selectionRequest;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Time time B32;
|
|||
|
Window requestor B32;
|
|||
|
Atom selection B32, target B32, property B32;
|
|||
|
} selectionNotify;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window window B32;
|
|||
|
Colormap colormap B32;
|
|||
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|||
|
BOOL c_new;
|
|||
|
#else
|
|||
|
BOOL new;
|
|||
|
#endif
|
|||
|
BYTE state; /* Installed or UnInstalled */
|
|||
|
BYTE pad1, pad2;
|
|||
|
} colormap;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
CARD8 request;
|
|||
|
KeyCode firstKeyCode;
|
|||
|
CARD8 count;
|
|||
|
BYTE pad1;
|
|||
|
} mappingNotify;
|
|||
|
struct {
|
|||
|
CARD32 pad00 B32;
|
|||
|
Window window B32;
|
|||
|
union {
|
|||
|
struct {
|
|||
|
Atom type B32;
|
|||
|
INT32 longs0 B32;
|
|||
|
INT32 longs1 B32;
|
|||
|
INT32 longs2 B32;
|
|||
|
INT32 longs3 B32;
|
|||
|
INT32 longs4 B32;
|
|||
|
} l;
|
|||
|
struct {
|
|||
|
Atom type B32;
|
|||
|
INT16 shorts0 B16;
|
|||
|
INT16 shorts1 B16;
|
|||
|
INT16 shorts2 B16;
|
|||
|
INT16 shorts3 B16;
|
|||
|
INT16 shorts4 B16;
|
|||
|
INT16 shorts5 B16;
|
|||
|
INT16 shorts6 B16;
|
|||
|
INT16 shorts7 B16;
|
|||
|
INT16 shorts8 B16;
|
|||
|
INT16 shorts9 B16;
|
|||
|
} s;
|
|||
|
struct {
|
|||
|
Atom type B32;
|
|||
|
INT8 bytes[20];
|
|||
|
} b;
|
|||
|
} u;
|
|||
|
} clientMessage;
|
|||
|
} u;
|
|||
|
} xEvent;
|
|||
|
|
|||
|
/* KeymapNotify events are not included in the above union because they
|
|||
|
are different from all other events: they do not have a "detail"
|
|||
|
or "sequenceNumber", so there is room for a 248-bit key mask. */
|
|||
|
|
|||
|
typedef struct {
|
|||
|
BYTE type;
|
|||
|
BYTE map[31];
|
|||
|
} xKeymapEvent;
|
|||
|
|
|||
|
#define XEventSize (sizeof(xEvent))
|
|||
|
|
|||
|
/* XReply is the union of all the replies above whose "fixed part"
|
|||
|
fits in 32 bytes. It does NOT include GetWindowAttributesReply,
|
|||
|
QueryFontReply, QueryKeymapReply, or GetKeyboardControlReply
|
|||
|
ListFontsWithInfoReply */
|
|||
|
|
|||
|
typedef union {
|
|||
|
xGenericReply generic;
|
|||
|
xGetGeometryReply geom;
|
|||
|
xQueryTreeReply tree;
|
|||
|
xInternAtomReply atom;
|
|||
|
xGetAtomNameReply atomName;
|
|||
|
xGetPropertyReply property;
|
|||
|
xListPropertiesReply listProperties;
|
|||
|
xGetSelectionOwnerReply selection;
|
|||
|
xGrabPointerReply grabPointer;
|
|||
|
xGrabKeyboardReply grabKeyboard;
|
|||
|
xQueryPointerReply pointer;
|
|||
|
xGetMotionEventsReply motionEvents;
|
|||
|
xTranslateCoordsReply coords;
|
|||
|
xGetInputFocusReply inputFocus;
|
|||
|
xQueryTextExtentsReply textExtents;
|
|||
|
xListFontsReply fonts;
|
|||
|
xGetFontPathReply fontPath;
|
|||
|
xGetImageReply image;
|
|||
|
xListInstalledColormapsReply colormaps;
|
|||
|
xAllocColorReply allocColor;
|
|||
|
xAllocNamedColorReply allocNamedColor;
|
|||
|
xAllocColorCellsReply colorCells;
|
|||
|
xAllocColorPlanesReply colorPlanes;
|
|||
|
xQueryColorsReply colors;
|
|||
|
xLookupColorReply lookupColor;
|
|||
|
xQueryBestSizeReply bestSize;
|
|||
|
xQueryExtensionReply extension;
|
|||
|
xListExtensionsReply extensions;
|
|||
|
xSetModifierMappingReply setModifierMapping;
|
|||
|
xGetModifierMappingReply getModifierMapping;
|
|||
|
xSetPointerMappingReply setPointerMapping;
|
|||
|
xGetKeyboardMappingReply getKeyboardMapping;
|
|||
|
xGetPointerMappingReply getPointerMapping;
|
|||
|
xGetPointerControlReply pointerControl;
|
|||
|
xGetScreenSaverReply screenSaver;
|
|||
|
xListHostsReply hosts;
|
|||
|
xError error;
|
|||
|
xEvent event;
|
|||
|
} xReply;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************
|
|||
|
* REQUESTS
|
|||
|
*****************************************************************/
|
|||
|
|
|||
|
|
|||
|
/* Request structure */
|
|||
|
|
|||
|
typedef struct _xReq {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 data; /* meaning depends on request type */
|
|||
|
CARD16 length B16; /* length in 4 bytes quantities
|
|||
|
of whole request, including this header */
|
|||
|
} xReq;
|
|||
|
|
|||
|
/*****************************************************************
|
|||
|
* structures that follow request.
|
|||
|
*****************************************************************/
|
|||
|
|
|||
|
/* ResourceReq is used for any request which has a resource ID
|
|||
|
(or Atom or Time) as its one and only argument. */
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
CARD32 id B32; /* a Window, Drawable, Font, GContext, Pixmap, etc. */
|
|||
|
} xResourceReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 depth;
|
|||
|
CARD16 length B16;
|
|||
|
Window wid B32, parent B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
CARD16 width B16, height B16, borderWidth B16;
|
|||
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|||
|
CARD16 c_class B16;
|
|||
|
#else
|
|||
|
CARD16 class B16;
|
|||
|
#endif
|
|||
|
VisualID visual B32;
|
|||
|
CARD32 mask B32;
|
|||
|
} xCreateWindowReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
CARD32 valueMask B32;
|
|||
|
} xChangeWindowAttributesReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE mode;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
} xChangeSaveSetReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32, parent B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
} xReparentWindowReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
CARD16 mask B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
} xConfigureWindowReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 direction;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
} xCirculateWindowReq;
|
|||
|
|
|||
|
typedef struct { /* followed by padded string */
|
|||
|
CARD8 reqType;
|
|||
|
BOOL onlyIfExists;
|
|||
|
CARD16 length B16;
|
|||
|
CARD16 nbytes B16; /* number of bytes in string */
|
|||
|
CARD16 pad B16;
|
|||
|
} xInternAtomReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 mode;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
Atom property B32, type B32;
|
|||
|
CARD8 format;
|
|||
|
BYTE pad[3];
|
|||
|
CARD32 nUnits B32; /* length of stuff following, depends on format */
|
|||
|
} xChangePropertyReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
Atom property B32;
|
|||
|
} xDeletePropertyReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|||
|
BOOL c_delete;
|
|||
|
#else
|
|||
|
BOOL delete;
|
|||
|
#endif
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
Atom property B32, type B32;
|
|||
|
CARD32 longOffset B32;
|
|||
|
CARD32 longLength B32;
|
|||
|
} xGetPropertyReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
Atom selection B32;
|
|||
|
Time time B32;
|
|||
|
} xSetSelectionOwnerReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window requestor B32;
|
|||
|
Atom selection B32, target B32, property B32;
|
|||
|
Time time B32;
|
|||
|
} xConvertSelectionReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BOOL propagate;
|
|||
|
CARD16 length B16;
|
|||
|
Window destination B32;
|
|||
|
CARD32 eventMask B32;
|
|||
|
#ifdef WORD64
|
|||
|
/* the structure should have been quad-aligned */
|
|||
|
BYTE eventdata[SIZEOF(xEvent)];
|
|||
|
#else
|
|||
|
xEvent event;
|
|||
|
#endif /* WORD64 */
|
|||
|
} xSendEventReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BOOL ownerEvents;
|
|||
|
CARD16 length B16;
|
|||
|
Window grabWindow B32;
|
|||
|
CARD16 eventMask B16;
|
|||
|
BYTE pointerMode, keyboardMode;
|
|||
|
Window confineTo B32;
|
|||
|
Cursor cursor B32;
|
|||
|
Time time B32;
|
|||
|
} xGrabPointerReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BOOL ownerEvents;
|
|||
|
CARD16 length B16;
|
|||
|
Window grabWindow B32;
|
|||
|
CARD16 eventMask B16;
|
|||
|
BYTE pointerMode, keyboardMode;
|
|||
|
Window confineTo B32;
|
|||
|
Cursor cursor B32;
|
|||
|
CARD8 button;
|
|||
|
BYTE pad;
|
|||
|
CARD16 modifiers B16;
|
|||
|
} xGrabButtonReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 button;
|
|||
|
CARD16 length B16;
|
|||
|
Window grabWindow B32;
|
|||
|
CARD16 modifiers B16;
|
|||
|
CARD16 pad B16;
|
|||
|
} xUngrabButtonReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Cursor cursor B32;
|
|||
|
Time time B32;
|
|||
|
CARD16 eventMask B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
} xChangeActivePointerGrabReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BOOL ownerEvents;
|
|||
|
CARD16 length B16;
|
|||
|
Window grabWindow B32;
|
|||
|
Time time B32;
|
|||
|
BYTE pointerMode, keyboardMode;
|
|||
|
CARD16 pad B16;
|
|||
|
} xGrabKeyboardReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BOOL ownerEvents;
|
|||
|
CARD16 length B16;
|
|||
|
Window grabWindow B32;
|
|||
|
CARD16 modifiers B16;
|
|||
|
CARD8 key;
|
|||
|
BYTE pointerMode, keyboardMode;
|
|||
|
BYTE pad1, pad2, pad3;
|
|||
|
} xGrabKeyReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 key;
|
|||
|
CARD16 length B16;
|
|||
|
Window grabWindow B32;
|
|||
|
CARD16 modifiers B16;
|
|||
|
CARD16 pad B16;
|
|||
|
} xUngrabKeyReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 mode;
|
|||
|
CARD16 length B16;
|
|||
|
Time time B32;
|
|||
|
} xAllowEventsReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
Time start B32, stop B32;
|
|||
|
} xGetMotionEventsReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window srcWid B32, dstWid B32;
|
|||
|
INT16 srcX B16, srcY B16;
|
|||
|
} xTranslateCoordsReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window srcWid B32, dstWid B32;
|
|||
|
INT16 srcX B16, srcY B16;
|
|||
|
CARD16 srcWidth B16, srcHeight B16;
|
|||
|
INT16 dstX B16, dstY B16;
|
|||
|
} xWarpPointerReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 revertTo;
|
|||
|
CARD16 length B16;
|
|||
|
Window focus B32;
|
|||
|
Time time B32;
|
|||
|
} xSetInputFocusReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Font fid B32;
|
|||
|
CARD16 nbytes B16;
|
|||
|
BYTE pad1, pad2; /* string follows on word boundary */
|
|||
|
} xOpenFontReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BOOL oddLength;
|
|||
|
CARD16 length B16;
|
|||
|
Font fid B32;
|
|||
|
} xQueryTextExtentsReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
CARD16 maxNames B16;
|
|||
|
CARD16 nbytes B16; /* followed immediately by string bytes */
|
|||
|
} xListFontsReq;
|
|||
|
|
|||
|
typedef xListFontsReq xListFontsWithInfoReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
CARD16 nFonts B16;
|
|||
|
BYTE pad1, pad2; /* LISTofSTRING8 follows on word boundary */
|
|||
|
} xSetFontPathReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 depth;
|
|||
|
CARD16 length B16;
|
|||
|
Pixmap pid B32;
|
|||
|
Drawable drawable B32;
|
|||
|
CARD16 width B16, height B16;
|
|||
|
} xCreatePixmapReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
GContext gc B32;
|
|||
|
Drawable drawable B32;
|
|||
|
CARD32 mask B32;
|
|||
|
} xCreateGCReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
GContext gc B32;
|
|||
|
CARD32 mask B32;
|
|||
|
} xChangeGCReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
GContext srcGC B32, dstGC B32;
|
|||
|
CARD32 mask B32;
|
|||
|
} xCopyGCReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
GContext gc B32;
|
|||
|
CARD16 dashOffset B16;
|
|||
|
CARD16 nDashes B16; /* length LISTofCARD8 of values following */
|
|||
|
} xSetDashesReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE ordering;
|
|||
|
CARD16 length B16;
|
|||
|
GContext gc B32;
|
|||
|
INT16 xOrigin B16, yOrigin B16;
|
|||
|
} xSetClipRectanglesReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BOOL exposures;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
CARD16 width B16, height B16;
|
|||
|
} xClearAreaReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Drawable srcDrawable B32, dstDrawable B32;
|
|||
|
GContext gc B32;
|
|||
|
INT16 srcX B16, srcY B16, dstX B16, dstY B16;
|
|||
|
CARD16 width B16, height B16;
|
|||
|
} xCopyAreaReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Drawable srcDrawable B32, dstDrawable B32;
|
|||
|
GContext gc B32;
|
|||
|
INT16 srcX B16, srcY B16, dstX B16, dstY B16;
|
|||
|
CARD16 width B16, height B16;
|
|||
|
CARD32 bitPlane B32;
|
|||
|
} xCopyPlaneReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE coordMode;
|
|||
|
CARD16 length B16;
|
|||
|
Drawable drawable B32;
|
|||
|
GContext gc B32;
|
|||
|
} xPolyPointReq;
|
|||
|
|
|||
|
typedef xPolyPointReq xPolyLineReq; /* same request structure */
|
|||
|
|
|||
|
/* The following used for PolySegment, PolyRectangle, PolyArc, PolyFillRectangle, PolyFillArc */
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Drawable drawable B32;
|
|||
|
GContext gc B32;
|
|||
|
} xPolySegmentReq;
|
|||
|
|
|||
|
typedef xPolySegmentReq xPolyArcReq;
|
|||
|
typedef xPolySegmentReq xPolyRectangleReq;
|
|||
|
typedef xPolySegmentReq xPolyFillRectangleReq;
|
|||
|
typedef xPolySegmentReq xPolyFillArcReq;
|
|||
|
|
|||
|
typedef struct _FillPolyReq {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Drawable drawable B32;
|
|||
|
GContext gc B32;
|
|||
|
BYTE shape;
|
|||
|
BYTE coordMode;
|
|||
|
CARD16 pad1 B16;
|
|||
|
} xFillPolyReq;
|
|||
|
|
|||
|
|
|||
|
typedef struct _PutImageReq {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 format;
|
|||
|
CARD16 length B16;
|
|||
|
Drawable drawable B32;
|
|||
|
GContext gc B32;
|
|||
|
CARD16 width B16, height B16;
|
|||
|
INT16 dstX B16, dstY B16;
|
|||
|
CARD8 leftPad;
|
|||
|
CARD8 depth;
|
|||
|
CARD16 pad B16;
|
|||
|
} xPutImageReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 format;
|
|||
|
CARD16 length B16;
|
|||
|
Drawable drawable B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
CARD16 width B16, height B16;
|
|||
|
CARD32 planeMask B32;
|
|||
|
} xGetImageReq;
|
|||
|
|
|||
|
/* the following used by PolyText8 and PolyText16 */
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 pad;
|
|||
|
CARD16 length B16;
|
|||
|
Drawable drawable B32;
|
|||
|
GContext gc B32;
|
|||
|
INT16 x B16, y B16; /* items (xTextElt) start after struct */
|
|||
|
} xPolyTextReq;
|
|||
|
|
|||
|
typedef xPolyTextReq xPolyText8Req;
|
|||
|
typedef xPolyTextReq xPolyText16Req;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE nChars;
|
|||
|
CARD16 length B16;
|
|||
|
Drawable drawable B32;
|
|||
|
GContext gc B32;
|
|||
|
INT16 x B16, y B16;
|
|||
|
} xImageTextReq;
|
|||
|
|
|||
|
typedef xImageTextReq xImageText8Req;
|
|||
|
typedef xImageTextReq xImageText16Req;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE alloc;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap mid B32;
|
|||
|
Window window B32;
|
|||
|
VisualID visual B32;
|
|||
|
} xCreateColormapReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap mid B32;
|
|||
|
Colormap srcCmap B32;
|
|||
|
} xCopyColormapAndFreeReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap cmap B32;
|
|||
|
CARD16 red B16, green B16, blue B16;
|
|||
|
CARD16 pad2 B16;
|
|||
|
} xAllocColorReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap cmap B32;
|
|||
|
CARD16 nbytes B16; /* followed by structure */
|
|||
|
BYTE pad1, pad2;
|
|||
|
} xAllocNamedColorReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BOOL contiguous;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap cmap B32;
|
|||
|
CARD16 colors B16, planes B16;
|
|||
|
} xAllocColorCellsReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BOOL contiguous;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap cmap B32;
|
|||
|
CARD16 colors B16, red B16, green B16, blue B16;
|
|||
|
} xAllocColorPlanesReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap cmap B32;
|
|||
|
CARD32 planeMask B32;
|
|||
|
} xFreeColorsReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap cmap B32;
|
|||
|
} xStoreColorsReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 flags; /* DoRed, DoGreen, DoBlue, as in xColorItem */
|
|||
|
CARD16 length B16;
|
|||
|
Colormap cmap B32;
|
|||
|
CARD32 pixel B32;
|
|||
|
CARD16 nbytes B16; /* number of name string bytes following structure */
|
|||
|
BYTE pad1, pad2;
|
|||
|
} xStoreNamedColorReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap cmap B32;
|
|||
|
} xQueryColorsReq;
|
|||
|
|
|||
|
typedef struct { /* followed by string of length len */
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Colormap cmap B32;
|
|||
|
CARD16 nbytes B16; /* number of string bytes following structure*/
|
|||
|
BYTE pad1, pad2;
|
|||
|
} xLookupColorReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Cursor cid B32;
|
|||
|
Pixmap source B32, mask B32;
|
|||
|
CARD16 foreRed B16, foreGreen B16, foreBlue B16;
|
|||
|
CARD16 backRed B16, backGreen B16, backBlue B16;
|
|||
|
CARD16 x B16, y B16;
|
|||
|
} xCreateCursorReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Cursor cid B32;
|
|||
|
Font source B32, mask B32;
|
|||
|
CARD16 sourceChar B16, maskChar B16;
|
|||
|
CARD16 foreRed B16, foreGreen B16, foreBlue B16;
|
|||
|
CARD16 backRed B16, backGreen B16, backBlue B16;
|
|||
|
} xCreateGlyphCursorReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Cursor cursor B32;
|
|||
|
CARD16 foreRed B16, foreGreen B16, foreBlue B16;
|
|||
|
CARD16 backRed B16, backGreen B16, backBlue B16;
|
|||
|
} xRecolorCursorReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|||
|
CARD8 c_class;
|
|||
|
#else
|
|||
|
CARD8 class;
|
|||
|
#endif
|
|||
|
CARD16 length B16;
|
|||
|
Drawable drawable B32;
|
|||
|
CARD16 width B16, height B16;
|
|||
|
} xQueryBestSizeReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
CARD16 nbytes B16; /* number of string bytes following structure */
|
|||
|
BYTE pad1, pad2;
|
|||
|
} xQueryExtensionReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 numKeyPerModifier;
|
|||
|
CARD16 length B16;
|
|||
|
} xSetModifierMappingReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 nElts; /* how many elements in the map */
|
|||
|
CARD16 length B16;
|
|||
|
} xSetPointerMappingReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
KeyCode firstKeyCode;
|
|||
|
CARD8 count;
|
|||
|
CARD16 pad1 B16;
|
|||
|
} xGetKeyboardMappingReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
CARD8 keyCodes;
|
|||
|
CARD16 length B16;
|
|||
|
KeyCode firstKeyCode;
|
|||
|
CARD8 keySymsPerKeyCode;
|
|||
|
CARD16 pad1 B16;
|
|||
|
} xChangeKeyboardMappingReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
CARD32 mask B32;
|
|||
|
} xChangeKeyboardControlReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
INT8 percent; /* -100 to 100 */
|
|||
|
CARD16 length B16;
|
|||
|
} xBellReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
INT16 accelNum B16, accelDenum B16;
|
|||
|
INT16 threshold B16;
|
|||
|
BOOL doAccel, doThresh;
|
|||
|
} xChangePointerControlReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
INT16 timeout B16, interval B16;
|
|||
|
BYTE preferBlank, allowExpose;
|
|||
|
CARD16 pad2 B16;
|
|||
|
} xSetScreenSaverReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE mode;
|
|||
|
CARD16 length B16;
|
|||
|
CARD8 hostFamily;
|
|||
|
BYTE pad;
|
|||
|
CARD16 hostLength B16;
|
|||
|
} xChangeHostsReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
} xListHostsReq;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
CARD8 reqType;
|
|||
|
BYTE mode;
|
|||
|
CARD16 length B16;
|
|||
|
} xChangeModeReq;
|
|||
|
|
|||
|
typedef xChangeModeReq xSetAccessControlReq;
|
|||
|
typedef xChangeModeReq xSetCloseDownModeReq;
|
|||
|
typedef xChangeModeReq xForceScreenSaverReq;
|
|||
|
|
|||
|
typedef struct { /* followed by LIST of ATOM */
|
|||
|
CARD8 reqType;
|
|||
|
BYTE pad;
|
|||
|
CARD16 length B16;
|
|||
|
Window window B32;
|
|||
|
CARD16 nAtoms B16;
|
|||
|
INT16 nPositions B16;
|
|||
|
} xRotatePropertiesReq;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* Reply codes */
|
|||
|
|
|||
|
#define X_Reply 1 /* Normal reply */
|
|||
|
#define X_Error 0 /* Error */
|
|||
|
|
|||
|
/* Request codes */
|
|||
|
|
|||
|
#define X_CreateWindow 1
|
|||
|
#define X_ChangeWindowAttributes 2
|
|||
|
#define X_GetWindowAttributes 3
|
|||
|
#define X_DestroyWindow 4
|
|||
|
#define X_DestroySubwindows 5
|
|||
|
#define X_ChangeSaveSet 6
|
|||
|
#define X_ReparentWindow 7
|
|||
|
#define X_MapWindow 8
|
|||
|
#define X_MapSubwindows 9
|
|||
|
#define X_UnmapWindow 10
|
|||
|
#define X_UnmapSubwindows 11
|
|||
|
#define X_ConfigureWindow 12
|
|||
|
#define X_CirculateWindow 13
|
|||
|
#define X_GetGeometry 14
|
|||
|
#define X_QueryTree 15
|
|||
|
#define X_InternAtom 16
|
|||
|
#define X_GetAtomName 17
|
|||
|
#define X_ChangeProperty 18
|
|||
|
#define X_DeleteProperty 19
|
|||
|
#define X_GetProperty 20
|
|||
|
#define X_ListProperties 21
|
|||
|
#define X_SetSelectionOwner 22
|
|||
|
#define X_GetSelectionOwner 23
|
|||
|
#define X_ConvertSelection 24
|
|||
|
#define X_SendEvent 25
|
|||
|
#define X_GrabPointer 26
|
|||
|
#define X_UngrabPointer 27
|
|||
|
#define X_GrabButton 28
|
|||
|
#define X_UngrabButton 29
|
|||
|
#define X_ChangeActivePointerGrab 30
|
|||
|
#define X_GrabKeyboard 31
|
|||
|
#define X_UngrabKeyboard 32
|
|||
|
#define X_GrabKey 33
|
|||
|
#define X_UngrabKey 34
|
|||
|
#define X_AllowEvents 35
|
|||
|
#define X_GrabServer 36
|
|||
|
#define X_UngrabServer 37
|
|||
|
#define X_QueryPointer 38
|
|||
|
#define X_GetMotionEvents 39
|
|||
|
#define X_TranslateCoords 40
|
|||
|
#define X_WarpPointer 41
|
|||
|
#define X_SetInputFocus 42
|
|||
|
#define X_GetInputFocus 43
|
|||
|
#define X_QueryKeymap 44
|
|||
|
#define X_OpenFont 45
|
|||
|
#define X_CloseFont 46
|
|||
|
#define X_QueryFont 47
|
|||
|
#define X_QueryTextExtents 48
|
|||
|
#define X_ListFonts 49
|
|||
|
#define X_ListFontsWithInfo 50
|
|||
|
#define X_SetFontPath 51
|
|||
|
#define X_GetFontPath 52
|
|||
|
#define X_CreatePixmap 53
|
|||
|
#define X_FreePixmap 54
|
|||
|
#define X_CreateGC 55
|
|||
|
#define X_ChangeGC 56
|
|||
|
#define X_CopyGC 57
|
|||
|
#define X_SetDashes 58
|
|||
|
#define X_SetClipRectangles 59
|
|||
|
#define X_FreeGC 60
|
|||
|
#define X_ClearArea 61
|
|||
|
#define X_CopyArea 62
|
|||
|
#define X_CopyPlane 63
|
|||
|
#define X_PolyPoint 64
|
|||
|
#define X_PolyLine 65
|
|||
|
#define X_PolySegment 66
|
|||
|
#define X_PolyRectangle 67
|
|||
|
#define X_PolyArc 68
|
|||
|
#define X_FillPoly 69
|
|||
|
#define X_PolyFillRectangle 70
|
|||
|
#define X_PolyFillArc 71
|
|||
|
#define X_PutImage 72
|
|||
|
#define X_GetImage 73
|
|||
|
#define X_PolyText8 74
|
|||
|
#define X_PolyText16 75
|
|||
|
#define X_ImageText8 76
|
|||
|
#define X_ImageText16 77
|
|||
|
#define X_CreateColormap 78
|
|||
|
#define X_FreeColormap 79
|
|||
|
#define X_CopyColormapAndFree 80
|
|||
|
#define X_InstallColormap 81
|
|||
|
#define X_UninstallColormap 82
|
|||
|
#define X_ListInstalledColormaps 83
|
|||
|
#define X_AllocColor 84
|
|||
|
#define X_AllocNamedColor 85
|
|||
|
#define X_AllocColorCells 86
|
|||
|
#define X_AllocColorPlanes 87
|
|||
|
#define X_FreeColors 88
|
|||
|
#define X_StoreColors 89
|
|||
|
#define X_StoreNamedColor 90
|
|||
|
#define X_QueryColors 91
|
|||
|
#define X_LookupColor 92
|
|||
|
#define X_CreateCursor 93
|
|||
|
#define X_CreateGlyphCursor 94
|
|||
|
#define X_FreeCursor 95
|
|||
|
#define X_RecolorCursor 96
|
|||
|
#define X_QueryBestSize 97
|
|||
|
#define X_QueryExtension 98
|
|||
|
#define X_ListExtensions 99
|
|||
|
#define X_ChangeKeyboardMapping 100
|
|||
|
#define X_GetKeyboardMapping 101
|
|||
|
#define X_ChangeKeyboardControl 102
|
|||
|
#define X_GetKeyboardControl 103
|
|||
|
#define X_Bell 104
|
|||
|
#define X_ChangePointerControl 105
|
|||
|
#define X_GetPointerControl 106
|
|||
|
#define X_SetScreenSaver 107
|
|||
|
#define X_GetScreenSaver 108
|
|||
|
#define X_ChangeHosts 109
|
|||
|
#define X_ListHosts 110
|
|||
|
#define X_SetAccessControl 111
|
|||
|
#define X_SetCloseDownMode 112
|
|||
|
#define X_KillClient 113
|
|||
|
#define X_RotateProperties 114
|
|||
|
#define X_ForceScreenSaver 115
|
|||
|
#define X_SetPointerMapping 116
|
|||
|
#define X_GetPointerMapping 117
|
|||
|
#define X_SetModifierMapping 118
|
|||
|
#define X_GetModifierMapping 119
|
|||
|
#define X_NoOperation 127
|
|||
|
|
|||
|
/* restore these definitions back to the typedefs in X.h */
|
|||
|
#undef Window
|
|||
|
#undef Drawable
|
|||
|
#undef Font
|
|||
|
#undef Pixmap
|
|||
|
#undef Cursor
|
|||
|
#undef Colormap
|
|||
|
#undef GContext
|
|||
|
#undef Atom
|
|||
|
#undef VisualID
|
|||
|
#undef Time
|
|||
|
#undef KeyCode
|
|||
|
#undef KeySym
|
|||
|
|
|||
|
#endif /* XPROTO_H */
|