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