From b083c691fe7707146f728e563247a18aa601c19b Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Sat, 31 Jul 2004 05:50:39 +0000 Subject: Bring in Xfixes, Xdamage, and Xcomposite userland from xserver CVS: - Update Xfixes headers to protocol major version 3. - Add composite headers. - Add libXfixes, libXdamage, and libXcomposite. - Add imake glue for new libraries, but leave Composite off by default until issues are resolved. --- include/X11/extensions/Xfixes.h | 220 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 include/X11/extensions/Xfixes.h (limited to 'include/X11') diff --git a/include/X11/extensions/Xfixes.h b/include/X11/extensions/Xfixes.h new file mode 100644 index 0000000..b14e046 --- /dev/null +++ b/include/X11/extensions/Xfixes.h @@ -0,0 +1,220 @@ +/* + * $XFree86: xc/lib/Xfixes/Xfixes.h,v 1.1 2002/11/30 06:21:45 keithp Exp $ + * + * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Keith Packard not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. Keith Packard makes no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef _XFIXES_H_ +#define _XFIXES_H_ + +#include + +#include + +/* + * This revision number also appears in configure.ac, they have + * to be manually synchronized + */ +#define XFIXES_REVISION 0 +#define XFIXES_VERSION ((XFIXES_MAJOR * 10000) + (XFIXES_MINOR * 100) + (XFIXES_REVISION)) + +typedef struct { + int type; /* event base */ + unsigned long serial; + Bool send_event; + Display *display; + Window window; + int subtype; + Window owner; + Atom selection; + Time timestamp; + Time selection_timestamp; +} XFixesSelectionNotifyEvent; + +typedef struct { + int type; /* event base */ + unsigned long serial; + Bool send_event; + Display *display; + Window window; + int subtype; + unsigned long cursor_serial; + Time timestamp; + Atom cursor_name; +} XFixesCursorNotifyEvent; + +typedef struct { + short x, y; + unsigned short width, height; + unsigned short xhot, yhot; + unsigned long cursor_serial; + unsigned long *pixels; +#if XFIXES_MAJOR >= 2 + Atom atom; /* Version >= 2 only */ + const char *name; /* Version >= 2 only */ +#endif +} XFixesCursorImage; + +#if XFIXES_MAJOR >= 2 +/* Version 2 types */ + +typedef XID XserverRegion; + +typedef struct { + short x, y; + unsigned short width, height; + unsigned short xhot, yhot; + unsigned long cursor_serial; + unsigned long *pixels; + Atom atom; + const char *name; +} XFixesCursorImageAndName; + +#endif + +_XFUNCPROTOBEGIN + +Bool XFixesQueryExtension (Display *dpy, int *event_basep, int *error_basep); +Status XFixesQueryVersion (Display *dpy, + int *major_versionp, + int *minor_versionp); + +int XFixesVersion (void); + +void +XFixesChangeSaveSet (Display *dpy, + Window win, + int mode, + int target, + int map); + +void +XFixesSelectSelectionInput (Display *dpy, + Window win, + Atom selection, + unsigned long eventMask); + +void +XFixesSelectCursorInput (Display *dpy, + Window win, + unsigned long eventMask); + +XFixesCursorImage * +XFixesGetCursorImage (Display *dpy); + +#if XFIXES_MAJOR >= 2 +/* Version 2 functions */ + +XserverRegion +XFixesCreateRegion (Display *dpy, XRectangle *rectangles, int nrectangles); + +XserverRegion +XFixesCreateRegionFromBitmap (Display *dpy, Pixmap bitmap); + +XserverRegion +XFixesCreateRegionFromWindow (Display *dpy, Window window, int kind); + +XserverRegion +XFixesCreateRegionFromGC (Display *dpy, GC gc); + +XserverRegion +XFixesCreateRegionFromPicture (Display *dpy, XID picture); + +void +XFixesDestroyRegion (Display *dpy, XserverRegion region); + +void +XFixesSetRegion (Display *dpy, XserverRegion region, + XRectangle *rectangles, int nrectangles); + +void +XFixesCopyRegion (Display *dpy, XserverRegion dst, XserverRegion src); + +void +XFixesUnionRegion (Display *dpy, XserverRegion dst, + XserverRegion src1, XserverRegion src2); + +void +XFixesIntersectRegion (Display *dpy, XserverRegion dst, + XserverRegion src1, XserverRegion src2); + +void +XFixesSubtractRegion (Display *dpy, XserverRegion dst, + XserverRegion src1, XserverRegion src2); + +void +XFixesInvertRegion (Display *dpy, XserverRegion dst, + XRectangle *rect, XserverRegion src); + +void +XFixesTranslateRegion (Display *dpy, XserverRegion region, int dx, int dy); + +void +XFixesRegionExtents (Display *dpy, XserverRegion dst, XserverRegion src); + +XRectangle * +XFixesFetchRegion (Display *dpy, XserverRegion region, int *nrectanglesRet); + +XRectangle * +XFixesFetchRegionAndBounds (Display *dpy, XserverRegion region, + int *nrectanglesRet, + XRectangle *bounds); + +void +XFixesSetGCClipRegion (Display *dpy, GC gc, + int clip_x_origin, int clip_y_origin, + XserverRegion region); + +void +XFixesSetWindowShapeRegion (Display *dpy, Window win, int shape_kind, + int x_off, int y_off, XserverRegion region); + +void +XFixesSetPictureClipRegion (Display *dpy, XID picture, + int clip_x_origin, int clip_y_origin, + XserverRegion region); + +void +XFixesSetCursorName (Display *dpy, Cursor cursor, const char *name); + +const char * +XFixesGetCursorName (Display *dpy, Cursor cursor, Atom *atom); + +void +XFixesChangeCursor (Display *dpy, Cursor source, Cursor destination); + +void +XFixesChangeCursorByName (Display *dpy, Cursor source, const char *name); + +#endif /* XFIXES_MAJOR >= 2 */ + +#if XFIXES_MAJOR >= 3 + +void +XFixesExpandRegion (Display *dpy, XserverRegion dst, XserverRegion src, + unsigned left, unsigned right, + unsigned top, unsigned bottom); + +#endif /* XFIXES_MAJOR >= 3 */ + +_XFUNCPROTOEND + +#endif /* _XFIXES_H_ */ -- cgit v1.2.3