xfixesint.h revision ed6184df
1/*
2 * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
3 * Copyright 2010, 2021 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 * Copyright © 2002 Keith Packard
25 *
26 * Permission to use, copy, modify, distribute, and sell this software and its
27 * documentation for any purpose is hereby granted without fee, provided that
28 * the above copyright notice appear in all copies and that both that
29 * copyright notice and this permission notice appear in supporting
30 * documentation, and that the name of Keith Packard not be used in
31 * advertising or publicity pertaining to distribution of the software without
32 * specific, written prior permission.  Keith Packard makes no
33 * representations about the suitability of this software for any purpose.  It
34 * is provided "as is" without express or implied warranty.
35 *
36 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
37 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
38 * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
39 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
40 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
41 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
42 * PERFORMANCE OF THIS SOFTWARE.
43 */
44
45#ifdef HAVE_DIX_CONFIG_H
46#include <dix-config.h>
47#endif
48
49#ifndef _XFIXESINT_H_
50#define _XFIXESINT_H_
51
52#include <X11/X.h>
53#include <X11/Xproto.h>
54#include "misc.h"
55#include "os.h"
56#include "dixstruct.h"
57#include "extnsionst.h"
58#include <X11/extensions/xfixesproto.h>
59#include "windowstr.h"
60#include "selection.h"
61#include "xfixes.h"
62
63extern int XFixesEventBase;
64
65typedef struct _XFixesClient {
66    CARD32 major_version;
67} XFixesClientRec, *XFixesClientPtr;
68
69#define GetXFixesClient(pClient) ((XFixesClientPtr)dixLookupPrivate(&(pClient)->devPrivates, XFixesClientPrivateKey))
70
71extern int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr);
72
73/* Save set */
74int
75 ProcXFixesChangeSaveSet(ClientPtr client);
76
77int
78 SProcXFixesChangeSaveSet(ClientPtr client);
79
80/* Selection events */
81int
82 ProcXFixesSelectSelectionInput(ClientPtr client);
83
84int
85 SProcXFixesSelectSelectionInput(ClientPtr client);
86
87void
88
89SXFixesSelectionNotifyEvent(xXFixesSelectionNotifyEvent * from,
90                            xXFixesSelectionNotifyEvent * to);
91Bool
92 XFixesSelectionInit(void);
93
94/* Cursor notification */
95Bool
96 XFixesCursorInit(void);
97
98int
99 ProcXFixesSelectCursorInput(ClientPtr client);
100
101int
102 SProcXFixesSelectCursorInput(ClientPtr client);
103
104void
105
106SXFixesCursorNotifyEvent(xXFixesCursorNotifyEvent * from,
107                         xXFixesCursorNotifyEvent * to);
108
109int
110 ProcXFixesGetCursorImage(ClientPtr client);
111
112int
113 SProcXFixesGetCursorImage(ClientPtr client);
114
115/* Cursor names (Version 2) */
116
117int
118 ProcXFixesSetCursorName(ClientPtr client);
119
120int
121 SProcXFixesSetCursorName(ClientPtr client);
122
123int
124 ProcXFixesGetCursorName(ClientPtr client);
125
126int
127 SProcXFixesGetCursorName(ClientPtr client);
128
129int
130 ProcXFixesGetCursorImageAndName(ClientPtr client);
131
132int
133 SProcXFixesGetCursorImageAndName(ClientPtr client);
134
135/* Cursor replacement (Version 2) */
136
137int
138 ProcXFixesChangeCursor(ClientPtr client);
139
140int
141 SProcXFixesChangeCursor(ClientPtr client);
142
143int
144 ProcXFixesChangeCursorByName(ClientPtr client);
145
146int
147 SProcXFixesChangeCursorByName(ClientPtr client);
148
149/* Region objects (Version 2* */
150Bool
151 XFixesRegionInit(void);
152
153int
154 ProcXFixesCreateRegion(ClientPtr client);
155
156int
157 SProcXFixesCreateRegion(ClientPtr client);
158
159int
160 ProcXFixesCreateRegionFromBitmap(ClientPtr client);
161
162int
163 SProcXFixesCreateRegionFromBitmap(ClientPtr client);
164
165int
166 ProcXFixesCreateRegionFromWindow(ClientPtr client);
167
168int
169 SProcXFixesCreateRegionFromWindow(ClientPtr client);
170
171int
172 ProcXFixesCreateRegionFromGC(ClientPtr client);
173
174int
175 SProcXFixesCreateRegionFromGC(ClientPtr client);
176
177int
178 ProcXFixesCreateRegionFromPicture(ClientPtr client);
179
180int
181 SProcXFixesCreateRegionFromPicture(ClientPtr client);
182
183int
184 ProcXFixesDestroyRegion(ClientPtr client);
185
186int
187 SProcXFixesDestroyRegion(ClientPtr client);
188
189int
190 ProcXFixesSetRegion(ClientPtr client);
191
192int
193 SProcXFixesSetRegion(ClientPtr client);
194
195int
196 ProcXFixesCopyRegion(ClientPtr client);
197
198int
199 SProcXFixesCopyRegion(ClientPtr client);
200
201int
202 ProcXFixesCombineRegion(ClientPtr client);
203
204int
205 SProcXFixesCombineRegion(ClientPtr client);
206
207int
208 ProcXFixesInvertRegion(ClientPtr client);
209
210int
211 SProcXFixesInvertRegion(ClientPtr client);
212
213int
214 ProcXFixesTranslateRegion(ClientPtr client);
215
216int
217 SProcXFixesTranslateRegion(ClientPtr client);
218
219int
220 ProcXFixesRegionExtents(ClientPtr client);
221
222int
223 SProcXFixesRegionExtents(ClientPtr client);
224
225int
226 ProcXFixesFetchRegion(ClientPtr client);
227
228int
229 SProcXFixesFetchRegion(ClientPtr client);
230
231int
232 ProcXFixesSetGCClipRegion(ClientPtr client);
233
234int
235 SProcXFixesSetGCClipRegion(ClientPtr client);
236
237int
238 ProcXFixesSetWindowShapeRegion(ClientPtr client);
239
240int
241 SProcXFixesSetWindowShapeRegion(ClientPtr client);
242
243int
244 ProcXFixesSetPictureClipRegion(ClientPtr client);
245
246int
247 SProcXFixesSetPictureClipRegion(ClientPtr client);
248
249int
250 ProcXFixesExpandRegion(ClientPtr client);
251
252int
253 SProcXFixesExpandRegion(ClientPtr client);
254
255int
256 PanoramiXFixesSetGCClipRegion(ClientPtr client);
257
258int
259 PanoramiXFixesSetWindowShapeRegion(ClientPtr client);
260
261int
262 PanoramiXFixesSetPictureClipRegion(ClientPtr client);
263
264/* Cursor Visibility (Version 4) */
265
266int
267 ProcXFixesHideCursor(ClientPtr client);
268
269int
270 SProcXFixesHideCursor(ClientPtr client);
271
272int
273 ProcXFixesShowCursor(ClientPtr client);
274
275int
276 SProcXFixesShowCursor(ClientPtr client);
277
278/* Version 5 */
279
280int
281 ProcXFixesCreatePointerBarrier(ClientPtr client);
282
283int
284 SProcXFixesCreatePointerBarrier(ClientPtr client);
285
286int
287 ProcXFixesDestroyPointerBarrier(ClientPtr client);
288
289int
290 SProcXFixesDestroyPointerBarrier(ClientPtr client);
291
292/* Version 6 */
293
294Bool
295 XFixesClientDisconnectInit(void);
296
297int
298 ProcXFixesSetClientDisconnectMode(ClientPtr client);
299
300int
301 ProcXFixesGetClientDisconnectMode(ClientPtr client);
302
303int
304 SProcXFixesSetClientDisconnectMode(ClientPtr client);
305
306int
307 SProcXFixesGetClientDisconnectMode(ClientPtr client);
308
309Bool
310 XFixesShouldDisconnectClient(ClientPtr client);
311
312/* Xinerama */
313#ifdef PANORAMIX
314extern int (*PanoramiXSaveXFixesVector[XFixesNumberRequests]) (ClientPtr);
315void PanoramiXFixesInit(void);
316void PanoramiXFixesReset(void);
317#endif
318
319#endif                          /* _XFIXESINT_H_ */
320