xfixesint.h (7471B)
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 63 extern int XFixesEventBase; 64 65 typedef struct _XFixesClient { 66 CARD32 major_version; 67 } XFixesClientRec, *XFixesClientPtr; 68 69 #define GetXFixesClient(pClient) ((XFixesClientPtr)dixLookupPrivate(&(pClient)->devPrivates, XFixesClientPrivateKey)) 70 71 extern int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr); 72 73 /* Save set */ 74 int 75 ProcXFixesChangeSaveSet(ClientPtr client); 76 77 int 78 SProcXFixesChangeSaveSet(ClientPtr client); 79 80 /* Selection events */ 81 int 82 ProcXFixesSelectSelectionInput(ClientPtr client); 83 84 int 85 SProcXFixesSelectSelectionInput(ClientPtr client); 86 87 void 88 89 SXFixesSelectionNotifyEvent(xXFixesSelectionNotifyEvent * from, 90 xXFixesSelectionNotifyEvent * to); 91 Bool 92 XFixesSelectionInit(void); 93 94 /* Cursor notification */ 95 Bool 96 XFixesCursorInit(void); 97 98 int 99 ProcXFixesSelectCursorInput(ClientPtr client); 100 101 int 102 SProcXFixesSelectCursorInput(ClientPtr client); 103 104 void 105 106 SXFixesCursorNotifyEvent(xXFixesCursorNotifyEvent * from, 107 xXFixesCursorNotifyEvent * to); 108 109 int 110 ProcXFixesGetCursorImage(ClientPtr client); 111 112 int 113 SProcXFixesGetCursorImage(ClientPtr client); 114 115 /* Cursor names (Version 2) */ 116 117 int 118 ProcXFixesSetCursorName(ClientPtr client); 119 120 int 121 SProcXFixesSetCursorName(ClientPtr client); 122 123 int 124 ProcXFixesGetCursorName(ClientPtr client); 125 126 int 127 SProcXFixesGetCursorName(ClientPtr client); 128 129 int 130 ProcXFixesGetCursorImageAndName(ClientPtr client); 131 132 int 133 SProcXFixesGetCursorImageAndName(ClientPtr client); 134 135 /* Cursor replacement (Version 2) */ 136 137 int 138 ProcXFixesChangeCursor(ClientPtr client); 139 140 int 141 SProcXFixesChangeCursor(ClientPtr client); 142 143 int 144 ProcXFixesChangeCursorByName(ClientPtr client); 145 146 int 147 SProcXFixesChangeCursorByName(ClientPtr client); 148 149 /* Region objects (Version 2* */ 150 Bool 151 XFixesRegionInit(void); 152 153 int 154 ProcXFixesCreateRegion(ClientPtr client); 155 156 int 157 SProcXFixesCreateRegion(ClientPtr client); 158 159 int 160 ProcXFixesCreateRegionFromBitmap(ClientPtr client); 161 162 int 163 SProcXFixesCreateRegionFromBitmap(ClientPtr client); 164 165 int 166 ProcXFixesCreateRegionFromWindow(ClientPtr client); 167 168 int 169 SProcXFixesCreateRegionFromWindow(ClientPtr client); 170 171 int 172 ProcXFixesCreateRegionFromGC(ClientPtr client); 173 174 int 175 SProcXFixesCreateRegionFromGC(ClientPtr client); 176 177 int 178 ProcXFixesCreateRegionFromPicture(ClientPtr client); 179 180 int 181 SProcXFixesCreateRegionFromPicture(ClientPtr client); 182 183 int 184 ProcXFixesDestroyRegion(ClientPtr client); 185 186 int 187 SProcXFixesDestroyRegion(ClientPtr client); 188 189 int 190 ProcXFixesSetRegion(ClientPtr client); 191 192 int 193 SProcXFixesSetRegion(ClientPtr client); 194 195 int 196 ProcXFixesCopyRegion(ClientPtr client); 197 198 int 199 SProcXFixesCopyRegion(ClientPtr client); 200 201 int 202 ProcXFixesCombineRegion(ClientPtr client); 203 204 int 205 SProcXFixesCombineRegion(ClientPtr client); 206 207 int 208 ProcXFixesInvertRegion(ClientPtr client); 209 210 int 211 SProcXFixesInvertRegion(ClientPtr client); 212 213 int 214 ProcXFixesTranslateRegion(ClientPtr client); 215 216 int 217 SProcXFixesTranslateRegion(ClientPtr client); 218 219 int 220 ProcXFixesRegionExtents(ClientPtr client); 221 222 int 223 SProcXFixesRegionExtents(ClientPtr client); 224 225 int 226 ProcXFixesFetchRegion(ClientPtr client); 227 228 int 229 SProcXFixesFetchRegion(ClientPtr client); 230 231 int 232 ProcXFixesSetGCClipRegion(ClientPtr client); 233 234 int 235 SProcXFixesSetGCClipRegion(ClientPtr client); 236 237 int 238 ProcXFixesSetWindowShapeRegion(ClientPtr client); 239 240 int 241 SProcXFixesSetWindowShapeRegion(ClientPtr client); 242 243 int 244 ProcXFixesSetPictureClipRegion(ClientPtr client); 245 246 int 247 SProcXFixesSetPictureClipRegion(ClientPtr client); 248 249 int 250 ProcXFixesExpandRegion(ClientPtr client); 251 252 int 253 SProcXFixesExpandRegion(ClientPtr client); 254 255 int 256 PanoramiXFixesSetGCClipRegion(ClientPtr client); 257 258 int 259 PanoramiXFixesSetWindowShapeRegion(ClientPtr client); 260 261 int 262 PanoramiXFixesSetPictureClipRegion(ClientPtr client); 263 264 /* Cursor Visibility (Version 4) */ 265 266 int 267 ProcXFixesHideCursor(ClientPtr client); 268 269 int 270 SProcXFixesHideCursor(ClientPtr client); 271 272 int 273 ProcXFixesShowCursor(ClientPtr client); 274 275 int 276 SProcXFixesShowCursor(ClientPtr client); 277 278 /* Version 5 */ 279 280 int 281 ProcXFixesCreatePointerBarrier(ClientPtr client); 282 283 int 284 SProcXFixesCreatePointerBarrier(ClientPtr client); 285 286 int 287 ProcXFixesDestroyPointerBarrier(ClientPtr client); 288 289 int 290 SProcXFixesDestroyPointerBarrier(ClientPtr client); 291 292 /* Version 6 */ 293 294 Bool 295 XFixesClientDisconnectInit(void); 296 297 int 298 ProcXFixesSetClientDisconnectMode(ClientPtr client); 299 300 int 301 ProcXFixesGetClientDisconnectMode(ClientPtr client); 302 303 int 304 SProcXFixesSetClientDisconnectMode(ClientPtr client); 305 306 int 307 SProcXFixesGetClientDisconnectMode(ClientPtr client); 308 309 Bool 310 XFixesShouldDisconnectClient(ClientPtr client); 311 312 /* Xinerama */ 313 #ifdef PANORAMIX 314 extern int (*PanoramiXSaveXFixesVector[XFixesNumberRequests]) (ClientPtr); 315 void PanoramiXFixesInit(void); 316 void PanoramiXFixesReset(void); 317 #endif 318 319 #endif /* _XFIXESINT_H_ */