Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:36

0001 
0002 /***********************************************************
0003 
0004 Copyright 1987, 1998  The Open Group
0005 
0006 Permission to use, copy, modify, distribute, and sell this software and its
0007 documentation for any purpose is hereby granted without fee, provided that
0008 the above copyright notice appear in all copies and that both that
0009 copyright notice and this permission notice appear in supporting
0010 documentation.
0011 
0012 The above copyright notice and this permission notice shall be included in
0013 all copies or substantial portions of the Software.
0014 
0015 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0016 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0017 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
0018 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
0019 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
0020 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0021 
0022 Except as contained in this notice, the name of The Open Group shall not be
0023 used in advertising or otherwise to promote the sale, use or other dealings
0024 in this Software without prior written authorization from The Open Group.
0025 
0026 
0027 Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
0028 
0029                         All Rights Reserved
0030 
0031 Permission to use, copy, modify, and distribute this software and its
0032 documentation for any purpose and without fee is hereby granted,
0033 provided that the above copyright notice appear in all copies and that
0034 both that copyright notice and this permission notice appear in
0035 supporting documentation, and that the name of Digital not be
0036 used in advertising or publicity pertaining to distribution of the
0037 software without specific, written prior permission.
0038 
0039 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
0040 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
0041 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
0042 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
0043 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
0044 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
0045 SOFTWARE.
0046 
0047 ******************************************************************/
0048 
0049 #ifndef _X11_XUTIL_H_
0050 #define _X11_XUTIL_H_
0051 
0052 /* You must include <X11/Xlib.h> before including this file */
0053 #include <X11/Xlib.h>
0054 #include <X11/keysym.h>
0055 
0056 /* The Xlib structs are full of implicit padding to properly align members.
0057    We can't clean that up without breaking ABI, so tell clang not to bother
0058    complaining about it. */
0059 #ifdef __clang__
0060 #pragma clang diagnostic push
0061 #pragma clang diagnostic ignored "-Wpadded"
0062 #endif
0063 
0064 /*
0065  * Bitmask returned by XParseGeometry().  Each bit tells if the corresponding
0066  * value (x, y, width, height) was found in the parsed string.
0067  */
0068 #define NoValue     0x0000
0069 #define XValue      0x0001
0070 #define YValue      0x0002
0071 #define WidthValue      0x0004
0072 #define HeightValue     0x0008
0073 #define AllValues   0x000F
0074 #define XNegative   0x0010
0075 #define YNegative   0x0020
0076 
0077 /*
0078  * new version containing base_width, base_height, and win_gravity fields;
0079  * used with WM_NORMAL_HINTS.
0080  */
0081 typedef struct {
0082         long flags; /* marks which fields in this structure are defined */
0083     int x, y;       /* obsolete for new window mgrs, but clients */
0084     int width, height;  /* should set so old wm's don't mess up */
0085     int min_width, min_height;
0086     int max_width, max_height;
0087         int width_inc, height_inc;
0088     struct {
0089         int x;  /* numerator */
0090         int y;  /* denominator */
0091     } min_aspect, max_aspect;
0092     int base_width, base_height;        /* added by ICCCM version 1 */
0093     int win_gravity;            /* added by ICCCM version 1 */
0094 } XSizeHints;
0095 
0096 /*
0097  * The next block of definitions are for window manager properties that
0098  * clients and applications use for communication.
0099  */
0100 
0101 /* flags argument in size hints */
0102 #define USPosition  (1L << 0) /* user specified x, y */
0103 #define USSize      (1L << 1) /* user specified width, height */
0104 
0105 #define PPosition   (1L << 2) /* program specified position */
0106 #define PSize       (1L << 3) /* program specified size */
0107 #define PMinSize    (1L << 4) /* program specified minimum size */
0108 #define PMaxSize    (1L << 5) /* program specified maximum size */
0109 #define PResizeInc  (1L << 6) /* program specified resize increments */
0110 #define PAspect     (1L << 7) /* program specified min and max aspect ratios */
0111 #define PBaseSize   (1L << 8) /* program specified base for incrementing */
0112 #define PWinGravity (1L << 9) /* program specified window gravity */
0113 
0114 /* obsolete */
0115 #define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect)
0116 
0117 
0118 
0119 typedef struct {
0120     long flags; /* marks which fields in this structure are defined */
0121     Bool input; /* does this application rely on the window manager to
0122             get keyboard input? */
0123     int initial_state;  /* see below */
0124     Pixmap icon_pixmap; /* pixmap to be used as icon */
0125     Window icon_window;     /* window to be used as icon */
0126     int icon_x, icon_y;     /* initial position of icon */
0127     Pixmap icon_mask;   /* icon mask bitmap */
0128     XID window_group;   /* id of related window group */
0129     /* this structure may be extended in the future */
0130 } XWMHints;
0131 
0132 /* definition for flags of XWMHints */
0133 
0134 #define InputHint       (1L << 0)
0135 #define StateHint       (1L << 1)
0136 #define IconPixmapHint      (1L << 2)
0137 #define IconWindowHint      (1L << 3)
0138 #define IconPositionHint    (1L << 4)
0139 #define IconMaskHint        (1L << 5)
0140 #define WindowGroupHint     (1L << 6)
0141 #define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \
0142 IconPositionHint|IconMaskHint|WindowGroupHint)
0143 #define XUrgencyHint        (1L << 8)
0144 
0145 /* definitions for initial window state */
0146 #define WithdrawnState 0    /* for windows that are not mapped */
0147 #define NormalState 1   /* most applications want to start this way */
0148 #define IconicState 3   /* application wants to start as an icon */
0149 
0150 /*
0151  * Obsolete states no longer defined by ICCCM
0152  */
0153 #define DontCareState 0 /* don't know or care */
0154 #define ZoomState 2 /* application wants to start zoomed */
0155 #define InactiveState 4 /* application believes it is seldom used; */
0156             /* some wm's may put it on inactive menu */
0157 
0158 
0159 /*
0160  * new structure for manipulating TEXT properties; used with WM_NAME,
0161  * WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND.
0162  */
0163 typedef struct {
0164     unsigned char *value;       /* same as Property routines */
0165     Atom encoding;          /* prop type */
0166     int format;             /* prop data format: 8, 16, or 32 */
0167     unsigned long nitems;       /* number of data items in value */
0168 } XTextProperty;
0169 
0170 #define XNoMemory -1
0171 #define XLocaleNotSupported -2
0172 #define XConverterNotFound -3
0173 
0174 typedef enum {
0175     XStringStyle,       /* STRING */
0176     XCompoundTextStyle,     /* COMPOUND_TEXT */
0177     XTextStyle,         /* text in owner's encoding (current locale)*/
0178     XStdICCTextStyle,       /* STRING, else COMPOUND_TEXT */
0179     /* The following is an XFree86 extension, introduced in November 2000 */
0180     XUTF8StringStyle        /* UTF8_STRING */
0181 } XICCEncodingStyle;
0182 
0183 typedef struct {
0184     int min_width, min_height;
0185     int max_width, max_height;
0186     int width_inc, height_inc;
0187 } XIconSize;
0188 
0189 typedef struct {
0190     char *res_name;
0191     char *res_class;
0192 } XClassHint;
0193 
0194 #ifdef XUTIL_DEFINE_FUNCTIONS
0195 extern int XDestroyImage(
0196         XImage *ximage);
0197 extern unsigned long XGetPixel(
0198         XImage *ximage,
0199         int x, int y);
0200 extern int XPutPixel(
0201         XImage *ximage,
0202         int x, int y,
0203         unsigned long pixel);
0204 extern XImage *XSubImage(
0205         XImage *ximage,
0206         int x, int y,
0207         unsigned int width, unsigned int height);
0208 extern int XAddPixel(
0209         XImage *ximage,
0210         long value);
0211 #else
0212 /*
0213  * These macros are used to give some sugar to the image routines so that
0214  * naive people are more comfortable with them.
0215  */
0216 #define XDestroyImage(ximage) \
0217     ((*((ximage)->f.destroy_image))((ximage)))
0218 #define XGetPixel(ximage, x, y) \
0219     ((*((ximage)->f.get_pixel))((ximage), (x), (y)))
0220 #define XPutPixel(ximage, x, y, pixel) \
0221     ((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)))
0222 #define XSubImage(ximage, x, y, width, height)  \
0223     ((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height)))
0224 #define XAddPixel(ximage, value) \
0225     ((*((ximage)->f.add_pixel))((ximage), (value)))
0226 #endif
0227 
0228 /*
0229  * Compose sequence status structure, used in calling XLookupString.
0230  */
0231 typedef struct _XComposeStatus {
0232     XPointer compose_ptr;   /* state table pointer */
0233     int chars_matched;      /* match state */
0234 } XComposeStatus;
0235 
0236 /*
0237  * Keysym macros, used on Keysyms to test for classes of symbols
0238  */
0239 #define IsKeypadKey(keysym) \
0240   (((KeySym)(keysym) >= XK_KP_Space) && ((KeySym)(keysym) <= XK_KP_Equal))
0241 
0242 #define IsPrivateKeypadKey(keysym) \
0243   (((KeySym)(keysym) >= 0x11000000) && ((KeySym)(keysym) <= 0x1100FFFF))
0244 
0245 #define IsCursorKey(keysym) \
0246   (((KeySym)(keysym) >= XK_Home)     && ((KeySym)(keysym) <  XK_Select))
0247 
0248 #define IsPFKey(keysym) \
0249   (((KeySym)(keysym) >= XK_KP_F1)     && ((KeySym)(keysym) <= XK_KP_F4))
0250 
0251 #define IsFunctionKey(keysym) \
0252   (((KeySym)(keysym) >= XK_F1)       && ((KeySym)(keysym) <= XK_F35))
0253 
0254 #define IsMiscFunctionKey(keysym) \
0255   (((KeySym)(keysym) >= XK_Select)   && ((KeySym)(keysym) <= XK_Break))
0256 
0257 #ifdef XK_XKB_KEYS
0258 #define IsModifierKey(keysym) \
0259   ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
0260    || (((KeySym)(keysym) >= XK_ISO_Lock) && \
0261        ((KeySym)(keysym) <= XK_ISO_Level5_Lock)) \
0262    || ((KeySym)(keysym) == XK_Mode_switch) \
0263    || ((KeySym)(keysym) == XK_Num_Lock))
0264 #else
0265 #define IsModifierKey(keysym) \
0266   ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
0267    || ((KeySym)(keysym) == XK_Mode_switch) \
0268    || ((KeySym)(keysym) == XK_Num_Lock))
0269 #endif
0270 /*
0271  * opaque reference to Region data type
0272  */
0273 typedef struct _XRegion *Region;
0274 
0275 /* Return values from XRectInRegion() */
0276 
0277 #define RectangleOut 0
0278 #define RectangleIn  1
0279 #define RectanglePart 2
0280 
0281 
0282 /*
0283  * Information used by the visual utility routines to find desired visual
0284  * type from the many visuals a display may support.
0285  */
0286 
0287 typedef struct {
0288   Visual *visual;
0289   VisualID visualid;
0290   int screen;
0291   int depth;
0292 #if defined(__cplusplus) || defined(c_plusplus)
0293   int c_class;                  /* C++ */
0294 #else
0295   int class;
0296 #endif
0297   unsigned long red_mask;
0298   unsigned long green_mask;
0299   unsigned long blue_mask;
0300   int colormap_size;
0301   int bits_per_rgb;
0302 } XVisualInfo;
0303 
0304 #define VisualNoMask        0x0
0305 #define VisualIDMask        0x1
0306 #define VisualScreenMask    0x2
0307 #define VisualDepthMask     0x4
0308 #define VisualClassMask     0x8
0309 #define VisualRedMaskMask   0x10
0310 #define VisualGreenMaskMask 0x20
0311 #define VisualBlueMaskMask  0x40
0312 #define VisualColormapSizeMask  0x80
0313 #define VisualBitsPerRGBMask    0x100
0314 #define VisualAllMask       0x1FF
0315 
0316 /*
0317  * This defines a window manager property that clients may use to
0318  * share standard color maps of type RGB_COLOR_MAP:
0319  */
0320 typedef struct {
0321     Colormap colormap;
0322     unsigned long red_max;
0323     unsigned long red_mult;
0324     unsigned long green_max;
0325     unsigned long green_mult;
0326     unsigned long blue_max;
0327     unsigned long blue_mult;
0328     unsigned long base_pixel;
0329     VisualID visualid;      /* added by ICCCM version 1 */
0330     XID killid;         /* added by ICCCM version 1 */
0331 } XStandardColormap;
0332 
0333 #define ReleaseByFreeingColormap ((XID) 1L)  /* for killid field above */
0334 
0335 
0336 /*
0337  * return codes for XReadBitmapFile and XWriteBitmapFile
0338  */
0339 #define BitmapSuccess       0
0340 #define BitmapOpenFailed    1
0341 #define BitmapFileInvalid   2
0342 #define BitmapNoMemory      3
0343 
0344 /****************************************************************
0345  *
0346  * Context Management
0347  *
0348  ****************************************************************/
0349 
0350 
0351 /* Associative lookup table return codes */
0352 
0353 #define XCSUCCESS 0 /* No error. */
0354 #define XCNOMEM   1    /* Out of memory */
0355 #define XCNOENT   2    /* No entry in table */
0356 
0357 typedef int XContext;
0358 
0359 #define XUniqueContext()       ((XContext) XrmUniqueQuark())
0360 #define XStringToContext(string)   ((XContext) XrmStringToQuark(string))
0361 
0362 _XFUNCPROTOBEGIN
0363 
0364 /* The following declarations are alphabetized. */
0365 
0366 extern XClassHint *XAllocClassHint (
0367     void
0368 );
0369 
0370 extern XIconSize *XAllocIconSize (
0371     void
0372 );
0373 
0374 extern XSizeHints *XAllocSizeHints (
0375     void
0376 );
0377 
0378 extern XStandardColormap *XAllocStandardColormap (
0379     void
0380 );
0381 
0382 extern XWMHints *XAllocWMHints (
0383     void
0384 );
0385 
0386 extern int XClipBox(
0387     Region      /* r */,
0388     XRectangle*     /* rect_return */
0389 );
0390 
0391 extern Region XCreateRegion(
0392     void
0393 );
0394 
0395 extern const char *XDefaultString (void);
0396 
0397 extern int XDeleteContext(
0398     Display*        /* display */,
0399     XID         /* rid */,
0400     XContext        /* context */
0401 );
0402 
0403 extern int XDestroyRegion(
0404     Region      /* r */
0405 );
0406 
0407 extern Bool XEmptyRegion(
0408     Region      /* r */
0409 );
0410 
0411 extern Bool XEqualRegion(
0412     Region      /* r1 */,
0413     Region      /* r2 */
0414 );
0415 
0416 extern int XFindContext(
0417     Display*        /* display */,
0418     XID         /* rid */,
0419     XContext        /* context */,
0420     XPointer*       /* data_return */
0421 );
0422 
0423 extern Status XGetClassHint(
0424     Display*        /* display */,
0425     Window      /* w */,
0426     XClassHint*     /* class_hints_return */
0427 );
0428 
0429 extern Status XGetIconSizes(
0430     Display*        /* display */,
0431     Window      /* w */,
0432     XIconSize**     /* size_list_return */,
0433     int*        /* count_return */
0434 );
0435 
0436 extern Status XGetNormalHints(
0437     Display*        /* display */,
0438     Window      /* w */,
0439     XSizeHints*     /* hints_return */
0440 );
0441 
0442 extern Status XGetRGBColormaps(
0443     Display*        /* display */,
0444     Window      /* w */,
0445     XStandardColormap** /* stdcmap_return */,
0446     int*        /* count_return */,
0447     Atom        /* property */
0448 );
0449 
0450 extern Status XGetSizeHints(
0451     Display*        /* display */,
0452     Window      /* w */,
0453     XSizeHints*     /* hints_return */,
0454     Atom        /* property */
0455 );
0456 
0457 extern Status XGetStandardColormap(
0458     Display*        /* display */,
0459     Window      /* w */,
0460     XStandardColormap*  /* colormap_return */,
0461     Atom        /* property */
0462 );
0463 
0464 extern Status XGetTextProperty(
0465     Display*        /* display */,
0466     Window      /* window */,
0467     XTextProperty*  /* text_prop_return */,
0468     Atom        /* property */
0469 );
0470 
0471 extern XVisualInfo *XGetVisualInfo(
0472     Display*        /* display */,
0473     long        /* vinfo_mask */,
0474     XVisualInfo*    /* vinfo_template */,
0475     int*        /* nitems_return */
0476 );
0477 
0478 extern Status XGetWMClientMachine(
0479     Display*        /* display */,
0480     Window      /* w */,
0481     XTextProperty*  /* text_prop_return */
0482 );
0483 
0484 extern XWMHints *XGetWMHints(
0485     Display*        /* display */,
0486     Window      /* w */
0487 );
0488 
0489 extern Status XGetWMIconName(
0490     Display*        /* display */,
0491     Window      /* w */,
0492     XTextProperty*  /* text_prop_return */
0493 );
0494 
0495 extern Status XGetWMName(
0496     Display*        /* display */,
0497     Window      /* w */,
0498     XTextProperty*  /* text_prop_return */
0499 );
0500 
0501 extern Status XGetWMNormalHints(
0502     Display*        /* display */,
0503     Window      /* w */,
0504     XSizeHints*     /* hints_return */,
0505     long*       /* supplied_return */
0506 );
0507 
0508 extern Status XGetWMSizeHints(
0509     Display*        /* display */,
0510     Window      /* w */,
0511     XSizeHints*     /* hints_return */,
0512     long*       /* supplied_return */,
0513     Atom        /* property */
0514 );
0515 
0516 extern Status XGetZoomHints(
0517     Display*        /* display */,
0518     Window      /* w */,
0519     XSizeHints*     /* zhints_return */
0520 );
0521 
0522 extern int XIntersectRegion(
0523     Region      /* sra */,
0524     Region      /* srb */,
0525     Region      /* dr_return */
0526 );
0527 
0528 extern void XConvertCase(
0529     KeySym      /* sym */,
0530     KeySym*     /* lower */,
0531     KeySym*     /* upper */
0532 );
0533 
0534 extern int XLookupString(
0535     XKeyEvent*      /* event_struct */,
0536     char*       /* buffer_return */,
0537     int         /* bytes_buffer */,
0538     KeySym*     /* keysym_return */,
0539     XComposeStatus* /* status_in_out */
0540 );
0541 
0542 extern Status XMatchVisualInfo(
0543     Display*        /* display */,
0544     int         /* screen */,
0545     int         /* depth */,
0546     int         /* class */,
0547     XVisualInfo*    /* vinfo_return */
0548 );
0549 
0550 extern int XOffsetRegion(
0551     Region      /* r */,
0552     int         /* dx */,
0553     int         /* dy */
0554 );
0555 
0556 extern Bool XPointInRegion(
0557     Region      /* r */,
0558     int         /* x */,
0559     int         /* y */
0560 );
0561 
0562 extern Region XPolygonRegion(
0563     XPoint*     /* points */,
0564     int         /* n */,
0565     int         /* fill_rule */
0566 );
0567 
0568 extern int XRectInRegion(
0569     Region      /* r */,
0570     int         /* x */,
0571     int         /* y */,
0572     unsigned int    /* width */,
0573     unsigned int    /* height */
0574 );
0575 
0576 extern int XSaveContext(
0577     Display*        /* display */,
0578     XID         /* rid */,
0579     XContext        /* context */,
0580     _Xconst char*   /* data */
0581 );
0582 
0583 extern int XSetClassHint(
0584     Display*        /* display */,
0585     Window      /* w */,
0586     XClassHint*     /* class_hints */
0587 );
0588 
0589 extern int XSetIconSizes(
0590     Display*        /* display */,
0591     Window      /* w */,
0592     XIconSize*      /* size_list */,
0593     int         /* count */
0594 );
0595 
0596 extern int XSetNormalHints(
0597     Display*        /* display */,
0598     Window      /* w */,
0599     XSizeHints*     /* hints */
0600 );
0601 
0602 extern void XSetRGBColormaps(
0603     Display*        /* display */,
0604     Window      /* w */,
0605     XStandardColormap*  /* stdcmaps */,
0606     int         /* count */,
0607     Atom        /* property */
0608 );
0609 
0610 extern int XSetSizeHints(
0611     Display*        /* display */,
0612     Window      /* w */,
0613     XSizeHints*     /* hints */,
0614     Atom        /* property */
0615 );
0616 
0617 extern int XSetStandardProperties(
0618     Display*        /* display */,
0619     Window      /* w */,
0620     _Xconst char*   /* window_name */,
0621     _Xconst char*   /* icon_name */,
0622     Pixmap      /* icon_pixmap */,
0623     char**      /* argv */,
0624     int         /* argc */,
0625     XSizeHints*     /* hints */
0626 );
0627 
0628 extern void XSetTextProperty(
0629     Display*        /* display */,
0630     Window      /* w */,
0631     XTextProperty*  /* text_prop */,
0632     Atom        /* property */
0633 );
0634 
0635 extern void XSetWMClientMachine(
0636     Display*        /* display */,
0637     Window      /* w */,
0638     XTextProperty*  /* text_prop */
0639 );
0640 
0641 extern int XSetWMHints(
0642     Display*        /* display */,
0643     Window      /* w */,
0644     XWMHints*       /* wm_hints */
0645 );
0646 
0647 extern void XSetWMIconName(
0648     Display*        /* display */,
0649     Window      /* w */,
0650     XTextProperty*  /* text_prop */
0651 );
0652 
0653 extern void XSetWMName(
0654     Display*        /* display */,
0655     Window      /* w */,
0656     XTextProperty*  /* text_prop */
0657 );
0658 
0659 extern void XSetWMNormalHints(
0660     Display*        /* display */,
0661     Window      /* w */,
0662     XSizeHints*     /* hints */
0663 );
0664 
0665 extern void XSetWMProperties(
0666     Display*        /* display */,
0667     Window      /* w */,
0668     XTextProperty*  /* window_name */,
0669     XTextProperty*  /* icon_name */,
0670     char**      /* argv */,
0671     int         /* argc */,
0672     XSizeHints*     /* normal_hints */,
0673     XWMHints*       /* wm_hints */,
0674     XClassHint*     /* class_hints */
0675 );
0676 
0677 extern void XmbSetWMProperties(
0678     Display*        /* display */,
0679     Window      /* w */,
0680     _Xconst char*   /* window_name */,
0681     _Xconst char*   /* icon_name */,
0682     char**      /* argv */,
0683     int         /* argc */,
0684     XSizeHints*     /* normal_hints */,
0685     XWMHints*       /* wm_hints */,
0686     XClassHint*     /* class_hints */
0687 );
0688 
0689 extern void Xutf8SetWMProperties(
0690     Display*        /* display */,
0691     Window      /* w */,
0692     _Xconst char*   /* window_name */,
0693     _Xconst char*   /* icon_name */,
0694     char**      /* argv */,
0695     int         /* argc */,
0696     XSizeHints*     /* normal_hints */,
0697     XWMHints*       /* wm_hints */,
0698     XClassHint*     /* class_hints */
0699 );
0700 
0701 extern void XSetWMSizeHints(
0702     Display*        /* display */,
0703     Window      /* w */,
0704     XSizeHints*     /* hints */,
0705     Atom        /* property */
0706 );
0707 
0708 extern int XSetRegion(
0709     Display*        /* display */,
0710     GC          /* gc */,
0711     Region      /* r */
0712 );
0713 
0714 extern void XSetStandardColormap(
0715     Display*        /* display */,
0716     Window      /* w */,
0717     XStandardColormap*  /* colormap */,
0718     Atom        /* property */
0719 );
0720 
0721 extern int XSetZoomHints(
0722     Display*        /* display */,
0723     Window      /* w */,
0724     XSizeHints*     /* zhints */
0725 );
0726 
0727 extern int XShrinkRegion(
0728     Region      /* r */,
0729     int         /* dx */,
0730     int         /* dy */
0731 );
0732 
0733 extern Status XStringListToTextProperty(
0734     char**      /* list */,
0735     int         /* count */,
0736     XTextProperty*  /* text_prop_return */
0737 );
0738 
0739 extern int XSubtractRegion(
0740     Region      /* sra */,
0741     Region      /* srb */,
0742     Region      /* dr_return */
0743 );
0744 
0745 extern int XmbTextListToTextProperty(
0746     Display*        display,
0747     char**      list,
0748     int         count,
0749     XICCEncodingStyle   style,
0750     XTextProperty*  text_prop_return
0751 );
0752 
0753 extern int XwcTextListToTextProperty(
0754     Display*        display,
0755     wchar_t**       list,
0756     int         count,
0757     XICCEncodingStyle   style,
0758     XTextProperty*  text_prop_return
0759 );
0760 
0761 extern int Xutf8TextListToTextProperty(
0762     Display*        display,
0763     char**      list,
0764     int         count,
0765     XICCEncodingStyle   style,
0766     XTextProperty*  text_prop_return
0767 );
0768 
0769 extern void XwcFreeStringList(
0770     wchar_t**       list
0771 );
0772 
0773 extern Status XTextPropertyToStringList(
0774     XTextProperty*  /* text_prop */,
0775     char***     /* list_return */,
0776     int*        /* count_return */
0777 );
0778 
0779 extern int XmbTextPropertyToTextList(
0780     Display*        display,
0781     const XTextProperty* text_prop,
0782     char***     list_return,
0783     int*        count_return
0784 );
0785 
0786 extern int XwcTextPropertyToTextList(
0787     Display*        display,
0788     const XTextProperty* text_prop,
0789     wchar_t***      list_return,
0790     int*        count_return
0791 );
0792 
0793 extern int Xutf8TextPropertyToTextList(
0794     Display*        display,
0795     const XTextProperty* text_prop,
0796     char***     list_return,
0797     int*        count_return
0798 );
0799 
0800 extern int XUnionRectWithRegion(
0801     XRectangle*     /* rectangle */,
0802     Region      /* src_region */,
0803     Region      /* dest_region_return */
0804 );
0805 
0806 extern int XUnionRegion(
0807     Region      /* sra */,
0808     Region      /* srb */,
0809     Region      /* dr_return */
0810 );
0811 
0812 extern int XWMGeometry(
0813     Display*        /* display */,
0814     int         /* screen_number */,
0815     _Xconst char*   /* user_geometry */,
0816     _Xconst char*   /* default_geometry */,
0817     unsigned int    /* border_width */,
0818     XSizeHints*     /* hints */,
0819     int*        /* x_return */,
0820     int*        /* y_return */,
0821     int*        /* width_return */,
0822     int*        /* height_return */,
0823     int*        /* gravity_return */
0824 );
0825 
0826 extern int XXorRegion(
0827     Region      /* sra */,
0828     Region      /* srb */,
0829     Region      /* dr_return */
0830 );
0831 
0832 #ifdef __clang__
0833 #pragma clang diagnostic pop
0834 #endif
0835 
0836 _XFUNCPROTOEND
0837 
0838 #endif /* _X11_XUTIL_H_ */