blob: 9189c19ce1f7eac1595e52cfd413bac689db9b45 [file] [log] [blame]
/*
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
* Copyright 2010 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) 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 AUTHORS OR COPYRIGHT HOLDERS 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.
*/
/*
* Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
*
* 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 name of Keith Packard not be used in
* advertising or publicity pertaining to distribution of the software without
* specific, written prior permission. Keith Packard makes no
* representations about the suitability of this software for any purpose. It
* is provided "as is" without express or implied warranty.
*
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
* EVENT SHALL KEITH PACKARD 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.
*/
#ifndef _XFIXESPROTO_H_
#define _XFIXESPROTO_H_
#include <X11/Xmd.h>
#include <X11/extensions/xfixeswire.h>
#include <X11/extensions/shapeconst.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 Picture CARD32
/*************** Version 1 ******************/
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
} xXFixesReq;
/*
* requests and replies
*/
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
} xXFixesQueryVersionReq;
#define sz_xXFixesQueryVersionReq 12
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xXFixesQueryVersionReply;
#define sz_xXFixesQueryVersionReply 32
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
BYTE mode; /* SetModeInsert/SetModeDelete*/
BYTE target; /* SaveSetNearest/SaveSetRoot*/
BYTE map; /* SaveSetMap/SaveSetUnmap */
BYTE pad1;
Window window;
} xXFixesChangeSaveSetReq;
#define sz_xXFixesChangeSaveSetReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Window window B32;
Atom selection B32;
CARD32 eventMask B32;
} xXFixesSelectSelectionInputReq;
#define sz_xXFixesSelectSelectionInputReq 16
typedef struct {
CARD8 type;
CARD8 subtype;
CARD16 sequenceNumber B16;
Window window B32;
Window owner B32;
Atom selection B32;
Time timestamp B32;
Time selectionTimestamp B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xXFixesSelectionNotifyEvent;
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Window window B32;
CARD32 eventMask B32;
} xXFixesSelectCursorInputReq;
#define sz_xXFixesSelectCursorInputReq 12
typedef struct {
CARD8 type;
CARD8 subtype;
CARD16 sequenceNumber B16;
Window window B32;
CARD32 cursorSerial B32;
Time timestamp;
Atom name B32; /* Version 2 */
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xXFixesCursorNotifyEvent;
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
} xXFixesGetCursorImageReq;
#define sz_xXFixesGetCursorImageReq 4
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
INT16 x B16;
INT16 y B16;
CARD16 width B16;
CARD16 height B16;
CARD16 xhot B16;
CARD16 yhot B16;
CARD32 cursorSerial B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xXFixesGetCursorImageReply;
#define sz_xXFixesGetCursorImageReply 32
/*************** Version 2 ******************/
#define Region CARD32
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region region B32;
/* LISTofRECTANGLE */
} xXFixesCreateRegionReq;
#define sz_xXFixesCreateRegionReq 8
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region region B32;
Pixmap bitmap B32;
} xXFixesCreateRegionFromBitmapReq;
#define sz_xXFixesCreateRegionFromBitmapReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region region B32;
Window window B32;
CARD8 kind;
CARD8 pad1;
CARD16 pad2 B16;
} xXFixesCreateRegionFromWindowReq;
#define sz_xXFixesCreateRegionFromWindowReq 16
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region region B32;
GContext gc B32;
} xXFixesCreateRegionFromGCReq;
#define sz_xXFixesCreateRegionFromGCReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region region B32;
Picture picture B32;
} xXFixesCreateRegionFromPictureReq;
#define sz_xXFixesCreateRegionFromPictureReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region region B32;
} xXFixesDestroyRegionReq;
#define sz_xXFixesDestroyRegionReq 8
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region region B32;
/* LISTofRECTANGLE */
} xXFixesSetRegionReq;
#define sz_xXFixesSetRegionReq 8
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region source B32;
Region destination B32;
} xXFixesCopyRegionReq;
#define sz_xXFixesCopyRegionReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region source1 B32;
Region source2 B32;
Region destination B32;
} xXFixesCombineRegionReq,
xXFixesUnionRegionReq,
xXFixesIntersectRegionReq,
xXFixesSubtractRegionReq;
#define sz_xXFixesCombineRegionReq 16
#define sz_xXFixesUnionRegionReq sz_xXFixesCombineRegionReq
#define sz_xXFixesIntersectRegionReq sz_xXFixesCombineRegionReq
#define sz_xXFixesSubtractRegionReq sz_xXFixesCombineRegionReq
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region source B32;
INT16 x B16, y B16;
CARD16 width B16, height B16;
Region destination B32;
} xXFixesInvertRegionReq;
#define sz_xXFixesInvertRegionReq 20
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region region B32;
INT16 dx B16, dy B16;
} xXFixesTranslateRegionReq;
#define sz_xXFixesTranslateRegionReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region source B32;
Region destination B32;
} xXFixesRegionExtentsReq;
#define sz_xXFixesRegionExtentsReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region region B32;
} xXFixesFetchRegionReq;
#define sz_xXFixesFetchRegionReq 8
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
INT16 x B16, y B16;
CARD16 width B16, height B16;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
} xXFixesFetchRegionReply;
#define sz_xXFixesFetchRegionReply 32
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
GContext gc B32;
Region region B32;
INT16 xOrigin B16, yOrigin B16;
} xXFixesSetGCClipRegionReq;
#define sz_xXFixesSetGCClipRegionReq 16
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Window dest;
BYTE destKind;
CARD8 pad1;
CARD16 pad2 B16;
INT16 xOff B16, yOff B16;
Region region;
} xXFixesSetWindowShapeRegionReq;
#define sz_xXFixesSetWindowShapeRegionReq 20
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Picture picture B32;
Region region B32;
INT16 xOrigin B16, yOrigin B16;
} xXFixesSetPictureClipRegionReq;
#define sz_xXFixesSetPictureClipRegionReq 16
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Cursor cursor B32;
CARD16 nbytes B16;
CARD16 pad B16;
} xXFixesSetCursorNameReq;
#define sz_xXFixesSetCursorNameReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Cursor cursor B32;
} xXFixesGetCursorNameReq;
#define sz_xXFixesGetCursorNameReq 8
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
Atom atom B32;
CARD16 nbytes B16;
CARD16 pad2 B16;
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
CARD32 pad6 B32;
} xXFixesGetCursorNameReply;
#define sz_xXFixesGetCursorNameReply 32
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
} xXFixesGetCursorImageAndNameReq;
#define sz_xXFixesGetCursorImageAndNameReq 4
typedef struct {
BYTE type; /* X_Reply */
BYTE pad1;
CARD16 sequenceNumber B16;
CARD32 length B32;
INT16 x B16;
INT16 y B16;
CARD16 width B16;
CARD16 height B16;
CARD16 xhot B16;
CARD16 yhot B16;
CARD32 cursorSerial B32;
Atom cursorName B32;
CARD16 nbytes B16;
CARD16 pad B16;
} xXFixesGetCursorImageAndNameReply;
#define sz_xXFixesGetCursorImageAndNameReply 32
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Cursor source B32;
Cursor destination B32;
} xXFixesChangeCursorReq;
#define sz_xXFixesChangeCursorReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Cursor source B32;
CARD16 nbytes;
CARD16 pad;
} xXFixesChangeCursorByNameReq;
#define sz_xXFixesChangeCursorByNameReq 12
/*************** Version 3 ******************/
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Region source B32;
Region destination B32;
CARD16 left B16;
CARD16 right B16;
CARD16 top B16;
CARD16 bottom B16;
} xXFixesExpandRegionReq;
#define sz_xXFixesExpandRegionReq 20
/*************** Version 4.0 ******************/
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Window window B32;
} xXFixesHideCursorReq;
#define sz_xXFixesHideCursorReq sizeof(xXFixesHideCursorReq)
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Window window B32;
} xXFixesShowCursorReq;
#define sz_xXFixesShowCursorReq sizeof(xXFixesShowCursorReq)
/*************** Version 5.0 ******************/
#define Barrier CARD32
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Barrier barrier B32;
Window window B32;
INT16 x1 B16;
INT16 y1 B16;
INT16 x2 B16;
INT16 y2 B16;
CARD32 directions;
CARD16 pad B16;
CARD16 num_devices B16;
/* array of CARD16 devices */
} xXFixesCreatePointerBarrierReq;
#define sz_xXFixesCreatePointerBarrierReq 28
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Barrier barrier B32;
} xXFixesDestroyPointerBarrierReq;
#define sz_xXFixesDestroyPointerBarrierReq 8
/*************** Version 6.0 ******************/
#define BarrierEventID CARD32
typedef struct {
CARD8 type;
CARD8 subtype;
CARD16 sequenceNumber B16;
Window window; B32;
BarrierEventID event_id B32;
Barrier barrier;
Time timestamp B32;
CARD32 velocity B32;
INT16 x B16;
INT16 y B16;
} xXFixesBarrierNotifyEvent;
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Barrier barrier B32;
Window window B32;
INT16 x1 B16;
INT16 y1 B16;
INT16 x2 B16;
INT16 y2 B16;
CARD32 directions;
CARD32 velocity;
CARD16 pad B16;
CARD16 num_devices B16;
/* array of CARD16 devices */
} xXFixesCreatePointerBarrierVelocityReq;
#define sz_xXFixesCreatePointerBarrierVelocityReq 32
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Window window B32;
CARD32 eventMask B32;
} xXFixesSelectBarrierInputReq;
#define sz_xXFixesSelectBarrierInputReq 12
typedef struct {
CARD8 reqType;
CARD8 xfixesReqType;
CARD16 length B16;
Barrier barrier B32;
BarrierEventID event_id B32;
} xXFixesBarrierReleasePointerReq;
#define sz_xXFixesBarrierReleasePointerReq 12
#undef BarrierEventID
#undef Barrier
#undef Region
#undef Picture
#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 /* _XFIXESPROTO_H_ */