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