1 /*
2  * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
3  * Copyright 2010 Red Hat, Inc.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 /*
25  * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
26  *
27  * Permission to use, copy, modify, distribute, and sell this software and its
28  * documentation for any purpose is hereby granted without fee, provided that
29  * the above copyright notice appear in all copies and that both that
30  * copyright notice and this permission notice appear in supporting
31  * documentation, and that the name of Keith Packard not be used in
32  * advertising or publicity pertaining to distribution of the software without
33  * specific, written prior permission.  Keith Packard makes no
34  * representations about the suitability of this software for any purpose.  It
35  * is provided "as is" without express or implied warranty.
36  *
37  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
38  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
39  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
40  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
41  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
42  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
43  * PERFORMANCE OF THIS SOFTWARE.
44  */
45 
46 
47 #ifndef _XFIXESWIRE_H_
48 #define _XFIXESWIRE_H_
49 
50 #define XFIXES_NAME	"XFIXES"
51 #define XFIXES_MAJOR	6
52 #define XFIXES_MINOR	0
53 
54 /*************** Version 1 ******************/
55 #define X_XFixesQueryVersion		    0
56 #define X_XFixesChangeSaveSet		    1
57 #define X_XFixesSelectSelectionInput	    2
58 #define X_XFixesSelectCursorInput	    3
59 #define X_XFixesGetCursorImage		    4
60 /*************** Version 2 ******************/
61 #define X_XFixesCreateRegion		    5
62 #define X_XFixesCreateRegionFromBitmap	    6
63 #define X_XFixesCreateRegionFromWindow	    7
64 #define X_XFixesCreateRegionFromGC	    8
65 #define X_XFixesCreateRegionFromPicture	    9
66 #define X_XFixesDestroyRegion		    10
67 #define X_XFixesSetRegion		    11
68 #define X_XFixesCopyRegion		    12
69 #define X_XFixesUnionRegion		    13
70 #define X_XFixesIntersectRegion		    14
71 #define X_XFixesSubtractRegion		    15
72 #define X_XFixesInvertRegion		    16
73 #define X_XFixesTranslateRegion		    17
74 #define X_XFixesRegionExtents		    18
75 #define X_XFixesFetchRegion		    19
76 #define X_XFixesSetGCClipRegion		    20
77 #define X_XFixesSetWindowShapeRegion	    21
78 #define X_XFixesSetPictureClipRegion	    22
79 #define X_XFixesSetCursorName		    23
80 #define X_XFixesGetCursorName		    24
81 #define X_XFixesGetCursorImageAndName	    25
82 #define X_XFixesChangeCursor		    26
83 #define X_XFixesChangeCursorByName	    27
84 /*************** Version 3 ******************/
85 #define X_XFixesExpandRegion		    28
86 /*************** Version 4 ******************/
87 #define X_XFixesHideCursor		    29
88 #define X_XFixesShowCursor		    30
89 /*************** Version 5 ******************/
90 #define X_XFixesCreatePointerBarrier	    31
91 #define X_XFixesDestroyPointerBarrier	    32
92 /*************** Version 6 ******************/
93 #define X_XFixesSetClientDisconnectMode	    33
94 #define X_XFixesGetClientDisconnectMode	    34
95 
96 #define XFixesNumberRequests		    (X_XFixesGetClientDisconnectMode+1)
97 
98 /* Selection events share one event number */
99 #define XFixesSelectionNotify		    0
100 
101 /* Within the selection, the 'subtype' field distinguishes */
102 #define XFixesSetSelectionOwnerNotify	    0
103 #define XFixesSelectionWindowDestroyNotify  1
104 #define XFixesSelectionClientCloseNotify    2
105 
106 #define XFixesSetSelectionOwnerNotifyMask	(1L << 0)
107 #define XFixesSelectionWindowDestroyNotifyMask	(1L << 1)
108 #define XFixesSelectionClientCloseNotifyMask	(1L << 2)
109 
110 /* There's only one cursor event so far */
111 #define XFixesCursorNotify		    1
112 
113 #define XFixesDisplayCursorNotify	    0
114 
115 #define XFixesDisplayCursorNotifyMask	    (1L << 0)
116 
117 #define XFixesNumberEvents		    (2)
118 
119 /* errors */
120 #define BadRegion			    0
121 #define BadBarrier			    1
122 #define XFixesNumberErrors		    (BadBarrier+1)
123 
124 #define SaveSetNearest			    0
125 #define SaveSetRoot			    1
126 
127 #define SaveSetMap			    0
128 #define SaveSetUnmap			    1
129 
130 /*************** Version 2 ******************/
131 
132 #define WindowRegionBounding		    0
133 #define WindowRegionClip		    1
134 
135 /*************** Version 5 ******************/
136 
137 #define BarrierPositiveX		    (1L << 0)
138 #define BarrierPositiveY		    (1L << 1)
139 #define BarrierNegativeX		    (1L << 2)
140 #define BarrierNegativeY		    (1L << 3)
141 
142 /*************** Version 6 ******************/
143 
144 /* The default server behaviour */
145 #define XFixesClientDisconnectFlagDefault   0
146 /* The server may disconnect this client to shut down */
147 #define XFixesClientDisconnectFlagTerminate  (1L << 0)
148 
149 #endif	/* _XFIXESWIRE_H_ */
150