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