blob: 8cab50e7db092489b8d1c9d3b63763c75bd935d5 [file] [log] [blame]
Lingfeng Yanga2a3b0f2020-11-04 11:50:46 -08001
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_Level5_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_ */