105b261ecSmrg/* 29ace9065Smrg * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. 3ed6184dfSmrg * Copyright 2010, 2021 Red Hat, Inc. 405b261ecSmrg * 56747b715Smrg * Permission is hereby granted, free of charge, to any person obtaining a 66747b715Smrg * copy of this software and associated documentation files (the "Software"), 76747b715Smrg * to deal in the Software without restriction, including without limitation 86747b715Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 96747b715Smrg * and/or sell copies of the Software, and to permit persons to whom the 106747b715Smrg * Software is furnished to do so, subject to the following conditions: 1105b261ecSmrg * 126747b715Smrg * The above copyright notice and this permission notice (including the next 136747b715Smrg * paragraph) shall be included in all copies or substantial portions of the 146747b715Smrg * Software. 156747b715Smrg * 166747b715Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 176747b715Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 186747b715Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 196747b715Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 206747b715Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 216747b715Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 226747b715Smrg * DEALINGS IN THE SOFTWARE. 2305b261ecSmrg * 2405b261ecSmrg * Copyright © 2002 Keith Packard 2505b261ecSmrg * 2605b261ecSmrg * Permission to use, copy, modify, distribute, and sell this software and its 2705b261ecSmrg * documentation for any purpose is hereby granted without fee, provided that 2805b261ecSmrg * the above copyright notice appear in all copies and that both that 2905b261ecSmrg * copyright notice and this permission notice appear in supporting 3005b261ecSmrg * documentation, and that the name of Keith Packard not be used in 3105b261ecSmrg * advertising or publicity pertaining to distribution of the software without 3205b261ecSmrg * specific, written prior permission. Keith Packard makes no 3305b261ecSmrg * representations about the suitability of this software for any purpose. It 3405b261ecSmrg * is provided "as is" without express or implied warranty. 3505b261ecSmrg * 3605b261ecSmrg * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 3705b261ecSmrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 3805b261ecSmrg * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR 3905b261ecSmrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 4005b261ecSmrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 4105b261ecSmrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 4205b261ecSmrg * PERFORMANCE OF THIS SOFTWARE. 4305b261ecSmrg */ 4405b261ecSmrg 4505b261ecSmrg#ifdef HAVE_DIX_CONFIG_H 4605b261ecSmrg#include <dix-config.h> 4705b261ecSmrg#endif 4805b261ecSmrg 4905b261ecSmrg#ifndef _XFIXESINT_H_ 5005b261ecSmrg#define _XFIXESINT_H_ 5105b261ecSmrg 5205b261ecSmrg#include <X11/X.h> 5305b261ecSmrg#include <X11/Xproto.h> 5405b261ecSmrg#include "misc.h" 5505b261ecSmrg#include "os.h" 5605b261ecSmrg#include "dixstruct.h" 5705b261ecSmrg#include "extnsionst.h" 5805b261ecSmrg#include <X11/extensions/xfixesproto.h> 5905b261ecSmrg#include "windowstr.h" 6005b261ecSmrg#include "selection.h" 6105b261ecSmrg#include "xfixes.h" 6205b261ecSmrg 6335c4bbdfSmrgextern int XFixesEventBase; 6405b261ecSmrg 6505b261ecSmrgtypedef struct _XFixesClient { 6635c4bbdfSmrg CARD32 major_version; 6705b261ecSmrg} XFixesClientRec, *XFixesClientPtr; 6805b261ecSmrg 694642e01fSmrg#define GetXFixesClient(pClient) ((XFixesClientPtr)dixLookupPrivate(&(pClient)->devPrivates, XFixesClientPrivateKey)) 7005b261ecSmrg 7135c4bbdfSmrgextern int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr); 7205b261ecSmrg 7305b261ecSmrg/* Save set */ 7405b261ecSmrgint 7535c4bbdfSmrg ProcXFixesChangeSaveSet(ClientPtr client); 7635c4bbdfSmrg 7705b261ecSmrgint 7835c4bbdfSmrg SProcXFixesChangeSaveSet(ClientPtr client); 7935c4bbdfSmrg 8005b261ecSmrg/* Selection events */ 8105b261ecSmrgint 8235c4bbdfSmrg ProcXFixesSelectSelectionInput(ClientPtr client); 8305b261ecSmrg 8405b261ecSmrgint 8535c4bbdfSmrg SProcXFixesSelectSelectionInput(ClientPtr client); 8605b261ecSmrg 8705b261ecSmrgvoid 8835c4bbdfSmrg 8935c4bbdfSmrgSXFixesSelectionNotifyEvent(xXFixesSelectionNotifyEvent * from, 9035c4bbdfSmrg xXFixesSelectionNotifyEvent * to); 9105b261ecSmrgBool 9235c4bbdfSmrg XFixesSelectionInit(void); 9305b261ecSmrg 9405b261ecSmrg/* Cursor notification */ 9505b261ecSmrgBool 9635c4bbdfSmrg XFixesCursorInit(void); 9735c4bbdfSmrg 9805b261ecSmrgint 9935c4bbdfSmrg ProcXFixesSelectCursorInput(ClientPtr client); 10005b261ecSmrg 10105b261ecSmrgint 10235c4bbdfSmrg SProcXFixesSelectCursorInput(ClientPtr client); 10305b261ecSmrg 10405b261ecSmrgvoid 10535c4bbdfSmrg 10635c4bbdfSmrgSXFixesCursorNotifyEvent(xXFixesCursorNotifyEvent * from, 10735c4bbdfSmrg xXFixesCursorNotifyEvent * to); 10805b261ecSmrg 10905b261ecSmrgint 11035c4bbdfSmrg ProcXFixesGetCursorImage(ClientPtr client); 11105b261ecSmrg 11205b261ecSmrgint 11335c4bbdfSmrg SProcXFixesGetCursorImage(ClientPtr client); 11405b261ecSmrg 11505b261ecSmrg/* Cursor names (Version 2) */ 11605b261ecSmrg 11705b261ecSmrgint 11835c4bbdfSmrg ProcXFixesSetCursorName(ClientPtr client); 11905b261ecSmrg 12005b261ecSmrgint 12135c4bbdfSmrg SProcXFixesSetCursorName(ClientPtr client); 12205b261ecSmrg 12305b261ecSmrgint 12435c4bbdfSmrg ProcXFixesGetCursorName(ClientPtr client); 12505b261ecSmrg 12605b261ecSmrgint 12735c4bbdfSmrg SProcXFixesGetCursorName(ClientPtr client); 12805b261ecSmrg 12905b261ecSmrgint 13035c4bbdfSmrg ProcXFixesGetCursorImageAndName(ClientPtr client); 13105b261ecSmrg 13205b261ecSmrgint 13335c4bbdfSmrg SProcXFixesGetCursorImageAndName(ClientPtr client); 13405b261ecSmrg 13505b261ecSmrg/* Cursor replacement (Version 2) */ 13605b261ecSmrg 13705b261ecSmrgint 13835c4bbdfSmrg ProcXFixesChangeCursor(ClientPtr client); 13905b261ecSmrg 14005b261ecSmrgint 14135c4bbdfSmrg SProcXFixesChangeCursor(ClientPtr client); 14205b261ecSmrg 14305b261ecSmrgint 14435c4bbdfSmrg ProcXFixesChangeCursorByName(ClientPtr client); 14505b261ecSmrg 14605b261ecSmrgint 14735c4bbdfSmrg SProcXFixesChangeCursorByName(ClientPtr client); 14805b261ecSmrg 14905b261ecSmrg/* Region objects (Version 2* */ 15005b261ecSmrgBool 15135c4bbdfSmrg XFixesRegionInit(void); 15205b261ecSmrg 15305b261ecSmrgint 15435c4bbdfSmrg ProcXFixesCreateRegion(ClientPtr client); 15505b261ecSmrg 15605b261ecSmrgint 15735c4bbdfSmrg SProcXFixesCreateRegion(ClientPtr client); 15805b261ecSmrg 15905b261ecSmrgint 16035c4bbdfSmrg ProcXFixesCreateRegionFromBitmap(ClientPtr client); 16105b261ecSmrg 16205b261ecSmrgint 16335c4bbdfSmrg SProcXFixesCreateRegionFromBitmap(ClientPtr client); 16405b261ecSmrg 16505b261ecSmrgint 16635c4bbdfSmrg ProcXFixesCreateRegionFromWindow(ClientPtr client); 16705b261ecSmrg 16805b261ecSmrgint 16935c4bbdfSmrg SProcXFixesCreateRegionFromWindow(ClientPtr client); 17005b261ecSmrg 17105b261ecSmrgint 17235c4bbdfSmrg ProcXFixesCreateRegionFromGC(ClientPtr client); 17305b261ecSmrg 17405b261ecSmrgint 17535c4bbdfSmrg SProcXFixesCreateRegionFromGC(ClientPtr client); 17605b261ecSmrg 17705b261ecSmrgint 17835c4bbdfSmrg ProcXFixesCreateRegionFromPicture(ClientPtr client); 17905b261ecSmrg 18005b261ecSmrgint 18135c4bbdfSmrg SProcXFixesCreateRegionFromPicture(ClientPtr client); 18205b261ecSmrg 18305b261ecSmrgint 18435c4bbdfSmrg ProcXFixesDestroyRegion(ClientPtr client); 18505b261ecSmrg 18605b261ecSmrgint 18735c4bbdfSmrg SProcXFixesDestroyRegion(ClientPtr client); 18805b261ecSmrg 18905b261ecSmrgint 19035c4bbdfSmrg ProcXFixesSetRegion(ClientPtr client); 19105b261ecSmrg 19205b261ecSmrgint 19335c4bbdfSmrg SProcXFixesSetRegion(ClientPtr client); 19405b261ecSmrg 19505b261ecSmrgint 19635c4bbdfSmrg ProcXFixesCopyRegion(ClientPtr client); 19705b261ecSmrg 19805b261ecSmrgint 19935c4bbdfSmrg SProcXFixesCopyRegion(ClientPtr client); 20005b261ecSmrg 20105b261ecSmrgint 20235c4bbdfSmrg ProcXFixesCombineRegion(ClientPtr client); 20305b261ecSmrg 20405b261ecSmrgint 20535c4bbdfSmrg SProcXFixesCombineRegion(ClientPtr client); 20605b261ecSmrg 20705b261ecSmrgint 20835c4bbdfSmrg ProcXFixesInvertRegion(ClientPtr client); 20905b261ecSmrg 21005b261ecSmrgint 21135c4bbdfSmrg SProcXFixesInvertRegion(ClientPtr client); 21205b261ecSmrg 21305b261ecSmrgint 21435c4bbdfSmrg ProcXFixesTranslateRegion(ClientPtr client); 21505b261ecSmrg 21605b261ecSmrgint 21735c4bbdfSmrg SProcXFixesTranslateRegion(ClientPtr client); 21805b261ecSmrg 21905b261ecSmrgint 22035c4bbdfSmrg ProcXFixesRegionExtents(ClientPtr client); 22105b261ecSmrg 22205b261ecSmrgint 22335c4bbdfSmrg SProcXFixesRegionExtents(ClientPtr client); 22405b261ecSmrg 22505b261ecSmrgint 22635c4bbdfSmrg ProcXFixesFetchRegion(ClientPtr client); 22705b261ecSmrg 22805b261ecSmrgint 22935c4bbdfSmrg SProcXFixesFetchRegion(ClientPtr client); 23005b261ecSmrg 23105b261ecSmrgint 23235c4bbdfSmrg ProcXFixesSetGCClipRegion(ClientPtr client); 23305b261ecSmrg 23405b261ecSmrgint 23535c4bbdfSmrg SProcXFixesSetGCClipRegion(ClientPtr client); 23605b261ecSmrg 23705b261ecSmrgint 23835c4bbdfSmrg ProcXFixesSetWindowShapeRegion(ClientPtr client); 23905b261ecSmrg 24005b261ecSmrgint 24135c4bbdfSmrg SProcXFixesSetWindowShapeRegion(ClientPtr client); 24205b261ecSmrg 24305b261ecSmrgint 24435c4bbdfSmrg ProcXFixesSetPictureClipRegion(ClientPtr client); 24505b261ecSmrg 24605b261ecSmrgint 24735c4bbdfSmrg SProcXFixesSetPictureClipRegion(ClientPtr client); 24805b261ecSmrg 24905b261ecSmrgint 25035c4bbdfSmrg ProcXFixesExpandRegion(ClientPtr client); 25105b261ecSmrg 25205b261ecSmrgint 25335c4bbdfSmrg SProcXFixesExpandRegion(ClientPtr client); 25405b261ecSmrg 2559ace9065Smrgint 25635c4bbdfSmrg PanoramiXFixesSetGCClipRegion(ClientPtr client); 2579ace9065Smrg 2589ace9065Smrgint 25935c4bbdfSmrg PanoramiXFixesSetWindowShapeRegion(ClientPtr client); 2609ace9065Smrg 2619ace9065Smrgint 26235c4bbdfSmrg PanoramiXFixesSetPictureClipRegion(ClientPtr client); 2639ace9065Smrg 26405b261ecSmrg/* Cursor Visibility (Version 4) */ 26505b261ecSmrg 26635c4bbdfSmrgint 26735c4bbdfSmrg ProcXFixesHideCursor(ClientPtr client); 26835c4bbdfSmrg 26935c4bbdfSmrgint 27035c4bbdfSmrg SProcXFixesHideCursor(ClientPtr client); 27135c4bbdfSmrg 27235c4bbdfSmrgint 27335c4bbdfSmrg ProcXFixesShowCursor(ClientPtr client); 27435c4bbdfSmrg 27535c4bbdfSmrgint 27635c4bbdfSmrg SProcXFixesShowCursor(ClientPtr client); 27705b261ecSmrg 27835c4bbdfSmrg/* Version 5 */ 27905b261ecSmrg 28035c4bbdfSmrgint 28135c4bbdfSmrg ProcXFixesCreatePointerBarrier(ClientPtr client); 28205b261ecSmrg 28335c4bbdfSmrgint 28435c4bbdfSmrg SProcXFixesCreatePointerBarrier(ClientPtr client); 28505b261ecSmrg 28635c4bbdfSmrgint 28735c4bbdfSmrg ProcXFixesDestroyPointerBarrier(ClientPtr client); 28835c4bbdfSmrg 28935c4bbdfSmrgint 29035c4bbdfSmrg SProcXFixesDestroyPointerBarrier(ClientPtr client); 29135c4bbdfSmrg 292ed6184dfSmrg/* Version 6 */ 293ed6184dfSmrg 294ed6184dfSmrgBool 295ed6184dfSmrg XFixesClientDisconnectInit(void); 296ed6184dfSmrg 297ed6184dfSmrgint 298ed6184dfSmrg ProcXFixesSetClientDisconnectMode(ClientPtr client); 299ed6184dfSmrg 300ed6184dfSmrgint 301ed6184dfSmrg ProcXFixesGetClientDisconnectMode(ClientPtr client); 302ed6184dfSmrg 303ed6184dfSmrgint 304ed6184dfSmrg SProcXFixesSetClientDisconnectMode(ClientPtr client); 305ed6184dfSmrg 306ed6184dfSmrgint 307ed6184dfSmrg SProcXFixesGetClientDisconnectMode(ClientPtr client); 308ed6184dfSmrg 309ed6184dfSmrgBool 310ed6184dfSmrg XFixesShouldDisconnectClient(ClientPtr client); 311ed6184dfSmrg 31235c4bbdfSmrg/* Xinerama */ 31335c4bbdfSmrg#ifdef PANORAMIX 31435c4bbdfSmrgextern int (*PanoramiXSaveXFixesVector[XFixesNumberRequests]) (ClientPtr); 31535c4bbdfSmrgvoid PanoramiXFixesInit(void); 31635c4bbdfSmrgvoid PanoramiXFixesReset(void); 31735c4bbdfSmrg#endif 3189ace9065Smrg 31935c4bbdfSmrg#endif /* _XFIXESINT_H_ */ 320