1485f0483Smrg/************************************************************
2485f0483Smrg
3485f0483SmrgCopyright 1989, 1998  The Open Group
4485f0483Smrg
5485f0483SmrgPermission to use, copy, modify, distribute, and sell this software and its
6485f0483Smrgdocumentation for any purpose is hereby granted without fee, provided that
7485f0483Smrgthe above copyright notice appear in all copies and that both that
8485f0483Smrgcopyright notice and this permission notice appear in supporting
9485f0483Smrgdocumentation.
10485f0483Smrg
11485f0483SmrgThe above copyright notice and this permission notice shall be included in
12485f0483Smrgall copies or substantial portions of the Software.
13485f0483Smrg
14485f0483SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15485f0483SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16485f0483SmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
17485f0483SmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18485f0483SmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19485f0483SmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20485f0483Smrg
21485f0483SmrgExcept as contained in this notice, the name of The Open Group shall not be
22485f0483Smrgused in advertising or otherwise to promote the sale, use or other dealings
23485f0483Smrgin this Software without prior written authorization from The Open Group.
24485f0483Smrg
25485f0483Smrg********************************************************/
26485f0483Smrg
27485f0483Smrg#ifndef _SHAPE_H_
28485f0483Smrg#define _SHAPE_H_
29485f0483Smrg
30485f0483Smrg#include <X11/Xfuncproto.h>
31485f0483Smrg#include <X11/extensions/shapeconst.h>
32485f0483Smrg
33485f0483Smrg#ifndef _SHAPE_SERVER_
34485f0483Smrg#include <X11/Xutil.h>
35485f0483Smrg
36485f0483Smrgtypedef struct {
37485f0483Smrg    int	type;		    /* of event */
38485f0483Smrg    unsigned long serial;   /* # of last request processed by server */
390760f5d2Smrg    Bool send_event;	    /* true if this came from a SendEvent request */
40485f0483Smrg    Display *display;	    /* Display the event was read from */
41485f0483Smrg    Window window;	    /* window of event */
42485f0483Smrg    int kind;		    /* ShapeBounding or ShapeClip */
43485f0483Smrg    int x, y;		    /* extents of new region */
44485f0483Smrg    unsigned width, height;
45485f0483Smrg    Time time;		    /* server timestamp when region changed */
46485f0483Smrg    Bool shaped;	    /* true if the region exists */
47485f0483Smrg} XShapeEvent;
48485f0483Smrg
49485f0483Smrg_XFUNCPROTOBEGIN
50485f0483Smrg
51485f0483Smrgextern Bool XShapeQueryExtension (
52485f0483Smrg    Display*	/* display */,
53485f0483Smrg    int*	/* event_base */,
54485f0483Smrg    int*	/* error_base */
55485f0483Smrg);
56485f0483Smrg
57485f0483Smrgextern Status XShapeQueryVersion (
58485f0483Smrg    Display*	/* display */,
59485f0483Smrg    int*	/* major_version */,
60485f0483Smrg    int*	/* minor_version */
61485f0483Smrg);
62485f0483Smrg
63485f0483Smrgextern void XShapeCombineRegion (
64485f0483Smrg    Display*	/* display */,
65485f0483Smrg    Window	/* dest */,
66485f0483Smrg    int		/* dest_kind */,
67485f0483Smrg    int		/* x_off */,
68485f0483Smrg    int		/* y_off */,
69485f0483Smrg    Region	/* region */,
70485f0483Smrg    int		/* op */
71485f0483Smrg);
72485f0483Smrg
73485f0483Smrgextern void XShapeCombineRectangles (
74485f0483Smrg    Display*	/* display */,
75485f0483Smrg    Window	/* dest */,
76485f0483Smrg    int		/* dest_kind */,
77485f0483Smrg    int		/* x_off */,
78485f0483Smrg    int		/* y_off */,
79485f0483Smrg    XRectangle*	/* rectangles */,
80485f0483Smrg    int		/* n_rects */,
81485f0483Smrg    int		/* op */,
82485f0483Smrg    int		/* ordering */
83485f0483Smrg);
84485f0483Smrg
85485f0483Smrgextern void XShapeCombineMask (
86485f0483Smrg    Display*	/* display */,
87485f0483Smrg    Window	/* dest */,
88485f0483Smrg    int		/* dest_kind */,
89485f0483Smrg    int		/* x_off */,
90485f0483Smrg    int		/* y_off */,
91485f0483Smrg    Pixmap	/* src */,
92485f0483Smrg    int		/* op */
93485f0483Smrg);
94485f0483Smrg
95485f0483Smrgextern void XShapeCombineShape (
96485f0483Smrg    Display*	/* display */,
97485f0483Smrg    Window	/* dest */,
98485f0483Smrg    int		/* dest_kind */,
99485f0483Smrg    int		/* x_off */,
100485f0483Smrg    int		/* y_off */,
101485f0483Smrg    Window	/* src */,
102485f0483Smrg    int		/* src_kind */,
103485f0483Smrg    int		/* op */
104485f0483Smrg);
105485f0483Smrg
106485f0483Smrgextern void XShapeOffsetShape (
107485f0483Smrg    Display*	/* display */,
108485f0483Smrg    Window	/* dest */,
109485f0483Smrg    int		/* dest_kind */,
110485f0483Smrg    int		/* x_off */,
111485f0483Smrg    int		/* y_off */
112485f0483Smrg);
113485f0483Smrg
114485f0483Smrgextern Status XShapeQueryExtents (
115485f0483Smrg    Display*		/* display */,
116485f0483Smrg    Window		/* window */,
117485f0483Smrg    Bool*		/* bounding_shaped */,
118485f0483Smrg    int*		/* x_bounding */,
119485f0483Smrg    int*		/* y_bounding */,
120485f0483Smrg    unsigned int*	/* w_bounding */,
121485f0483Smrg    unsigned int*	/* h_bounding */,
122485f0483Smrg    Bool*		/* clip_shaped */,
123485f0483Smrg    int*		/* x_clip */,
124485f0483Smrg    int*		/* y_clip */,
125485f0483Smrg    unsigned int*	/* w_clip */,
126485f0483Smrg    unsigned int*	/* h_clip */
127485f0483Smrg);
128485f0483Smrg
129485f0483Smrgextern void XShapeSelectInput (
130485f0483Smrg    Display*		/* display */,
131485f0483Smrg    Window		/* window */,
132485f0483Smrg    unsigned long	/* mask */
133485f0483Smrg);
134485f0483Smrg
135485f0483Smrgextern unsigned long XShapeInputSelected (
136485f0483Smrg    Display*	/* display */,
137485f0483Smrg    Window	/* window */
138485f0483Smrg);
139485f0483Smrg
140485f0483Smrgextern XRectangle *XShapeGetRectangles (
141485f0483Smrg    Display*	/* display */,
142485f0483Smrg    Window	/* window */,
143485f0483Smrg    int		/* kind */,
144485f0483Smrg    int*	/* count */,
145485f0483Smrg    int*	/* ordering */
146485f0483Smrg);
147485f0483Smrg
148485f0483Smrg_XFUNCPROTOEND
149485f0483Smrg
150485f0483Smrg#endif /* !_SHAPE_SERVER_ */
151485f0483Smrg
152485f0483Smrg#endif /* _SHAPE_H_ */
153