Xutil.h revision eb411b4b
1
2/***********************************************************
3
4Copyright 1987, 1998  The Open Group
5
6Permission to use, copy, modify, distribute, and sell this software and its
7documentation for any purpose is hereby granted without fee, provided that
8the above copyright notice appear in all copies and that both that
9copyright notice and this permission notice appear in supporting
10documentation.
11
12The above copyright notice and this permission notice shall be included in
13all copies or substantial portions of the Software.
14
15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
18OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
19AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
22Except as contained in this notice, the name of The Open Group shall not be
23used in advertising or otherwise to promote the sale, use or other dealings
24in this Software without prior written authorization from The Open Group.
25
26
27Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
28
29                        All Rights Reserved
30
31Permission to use, copy, modify, and distribute this software and its
32documentation for any purpose and without fee is hereby granted,
33provided that the above copyright notice appear in all copies and that
34both that copyright notice and this permission notice appear in
35supporting documentation, and that the name of Digital not be
36used in advertising or publicity pertaining to distribution of the
37software without specific, written prior permission.
38
39DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
40ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
41DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
42ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
43WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
44ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
45SOFTWARE.
46
47******************************************************************/
48
49#ifndef _X11_XUTIL_H_
50#define _X11_XUTIL_H_
51
52/* You must include <X11/Xlib.h> before including this file */
53#include <X11/Xlib.h>
54#include <X11/keysym.h>
55
56/* The Xlib structs are full of implicit padding to properly align members.
57   We can't clean that up without breaking ABI, so tell clang not to bother
58   complaining about it. */
59#ifdef __clang__
60#pragma clang diagnostic push
61#pragma clang diagnostic ignored "-Wpadded"
62#endif
63
64/*
65 * Bitmask returned by XParseGeometry().  Each bit tells if the corresponding
66 * value (x, y, width, height) was found in the parsed string.
67 */
68#define NoValue		0x0000
69#define XValue  	0x0001
70#define YValue		0x0002
71#define WidthValue  	0x0004
72#define HeightValue  	0x0008
73#define AllValues 	0x000F
74#define XNegative 	0x0010
75#define YNegative 	0x0020
76
77/*
78 * new version containing base_width, base_height, and win_gravity fields;
79 * used with WM_NORMAL_HINTS.
80 */
81typedef struct {
82    	long flags;	/* marks which fields in this structure are defined */
83	int x, y;		/* obsolete for new window mgrs, but clients */
84	int width, height;	/* should set so old wm's don't mess up */
85	int min_width, min_height;
86	int max_width, max_height;
87    	int width_inc, height_inc;
88	struct {
89		int x;	/* numerator */
90		int y;	/* denominator */
91	} min_aspect, max_aspect;
92	int base_width, base_height;		/* added by ICCCM version 1 */
93	int win_gravity;			/* added by ICCCM version 1 */
94} XSizeHints;
95
96/*
97 * The next block of definitions are for window manager properties that
98 * clients and applications use for communication.
99 */
100
101/* flags argument in size hints */
102#define USPosition	(1L << 0) /* user specified x, y */
103#define USSize		(1L << 1) /* user specified width, height */
104
105#define PPosition	(1L << 2) /* program specified position */
106#define PSize		(1L << 3) /* program specified size */
107#define PMinSize	(1L << 4) /* program specified minimum size */
108#define PMaxSize	(1L << 5) /* program specified maximum size */
109#define PResizeInc	(1L << 6) /* program specified resize increments */
110#define PAspect		(1L << 7) /* program specified min and max aspect ratios */
111#define PBaseSize	(1L << 8) /* program specified base for incrementing */
112#define PWinGravity	(1L << 9) /* program specified window gravity */
113
114/* obsolete */
115#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect)
116
117
118
119typedef struct {
120	long flags;	/* marks which fields in this structure are defined */
121	Bool input;	/* does this application rely on the window manager to
122			get keyboard input? */
123	int initial_state;	/* see below */
124	Pixmap icon_pixmap;	/* pixmap to be used as icon */
125	Window icon_window; 	/* window to be used as icon */
126	int icon_x, icon_y; 	/* initial position of icon */
127	Pixmap icon_mask;	/* icon mask bitmap */
128	XID window_group;	/* id of related window group */
129	/* this structure may be extended in the future */
130} XWMHints;
131
132/* definition for flags of XWMHints */
133
134#define InputHint 		(1L << 0)
135#define StateHint 		(1L << 1)
136#define IconPixmapHint		(1L << 2)
137#define IconWindowHint		(1L << 3)
138#define IconPositionHint 	(1L << 4)
139#define IconMaskHint		(1L << 5)
140#define WindowGroupHint		(1L << 6)
141#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \
142IconPositionHint|IconMaskHint|WindowGroupHint)
143#define XUrgencyHint		(1L << 8)
144
145/* definitions for initial window state */
146#define WithdrawnState 0	/* for windows that are not mapped */
147#define NormalState 1	/* most applications want to start this way */
148#define IconicState 3	/* application wants to start as an icon */
149
150/*
151 * Obsolete states no longer defined by ICCCM
152 */
153#define DontCareState 0	/* don't know or care */
154#define ZoomState 2	/* application wants to start zoomed */
155#define InactiveState 4	/* application believes it is seldom used; */
156			/* some wm's may put it on inactive menu */
157
158
159/*
160 * new structure for manipulating TEXT properties; used with WM_NAME,
161 * WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND.
162 */
163typedef struct {
164    unsigned char *value;		/* same as Property routines */
165    Atom encoding;			/* prop type */
166    int format;				/* prop data format: 8, 16, or 32 */
167    unsigned long nitems;		/* number of data items in value */
168} XTextProperty;
169
170#define XNoMemory -1
171#define XLocaleNotSupported -2
172#define XConverterNotFound -3
173
174typedef enum {
175    XStringStyle,		/* STRING */
176    XCompoundTextStyle,		/* COMPOUND_TEXT */
177    XTextStyle,			/* text in owner's encoding (current locale)*/
178    XStdICCTextStyle,		/* STRING, else COMPOUND_TEXT */
179    /* The following is an XFree86 extension, introduced in November 2000 */
180    XUTF8StringStyle		/* UTF8_STRING */
181} XICCEncodingStyle;
182
183typedef struct {
184	int min_width, min_height;
185	int max_width, max_height;
186	int width_inc, height_inc;
187} XIconSize;
188
189typedef struct {
190	char *res_name;
191	char *res_class;
192} XClassHint;
193
194#ifdef XUTIL_DEFINE_FUNCTIONS
195extern int XDestroyImage(
196        XImage *ximage);
197extern unsigned long XGetPixel(
198        XImage *ximage,
199        int x, int y);
200extern int XPutPixel(
201        XImage *ximage,
202        int x, int y,
203        unsigned long pixel);
204extern XImage *XSubImage(
205        XImage *ximage,
206        int x, int y,
207        unsigned int width, unsigned int height);
208extern int XAddPixel(
209        XImage *ximage,
210        long value);
211#else
212/*
213 * These macros are used to give some sugar to the image routines so that
214 * naive people are more comfortable with them.
215 */
216#define XDestroyImage(ximage) \
217	((*((ximage)->f.destroy_image))((ximage)))
218#define XGetPixel(ximage, x, y) \
219	((*((ximage)->f.get_pixel))((ximage), (x), (y)))
220#define XPutPixel(ximage, x, y, pixel) \
221	((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)))
222#define XSubImage(ximage, x, y, width, height)  \
223	((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height)))
224#define XAddPixel(ximage, value) \
225	((*((ximage)->f.add_pixel))((ximage), (value)))
226#endif
227
228/*
229 * Compose sequence status structure, used in calling XLookupString.
230 */
231typedef struct _XComposeStatus {
232    XPointer compose_ptr;	/* state table pointer */
233    int chars_matched;		/* match state */
234} XComposeStatus;
235
236/*
237 * Keysym macros, used on Keysyms to test for classes of symbols
238 */
239#define IsKeypadKey(keysym) \
240  (((KeySym)(keysym) >= XK_KP_Space) && ((KeySym)(keysym) <= XK_KP_Equal))
241
242#define IsPrivateKeypadKey(keysym) \
243  (((KeySym)(keysym) >= 0x11000000) && ((KeySym)(keysym) <= 0x1100FFFF))
244
245#define IsCursorKey(keysym) \
246  (((KeySym)(keysym) >= XK_Home)     && ((KeySym)(keysym) <  XK_Select))
247
248#define IsPFKey(keysym) \
249  (((KeySym)(keysym) >= XK_KP_F1)     && ((KeySym)(keysym) <= XK_KP_F4))
250
251#define IsFunctionKey(keysym) \
252  (((KeySym)(keysym) >= XK_F1)       && ((KeySym)(keysym) <= XK_F35))
253
254#define IsMiscFunctionKey(keysym) \
255  (((KeySym)(keysym) >= XK_Select)   && ((KeySym)(keysym) <= XK_Break))
256
257#ifdef XK_XKB_KEYS
258#define IsModifierKey(keysym) \
259  ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
260   || (((KeySym)(keysym) >= XK_ISO_Lock) && \
261       ((KeySym)(keysym) <= XK_ISO_Level5_Lock)) \
262   || ((KeySym)(keysym) == XK_Mode_switch) \
263   || ((KeySym)(keysym) == XK_Num_Lock))
264#else
265#define IsModifierKey(keysym) \
266  ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
267   || ((KeySym)(keysym) == XK_Mode_switch) \
268   || ((KeySym)(keysym) == XK_Num_Lock))
269#endif
270/*
271 * opaque reference to Region data type
272 */
273typedef struct _XRegion *Region;
274
275/* Return values from XRectInRegion() */
276
277#define RectangleOut 0
278#define RectangleIn  1
279#define RectanglePart 2
280
281
282/*
283 * Information used by the visual utility routines to find desired visual
284 * type from the many visuals a display may support.
285 */
286
287typedef struct {
288  Visual *visual;
289  VisualID visualid;
290  int screen;
291  int depth;
292#if defined(__cplusplus) || defined(c_plusplus)
293  int c_class;					/* C++ */
294#else
295  int class;
296#endif
297  unsigned long red_mask;
298  unsigned long green_mask;
299  unsigned long blue_mask;
300  int colormap_size;
301  int bits_per_rgb;
302} XVisualInfo;
303
304#define VisualNoMask		0x0
305#define VisualIDMask 		0x1
306#define VisualScreenMask	0x2
307#define VisualDepthMask		0x4
308#define VisualClassMask		0x8
309#define VisualRedMaskMask	0x10
310#define VisualGreenMaskMask	0x20
311#define VisualBlueMaskMask	0x40
312#define VisualColormapSizeMask	0x80
313#define VisualBitsPerRGBMask	0x100
314#define VisualAllMask		0x1FF
315
316/*
317 * This defines a window manager property that clients may use to
318 * share standard color maps of type RGB_COLOR_MAP:
319 */
320typedef struct {
321	Colormap colormap;
322	unsigned long red_max;
323	unsigned long red_mult;
324	unsigned long green_max;
325	unsigned long green_mult;
326	unsigned long blue_max;
327	unsigned long blue_mult;
328	unsigned long base_pixel;
329	VisualID visualid;		/* added by ICCCM version 1 */
330	XID killid;			/* added by ICCCM version 1 */
331} XStandardColormap;
332
333#define ReleaseByFreeingColormap ((XID) 1L)  /* for killid field above */
334
335
336/*
337 * return codes for XReadBitmapFile and XWriteBitmapFile
338 */
339#define BitmapSuccess		0
340#define BitmapOpenFailed 	1
341#define BitmapFileInvalid 	2
342#define BitmapNoMemory		3
343
344/****************************************************************
345 *
346 * Context Management
347 *
348 ****************************************************************/
349
350
351/* Associative lookup table return codes */
352
353#define XCSUCCESS 0	/* No error. */
354#define XCNOMEM   1    /* Out of memory */
355#define XCNOENT   2    /* No entry in table */
356
357typedef int XContext;
358
359#define XUniqueContext()       ((XContext) XrmUniqueQuark())
360#define XStringToContext(string)   ((XContext) XrmStringToQuark(string))
361
362_XFUNCPROTOBEGIN
363
364/* The following declarations are alphabetized. */
365
366extern XClassHint *XAllocClassHint (
367    void
368);
369
370extern XIconSize *XAllocIconSize (
371    void
372);
373
374extern XSizeHints *XAllocSizeHints (
375    void
376);
377
378extern XStandardColormap *XAllocStandardColormap (
379    void
380);
381
382extern XWMHints *XAllocWMHints (
383    void
384);
385
386extern int XClipBox(
387    Region		/* r */,
388    XRectangle*		/* rect_return */
389);
390
391extern Region XCreateRegion(
392    void
393);
394
395extern const char *XDefaultString (void);
396
397extern int XDeleteContext(
398    Display*		/* display */,
399    XID			/* rid */,
400    XContext		/* context */
401);
402
403extern int XDestroyRegion(
404    Region		/* r */
405);
406
407extern int XEmptyRegion(
408    Region		/* r */
409);
410
411extern int XEqualRegion(
412    Region		/* r1 */,
413    Region		/* r2 */
414);
415
416extern int XFindContext(
417    Display*		/* display */,
418    XID			/* rid */,
419    XContext		/* context */,
420    XPointer*		/* data_return */
421);
422
423extern Status XGetClassHint(
424    Display*		/* display */,
425    Window		/* w */,
426    XClassHint*		/* class_hints_return */
427);
428
429extern Status XGetIconSizes(
430    Display*		/* display */,
431    Window		/* w */,
432    XIconSize**		/* size_list_return */,
433    int*		/* count_return */
434);
435
436extern Status XGetNormalHints(
437    Display*		/* display */,
438    Window		/* w */,
439    XSizeHints*		/* hints_return */
440);
441
442extern Status XGetRGBColormaps(
443    Display*		/* display */,
444    Window		/* w */,
445    XStandardColormap** /* stdcmap_return */,
446    int*		/* count_return */,
447    Atom		/* property */
448);
449
450extern Status XGetSizeHints(
451    Display*		/* display */,
452    Window		/* w */,
453    XSizeHints*		/* hints_return */,
454    Atom		/* property */
455);
456
457extern Status XGetStandardColormap(
458    Display*		/* display */,
459    Window		/* w */,
460    XStandardColormap*	/* colormap_return */,
461    Atom		/* property */
462);
463
464extern Status XGetTextProperty(
465    Display*		/* display */,
466    Window		/* window */,
467    XTextProperty*	/* text_prop_return */,
468    Atom		/* property */
469);
470
471extern XVisualInfo *XGetVisualInfo(
472    Display*		/* display */,
473    long		/* vinfo_mask */,
474    XVisualInfo*	/* vinfo_template */,
475    int*		/* nitems_return */
476);
477
478extern Status XGetWMClientMachine(
479    Display*		/* display */,
480    Window		/* w */,
481    XTextProperty*	/* text_prop_return */
482);
483
484extern XWMHints *XGetWMHints(
485    Display*		/* display */,
486    Window		/* w */
487);
488
489extern Status XGetWMIconName(
490    Display*		/* display */,
491    Window		/* w */,
492    XTextProperty*	/* text_prop_return */
493);
494
495extern Status XGetWMName(
496    Display*		/* display */,
497    Window		/* w */,
498    XTextProperty*	/* text_prop_return */
499);
500
501extern Status XGetWMNormalHints(
502    Display*		/* display */,
503    Window		/* w */,
504    XSizeHints*		/* hints_return */,
505    long*		/* supplied_return */
506);
507
508extern Status XGetWMSizeHints(
509    Display*		/* display */,
510    Window		/* w */,
511    XSizeHints*		/* hints_return */,
512    long*		/* supplied_return */,
513    Atom		/* property */
514);
515
516extern Status XGetZoomHints(
517    Display*		/* display */,
518    Window		/* w */,
519    XSizeHints*		/* zhints_return */
520);
521
522extern int XIntersectRegion(
523    Region		/* sra */,
524    Region		/* srb */,
525    Region		/* dr_return */
526);
527
528extern void XConvertCase(
529    KeySym		/* sym */,
530    KeySym*		/* lower */,
531    KeySym*		/* upper */
532);
533
534extern int XLookupString(
535    XKeyEvent*		/* event_struct */,
536    char*		/* buffer_return */,
537    int			/* bytes_buffer */,
538    KeySym*		/* keysym_return */,
539    XComposeStatus*	/* status_in_out */
540);
541
542extern Status XMatchVisualInfo(
543    Display*		/* display */,
544    int			/* screen */,
545    int			/* depth */,
546    int			/* class */,
547    XVisualInfo*	/* vinfo_return */
548);
549
550extern int XOffsetRegion(
551    Region		/* r */,
552    int			/* dx */,
553    int			/* dy */
554);
555
556extern Bool XPointInRegion(
557    Region		/* r */,
558    int			/* x */,
559    int			/* y */
560);
561
562extern Region XPolygonRegion(
563    XPoint*		/* points */,
564    int			/* n */,
565    int			/* fill_rule */
566);
567
568extern int XRectInRegion(
569    Region		/* r */,
570    int			/* x */,
571    int			/* y */,
572    unsigned int	/* width */,
573    unsigned int	/* height */
574);
575
576extern int XSaveContext(
577    Display*		/* display */,
578    XID			/* rid */,
579    XContext		/* context */,
580    _Xconst char*	/* data */
581);
582
583extern int XSetClassHint(
584    Display*		/* display */,
585    Window		/* w */,
586    XClassHint*		/* class_hints */
587);
588
589extern int XSetIconSizes(
590    Display*		/* display */,
591    Window		/* w */,
592    XIconSize*		/* size_list */,
593    int			/* count */
594);
595
596extern int XSetNormalHints(
597    Display*		/* display */,
598    Window		/* w */,
599    XSizeHints*		/* hints */
600);
601
602extern void XSetRGBColormaps(
603    Display*		/* display */,
604    Window		/* w */,
605    XStandardColormap*	/* stdcmaps */,
606    int			/* count */,
607    Atom		/* property */
608);
609
610extern int XSetSizeHints(
611    Display*		/* display */,
612    Window		/* w */,
613    XSizeHints*		/* hints */,
614    Atom		/* property */
615);
616
617extern int XSetStandardProperties(
618    Display*		/* display */,
619    Window		/* w */,
620    _Xconst char*	/* window_name */,
621    _Xconst char*	/* icon_name */,
622    Pixmap		/* icon_pixmap */,
623    char**		/* argv */,
624    int			/* argc */,
625    XSizeHints*		/* hints */
626);
627
628extern void XSetTextProperty(
629    Display*		/* display */,
630    Window		/* w */,
631    XTextProperty*	/* text_prop */,
632    Atom		/* property */
633);
634
635extern void XSetWMClientMachine(
636    Display*		/* display */,
637    Window		/* w */,
638    XTextProperty*	/* text_prop */
639);
640
641extern int XSetWMHints(
642    Display*		/* display */,
643    Window		/* w */,
644    XWMHints*		/* wm_hints */
645);
646
647extern void XSetWMIconName(
648    Display*		/* display */,
649    Window		/* w */,
650    XTextProperty*	/* text_prop */
651);
652
653extern void XSetWMName(
654    Display*		/* display */,
655    Window		/* w */,
656    XTextProperty*	/* text_prop */
657);
658
659extern void XSetWMNormalHints(
660    Display*		/* display */,
661    Window		/* w */,
662    XSizeHints*		/* hints */
663);
664
665extern void XSetWMProperties(
666    Display*		/* display */,
667    Window		/* w */,
668    XTextProperty*	/* window_name */,
669    XTextProperty*	/* icon_name */,
670    char**		/* argv */,
671    int			/* argc */,
672    XSizeHints*		/* normal_hints */,
673    XWMHints*		/* wm_hints */,
674    XClassHint*		/* class_hints */
675);
676
677extern void XmbSetWMProperties(
678    Display*		/* display */,
679    Window		/* w */,
680    _Xconst char*	/* window_name */,
681    _Xconst char*	/* icon_name */,
682    char**		/* argv */,
683    int			/* argc */,
684    XSizeHints*		/* normal_hints */,
685    XWMHints*		/* wm_hints */,
686    XClassHint*		/* class_hints */
687);
688
689extern void Xutf8SetWMProperties(
690    Display*		/* display */,
691    Window		/* w */,
692    _Xconst char*	/* window_name */,
693    _Xconst char*	/* icon_name */,
694    char**		/* argv */,
695    int			/* argc */,
696    XSizeHints*		/* normal_hints */,
697    XWMHints*		/* wm_hints */,
698    XClassHint*		/* class_hints */
699);
700
701extern void XSetWMSizeHints(
702    Display*		/* display */,
703    Window		/* w */,
704    XSizeHints*		/* hints */,
705    Atom		/* property */
706);
707
708extern int XSetRegion(
709    Display*		/* display */,
710    GC			/* gc */,
711    Region		/* r */
712);
713
714extern void XSetStandardColormap(
715    Display*		/* display */,
716    Window		/* w */,
717    XStandardColormap*	/* colormap */,
718    Atom		/* property */
719);
720
721extern int XSetZoomHints(
722    Display*		/* display */,
723    Window		/* w */,
724    XSizeHints*		/* zhints */
725);
726
727extern int XShrinkRegion(
728    Region		/* r */,
729    int			/* dx */,
730    int			/* dy */
731);
732
733extern Status XStringListToTextProperty(
734    char**		/* list */,
735    int			/* count */,
736    XTextProperty*	/* text_prop_return */
737);
738
739extern int XSubtractRegion(
740    Region		/* sra */,
741    Region		/* srb */,
742    Region		/* dr_return */
743);
744
745extern int XmbTextListToTextProperty(
746    Display*		display,
747    char**		list,
748    int			count,
749    XICCEncodingStyle	style,
750    XTextProperty*	text_prop_return
751);
752
753extern int XwcTextListToTextProperty(
754    Display*		display,
755    wchar_t**		list,
756    int			count,
757    XICCEncodingStyle	style,
758    XTextProperty*	text_prop_return
759);
760
761extern int Xutf8TextListToTextProperty(
762    Display*		display,
763    char**		list,
764    int			count,
765    XICCEncodingStyle	style,
766    XTextProperty*	text_prop_return
767);
768
769extern void XwcFreeStringList(
770    wchar_t**		list
771);
772
773extern Status XTextPropertyToStringList(
774    XTextProperty*	/* text_prop */,
775    char***		/* list_return */,
776    int*		/* count_return */
777);
778
779extern int XmbTextPropertyToTextList(
780    Display*		display,
781    const XTextProperty* text_prop,
782    char***		list_return,
783    int*		count_return
784);
785
786extern int XwcTextPropertyToTextList(
787    Display*		display,
788    const XTextProperty* text_prop,
789    wchar_t***		list_return,
790    int*		count_return
791);
792
793extern int Xutf8TextPropertyToTextList(
794    Display*		display,
795    const XTextProperty* text_prop,
796    char***		list_return,
797    int*		count_return
798);
799
800extern int XUnionRectWithRegion(
801    XRectangle*		/* rectangle */,
802    Region		/* src_region */,
803    Region		/* dest_region_return */
804);
805
806extern int XUnionRegion(
807    Region		/* sra */,
808    Region		/* srb */,
809    Region		/* dr_return */
810);
811
812extern int XWMGeometry(
813    Display*		/* display */,
814    int			/* screen_number */,
815    _Xconst char*	/* user_geometry */,
816    _Xconst char*	/* default_geometry */,
817    unsigned int	/* border_width */,
818    XSizeHints*		/* hints */,
819    int*		/* x_return */,
820    int*		/* y_return */,
821    int*		/* width_return */,
822    int*		/* height_return */,
823    int*		/* gravity_return */
824);
825
826extern int XXorRegion(
827    Region		/* sra */,
828    Region		/* srb */,
829    Region		/* dr_return */
830);
831
832#ifdef __clang__
833#pragma clang diagnostic pop
834#endif
835
836_XFUNCPROTOEND
837
838#endif /* _X11_XUTIL_H_ */
839