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