2 * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
3 * Copyright 2010 Red Hat, Inc.
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:
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
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.
24 * Copyright © 2002 Keith Packard
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.
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.
45 #ifdef HAVE_DIX_CONFIG_H
46 #include <dix-config.h>
53 #include <X11/Xproto.h>
56 #include "dixstruct.h"
57 #include "extnsionst.h"
58 #include <X11/extensions/xfixesproto.h>
59 #include "windowstr.h"
60 #include "selection.h"
63 extern int XFixesEventBase
;
65 typedef struct _XFixesClient
{
68 } XFixesClientRec
, *XFixesClientPtr
;
70 #define GetXFixesClient(pClient) ((XFixesClientPtr)dixLookupPrivate(&(pClient)->devPrivates, XFixesClientPrivateKey))
72 extern int (*ProcXFixesVector
[XFixesNumberRequests
]) (ClientPtr
);
76 ProcXFixesChangeSaveSet(ClientPtr client
);
79 SProcXFixesChangeSaveSet(ClientPtr client
);
81 /* Selection events */
83 ProcXFixesSelectSelectionInput(ClientPtr client
);
86 SProcXFixesSelectSelectionInput(ClientPtr client
);
90 SXFixesSelectionNotifyEvent(xXFixesSelectionNotifyEvent
* from
,
91 xXFixesSelectionNotifyEvent
* to
);
93 XFixesSelectionInit(void);
95 /* Cursor notification */
97 XFixesCursorInit(void);
100 ProcXFixesSelectCursorInput(ClientPtr client
);
103 SProcXFixesSelectCursorInput(ClientPtr client
);
107 SXFixesCursorNotifyEvent(xXFixesCursorNotifyEvent
* from
,
108 xXFixesCursorNotifyEvent
* to
);
111 ProcXFixesGetCursorImage(ClientPtr client
);
114 SProcXFixesGetCursorImage(ClientPtr client
);
116 /* Cursor names (Version 2) */
119 ProcXFixesSetCursorName(ClientPtr client
);
122 SProcXFixesSetCursorName(ClientPtr client
);
125 ProcXFixesGetCursorName(ClientPtr client
);
128 SProcXFixesGetCursorName(ClientPtr client
);
131 ProcXFixesGetCursorImageAndName(ClientPtr client
);
134 SProcXFixesGetCursorImageAndName(ClientPtr client
);
136 /* Cursor replacement (Version 2) */
139 ProcXFixesChangeCursor(ClientPtr client
);
142 SProcXFixesChangeCursor(ClientPtr client
);
145 ProcXFixesChangeCursorByName(ClientPtr client
);
148 SProcXFixesChangeCursorByName(ClientPtr client
);
150 /* Region objects (Version 2* */
152 XFixesRegionInit(void);
155 ProcXFixesCreateRegion(ClientPtr client
);
158 SProcXFixesCreateRegion(ClientPtr client
);
161 ProcXFixesCreateRegionFromBitmap(ClientPtr client
);
164 SProcXFixesCreateRegionFromBitmap(ClientPtr client
);
167 ProcXFixesCreateRegionFromWindow(ClientPtr client
);
170 SProcXFixesCreateRegionFromWindow(ClientPtr client
);
173 ProcXFixesCreateRegionFromGC(ClientPtr client
);
176 SProcXFixesCreateRegionFromGC(ClientPtr client
);
179 ProcXFixesCreateRegionFromPicture(ClientPtr client
);
182 SProcXFixesCreateRegionFromPicture(ClientPtr client
);
185 ProcXFixesDestroyRegion(ClientPtr client
);
188 SProcXFixesDestroyRegion(ClientPtr client
);
191 ProcXFixesSetRegion(ClientPtr client
);
194 SProcXFixesSetRegion(ClientPtr client
);
197 ProcXFixesCopyRegion(ClientPtr client
);
200 SProcXFixesCopyRegion(ClientPtr client
);
203 ProcXFixesCombineRegion(ClientPtr client
);
206 SProcXFixesCombineRegion(ClientPtr client
);
209 ProcXFixesInvertRegion(ClientPtr client
);
212 SProcXFixesInvertRegion(ClientPtr client
);
215 ProcXFixesTranslateRegion(ClientPtr client
);
218 SProcXFixesTranslateRegion(ClientPtr client
);
221 ProcXFixesRegionExtents(ClientPtr client
);
224 SProcXFixesRegionExtents(ClientPtr client
);
227 ProcXFixesFetchRegion(ClientPtr client
);
230 SProcXFixesFetchRegion(ClientPtr client
);
233 ProcXFixesSetGCClipRegion(ClientPtr client
);
236 SProcXFixesSetGCClipRegion(ClientPtr client
);
239 ProcXFixesSetWindowShapeRegion(ClientPtr client
);
242 SProcXFixesSetWindowShapeRegion(ClientPtr client
);
245 ProcXFixesSetPictureClipRegion(ClientPtr client
);
248 SProcXFixesSetPictureClipRegion(ClientPtr client
);
251 ProcXFixesExpandRegion(ClientPtr client
);
254 SProcXFixesExpandRegion(ClientPtr client
);
257 PanoramiXFixesSetGCClipRegion(ClientPtr client
);
260 PanoramiXFixesSetWindowShapeRegion(ClientPtr client
);
263 PanoramiXFixesSetPictureClipRegion(ClientPtr client
);
265 /* Cursor Visibility (Version 4) */
268 ProcXFixesHideCursor(ClientPtr client
);
271 SProcXFixesHideCursor(ClientPtr client
);
274 ProcXFixesShowCursor(ClientPtr client
);
277 SProcXFixesShowCursor(ClientPtr client
);
282 ProcXFixesCreatePointerBarrier(ClientPtr client
);
285 SProcXFixesCreatePointerBarrier(ClientPtr client
);
288 ProcXFixesDestroyPointerBarrier(ClientPtr client
);
291 SProcXFixesDestroyPointerBarrier(ClientPtr client
);
295 extern int (*PanoramiXSaveXFixesVector
[XFixesNumberRequests
]) (ClientPtr
);
296 void PanoramiXFixesInit(void);
297 void PanoramiXFixesReset(void);
300 #endif /* _XFIXESINT_H_ */