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