Home | History | Annotate | Download | only in extensions
      1 /*
      2 Copyright 1996, 1998, 2001  The Open Group
      3 
      4 Permission to use, copy, modify, distribute, and sell this software and its
      5 documentation for any purpose is hereby granted without fee, provided that
      6 the above copyright notice appear in all copies and that both that
      7 copyright notice and this permission notice appear in supporting
      8 documentation.
      9 
     10 The above copyright notice and this permission notice shall be included
     11 in all copies or substantial portions of the Software.
     12 
     13 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     14 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     15 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     16 IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
     17 OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     18 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     19 OTHER DEALINGS IN THE SOFTWARE.
     20 
     21 Except as contained in this notice, the name of The Open Group shall
     22 not be used in advertising or otherwise to promote the sale, use or
     23 other dealings in this Software without prior written authorization
     24 from The Open Group.
     25 */
     26 
     27 #ifndef _AGPROTO_H_ /* { */
     28 #define _AGPROTO_H_
     29 
     30 #include <X11/extensions/ag.h>
     31 
     32 #define X_XagQueryVersion		0
     33 #define X_XagCreate			1
     34 #define X_XagDestroy			2
     35 #define X_XagGetAttr			3
     36 #define X_XagQuery			4
     37 #define X_XagCreateAssoc		5
     38 #define X_XagDestroyAssoc		6
     39 
     40 #define XAppGroup CARD32
     41 
     42 /*
     43 * Redefine some basic types used by structures defined herein.  This allows
     44 * both the library and server to view communicated data as 32-bit entities,
     45 * thus preventing problems on 64-bit architectures where libXext sees this
     46 * data as 64 bits and the server sees it as 32 bits.
     47 */
     48 
     49 #define Colormap CARD32
     50 #define VisualID CARD32
     51 #define Window CARD32
     52 
     53 typedef struct _XagQueryVersion {
     54     CARD8	reqType;	/* always XagReqCode */
     55     CARD8	xagReqType;	/* always X_XagQueryVersion */
     56     CARD16	length B16;
     57     CARD16	client_major_version B16;
     58     CARD16	client_minor_version B16;
     59 } xXagQueryVersionReq;
     60 #define sz_xXagQueryVersionReq		8
     61 
     62 typedef struct {
     63     BYTE	type;		/* X_Reply */
     64     BOOL	pad1;
     65     CARD16	sequence_number B16;
     66     CARD32	length B32;
     67     CARD16	server_major_version B16;
     68     CARD16	server_minor_version B16;
     69     CARD32	pad2 B32;
     70     CARD32	pad3 B32;
     71     CARD32	pad4 B32;
     72     CARD32	pad5 B32;
     73     CARD32	pad6 B32;
     74 } xXagQueryVersionReply;
     75 #define sz_xXagQueryVersionReply	32
     76 
     77 /* Set AppGroup Attributes masks */
     78 #define XagSingleScreenMask		1 << 0
     79 #define XagDefaultRootMask		1 << XagNdefaultRoot
     80 #define XagRootVisualMask		1 << XagNrootVisual
     81 #define XagDefaultColormapMask		1 << XagNdefaultColormap
     82 #define XagBlackPixelMask		1 << XagNblackPixel
     83 #define XagWhitePixelMask		1 << XagNwhitePixel
     84 #define XagAppGroupLeaderMask		1 << XagNappGroupLeader
     85 
     86 typedef struct _XagCreate {
     87     CARD8	reqType;	/* always XagReqCode */
     88     CARD8	xagReqType;	/* always X_XagCreate */
     89     CARD16	length B16;
     90     XAppGroup	app_group B32;
     91     CARD32	attrib_mask B32; /* LISTofVALUE follows */
     92 } xXagCreateReq;
     93 #define sz_xXagCreateReq		12
     94 
     95 typedef struct _XagDestroy {
     96     CARD8	reqType;	/* always XagReqCode */
     97     CARD8	xagReqType;	/* always X_XagDestroy */
     98     CARD16	length B16;
     99     XAppGroup	app_group  B32;
    100 } xXagDestroyReq;
    101 #define sz_xXagDestroyReq		8
    102 
    103 typedef struct _XagGetAttr {
    104     CARD8	reqType;	/* always XagReqCode */
    105     CARD8	xagReqType;	/* always X_XagGetAttr */
    106     CARD16	length B16;
    107     XAppGroup	app_group B32;
    108 } xXagGetAttrReq;
    109 #define sz_xXagGetAttrReq		8
    110 
    111 typedef struct {
    112     BYTE	type;		/* X_Reply */
    113     BOOL	pad1;
    114     CARD16	sequence_number B16;
    115     CARD32	length B32;
    116     Window	default_root B32;
    117     VisualID	root_visual B32;
    118     Colormap	default_colormap B32;
    119     CARD32	black_pixel B32;
    120     CARD32	white_pixel B32;
    121     BOOL	single_screen;
    122     BOOL	app_group_leader;
    123     CARD16	pad2 B16;
    124 } xXagGetAttrReply;
    125 #define sz_xXagGetAttrReply		32
    126 
    127 typedef struct _XagQuery {
    128     CARD8	reqType;	/* always XagReqCode */
    129     CARD8	xagReqType;	/* always X_XagQuery */
    130     CARD16	length B16;
    131     CARD32	resource B32;
    132 } xXagQueryReq;
    133 #define sz_xXagQueryReq			8
    134 
    135 typedef struct {
    136     BYTE	type;		/* X_Reply */
    137     BOOL	pad1;
    138     CARD16	sequence_number B16;
    139     CARD32	length B32;
    140     XAppGroup	app_group B32;
    141     CARD32	pad2 B32;
    142     CARD32	pad3 B32;
    143     CARD32	pad4 B32;
    144     CARD32	pad5 B32;
    145     CARD32	pad6 B32;
    146 } xXagQueryReply;
    147 #define sz_xXagQueryReply		32
    148 
    149 typedef struct _XagCreateAssoc {
    150     CARD8	reqType;	/* always XagReqCode */
    151     CARD8	xagReqType;	/* always X_XagCreateAssoc */
    152     CARD16	length B16;
    153     Window	window B32;
    154     CARD16	window_type B16;
    155     CARD16	system_window_len B16; /* LISTofCARD8 follows */
    156 } xXagCreateAssocReq;
    157 #define sz_xXagCreateAssocReq		12
    158 
    159 typedef struct _XagDestroyAssoc {
    160     CARD8	reqType;	/* always XagReqCode */
    161     CARD8	xagReqType;	/* always X_XagDestroyAssoc */
    162     CARD16	length B16;
    163     Window	window B32;
    164 } xXagDestroyAssocReq;
    165 #define sz_xXagDestroyAssocReq		8
    166 
    167 #undef XAppGroup
    168 /*
    169  * Cancel the previous redefinition of the basic types, thus restoring their
    170  * X.h definitions.
    171  */
    172 
    173 #undef Window
    174 #undef Colormap
    175 #undef VisualID
    176 
    177 #endif /* } _AGPROTO_H_ */
    178 
    179