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