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