github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xcb/include/X11/Xutil.h (about)

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