1706f2543Smrg/*
2706f2543Smrg * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
3706f2543Smrg *
4706f2543Smrg * Permission is hereby granted, free of charge, to any person obtaining a
5706f2543Smrg * copy of this software and associated documentation files (the "Software"),
6706f2543Smrg * to deal in the Software without restriction, including without limitation
7706f2543Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8706f2543Smrg * and/or sell copies of the Software, and to permit persons to whom the
9706f2543Smrg * Software is furnished to do so, subject to the following conditions:
10706f2543Smrg *
11706f2543Smrg * The above copyright notice and this permission notice (including the next
12706f2543Smrg * paragraph) shall be included in all copies or substantial portions of the
13706f2543Smrg * Software.
14706f2543Smrg *
15706f2543Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16706f2543Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17706f2543Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18706f2543Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19706f2543Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20706f2543Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21706f2543Smrg * DEALINGS IN THE SOFTWARE.
22706f2543Smrg *
23706f2543Smrg * Copyright © 2002 Keith Packard
24706f2543Smrg *
25706f2543Smrg * Permission to use, copy, modify, distribute, and sell this software and its
26706f2543Smrg * documentation for any purpose is hereby granted without fee, provided that
27706f2543Smrg * the above copyright notice appear in all copies and that both that
28706f2543Smrg * copyright notice and this permission notice appear in supporting
29706f2543Smrg * documentation, and that the name of Keith Packard not be used in
30706f2543Smrg * advertising or publicity pertaining to distribution of the software without
31706f2543Smrg * specific, written prior permission.  Keith Packard makes no
32706f2543Smrg * representations about the suitability of this software for any purpose.  It
33706f2543Smrg * is provided "as is" without express or implied warranty.
34706f2543Smrg *
35706f2543Smrg * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
36706f2543Smrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
37706f2543Smrg * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
38706f2543Smrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
39706f2543Smrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
40706f2543Smrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
41706f2543Smrg * PERFORMANCE OF THIS SOFTWARE.
42706f2543Smrg */
43706f2543Smrg
44706f2543Smrg#ifdef HAVE_DIX_CONFIG_H
45706f2543Smrg#include <dix-config.h>
46706f2543Smrg#endif
47706f2543Smrg
48706f2543Smrg#ifndef _XFIXESINT_H_
49706f2543Smrg#define _XFIXESINT_H_
50706f2543Smrg
51706f2543Smrg#include <X11/X.h>
52706f2543Smrg#include <X11/Xproto.h>
53706f2543Smrg#include "misc.h"
54706f2543Smrg#include "os.h"
55706f2543Smrg#include "dixstruct.h"
56706f2543Smrg#include "extnsionst.h"
57706f2543Smrg#include <X11/extensions/xfixesproto.h>
58706f2543Smrg#include "windowstr.h"
59706f2543Smrg#include "selection.h"
60706f2543Smrg#include "xfixes.h"
61706f2543Smrg
62706f2543Smrgextern int		XFixesEventBase;
63706f2543Smrg
64706f2543Smrgtypedef struct _XFixesClient {
65706f2543Smrg    CARD32	major_version;
66706f2543Smrg    CARD32	minor_version;
67706f2543Smrg} XFixesClientRec, *XFixesClientPtr;
68706f2543Smrg
69706f2543Smrg#define GetXFixesClient(pClient) ((XFixesClientPtr)dixLookupPrivate(&(pClient)->devPrivates, XFixesClientPrivateKey))
70706f2543Smrg
71706f2543Smrgextern int	(*ProcXFixesVector[XFixesNumberRequests])(ClientPtr);
72706f2543Smrg
73706f2543Smrg/* Initialize extension at server startup time */
74706f2543Smrg
75706f2543Smrgvoid
76706f2543SmrgXFixesExtensionInit(void);
77706f2543Smrg
78706f2543Smrg/* Save set */
79706f2543Smrgint
80706f2543SmrgProcXFixesChangeSaveSet(ClientPtr client);
81706f2543Smrg
82706f2543Smrgint
83706f2543SmrgSProcXFixesChangeSaveSet(ClientPtr client);
84706f2543Smrg
85706f2543Smrg/* Selection events */
86706f2543Smrgint
87706f2543SmrgProcXFixesSelectSelectionInput (ClientPtr client);
88706f2543Smrg
89706f2543Smrgint
90706f2543SmrgSProcXFixesSelectSelectionInput (ClientPtr client);
91706f2543Smrg
92706f2543Smrgvoid
93706f2543SmrgSXFixesSelectionNotifyEvent (xXFixesSelectionNotifyEvent *from,
94706f2543Smrg			     xXFixesSelectionNotifyEvent *to);
95706f2543SmrgBool
96706f2543SmrgXFixesSelectionInit (void);
97706f2543Smrg
98706f2543Smrg/* Cursor notification */
99706f2543SmrgBool
100706f2543SmrgXFixesCursorInit (void);
101706f2543Smrg
102706f2543Smrgint
103706f2543SmrgProcXFixesSelectCursorInput (ClientPtr client);
104706f2543Smrg
105706f2543Smrgint
106706f2543SmrgSProcXFixesSelectCursorInput (ClientPtr client);
107706f2543Smrg
108706f2543Smrgvoid
109706f2543SmrgSXFixesCursorNotifyEvent (xXFixesCursorNotifyEvent *from,
110706f2543Smrg			  xXFixesCursorNotifyEvent *to);
111706f2543Smrg
112706f2543Smrgint
113706f2543SmrgProcXFixesGetCursorImage (ClientPtr client);
114706f2543Smrg
115706f2543Smrgint
116706f2543SmrgSProcXFixesGetCursorImage (ClientPtr client);
117706f2543Smrg
118706f2543Smrg/* Cursor names (Version 2) */
119706f2543Smrg
120706f2543Smrgint
121706f2543SmrgProcXFixesSetCursorName (ClientPtr client);
122706f2543Smrg
123706f2543Smrgint
124706f2543SmrgSProcXFixesSetCursorName (ClientPtr client);
125706f2543Smrg
126706f2543Smrgint
127706f2543SmrgProcXFixesGetCursorName (ClientPtr client);
128706f2543Smrg
129706f2543Smrgint
130706f2543SmrgSProcXFixesGetCursorName (ClientPtr client);
131706f2543Smrg
132706f2543Smrgint
133706f2543SmrgProcXFixesGetCursorImageAndName (ClientPtr client);
134706f2543Smrg
135706f2543Smrgint
136706f2543SmrgSProcXFixesGetCursorImageAndName (ClientPtr client);
137706f2543Smrg
138706f2543Smrg/* Cursor replacement (Version 2) */
139706f2543Smrg
140706f2543Smrgint
141706f2543SmrgProcXFixesChangeCursor (ClientPtr client);
142706f2543Smrg
143706f2543Smrgint
144706f2543SmrgSProcXFixesChangeCursor (ClientPtr client);
145706f2543Smrg
146706f2543Smrgint
147706f2543SmrgProcXFixesChangeCursorByName (ClientPtr client);
148706f2543Smrg
149706f2543Smrgint
150706f2543SmrgSProcXFixesChangeCursorByName (ClientPtr client);
151706f2543Smrg
152706f2543Smrg/* Region objects (Version 2* */
153706f2543SmrgBool
154706f2543SmrgXFixesRegionInit (void);
155706f2543Smrg
156706f2543Smrgint
157706f2543SmrgProcXFixesCreateRegion (ClientPtr client);
158706f2543Smrg
159706f2543Smrgint
160706f2543SmrgSProcXFixesCreateRegion (ClientPtr client);
161706f2543Smrg
162706f2543Smrgint
163706f2543SmrgProcXFixesCreateRegionFromBitmap (ClientPtr client);
164706f2543Smrg
165706f2543Smrgint
166706f2543SmrgSProcXFixesCreateRegionFromBitmap (ClientPtr client);
167706f2543Smrg
168706f2543Smrgint
169706f2543SmrgProcXFixesCreateRegionFromWindow (ClientPtr client);
170706f2543Smrg
171706f2543Smrgint
172706f2543SmrgSProcXFixesCreateRegionFromWindow (ClientPtr client);
173706f2543Smrg
174706f2543Smrgint
175706f2543SmrgProcXFixesCreateRegionFromGC (ClientPtr client);
176706f2543Smrg
177706f2543Smrgint
178706f2543SmrgSProcXFixesCreateRegionFromGC (ClientPtr client);
179706f2543Smrg
180706f2543Smrgint
181706f2543SmrgProcXFixesCreateRegionFromPicture (ClientPtr client);
182706f2543Smrg
183706f2543Smrgint
184706f2543SmrgSProcXFixesCreateRegionFromPicture (ClientPtr client);
185706f2543Smrg
186706f2543Smrgint
187706f2543SmrgProcXFixesDestroyRegion (ClientPtr client);
188706f2543Smrg
189706f2543Smrgint
190706f2543SmrgSProcXFixesDestroyRegion (ClientPtr client);
191706f2543Smrg
192706f2543Smrgint
193706f2543SmrgProcXFixesSetRegion (ClientPtr client);
194706f2543Smrg
195706f2543Smrgint
196706f2543SmrgSProcXFixesSetRegion (ClientPtr client);
197706f2543Smrg
198706f2543Smrgint
199706f2543SmrgProcXFixesCopyRegion (ClientPtr client);
200706f2543Smrg
201706f2543Smrgint
202706f2543SmrgSProcXFixesCopyRegion (ClientPtr client);
203706f2543Smrg
204706f2543Smrgint
205706f2543SmrgProcXFixesCombineRegion (ClientPtr client);
206706f2543Smrg
207706f2543Smrgint
208706f2543SmrgSProcXFixesCombineRegion (ClientPtr client);
209706f2543Smrg
210706f2543Smrgint
211706f2543SmrgProcXFixesInvertRegion (ClientPtr client);
212706f2543Smrg
213706f2543Smrgint
214706f2543SmrgSProcXFixesInvertRegion (ClientPtr client);
215706f2543Smrg
216706f2543Smrgint
217706f2543SmrgProcXFixesTranslateRegion (ClientPtr client);
218706f2543Smrg
219706f2543Smrgint
220706f2543SmrgSProcXFixesTranslateRegion (ClientPtr client);
221706f2543Smrg
222706f2543Smrgint
223706f2543SmrgProcXFixesRegionExtents (ClientPtr client);
224706f2543Smrg
225706f2543Smrgint
226706f2543SmrgSProcXFixesRegionExtents (ClientPtr client);
227706f2543Smrg
228706f2543Smrgint
229706f2543SmrgProcXFixesFetchRegion (ClientPtr client);
230706f2543Smrg
231706f2543Smrgint
232706f2543SmrgSProcXFixesFetchRegion (ClientPtr client);
233706f2543Smrg
234706f2543Smrgint
235706f2543SmrgProcXFixesSetGCClipRegion (ClientPtr client);
236706f2543Smrg
237706f2543Smrgint
238706f2543SmrgSProcXFixesSetGCClipRegion (ClientPtr client);
239706f2543Smrg
240706f2543Smrgint
241706f2543SmrgProcXFixesSetWindowShapeRegion (ClientPtr client);
242706f2543Smrg
243706f2543Smrgint
244706f2543SmrgSProcXFixesSetWindowShapeRegion (ClientPtr client);
245706f2543Smrg
246706f2543Smrgint
247706f2543SmrgProcXFixesSetPictureClipRegion (ClientPtr client);
248706f2543Smrg
249706f2543Smrgint
250706f2543SmrgSProcXFixesSetPictureClipRegion (ClientPtr client);
251706f2543Smrg
252706f2543Smrgint
253706f2543SmrgProcXFixesExpandRegion (ClientPtr client);
254706f2543Smrg
255706f2543Smrgint
256706f2543SmrgSProcXFixesExpandRegion (ClientPtr client);
257706f2543Smrg
258706f2543Smrgint
259706f2543SmrgPanoramiXFixesSetGCClipRegion (ClientPtr client);
260706f2543Smrg
261706f2543Smrgint
262706f2543SmrgPanoramiXFixesSetWindowShapeRegion (ClientPtr client);
263706f2543Smrg
264706f2543Smrgint
265706f2543SmrgPanoramiXFixesSetPictureClipRegion (ClientPtr client);
266706f2543Smrg
267706f2543Smrg/* Cursor Visibility (Version 4) */
268706f2543Smrg
269706f2543Smrgint
270706f2543SmrgProcXFixesHideCursor (ClientPtr client);
271706f2543Smrg
272706f2543Smrgint
273706f2543SmrgSProcXFixesHideCursor (ClientPtr client);
274706f2543Smrg
275706f2543Smrgint
276706f2543SmrgProcXFixesShowCursor (ClientPtr client);
277706f2543Smrg
278706f2543Smrgint
279706f2543SmrgSProcXFixesShowCursor (ClientPtr client);
280706f2543Smrg
281706f2543Smrgextern int (*PanoramiXSaveXFixesVector[XFixesNumberRequests])(ClientPtr);
282706f2543Smrgvoid PanoramiXFixesInit (void);
283706f2543Smrgvoid PanoramiXFixesReset (void);
284706f2543Smrg
285706f2543Smrg#endif /* _XFIXESINT_H_ */
286