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