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

     1  /*
     2  
     3  Copyright 1985, 1986, 1987, 1991, 1998  The Open Group
     4  
     5  Permission to use, copy, modify, distribute, and sell this software and its
     6  documentation for any purpose is hereby granted without fee, provided that
     7  the above copyright notice appear in all copies and that both that
     8  copyright notice and this permission notice appear in supporting
     9  documentation.
    10  
    11  The above copyright notice and this permission notice shall be included in
    12  all copies or substantial portions of the Software.
    13  
    14  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    15  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    16  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    17  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
    18  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    19  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    20  
    21  Except as contained in this notice, the name of The Open Group shall not be
    22  used in advertising or otherwise to promote the sale, use or other dealings
    23  in this Software without prior written authorization from The Open Group.
    24  
    25  */
    26  
    27  
    28  /*
    29   *	Xlib.h - Header definition and support file for the C subroutine
    30   *	interface library (Xlib) to the X Window System Protocol (V11).
    31   *	Structures and symbols starting with "_" are private to the library.
    32   */
    33  #ifndef _X11_XLIB_H_
    34  #define _X11_XLIB_H_
    35  
    36  #define XlibSpecificationRelease 6
    37  
    38  #include <sys/types.h>
    39  
    40  #if defined(__SCO__) || defined(__UNIXWARE__)
    41  #include <stdint.h>
    42  #endif
    43  
    44  #include <X11/X.h>
    45  
    46  /* applications should not depend on these two headers being included! */
    47  #include <X11/Xfuncproto.h>
    48  #include <X11/Xosdefs.h>
    49  
    50  #ifndef X_WCHAR
    51  #include <stddef.h>
    52  #else
    53  #ifdef __UNIXOS2__
    54  #include <stdlib.h>
    55  #else
    56  /* replace this with #include or typedef appropriate for your system */
    57  typedef unsigned long wchar_t;
    58  #endif
    59  #endif
    60  
    61  
    62  extern int
    63  _Xmblen(
    64      char *str,
    65      int len
    66      );
    67  
    68  /* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in
    69     November 2000. Its presence is indicated through the following macro. */
    70  #define X_HAVE_UTF8_STRING 1
    71  
    72  /* The Xlib structs are full of implicit padding to properly align members.
    73     We can't clean that up without breaking ABI, so tell clang not to bother
    74     complaining about it. */
    75  #ifdef __clang__
    76  #pragma clang diagnostic push
    77  #pragma clang diagnostic ignored "-Wpadded"
    78  #endif
    79  
    80  typedef char *XPointer;
    81  
    82  #define Bool int
    83  #define Status int
    84  #define True 1
    85  #define False 0
    86  
    87  #define QueuedAlready 0
    88  #define QueuedAfterReading 1
    89  #define QueuedAfterFlush 2
    90  
    91  #define ConnectionNumber(dpy) 	(((_XPrivDisplay)(dpy))->fd)
    92  #define RootWindow(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->root)
    93  #define DefaultScreen(dpy) 	(((_XPrivDisplay)(dpy))->default_screen)
    94  #define DefaultRootWindow(dpy) 	(ScreenOfDisplay(dpy,DefaultScreen(dpy))->root)
    95  #define DefaultVisual(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_visual)
    96  #define DefaultGC(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->default_gc)
    97  #define BlackPixel(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->black_pixel)
    98  #define WhitePixel(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->white_pixel)
    99  #define AllPlanes 		((unsigned long)~0L)
   100  #define QLength(dpy) 		(((_XPrivDisplay)(dpy))->qlen)
   101  #define DisplayWidth(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->width)
   102  #define DisplayHeight(dpy, scr) (ScreenOfDisplay(dpy,scr)->height)
   103  #define DisplayWidthMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mwidth)
   104  #define DisplayHeightMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mheight)
   105  #define DisplayPlanes(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_depth)
   106  #define DisplayCells(dpy, scr) 	(DefaultVisual(dpy,scr)->map_entries)
   107  #define ScreenCount(dpy) 	(((_XPrivDisplay)(dpy))->nscreens)
   108  #define ServerVendor(dpy) 	(((_XPrivDisplay)(dpy))->vendor)
   109  #define ProtocolVersion(dpy) 	(((_XPrivDisplay)(dpy))->proto_major_version)
   110  #define ProtocolRevision(dpy) 	(((_XPrivDisplay)(dpy))->proto_minor_version)
   111  #define VendorRelease(dpy) 	(((_XPrivDisplay)(dpy))->release)
   112  #define DisplayString(dpy) 	(((_XPrivDisplay)(dpy))->display_name)
   113  #define DefaultDepth(dpy, scr) 	(ScreenOfDisplay(dpy,scr)->root_depth)
   114  #define DefaultColormap(dpy, scr)(ScreenOfDisplay(dpy,scr)->cmap)
   115  #define BitmapUnit(dpy) 	(((_XPrivDisplay)(dpy))->bitmap_unit)
   116  #define BitmapBitOrder(dpy) 	(((_XPrivDisplay)(dpy))->bitmap_bit_order)
   117  #define BitmapPad(dpy) 		(((_XPrivDisplay)(dpy))->bitmap_pad)
   118  #define ImageByteOrder(dpy) 	(((_XPrivDisplay)(dpy))->byte_order)
   119  #define NextRequest(dpy)	(((_XPrivDisplay)(dpy))->request + 1)
   120  #define LastKnownRequestProcessed(dpy)	(((_XPrivDisplay)(dpy))->last_request_read)
   121  
   122  /* macros for screen oriented applications (toolkit) */
   123  #define ScreenOfDisplay(dpy, scr)(&((_XPrivDisplay)(dpy))->screens[scr])
   124  #define DefaultScreenOfDisplay(dpy) ScreenOfDisplay(dpy,DefaultScreen(dpy))
   125  #define DisplayOfScreen(s)	((s)->display)
   126  #define RootWindowOfScreen(s)	((s)->root)
   127  #define BlackPixelOfScreen(s)	((s)->black_pixel)
   128  #define WhitePixelOfScreen(s)	((s)->white_pixel)
   129  #define DefaultColormapOfScreen(s)((s)->cmap)
   130  #define DefaultDepthOfScreen(s)	((s)->root_depth)
   131  #define DefaultGCOfScreen(s)	((s)->default_gc)
   132  #define DefaultVisualOfScreen(s)((s)->root_visual)
   133  #define WidthOfScreen(s)	((s)->width)
   134  #define HeightOfScreen(s)	((s)->height)
   135  #define WidthMMOfScreen(s)	((s)->mwidth)
   136  #define HeightMMOfScreen(s)	((s)->mheight)
   137  #define PlanesOfScreen(s)	((s)->root_depth)
   138  #define CellsOfScreen(s)	(DefaultVisualOfScreen((s))->map_entries)
   139  #define MinCmapsOfScreen(s)	((s)->min_maps)
   140  #define MaxCmapsOfScreen(s)	((s)->max_maps)
   141  #define DoesSaveUnders(s)	((s)->save_unders)
   142  #define DoesBackingStore(s)	((s)->backing_store)
   143  #define EventMaskOfScreen(s)	((s)->root_input_mask)
   144  
   145  /*
   146   * Extensions need a way to hang private data on some structures.
   147   */
   148  typedef struct _XExtData {
   149  	int number;		/* number returned by XRegisterExtension */
   150  	struct _XExtData *next;	/* next item on list of data for structure */
   151  	int (*free_private)(	/* called to free private storage */
   152  	struct _XExtData *extension
   153  	);
   154  	XPointer private_data;	/* data private to this extension. */
   155  } XExtData;
   156  
   157  /*
   158   * This file contains structures used by the extension mechanism.
   159   */
   160  typedef struct {		/* public to extension, cannot be changed */
   161  	int extension;		/* extension number */
   162  	int major_opcode;	/* major op-code assigned by server */
   163  	int first_event;	/* first event number for the extension */
   164  	int first_error;	/* first error number for the extension */
   165  } XExtCodes;
   166  
   167  /*
   168   * Data structure for retrieving info about pixmap formats.
   169   */
   170  
   171  typedef struct {
   172      int depth;
   173      int bits_per_pixel;
   174      int scanline_pad;
   175  } XPixmapFormatValues;
   176  
   177  
   178  /*
   179   * Data structure for setting graphics context.
   180   */
   181  typedef struct {
   182  	int function;		/* logical operation */
   183  	unsigned long plane_mask;/* plane mask */
   184  	unsigned long foreground;/* foreground pixel */
   185  	unsigned long background;/* background pixel */
   186  	int line_width;		/* line width */
   187  	int line_style;	 	/* LineSolid, LineOnOffDash, LineDoubleDash */
   188  	int cap_style;	  	/* CapNotLast, CapButt,
   189  				   CapRound, CapProjecting */
   190  	int join_style;	 	/* JoinMiter, JoinRound, JoinBevel */
   191  	int fill_style;	 	/* FillSolid, FillTiled,
   192  				   FillStippled, FillOpaeueStippled */
   193  	int fill_rule;	  	/* EvenOddRule, WindingRule */
   194  	int arc_mode;		/* ArcChord, ArcPieSlice */
   195  	Pixmap tile;		/* tile pixmap for tiling operations */
   196  	Pixmap stipple;		/* stipple 1 plane pixmap for stipping */
   197  	int ts_x_origin;	/* offset for tile or stipple operations */
   198  	int ts_y_origin;
   199          Font font;	        /* default text font for text operations */
   200  	int subwindow_mode;     /* ClipByChildren, IncludeInferiors */
   201  	Bool graphics_exposures;/* boolean, should exposures be generated */
   202  	int clip_x_origin;	/* origin for clipping */
   203  	int clip_y_origin;
   204  	Pixmap clip_mask;	/* bitmap clipping; other calls for rects */
   205  	int dash_offset;	/* patterned/dashed line information */
   206  	char dashes;
   207  } XGCValues;
   208  
   209  /*
   210   * Graphics context.  The contents of this structure are implementation
   211   * dependent.  A GC should be treated as opaque by application code.
   212   */
   213  
   214  typedef struct _XGC
   215  #ifdef XLIB_ILLEGAL_ACCESS
   216  {
   217      XExtData *ext_data;	/* hook for extension to hang data */
   218      GContext gid;	/* protocol ID for graphics context */
   219      /* there is more to this structure, but it is private to Xlib */
   220  }
   221  #endif
   222  *GC;
   223  
   224  /*
   225   * Visual structure; contains information about colormapping possible.
   226   */
   227  typedef struct {
   228  	XExtData *ext_data;	/* hook for extension to hang data */
   229  	VisualID visualid;	/* visual id of this visual */
   230  #if defined(__cplusplus) || defined(c_plusplus)
   231  	int c_class;		/* C++ class of screen (monochrome, etc.) */
   232  #else
   233  	int class;		/* class of screen (monochrome, etc.) */
   234  #endif
   235  	unsigned long red_mask, green_mask, blue_mask;	/* mask values */
   236  	int bits_per_rgb;	/* log base 2 of distinct color values */
   237  	int map_entries;	/* color map entries */
   238  } Visual;
   239  
   240  /*
   241   * Depth structure; contains information for each possible depth.
   242   */
   243  typedef struct {
   244  	int depth;		/* this depth (Z) of the depth */
   245  	int nvisuals;		/* number of Visual types at this depth */
   246  	Visual *visuals;	/* list of visuals possible at this depth */
   247  } Depth;
   248  
   249  /*
   250   * Information about the screen.  The contents of this structure are
   251   * implementation dependent.  A Screen should be treated as opaque
   252   * by application code.
   253   */
   254  
   255  struct _XDisplay;		/* Forward declare before use for C++ */
   256  
   257  typedef struct {
   258  	XExtData *ext_data;	/* hook for extension to hang data */
   259  	struct _XDisplay *display;/* back pointer to display structure */
   260  	Window root;		/* Root window id. */
   261  	int width, height;	/* width and height of screen */
   262  	int mwidth, mheight;	/* width and height of  in millimeters */
   263  	int ndepths;		/* number of depths possible */
   264  	Depth *depths;		/* list of allowable depths on the screen */
   265  	int root_depth;		/* bits per pixel */
   266  	Visual *root_visual;	/* root visual */
   267  	GC default_gc;		/* GC for the root root visual */
   268  	Colormap cmap;		/* default color map */
   269  	unsigned long white_pixel;
   270  	unsigned long black_pixel;	/* White and Black pixel values */
   271  	int max_maps, min_maps;	/* max and min color maps */
   272  	int backing_store;	/* Never, WhenMapped, Always */
   273  	Bool save_unders;
   274  	long root_input_mask;	/* initial root input mask */
   275  } Screen;
   276  
   277  /*
   278   * Format structure; describes ZFormat data the screen will understand.
   279   */
   280  typedef struct {
   281  	XExtData *ext_data;	/* hook for extension to hang data */
   282  	int depth;		/* depth of this image format */
   283  	int bits_per_pixel;	/* bits/pixel at this depth */
   284  	int scanline_pad;	/* scanline must padded to this multiple */
   285  } ScreenFormat;
   286  
   287  /*
   288   * Data structure for setting window attributes.
   289   */
   290  typedef struct {
   291      Pixmap background_pixmap;	/* background or None or ParentRelative */
   292      unsigned long background_pixel;	/* background pixel */
   293      Pixmap border_pixmap;	/* border of the window */
   294      unsigned long border_pixel;	/* border pixel value */
   295      int bit_gravity;		/* one of bit gravity values */
   296      int win_gravity;		/* one of the window gravity values */
   297      int backing_store;		/* NotUseful, WhenMapped, Always */
   298      unsigned long backing_planes;/* planes to be preserved if possible */
   299      unsigned long backing_pixel;/* value to use in restoring planes */
   300      Bool save_under;		/* should bits under be saved? (popups) */
   301      long event_mask;		/* set of events that should be saved */
   302      long do_not_propagate_mask;	/* set of events that should not propagate */
   303      Bool override_redirect;	/* boolean value for override-redirect */
   304      Colormap colormap;		/* color map to be associated with window */
   305      Cursor cursor;		/* cursor to be displayed (or None) */
   306  } XSetWindowAttributes;
   307  
   308  typedef struct {
   309      int x, y;			/* location of window */
   310      int width, height;		/* width and height of window */
   311      int border_width;		/* border width of window */
   312      int depth;          	/* depth of window */
   313      Visual *visual;		/* the associated visual structure */
   314      Window root;        	/* root of screen containing window */
   315  #if defined(__cplusplus) || defined(c_plusplus)
   316      int c_class;		/* C++ InputOutput, InputOnly*/
   317  #else
   318      int class;			/* InputOutput, InputOnly*/
   319  #endif
   320      int bit_gravity;		/* one of bit gravity values */
   321      int win_gravity;		/* one of the window gravity values */
   322      int backing_store;		/* NotUseful, WhenMapped, Always */
   323      unsigned long backing_planes;/* planes to be preserved if possible */
   324      unsigned long backing_pixel;/* value to be used when restoring planes */
   325      Bool save_under;		/* boolean, should bits under be saved? */
   326      Colormap colormap;		/* color map to be associated with window */
   327      Bool map_installed;		/* boolean, is color map currently installed*/
   328      int map_state;		/* IsUnmapped, IsUnviewable, IsViewable */
   329      long all_event_masks;	/* set of events all people have interest in*/
   330      long your_event_mask;	/* my event mask */
   331      long do_not_propagate_mask; /* set of events that should not propagate */
   332      Bool override_redirect;	/* boolean value for override-redirect */
   333      Screen *screen;		/* back pointer to correct screen */
   334  } XWindowAttributes;
   335  
   336  /*
   337   * Data structure for host setting; getting routines.
   338   *
   339   */
   340  
   341  typedef struct {
   342  	int family;		/* for example FamilyInternet */
   343  	int length;		/* length of address, in bytes */
   344  	char *address;		/* pointer to where to find the bytes */
   345  } XHostAddress;
   346  
   347  /*
   348   * Data structure for ServerFamilyInterpreted addresses in host routines
   349   */
   350  typedef struct {
   351  	int typelength;		/* length of type string, in bytes */
   352  	int valuelength;	/* length of value string, in bytes */
   353  	char *type;		/* pointer to where to find the type string */
   354  	char *value;		/* pointer to where to find the address */
   355  } XServerInterpretedAddress;
   356  
   357  /*
   358   * Data structure for "image" data, used by image manipulation routines.
   359   */
   360  typedef struct _XImage {
   361      int width, height;		/* size of image */
   362      int xoffset;		/* number of pixels offset in X direction */
   363      int format;			/* XYBitmap, XYPixmap, ZPixmap */
   364      char *data;			/* pointer to image data */
   365      int byte_order;		/* data byte order, LSBFirst, MSBFirst */
   366      int bitmap_unit;		/* quant. of scanline 8, 16, 32 */
   367      int bitmap_bit_order;	/* LSBFirst, MSBFirst */
   368      int bitmap_pad;		/* 8, 16, 32 either XY or ZPixmap */
   369      int depth;			/* depth of image */
   370      int bytes_per_line;		/* accelerator to next line */
   371      int bits_per_pixel;		/* bits per pixel (ZPixmap) */
   372      unsigned long red_mask;	/* bits in z arrangement */
   373      unsigned long green_mask;
   374      unsigned long blue_mask;
   375      XPointer obdata;		/* hook for the object routines to hang on */
   376      struct funcs {		/* image manipulation routines */
   377  	struct _XImage *(*create_image)(
   378  		struct _XDisplay* /* display */,
   379  		Visual*		/* visual */,
   380  		unsigned int	/* depth */,
   381  		int		/* format */,
   382  		int		/* offset */,
   383  		char*		/* data */,
   384  		unsigned int	/* width */,
   385  		unsigned int	/* height */,
   386  		int		/* bitmap_pad */,
   387  		int		/* bytes_per_line */);
   388  	int (*destroy_image)        (struct _XImage *);
   389  	unsigned long (*get_pixel)  (struct _XImage *, int, int);
   390  	int (*put_pixel)            (struct _XImage *, int, int, unsigned long);
   391  	struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
   392  	int (*add_pixel)            (struct _XImage *, long);
   393  	} f;
   394  } XImage;
   395  
   396  /*
   397   * Data structure for XReconfigureWindow
   398   */
   399  typedef struct {
   400      int x, y;
   401      int width, height;
   402      int border_width;
   403      Window sibling;
   404      int stack_mode;
   405  } XWindowChanges;
   406  
   407  /*
   408   * Data structure used by color operations
   409   */
   410  typedef struct {
   411  	unsigned long pixel;
   412  	unsigned short red, green, blue;
   413  	char flags;  /* do_red, do_green, do_blue */
   414  	char pad;
   415  } XColor;
   416  
   417  /*
   418   * Data structures for graphics operations.  On most machines, these are
   419   * congruent with the wire protocol structures, so reformatting the data
   420   * can be avoided on these architectures.
   421   */
   422  typedef struct {
   423      short x1, y1, x2, y2;
   424  } XSegment;
   425  
   426  typedef struct {
   427      short x, y;
   428  } XPoint;
   429  
   430  typedef struct {
   431      short x, y;
   432      unsigned short width, height;
   433  } XRectangle;
   434  
   435  typedef struct {
   436      short x, y;
   437      unsigned short width, height;
   438      short angle1, angle2;
   439  } XArc;
   440  
   441  
   442  /* Data structure for XChangeKeyboardControl */
   443  
   444  typedef struct {
   445          int key_click_percent;
   446          int bell_percent;
   447          int bell_pitch;
   448          int bell_duration;
   449          int led;
   450          int led_mode;
   451          int key;
   452          int auto_repeat_mode;   /* On, Off, Default */
   453  } XKeyboardControl;
   454  
   455  /* Data structure for XGetKeyboardControl */
   456  
   457  typedef struct {
   458          int key_click_percent;
   459  	int bell_percent;
   460  	unsigned int bell_pitch, bell_duration;
   461  	unsigned long led_mask;
   462  	int global_auto_repeat;
   463  	char auto_repeats[32];
   464  } XKeyboardState;
   465  
   466  /* Data structure for XGetMotionEvents.  */
   467  
   468  typedef struct {
   469          Time time;
   470  	short x, y;
   471  } XTimeCoord;
   472  
   473  /* Data structure for X{Set,Get}ModifierMapping */
   474  
   475  typedef struct {
   476   	int max_keypermod;	/* The server's max # of keys per modifier */
   477   	KeyCode *modifiermap;	/* An 8 by max_keypermod array of modifiers */
   478  } XModifierKeymap;
   479  
   480  
   481  /*
   482   * Display datatype maintaining display specific data.
   483   * The contents of this structure are implementation dependent.
   484   * A Display should be treated as opaque by application code.
   485   */
   486  #ifndef XLIB_ILLEGAL_ACCESS
   487  typedef struct _XDisplay Display;
   488  #endif
   489  
   490  struct _XPrivate;		/* Forward declare before use for C++ */
   491  struct _XrmHashBucketRec;
   492  
   493  typedef struct
   494  #ifdef XLIB_ILLEGAL_ACCESS
   495  _XDisplay
   496  #endif
   497  {
   498  	XExtData *ext_data;	/* hook for extension to hang data */
   499  	struct _XPrivate *private1;
   500  	int fd;			/* Network socket. */
   501  	int private2;
   502  	int proto_major_version;/* major version of server's X protocol */
   503  	int proto_minor_version;/* minor version of servers X protocol */
   504  	char *vendor;		/* vendor of the server hardware */
   505          XID private3;
   506  	XID private4;
   507  	XID private5;
   508  	int private6;
   509  	XID (*resource_alloc)(	/* allocator function */
   510  		struct _XDisplay*
   511  	);
   512  	int byte_order;		/* screen byte order, LSBFirst, MSBFirst */
   513  	int bitmap_unit;	/* padding and data requirements */
   514  	int bitmap_pad;		/* padding requirements on bitmaps */
   515  	int bitmap_bit_order;	/* LeastSignificant or MostSignificant */
   516  	int nformats;		/* number of pixmap formats in list */
   517  	ScreenFormat *pixmap_format;	/* pixmap format list */
   518  	int private8;
   519  	int release;		/* release of the server */
   520  	struct _XPrivate *private9, *private10;
   521  	int qlen;		/* Length of input event queue */
   522  	unsigned long last_request_read; /* seq number of last event read */
   523  	unsigned long request;	/* sequence number of last request. */
   524  	XPointer private11;
   525  	XPointer private12;
   526  	XPointer private13;
   527  	XPointer private14;
   528  	unsigned max_request_size; /* maximum number 32 bit words in request*/
   529  	struct _XrmHashBucketRec *db;
   530  	int (*private15)(
   531  		struct _XDisplay*
   532  		);
   533  	char *display_name;	/* "host:display" string used on this connect*/
   534  	int default_screen;	/* default screen for operations */
   535  	int nscreens;		/* number of screens on this server*/
   536  	Screen *screens;	/* pointer to list of screens */
   537  	unsigned long motion_buffer;	/* size of motion buffer */
   538  	unsigned long private16;
   539  	int min_keycode;	/* minimum defined keycode */
   540  	int max_keycode;	/* maximum defined keycode */
   541  	XPointer private17;
   542  	XPointer private18;
   543  	int private19;
   544  	char *xdefaults;	/* contents of defaults from server */
   545  	/* there is more to this structure, but it is private to Xlib */
   546  }
   547  #ifdef XLIB_ILLEGAL_ACCESS
   548  Display,
   549  #endif
   550  *_XPrivDisplay;
   551  
   552  #undef _XEVENT_
   553  #ifndef _XEVENT_
   554  /*
   555   * Definitions of specific events.
   556   */
   557  typedef struct {
   558  	int type;		/* of event */
   559  	unsigned long serial;	/* # of last request processed by server */
   560  	Bool send_event;	/* true if this came from a SendEvent request */
   561  	Display *display;	/* Display the event was read from */
   562  	Window window;	        /* "event" window it is reported relative to */
   563  	Window root;	        /* root window that the event occurred on */
   564  	Window subwindow;	/* child window */
   565  	Time time;		/* milliseconds */
   566  	int x, y;		/* pointer x, y coordinates in event window */
   567  	int x_root, y_root;	/* coordinates relative to root */
   568  	unsigned int state;	/* key or button mask */
   569  	unsigned int keycode;	/* detail */
   570  	Bool same_screen;	/* same screen flag */
   571  } XKeyEvent;
   572  typedef XKeyEvent XKeyPressedEvent;
   573  typedef XKeyEvent XKeyReleasedEvent;
   574  
   575  typedef struct {
   576  	int type;		/* of event */
   577  	unsigned long serial;	/* # of last request processed by server */
   578  	Bool send_event;	/* true if this came from a SendEvent request */
   579  	Display *display;	/* Display the event was read from */
   580  	Window window;	        /* "event" window it is reported relative to */
   581  	Window root;	        /* root window that the event occurred on */
   582  	Window subwindow;	/* child window */
   583  	Time time;		/* milliseconds */
   584  	int x, y;		/* pointer x, y coordinates in event window */
   585  	int x_root, y_root;	/* coordinates relative to root */
   586  	unsigned int state;	/* key or button mask */
   587  	unsigned int button;	/* detail */
   588  	Bool same_screen;	/* same screen flag */
   589  } XButtonEvent;
   590  typedef XButtonEvent XButtonPressedEvent;
   591  typedef XButtonEvent XButtonReleasedEvent;
   592  
   593  typedef struct {
   594  	int type;		/* of event */
   595  	unsigned long serial;	/* # of last request processed by server */
   596  	Bool send_event;	/* true if this came from a SendEvent request */
   597  	Display *display;	/* Display the event was read from */
   598  	Window window;	        /* "event" window reported relative to */
   599  	Window root;	        /* root window that the event occurred on */
   600  	Window subwindow;	/* child window */
   601  	Time time;		/* milliseconds */
   602  	int x, y;		/* pointer x, y coordinates in event window */
   603  	int x_root, y_root;	/* coordinates relative to root */
   604  	unsigned int state;	/* key or button mask */
   605  	char is_hint;		/* detail */
   606  	Bool same_screen;	/* same screen flag */
   607  } XMotionEvent;
   608  typedef XMotionEvent XPointerMovedEvent;
   609  
   610  typedef struct {
   611  	int type;		/* of event */
   612  	unsigned long serial;	/* # of last request processed by server */
   613  	Bool send_event;	/* true if this came from a SendEvent request */
   614  	Display *display;	/* Display the event was read from */
   615  	Window window;	        /* "event" window reported relative to */
   616  	Window root;	        /* root window that the event occurred on */
   617  	Window subwindow;	/* child window */
   618  	Time time;		/* milliseconds */
   619  	int x, y;		/* pointer x, y coordinates in event window */
   620  	int x_root, y_root;	/* coordinates relative to root */
   621  	int mode;		/* NotifyNormal, NotifyGrab, NotifyUngrab */
   622  	int detail;
   623  	/*
   624  	 * NotifyAncestor, NotifyVirtual, NotifyInferior,
   625  	 * NotifyNonlinear,NotifyNonlinearVirtual
   626  	 */
   627  	Bool same_screen;	/* same screen flag */
   628  	Bool focus;		/* boolean focus */
   629  	unsigned int state;	/* key or button mask */
   630  } XCrossingEvent;
   631  typedef XCrossingEvent XEnterWindowEvent;
   632  typedef XCrossingEvent XLeaveWindowEvent;
   633  
   634  typedef struct {
   635  	int type;		/* FocusIn or FocusOut */
   636  	unsigned long serial;	/* # of last request processed by server */
   637  	Bool send_event;	/* true if this came from a SendEvent request */
   638  	Display *display;	/* Display the event was read from */
   639  	Window window;		/* window of event */
   640  	int mode;		/* NotifyNormal, NotifyWhileGrabbed,
   641  				   NotifyGrab, NotifyUngrab */
   642  	int detail;
   643  	/*
   644  	 * NotifyAncestor, NotifyVirtual, NotifyInferior,
   645  	 * NotifyNonlinear,NotifyNonlinearVirtual, NotifyPointer,
   646  	 * NotifyPointerRoot, NotifyDetailNone
   647  	 */
   648  } XFocusChangeEvent;
   649  typedef XFocusChangeEvent XFocusInEvent;
   650  typedef XFocusChangeEvent XFocusOutEvent;
   651  
   652  /* generated on EnterWindow and FocusIn  when KeyMapState selected */
   653  typedef struct {
   654  	int type;
   655  	unsigned long serial;	/* # of last request processed by server */
   656  	Bool send_event;	/* true if this came from a SendEvent request */
   657  	Display *display;	/* Display the event was read from */
   658  	Window window;
   659  	char key_vector[32];
   660  } XKeymapEvent;
   661  
   662  typedef struct {
   663  	int type;
   664  	unsigned long serial;	/* # of last request processed by server */
   665  	Bool send_event;	/* true if this came from a SendEvent request */
   666  	Display *display;	/* Display the event was read from */
   667  	Window window;
   668  	int x, y;
   669  	int width, height;
   670  	int count;		/* if non-zero, at least this many more */
   671  } XExposeEvent;
   672  
   673  typedef struct {
   674  	int type;
   675  	unsigned long serial;	/* # of last request processed by server */
   676  	Bool send_event;	/* true if this came from a SendEvent request */
   677  	Display *display;	/* Display the event was read from */
   678  	Drawable drawable;
   679  	int x, y;
   680  	int width, height;
   681  	int count;		/* if non-zero, at least this many more */
   682  	int major_code;		/* core is CopyArea or CopyPlane */
   683  	int minor_code;		/* not defined in the core */
   684  } XGraphicsExposeEvent;
   685  
   686  typedef struct {
   687  	int type;
   688  	unsigned long serial;	/* # of last request processed by server */
   689  	Bool send_event;	/* true if this came from a SendEvent request */
   690  	Display *display;	/* Display the event was read from */
   691  	Drawable drawable;
   692  	int major_code;		/* core is CopyArea or CopyPlane */
   693  	int minor_code;		/* not defined in the core */
   694  } XNoExposeEvent;
   695  
   696  typedef struct {
   697  	int type;
   698  	unsigned long serial;	/* # of last request processed by server */
   699  	Bool send_event;	/* true if this came from a SendEvent request */
   700  	Display *display;	/* Display the event was read from */
   701  	Window window;
   702  	int state;		/* Visibility state */
   703  } XVisibilityEvent;
   704  
   705  typedef struct {
   706  	int type;
   707  	unsigned long serial;	/* # of last request processed by server */
   708  	Bool send_event;	/* true if this came from a SendEvent request */
   709  	Display *display;	/* Display the event was read from */
   710  	Window parent;		/* parent of the window */
   711  	Window window;		/* window id of window created */
   712  	int x, y;		/* window location */
   713  	int width, height;	/* size of window */
   714  	int border_width;	/* border width */
   715  	Bool override_redirect;	/* creation should be overridden */
   716  } XCreateWindowEvent;
   717  
   718  typedef struct {
   719  	int type;
   720  	unsigned long serial;	/* # of last request processed by server */
   721  	Bool send_event;	/* true if this came from a SendEvent request */
   722  	Display *display;	/* Display the event was read from */
   723  	Window event;
   724  	Window window;
   725  } XDestroyWindowEvent;
   726  
   727  typedef struct {
   728  	int type;
   729  	unsigned long serial;	/* # of last request processed by server */
   730  	Bool send_event;	/* true if this came from a SendEvent request */
   731  	Display *display;	/* Display the event was read from */
   732  	Window event;
   733  	Window window;
   734  	Bool from_configure;
   735  } XUnmapEvent;
   736  
   737  typedef struct {
   738  	int type;
   739  	unsigned long serial;	/* # of last request processed by server */
   740  	Bool send_event;	/* true if this came from a SendEvent request */
   741  	Display *display;	/* Display the event was read from */
   742  	Window event;
   743  	Window window;
   744  	Bool override_redirect;	/* boolean, is override set... */
   745  } XMapEvent;
   746  
   747  typedef struct {
   748  	int type;
   749  	unsigned long serial;	/* # of last request processed by server */
   750  	Bool send_event;	/* true if this came from a SendEvent request */
   751  	Display *display;	/* Display the event was read from */
   752  	Window parent;
   753  	Window window;
   754  } XMapRequestEvent;
   755  
   756  typedef struct {
   757  	int type;
   758  	unsigned long serial;	/* # of last request processed by server */
   759  	Bool send_event;	/* true if this came from a SendEvent request */
   760  	Display *display;	/* Display the event was read from */
   761  	Window event;
   762  	Window window;
   763  	Window parent;
   764  	int x, y;
   765  	Bool override_redirect;
   766  } XReparentEvent;
   767  
   768  typedef struct {
   769  	int type;
   770  	unsigned long serial;	/* # of last request processed by server */
   771  	Bool send_event;	/* true if this came from a SendEvent request */
   772  	Display *display;	/* Display the event was read from */
   773  	Window event;
   774  	Window window;
   775  	int x, y;
   776  	int width, height;
   777  	int border_width;
   778  	Window above;
   779  	Bool override_redirect;
   780  } XConfigureEvent;
   781  
   782  typedef struct {
   783  	int type;
   784  	unsigned long serial;	/* # of last request processed by server */
   785  	Bool send_event;	/* true if this came from a SendEvent request */
   786  	Display *display;	/* Display the event was read from */
   787  	Window event;
   788  	Window window;
   789  	int x, y;
   790  } XGravityEvent;
   791  
   792  typedef struct {
   793  	int type;
   794  	unsigned long serial;	/* # of last request processed by server */
   795  	Bool send_event;	/* true if this came from a SendEvent request */
   796  	Display *display;	/* Display the event was read from */
   797  	Window window;
   798  	int width, height;
   799  } XResizeRequestEvent;
   800  
   801  typedef struct {
   802  	int type;
   803  	unsigned long serial;	/* # of last request processed by server */
   804  	Bool send_event;	/* true if this came from a SendEvent request */
   805  	Display *display;	/* Display the event was read from */
   806  	Window parent;
   807  	Window window;
   808  	int x, y;
   809  	int width, height;
   810  	int border_width;
   811  	Window above;
   812  	int detail;		/* Above, Below, TopIf, BottomIf, Opposite */
   813  	unsigned long value_mask;
   814  } XConfigureRequestEvent;
   815  
   816  typedef struct {
   817  	int type;
   818  	unsigned long serial;	/* # of last request processed by server */
   819  	Bool send_event;	/* true if this came from a SendEvent request */
   820  	Display *display;	/* Display the event was read from */
   821  	Window event;
   822  	Window window;
   823  	int place;		/* PlaceOnTop, PlaceOnBottom */
   824  } XCirculateEvent;
   825  
   826  typedef struct {
   827  	int type;
   828  	unsigned long serial;	/* # of last request processed by server */
   829  	Bool send_event;	/* true if this came from a SendEvent request */
   830  	Display *display;	/* Display the event was read from */
   831  	Window parent;
   832  	Window window;
   833  	int place;		/* PlaceOnTop, PlaceOnBottom */
   834  } XCirculateRequestEvent;
   835  
   836  typedef struct {
   837  	int type;
   838  	unsigned long serial;	/* # of last request processed by server */
   839  	Bool send_event;	/* true if this came from a SendEvent request */
   840  	Display *display;	/* Display the event was read from */
   841  	Window window;
   842  	Atom atom;
   843  	Time time;
   844  	int state;		/* NewValue, Deleted */
   845  } XPropertyEvent;
   846  
   847  typedef struct {
   848  	int type;
   849  	unsigned long serial;	/* # of last request processed by server */
   850  	Bool send_event;	/* true if this came from a SendEvent request */
   851  	Display *display;	/* Display the event was read from */
   852  	Window window;
   853  	Atom selection;
   854  	Time time;
   855  } XSelectionClearEvent;
   856  
   857  typedef struct {
   858  	int type;
   859  	unsigned long serial;	/* # of last request processed by server */
   860  	Bool send_event;	/* true if this came from a SendEvent request */
   861  	Display *display;	/* Display the event was read from */
   862  	Window owner;
   863  	Window requestor;
   864  	Atom selection;
   865  	Atom target;
   866  	Atom property;
   867  	Time time;
   868  } XSelectionRequestEvent;
   869  
   870  typedef struct {
   871  	int type;
   872  	unsigned long serial;	/* # of last request processed by server */
   873  	Bool send_event;	/* true if this came from a SendEvent request */
   874  	Display *display;	/* Display the event was read from */
   875  	Window requestor;
   876  	Atom selection;
   877  	Atom target;
   878  	Atom property;		/* ATOM or None */
   879  	Time time;
   880  } XSelectionEvent;
   881  
   882  typedef struct {
   883  	int type;
   884  	unsigned long serial;	/* # of last request processed by server */
   885  	Bool send_event;	/* true if this came from a SendEvent request */
   886  	Display *display;	/* Display the event was read from */
   887  	Window window;
   888  	Colormap colormap;	/* COLORMAP or None */
   889  #if defined(__cplusplus) || defined(c_plusplus)
   890  	Bool c_new;		/* C++ */
   891  #else
   892  	Bool new;
   893  #endif
   894  	int state;		/* ColormapInstalled, ColormapUninstalled */
   895  } XColormapEvent;
   896  
   897  typedef struct {
   898  	int type;
   899  	unsigned long serial;	/* # of last request processed by server */
   900  	Bool send_event;	/* true if this came from a SendEvent request */
   901  	Display *display;	/* Display the event was read from */
   902  	Window window;
   903  	Atom message_type;
   904  	int format;
   905  	union {
   906  		char b[20];
   907  		short s[10];
   908  		long l[5];
   909  		} data;
   910  } XClientMessageEvent;
   911  
   912  typedef struct {
   913  	int type;
   914  	unsigned long serial;	/* # of last request processed by server */
   915  	Bool send_event;	/* true if this came from a SendEvent request */
   916  	Display *display;	/* Display the event was read from */
   917  	Window window;		/* unused */
   918  	int request;		/* one of MappingModifier, MappingKeyboard,
   919  				   MappingPointer */
   920  	int first_keycode;	/* first keycode */
   921  	int count;		/* defines range of change w. first_keycode*/
   922  } XMappingEvent;
   923  
   924  typedef struct {
   925  	int type;
   926  	Display *display;	/* Display the event was read from */
   927  	XID resourceid;		/* resource id */
   928  	unsigned long serial;	/* serial number of failed request */
   929  	unsigned char error_code;	/* error code of failed request */
   930  	unsigned char request_code;	/* Major op-code of failed request */
   931  	unsigned char minor_code;	/* Minor op-code of failed request */
   932  } XErrorEvent;
   933  
   934  typedef struct {
   935  	int type;
   936  	unsigned long serial;	/* # of last request processed by server */
   937  	Bool send_event;	/* true if this came from a SendEvent request */
   938  	Display *display;/* Display the event was read from */
   939  	Window window;	/* window on which event was requested in event mask */
   940  } XAnyEvent;
   941  
   942  
   943  /***************************************************************
   944   *
   945   * GenericEvent.  This event is the standard event for all newer extensions.
   946   */
   947  
   948  typedef struct
   949      {
   950      int            type;         /* of event. Always GenericEvent */
   951      unsigned long  serial;       /* # of last request processed */
   952      Bool           send_event;   /* true if from SendEvent request */
   953      Display        *display;     /* Display the event was read from */
   954      int            extension;    /* major opcode of extension that caused the event */
   955      int            evtype;       /* actual event type. */
   956      } XGenericEvent;
   957  
   958  typedef struct {
   959      int            type;         /* of event. Always GenericEvent */
   960      unsigned long  serial;       /* # of last request processed */
   961      Bool           send_event;   /* true if from SendEvent request */
   962      Display        *display;     /* Display the event was read from */
   963      int            extension;    /* major opcode of extension that caused the event */
   964      int            evtype;       /* actual event type. */
   965      unsigned int   cookie;
   966      void           *data;
   967  } XGenericEventCookie;
   968  
   969  /*
   970   * this union is defined so Xlib can always use the same sized
   971   * event structure internally, to avoid memory fragmentation.
   972   */
   973  typedef union _XEvent {
   974          int type;		/* must not be changed; first element */
   975  	XAnyEvent xany;
   976  	XKeyEvent xkey;
   977  	XButtonEvent xbutton;
   978  	XMotionEvent xmotion;
   979  	XCrossingEvent xcrossing;
   980  	XFocusChangeEvent xfocus;
   981  	XExposeEvent xexpose;
   982  	XGraphicsExposeEvent xgraphicsexpose;
   983  	XNoExposeEvent xnoexpose;
   984  	XVisibilityEvent xvisibility;
   985  	XCreateWindowEvent xcreatewindow;
   986  	XDestroyWindowEvent xdestroywindow;
   987  	XUnmapEvent xunmap;
   988  	XMapEvent xmap;
   989  	XMapRequestEvent xmaprequest;
   990  	XReparentEvent xreparent;
   991  	XConfigureEvent xconfigure;
   992  	XGravityEvent xgravity;
   993  	XResizeRequestEvent xresizerequest;
   994  	XConfigureRequestEvent xconfigurerequest;
   995  	XCirculateEvent xcirculate;
   996  	XCirculateRequestEvent xcirculaterequest;
   997  	XPropertyEvent xproperty;
   998  	XSelectionClearEvent xselectionclear;
   999  	XSelectionRequestEvent xselectionrequest;
  1000  	XSelectionEvent xselection;
  1001  	XColormapEvent xcolormap;
  1002  	XClientMessageEvent xclient;
  1003  	XMappingEvent xmapping;
  1004  	XErrorEvent xerror;
  1005  	XKeymapEvent xkeymap;
  1006  	XGenericEvent xgeneric;
  1007  	XGenericEventCookie xcookie;
  1008  	long pad[24];
  1009  } XEvent;
  1010  #endif
  1011  
  1012  #define XAllocID(dpy) ((*((_XPrivDisplay)(dpy))->resource_alloc)((dpy)))
  1013  
  1014  /*
  1015   * per character font metric information.
  1016   */
  1017  typedef struct {
  1018      short	lbearing;	/* origin to left edge of raster */
  1019      short	rbearing;	/* origin to right edge of raster */
  1020      short	width;		/* advance to next char's origin */
  1021      short	ascent;		/* baseline to top edge of raster */
  1022      short	descent;	/* baseline to bottom edge of raster */
  1023      unsigned short attributes;	/* per char flags (not predefined) */
  1024  } XCharStruct;
  1025  
  1026  /*
  1027   * To allow arbitrary information with fonts, there are additional properties
  1028   * returned.
  1029   */
  1030  typedef struct {
  1031      Atom name;
  1032      unsigned long card32;
  1033  } XFontProp;
  1034  
  1035  typedef struct {
  1036      XExtData	*ext_data;	/* hook for extension to hang data */
  1037      Font        fid;            /* Font id for this font */
  1038      unsigned	direction;	/* hint about direction the font is painted */
  1039      unsigned	min_char_or_byte2;/* first character */
  1040      unsigned	max_char_or_byte2;/* last character */
  1041      unsigned	min_byte1;	/* first row that exists */
  1042      unsigned	max_byte1;	/* last row that exists */
  1043      Bool	all_chars_exist;/* flag if all characters have non-zero size*/
  1044      unsigned	default_char;	/* char to print for undefined character */
  1045      int         n_properties;   /* how many properties there are */
  1046      XFontProp	*properties;	/* pointer to array of additional properties*/
  1047      XCharStruct	min_bounds;	/* minimum bounds over all existing char*/
  1048      XCharStruct	max_bounds;	/* maximum bounds over all existing char*/
  1049      XCharStruct	*per_char;	/* first_char to last_char information */
  1050      int		ascent;		/* log. extent above baseline for spacing */
  1051      int		descent;	/* log. descent below baseline for spacing */
  1052  } XFontStruct;
  1053  
  1054  /*
  1055   * PolyText routines take these as arguments.
  1056   */
  1057  typedef struct {
  1058      char *chars;		/* pointer to string */
  1059      int nchars;			/* number of characters */
  1060      int delta;			/* delta between strings */
  1061      Font font;			/* font to print it in, None don't change */
  1062  } XTextItem;
  1063  
  1064  typedef struct {		/* normal 16 bit characters are two bytes */
  1065      unsigned char byte1;
  1066      unsigned char byte2;
  1067  } XChar2b;
  1068  
  1069  typedef struct {
  1070      XChar2b *chars;		/* two byte characters */
  1071      int nchars;			/* number of characters */
  1072      int delta;			/* delta between strings */
  1073      Font font;			/* font to print it in, None don't change */
  1074  } XTextItem16;
  1075  
  1076  
  1077  typedef union { Display *display;
  1078  		GC gc;
  1079  		Visual *visual;
  1080  		Screen *screen;
  1081  		ScreenFormat *pixmap_format;
  1082  		XFontStruct *font; } XEDataObject;
  1083  
  1084  typedef struct {
  1085      XRectangle      max_ink_extent;
  1086      XRectangle      max_logical_extent;
  1087  } XFontSetExtents;
  1088  
  1089  /* unused:
  1090  typedef void (*XOMProc)();
  1091   */
  1092  
  1093  typedef struct _XOM *XOM;
  1094  typedef struct _XOC *XOC, *XFontSet;
  1095  
  1096  typedef struct {
  1097      char           *chars;
  1098      int             nchars;
  1099      int             delta;
  1100      XFontSet        font_set;
  1101  } XmbTextItem;
  1102  
  1103  typedef struct {
  1104      wchar_t        *chars;
  1105      int             nchars;
  1106      int             delta;
  1107      XFontSet        font_set;
  1108  } XwcTextItem;
  1109  
  1110  #define XNRequiredCharSet "requiredCharSet"
  1111  #define XNQueryOrientation "queryOrientation"
  1112  #define XNBaseFontName "baseFontName"
  1113  #define XNOMAutomatic "omAutomatic"
  1114  #define XNMissingCharSet "missingCharSet"
  1115  #define XNDefaultString "defaultString"
  1116  #define XNOrientation "orientation"
  1117  #define XNDirectionalDependentDrawing "directionalDependentDrawing"
  1118  #define XNContextualDrawing "contextualDrawing"
  1119  #define XNFontInfo "fontInfo"
  1120  
  1121  typedef struct {
  1122      int charset_count;
  1123      char **charset_list;
  1124  } XOMCharSetList;
  1125  
  1126  typedef enum {
  1127      XOMOrientation_LTR_TTB,
  1128      XOMOrientation_RTL_TTB,
  1129      XOMOrientation_TTB_LTR,
  1130      XOMOrientation_TTB_RTL,
  1131      XOMOrientation_Context
  1132  } XOrientation;
  1133  
  1134  typedef struct {
  1135      int num_orientation;
  1136      XOrientation *orientation;	/* Input Text description */
  1137  } XOMOrientation;
  1138  
  1139  typedef struct {
  1140      int num_font;
  1141      XFontStruct **font_struct_list;
  1142      char **font_name_list;
  1143  } XOMFontInfo;
  1144  
  1145  typedef struct _XIM *XIM;
  1146  typedef struct _XIC *XIC;
  1147  
  1148  typedef void (*XIMProc)(
  1149      XIM,
  1150      XPointer,
  1151      XPointer
  1152  );
  1153  
  1154  typedef Bool (*XICProc)(
  1155      XIC,
  1156      XPointer,
  1157      XPointer
  1158  );
  1159  
  1160  typedef void (*XIDProc)(
  1161      Display*,
  1162      XPointer,
  1163      XPointer
  1164  );
  1165  
  1166  typedef unsigned long XIMStyle;
  1167  
  1168  typedef struct {
  1169      unsigned short count_styles;
  1170      XIMStyle *supported_styles;
  1171  } XIMStyles;
  1172  
  1173  #define XIMPreeditArea		0x0001L
  1174  #define XIMPreeditCallbacks	0x0002L
  1175  #define XIMPreeditPosition	0x0004L
  1176  #define XIMPreeditNothing	0x0008L
  1177  #define XIMPreeditNone		0x0010L
  1178  #define XIMStatusArea		0x0100L
  1179  #define XIMStatusCallbacks	0x0200L
  1180  #define XIMStatusNothing	0x0400L
  1181  #define XIMStatusNone		0x0800L
  1182  
  1183  #define XNVaNestedList "XNVaNestedList"
  1184  #define XNQueryInputStyle "queryInputStyle"
  1185  #define XNClientWindow "clientWindow"
  1186  #define XNInputStyle "inputStyle"
  1187  #define XNFocusWindow "focusWindow"
  1188  #define XNResourceName "resourceName"
  1189  #define XNResourceClass "resourceClass"
  1190  #define XNGeometryCallback "geometryCallback"
  1191  #define XNDestroyCallback "destroyCallback"
  1192  #define XNFilterEvents "filterEvents"
  1193  #define XNPreeditStartCallback "preeditStartCallback"
  1194  #define XNPreeditDoneCallback "preeditDoneCallback"
  1195  #define XNPreeditDrawCallback "preeditDrawCallback"
  1196  #define XNPreeditCaretCallback "preeditCaretCallback"
  1197  #define XNPreeditStateNotifyCallback "preeditStateNotifyCallback"
  1198  #define XNPreeditAttributes "preeditAttributes"
  1199  #define XNStatusStartCallback "statusStartCallback"
  1200  #define XNStatusDoneCallback "statusDoneCallback"
  1201  #define XNStatusDrawCallback "statusDrawCallback"
  1202  #define XNStatusAttributes "statusAttributes"
  1203  #define XNArea "area"
  1204  #define XNAreaNeeded "areaNeeded"
  1205  #define XNSpotLocation "spotLocation"
  1206  #define XNColormap "colorMap"
  1207  #define XNStdColormap "stdColorMap"
  1208  #define XNForeground "foreground"
  1209  #define XNBackground "background"
  1210  #define XNBackgroundPixmap "backgroundPixmap"
  1211  #define XNFontSet "fontSet"
  1212  #define XNLineSpace "lineSpace"
  1213  #define XNCursor "cursor"
  1214  
  1215  #define XNQueryIMValuesList "queryIMValuesList"
  1216  #define XNQueryICValuesList "queryICValuesList"
  1217  #define XNVisiblePosition "visiblePosition"
  1218  #define XNR6PreeditCallback "r6PreeditCallback"
  1219  #define XNStringConversionCallback "stringConversionCallback"
  1220  #define XNStringConversion "stringConversion"
  1221  #define XNResetState "resetState"
  1222  #define XNHotKey "hotKey"
  1223  #define XNHotKeyState "hotKeyState"
  1224  #define XNPreeditState "preeditState"
  1225  #define XNSeparatorofNestedList "separatorofNestedList"
  1226  
  1227  #define XBufferOverflow		-1
  1228  #define XLookupNone		1
  1229  #define XLookupChars		2
  1230  #define XLookupKeySym		3
  1231  #define XLookupBoth		4
  1232  
  1233  typedef void *XVaNestedList;
  1234  
  1235  typedef struct {
  1236      XPointer client_data;
  1237      XIMProc callback;
  1238  } XIMCallback;
  1239  
  1240  typedef struct {
  1241      XPointer client_data;
  1242      XICProc callback;
  1243  } XICCallback;
  1244  
  1245  typedef unsigned long XIMFeedback;
  1246  
  1247  #define XIMReverse		1L
  1248  #define XIMUnderline		(1L<<1)
  1249  #define XIMHighlight		(1L<<2)
  1250  #define XIMPrimary	 	(1L<<5)
  1251  #define XIMSecondary		(1L<<6)
  1252  #define XIMTertiary	 	(1L<<7)
  1253  #define XIMVisibleToForward 	(1L<<8)
  1254  #define XIMVisibleToBackword 	(1L<<9)
  1255  #define XIMVisibleToCenter 	(1L<<10)
  1256  
  1257  typedef struct _XIMText {
  1258      unsigned short length;
  1259      XIMFeedback *feedback;
  1260      Bool encoding_is_wchar;
  1261      union {
  1262  	char *multi_byte;
  1263  	wchar_t *wide_char;
  1264      } string;
  1265  } XIMText;
  1266  
  1267  typedef	unsigned long	 XIMPreeditState;
  1268  
  1269  #define	XIMPreeditUnKnown	0L
  1270  #define	XIMPreeditEnable	1L
  1271  #define	XIMPreeditDisable	(1L<<1)
  1272  
  1273  typedef	struct	_XIMPreeditStateNotifyCallbackStruct {
  1274      XIMPreeditState state;
  1275  } XIMPreeditStateNotifyCallbackStruct;
  1276  
  1277  typedef	unsigned long	 XIMResetState;
  1278  
  1279  #define	XIMInitialState		1L
  1280  #define	XIMPreserveState	(1L<<1)
  1281  
  1282  typedef unsigned long XIMStringConversionFeedback;
  1283  
  1284  #define	XIMStringConversionLeftEdge	(0x00000001)
  1285  #define	XIMStringConversionRightEdge	(0x00000002)
  1286  #define	XIMStringConversionTopEdge	(0x00000004)
  1287  #define	XIMStringConversionBottomEdge	(0x00000008)
  1288  #define	XIMStringConversionConcealed	(0x00000010)
  1289  #define	XIMStringConversionWrapped	(0x00000020)
  1290  
  1291  typedef struct _XIMStringConversionText {
  1292      unsigned short length;
  1293      XIMStringConversionFeedback *feedback;
  1294      Bool encoding_is_wchar;
  1295      union {
  1296  	char *mbs;
  1297  	wchar_t *wcs;
  1298      } string;
  1299  } XIMStringConversionText;
  1300  
  1301  typedef	unsigned short	XIMStringConversionPosition;
  1302  
  1303  typedef	unsigned short	XIMStringConversionType;
  1304  
  1305  #define	XIMStringConversionBuffer	(0x0001)
  1306  #define	XIMStringConversionLine		(0x0002)
  1307  #define	XIMStringConversionWord		(0x0003)
  1308  #define	XIMStringConversionChar		(0x0004)
  1309  
  1310  typedef	unsigned short	XIMStringConversionOperation;
  1311  
  1312  #define	XIMStringConversionSubstitution	(0x0001)
  1313  #define	XIMStringConversionRetrieval	(0x0002)
  1314  
  1315  typedef enum {
  1316      XIMForwardChar, XIMBackwardChar,
  1317      XIMForwardWord, XIMBackwardWord,
  1318      XIMCaretUp, XIMCaretDown,
  1319      XIMNextLine, XIMPreviousLine,
  1320      XIMLineStart, XIMLineEnd,
  1321      XIMAbsolutePosition,
  1322      XIMDontChange
  1323  } XIMCaretDirection;
  1324  
  1325  typedef struct _XIMStringConversionCallbackStruct {
  1326      XIMStringConversionPosition position;
  1327      XIMCaretDirection direction;
  1328      XIMStringConversionOperation operation;
  1329      unsigned short factor;
  1330      XIMStringConversionText *text;
  1331  } XIMStringConversionCallbackStruct;
  1332  
  1333  typedef struct _XIMPreeditDrawCallbackStruct {
  1334      int caret;		/* Cursor offset within pre-edit string */
  1335      int chg_first;	/* Starting change position */
  1336      int chg_length;	/* Length of the change in character count */
  1337      XIMText *text;
  1338  } XIMPreeditDrawCallbackStruct;
  1339  
  1340  typedef enum {
  1341      XIMIsInvisible,	/* Disable caret feedback */
  1342      XIMIsPrimary,	/* UI defined caret feedback */
  1343      XIMIsSecondary	/* UI defined caret feedback */
  1344  } XIMCaretStyle;
  1345  
  1346  typedef struct _XIMPreeditCaretCallbackStruct {
  1347      int position;		 /* Caret offset within pre-edit string */
  1348      XIMCaretDirection direction; /* Caret moves direction */
  1349      XIMCaretStyle style;	 /* Feedback of the caret */
  1350  } XIMPreeditCaretCallbackStruct;
  1351  
  1352  typedef enum {
  1353      XIMTextType,
  1354      XIMBitmapType
  1355  } XIMStatusDataType;
  1356  
  1357  typedef struct _XIMStatusDrawCallbackStruct {
  1358      XIMStatusDataType type;
  1359      union {
  1360  	XIMText *text;
  1361  	Pixmap  bitmap;
  1362      } data;
  1363  } XIMStatusDrawCallbackStruct;
  1364  
  1365  typedef struct _XIMHotKeyTrigger {
  1366      KeySym	 keysym;
  1367      int		 modifier;
  1368      int		 modifier_mask;
  1369  } XIMHotKeyTrigger;
  1370  
  1371  typedef struct _XIMHotKeyTriggers {
  1372      int			 num_hot_key;
  1373      XIMHotKeyTrigger	*key;
  1374  } XIMHotKeyTriggers;
  1375  
  1376  typedef	unsigned long	 XIMHotKeyState;
  1377  
  1378  #define	XIMHotKeyStateON	(0x0001L)
  1379  #define	XIMHotKeyStateOFF	(0x0002L)
  1380  
  1381  typedef struct {
  1382      unsigned short count_values;
  1383      char **supported_values;
  1384  } XIMValuesList;
  1385  
  1386  _XFUNCPROTOBEGIN
  1387  
  1388  #if defined(WIN32) && !defined(_XLIBINT_)
  1389  #define _Xdebug (*_Xdebug_p)
  1390  #endif
  1391  
  1392  extern int _Xdebug;
  1393  
  1394  extern XFontStruct *XLoadQueryFont(
  1395      Display*		/* display */,
  1396      _Xconst char*	/* name */
  1397  );
  1398  
  1399  extern XFontStruct *XQueryFont(
  1400      Display*		/* display */,
  1401      XID			/* font_ID */
  1402  );
  1403  
  1404  
  1405  extern XTimeCoord *XGetMotionEvents(
  1406      Display*		/* display */,
  1407      Window		/* w */,
  1408      Time		/* start */,
  1409      Time		/* stop */,
  1410      int*		/* nevents_return */
  1411  );
  1412  
  1413  extern XModifierKeymap *XDeleteModifiermapEntry(
  1414      XModifierKeymap*	/* modmap */,
  1415  #if NeedWidePrototypes
  1416      unsigned int	/* keycode_entry */,
  1417  #else
  1418      KeyCode		/* keycode_entry */,
  1419  #endif
  1420      int			/* modifier */
  1421  );
  1422  
  1423  extern XModifierKeymap	*XGetModifierMapping(
  1424      Display*		/* display */
  1425  );
  1426  
  1427  extern XModifierKeymap	*XInsertModifiermapEntry(
  1428      XModifierKeymap*	/* modmap */,
  1429  #if NeedWidePrototypes
  1430      unsigned int	/* keycode_entry */,
  1431  #else
  1432      KeyCode		/* keycode_entry */,
  1433  #endif
  1434      int			/* modifier */
  1435  );
  1436  
  1437  extern XModifierKeymap *XNewModifiermap(
  1438      int			/* max_keys_per_mod */
  1439  );
  1440  
  1441  extern XImage *XCreateImage(
  1442      Display*		/* display */,
  1443      Visual*		/* visual */,
  1444      unsigned int	/* depth */,
  1445      int			/* format */,
  1446      int			/* offset */,
  1447      char*		/* data */,
  1448      unsigned int	/* width */,
  1449      unsigned int	/* height */,
  1450      int			/* bitmap_pad */,
  1451      int			/* bytes_per_line */
  1452  );
  1453  extern Status XInitImage(
  1454      XImage*		/* image */
  1455  );
  1456  extern XImage *XGetImage(
  1457      Display*		/* display */,
  1458      Drawable		/* d */,
  1459      int			/* x */,
  1460      int			/* y */,
  1461      unsigned int	/* width */,
  1462      unsigned int	/* height */,
  1463      unsigned long	/* plane_mask */,
  1464      int			/* format */
  1465  );
  1466  extern XImage *XGetSubImage(
  1467      Display*		/* display */,
  1468      Drawable		/* d */,
  1469      int			/* x */,
  1470      int			/* y */,
  1471      unsigned int	/* width */,
  1472      unsigned int	/* height */,
  1473      unsigned long	/* plane_mask */,
  1474      int			/* format */,
  1475      XImage*		/* dest_image */,
  1476      int			/* dest_x */,
  1477      int			/* dest_y */
  1478  );
  1479  
  1480  /*
  1481   * X function declarations.
  1482   */
  1483  extern Display *XOpenDisplay(
  1484      _Xconst char*	/* display_name */
  1485  );
  1486  
  1487  extern void XrmInitialize(
  1488      void
  1489  );
  1490  
  1491  extern char *XFetchBytes(
  1492      Display*		/* display */,
  1493      int*		/* nbytes_return */
  1494  );
  1495  extern char *XFetchBuffer(
  1496      Display*		/* display */,
  1497      int*		/* nbytes_return */,
  1498      int			/* buffer */
  1499  );
  1500  extern char *XGetAtomName(
  1501      Display*		/* display */,
  1502      Atom		/* atom */
  1503  );
  1504  extern Status XGetAtomNames(
  1505      Display*		/* dpy */,
  1506      Atom*		/* atoms */,
  1507      int			/* count */,
  1508      char**		/* names_return */
  1509  );
  1510  extern char *XGetDefault(
  1511      Display*		/* display */,
  1512      _Xconst char*	/* program */,
  1513      _Xconst char*	/* option */
  1514  );
  1515  extern char *XDisplayName(
  1516      _Xconst char*	/* string */
  1517  );
  1518  extern char *XKeysymToString(
  1519      KeySym		/* keysym */
  1520  );
  1521  
  1522  extern int (*XSynchronize(
  1523      Display*		/* display */,
  1524      Bool		/* onoff */
  1525  ))(
  1526      Display*		/* display */
  1527  );
  1528  extern int (*XSetAfterFunction(
  1529      Display*		/* display */,
  1530      int (*) (
  1531  	     Display*	/* display */
  1532              )		/* procedure */
  1533  ))(
  1534      Display*		/* display */
  1535  );
  1536  extern Atom XInternAtom(
  1537      Display*		/* display */,
  1538      _Xconst char*	/* atom_name */,
  1539      Bool		/* only_if_exists */
  1540  );
  1541  extern Status XInternAtoms(
  1542      Display*		/* dpy */,
  1543      char**		/* names */,
  1544      int			/* count */,
  1545      Bool		/* onlyIfExists */,
  1546      Atom*		/* atoms_return */
  1547  );
  1548  extern Colormap XCopyColormapAndFree(
  1549      Display*		/* display */,
  1550      Colormap		/* colormap */
  1551  );
  1552  extern Colormap XCreateColormap(
  1553      Display*		/* display */,
  1554      Window		/* w */,
  1555      Visual*		/* visual */,
  1556      int			/* alloc */
  1557  );
  1558  extern Cursor XCreatePixmapCursor(
  1559      Display*		/* display */,
  1560      Pixmap		/* source */,
  1561      Pixmap		/* mask */,
  1562      XColor*		/* foreground_color */,
  1563      XColor*		/* background_color */,
  1564      unsigned int	/* x */,
  1565      unsigned int	/* y */
  1566  );
  1567  extern Cursor XCreateGlyphCursor(
  1568      Display*		/* display */,
  1569      Font		/* source_font */,
  1570      Font		/* mask_font */,
  1571      unsigned int	/* source_char */,
  1572      unsigned int	/* mask_char */,
  1573      XColor _Xconst *	/* foreground_color */,
  1574      XColor _Xconst *	/* background_color */
  1575  );
  1576  extern Cursor XCreateFontCursor(
  1577      Display*		/* display */,
  1578      unsigned int	/* shape */
  1579  );
  1580  extern Font XLoadFont(
  1581      Display*		/* display */,
  1582      _Xconst char*	/* name */
  1583  );
  1584  extern GC XCreateGC(
  1585      Display*		/* display */,
  1586      Drawable		/* d */,
  1587      unsigned long	/* valuemask */,
  1588      XGCValues*		/* values */
  1589  );
  1590  extern GContext XGContextFromGC(
  1591      GC			/* gc */
  1592  );
  1593  extern void XFlushGC(
  1594      Display*		/* display */,
  1595      GC			/* gc */
  1596  );
  1597  extern Pixmap XCreatePixmap(
  1598      Display*		/* display */,
  1599      Drawable		/* d */,
  1600      unsigned int	/* width */,
  1601      unsigned int	/* height */,
  1602      unsigned int	/* depth */
  1603  );
  1604  extern Pixmap XCreateBitmapFromData(
  1605      Display*		/* display */,
  1606      Drawable		/* d */,
  1607      _Xconst char*	/* data */,
  1608      unsigned int	/* width */,
  1609      unsigned int	/* height */
  1610  );
  1611  extern Pixmap XCreatePixmapFromBitmapData(
  1612      Display*		/* display */,
  1613      Drawable		/* d */,
  1614      char*		/* data */,
  1615      unsigned int	/* width */,
  1616      unsigned int	/* height */,
  1617      unsigned long	/* fg */,
  1618      unsigned long	/* bg */,
  1619      unsigned int	/* depth */
  1620  );
  1621  extern Window XCreateSimpleWindow(
  1622      Display*		/* display */,
  1623      Window		/* parent */,
  1624      int			/* x */,
  1625      int			/* y */,
  1626      unsigned int	/* width */,
  1627      unsigned int	/* height */,
  1628      unsigned int	/* border_width */,
  1629      unsigned long	/* border */,
  1630      unsigned long	/* background */
  1631  );
  1632  extern Window XGetSelectionOwner(
  1633      Display*		/* display */,
  1634      Atom		/* selection */
  1635  );
  1636  extern Window XCreateWindow(
  1637      Display*		/* display */,
  1638      Window		/* parent */,
  1639      int			/* x */,
  1640      int			/* y */,
  1641      unsigned int	/* width */,
  1642      unsigned int	/* height */,
  1643      unsigned int	/* border_width */,
  1644      int			/* depth */,
  1645      unsigned int	/* class */,
  1646      Visual*		/* visual */,
  1647      unsigned long	/* valuemask */,
  1648      XSetWindowAttributes*	/* attributes */
  1649  );
  1650  extern Colormap *XListInstalledColormaps(
  1651      Display*		/* display */,
  1652      Window		/* w */,
  1653      int*		/* num_return */
  1654  );
  1655  extern char **XListFonts(
  1656      Display*		/* display */,
  1657      _Xconst char*	/* pattern */,
  1658      int			/* maxnames */,
  1659      int*		/* actual_count_return */
  1660  );
  1661  extern char **XListFontsWithInfo(
  1662      Display*		/* display */,
  1663      _Xconst char*	/* pattern */,
  1664      int			/* maxnames */,
  1665      int*		/* count_return */,
  1666      XFontStruct**	/* info_return */
  1667  );
  1668  extern char **XGetFontPath(
  1669      Display*		/* display */,
  1670      int*		/* npaths_return */
  1671  );
  1672  extern char **XListExtensions(
  1673      Display*		/* display */,
  1674      int*		/* nextensions_return */
  1675  );
  1676  extern Atom *XListProperties(
  1677      Display*		/* display */,
  1678      Window		/* w */,
  1679      int*		/* num_prop_return */
  1680  );
  1681  extern XHostAddress *XListHosts(
  1682      Display*		/* display */,
  1683      int*		/* nhosts_return */,
  1684      Bool*		/* state_return */
  1685  );
  1686  _X_DEPRECATED
  1687  extern KeySym XKeycodeToKeysym(
  1688      Display*		/* display */,
  1689  #if NeedWidePrototypes
  1690      unsigned int	/* keycode */,
  1691  #else
  1692      KeyCode		/* keycode */,
  1693  #endif
  1694      int			/* index */
  1695  );
  1696  extern KeySym XLookupKeysym(
  1697      XKeyEvent*		/* key_event */,
  1698      int			/* index */
  1699  );
  1700  extern KeySym *XGetKeyboardMapping(
  1701      Display*		/* display */,
  1702  #if NeedWidePrototypes
  1703      unsigned int	/* first_keycode */,
  1704  #else
  1705      KeyCode		/* first_keycode */,
  1706  #endif
  1707      int			/* keycode_count */,
  1708      int*		/* keysyms_per_keycode_return */
  1709  );
  1710  extern KeySym XStringToKeysym(
  1711      _Xconst char*	/* string */
  1712  );
  1713  extern long XMaxRequestSize(
  1714      Display*		/* display */
  1715  );
  1716  extern long XExtendedMaxRequestSize(
  1717      Display*		/* display */
  1718  );
  1719  extern char *XResourceManagerString(
  1720      Display*		/* display */
  1721  );
  1722  extern char *XScreenResourceString(
  1723  	Screen*		/* screen */
  1724  );
  1725  extern unsigned long XDisplayMotionBufferSize(
  1726      Display*		/* display */
  1727  );
  1728  extern VisualID XVisualIDFromVisual(
  1729      Visual*		/* visual */
  1730  );
  1731  
  1732  /* multithread routines */
  1733  
  1734  extern Status XInitThreads(
  1735      void
  1736  );
  1737  
  1738  extern void XLockDisplay(
  1739      Display*		/* display */
  1740  );
  1741  
  1742  extern void XUnlockDisplay(
  1743      Display*		/* display */
  1744  );
  1745  
  1746  /* routines for dealing with extensions */
  1747  
  1748  extern XExtCodes *XInitExtension(
  1749      Display*		/* display */,
  1750      _Xconst char*	/* name */
  1751  );
  1752  
  1753  extern XExtCodes *XAddExtension(
  1754      Display*		/* display */
  1755  );
  1756  extern XExtData *XFindOnExtensionList(
  1757      XExtData**		/* structure */,
  1758      int			/* number */
  1759  );
  1760  extern XExtData **XEHeadOfExtensionList(
  1761      XEDataObject	/* object */
  1762  );
  1763  
  1764  /* these are routines for which there are also macros */
  1765  extern Window XRootWindow(
  1766      Display*		/* display */,
  1767      int			/* screen_number */
  1768  );
  1769  extern Window XDefaultRootWindow(
  1770      Display*		/* display */
  1771  );
  1772  extern Window XRootWindowOfScreen(
  1773      Screen*		/* screen */
  1774  );
  1775  extern Visual *XDefaultVisual(
  1776      Display*		/* display */,
  1777      int			/* screen_number */
  1778  );
  1779  extern Visual *XDefaultVisualOfScreen(
  1780      Screen*		/* screen */
  1781  );
  1782  extern GC XDefaultGC(
  1783      Display*		/* display */,
  1784      int			/* screen_number */
  1785  );
  1786  extern GC XDefaultGCOfScreen(
  1787      Screen*		/* screen */
  1788  );
  1789  extern unsigned long XBlackPixel(
  1790      Display*		/* display */,
  1791      int			/* screen_number */
  1792  );
  1793  extern unsigned long XWhitePixel(
  1794      Display*		/* display */,
  1795      int			/* screen_number */
  1796  );
  1797  extern unsigned long XAllPlanes(
  1798      void
  1799  );
  1800  extern unsigned long XBlackPixelOfScreen(
  1801      Screen*		/* screen */
  1802  );
  1803  extern unsigned long XWhitePixelOfScreen(
  1804      Screen*		/* screen */
  1805  );
  1806  extern unsigned long XNextRequest(
  1807      Display*		/* display */
  1808  );
  1809  extern unsigned long XLastKnownRequestProcessed(
  1810      Display*		/* display */
  1811  );
  1812  extern char *XServerVendor(
  1813      Display*		/* display */
  1814  );
  1815  extern char *XDisplayString(
  1816      Display*		/* display */
  1817  );
  1818  extern Colormap XDefaultColormap(
  1819      Display*		/* display */,
  1820      int			/* screen_number */
  1821  );
  1822  extern Colormap XDefaultColormapOfScreen(
  1823      Screen*		/* screen */
  1824  );
  1825  extern Display *XDisplayOfScreen(
  1826      Screen*		/* screen */
  1827  );
  1828  extern Screen *XScreenOfDisplay(
  1829      Display*		/* display */,
  1830      int			/* screen_number */
  1831  );
  1832  extern Screen *XDefaultScreenOfDisplay(
  1833      Display*		/* display */
  1834  );
  1835  extern long XEventMaskOfScreen(
  1836      Screen*		/* screen */
  1837  );
  1838  
  1839  extern int XScreenNumberOfScreen(
  1840      Screen*		/* screen */
  1841  );
  1842  
  1843  typedef int (*XErrorHandler) (	    /* WARNING, this type not in Xlib spec */
  1844      Display*		/* display */,
  1845      XErrorEvent*	/* error_event */
  1846  );
  1847  
  1848  extern XErrorHandler XSetErrorHandler (
  1849      XErrorHandler	/* handler */
  1850  );
  1851  
  1852  
  1853  typedef int (*XIOErrorHandler) (    /* WARNING, this type not in Xlib spec */
  1854      Display*		/* display */
  1855  );
  1856  
  1857  extern XIOErrorHandler XSetIOErrorHandler (
  1858      XIOErrorHandler	/* handler */
  1859  );
  1860  
  1861  typedef void (*XIOErrorExitHandler) ( /* WARNING, this type not in Xlib spec */
  1862      Display*,		/* display */
  1863      void*		/* user_data */
  1864  );
  1865  
  1866  extern void XSetIOErrorExitHandler (
  1867      Display*,			/* display */
  1868      XIOErrorExitHandler,	/* handler */
  1869      void*			/* user_data */
  1870  );
  1871  
  1872  extern XPixmapFormatValues *XListPixmapFormats(
  1873      Display*		/* display */,
  1874      int*		/* count_return */
  1875  );
  1876  extern int *XListDepths(
  1877      Display*		/* display */,
  1878      int			/* screen_number */,
  1879      int*		/* count_return */
  1880  );
  1881  
  1882  /* ICCCM routines for things that don't require special include files; */
  1883  /* other declarations are given in Xutil.h                             */
  1884  extern Status XReconfigureWMWindow(
  1885      Display*		/* display */,
  1886      Window		/* w */,
  1887      int			/* screen_number */,
  1888      unsigned int	/* mask */,
  1889      XWindowChanges*	/* changes */
  1890  );
  1891  
  1892  extern Status XGetWMProtocols(
  1893      Display*		/* display */,
  1894      Window		/* w */,
  1895      Atom**		/* protocols_return */,
  1896      int*		/* count_return */
  1897  );
  1898  extern Status XSetWMProtocols(
  1899      Display*		/* display */,
  1900      Window		/* w */,
  1901      Atom*		/* protocols */,
  1902      int			/* count */
  1903  );
  1904  extern Status XIconifyWindow(
  1905      Display*		/* display */,
  1906      Window		/* w */,
  1907      int			/* screen_number */
  1908  );
  1909  extern Status XWithdrawWindow(
  1910      Display*		/* display */,
  1911      Window		/* w */,
  1912      int			/* screen_number */
  1913  );
  1914  extern Status XGetCommand(
  1915      Display*		/* display */,
  1916      Window		/* w */,
  1917      char***		/* argv_return */,
  1918      int*		/* argc_return */
  1919  );
  1920  extern Status XGetWMColormapWindows(
  1921      Display*		/* display */,
  1922      Window		/* w */,
  1923      Window**		/* windows_return */,
  1924      int*		/* count_return */
  1925  );
  1926  extern Status XSetWMColormapWindows(
  1927      Display*		/* display */,
  1928      Window		/* w */,
  1929      Window*		/* colormap_windows */,
  1930      int			/* count */
  1931  );
  1932  extern void XFreeStringList(
  1933      char**		/* list */
  1934  );
  1935  extern int XSetTransientForHint(
  1936      Display*		/* display */,
  1937      Window		/* w */,
  1938      Window		/* prop_window */
  1939  );
  1940  
  1941  /* The following are given in alphabetical order */
  1942  
  1943  extern int XActivateScreenSaver(
  1944      Display*		/* display */
  1945  );
  1946  
  1947  extern int XAddHost(
  1948      Display*		/* display */,
  1949      XHostAddress*	/* host */
  1950  );
  1951  
  1952  extern int XAddHosts(
  1953      Display*		/* display */,
  1954      XHostAddress*	/* hosts */,
  1955      int			/* num_hosts */
  1956  );
  1957  
  1958  extern int XAddToExtensionList(
  1959      struct _XExtData**	/* structure */,
  1960      XExtData*		/* ext_data */
  1961  );
  1962  
  1963  extern int XAddToSaveSet(
  1964      Display*		/* display */,
  1965      Window		/* w */
  1966  );
  1967  
  1968  extern Status XAllocColor(
  1969      Display*		/* display */,
  1970      Colormap		/* colormap */,
  1971      XColor*		/* screen_in_out */
  1972  );
  1973  
  1974  extern Status XAllocColorCells(
  1975      Display*		/* display */,
  1976      Colormap		/* colormap */,
  1977      Bool	        /* contig */,
  1978      unsigned long*	/* plane_masks_return */,
  1979      unsigned int	/* nplanes */,
  1980      unsigned long*	/* pixels_return */,
  1981      unsigned int 	/* npixels */
  1982  );
  1983  
  1984  extern Status XAllocColorPlanes(
  1985      Display*		/* display */,
  1986      Colormap		/* colormap */,
  1987      Bool		/* contig */,
  1988      unsigned long*	/* pixels_return */,
  1989      int			/* ncolors */,
  1990      int			/* nreds */,
  1991      int			/* ngreens */,
  1992      int			/* nblues */,
  1993      unsigned long*	/* rmask_return */,
  1994      unsigned long*	/* gmask_return */,
  1995      unsigned long*	/* bmask_return */
  1996  );
  1997  
  1998  extern Status XAllocNamedColor(
  1999      Display*		/* display */,
  2000      Colormap		/* colormap */,
  2001      _Xconst char*	/* color_name */,
  2002      XColor*		/* screen_def_return */,
  2003      XColor*		/* exact_def_return */
  2004  );
  2005  
  2006  extern int XAllowEvents(
  2007      Display*		/* display */,
  2008      int			/* event_mode */,
  2009      Time		/* time */
  2010  );
  2011  
  2012  extern int XAutoRepeatOff(
  2013      Display*		/* display */
  2014  );
  2015  
  2016  extern int XAutoRepeatOn(
  2017      Display*		/* display */
  2018  );
  2019  
  2020  extern int XBell(
  2021      Display*		/* display */,
  2022      int			/* percent */
  2023  );
  2024  
  2025  extern int XBitmapBitOrder(
  2026      Display*		/* display */
  2027  );
  2028  
  2029  extern int XBitmapPad(
  2030      Display*		/* display */
  2031  );
  2032  
  2033  extern int XBitmapUnit(
  2034      Display*		/* display */
  2035  );
  2036  
  2037  extern int XCellsOfScreen(
  2038      Screen*		/* screen */
  2039  );
  2040  
  2041  extern int XChangeActivePointerGrab(
  2042      Display*		/* display */,
  2043      unsigned int	/* event_mask */,
  2044      Cursor		/* cursor */,
  2045      Time		/* time */
  2046  );
  2047  
  2048  extern int XChangeGC(
  2049      Display*		/* display */,
  2050      GC			/* gc */,
  2051      unsigned long	/* valuemask */,
  2052      XGCValues*		/* values */
  2053  );
  2054  
  2055  extern int XChangeKeyboardControl(
  2056      Display*		/* display */,
  2057      unsigned long	/* value_mask */,
  2058      XKeyboardControl*	/* values */
  2059  );
  2060  
  2061  extern int XChangeKeyboardMapping(
  2062      Display*		/* display */,
  2063      int			/* first_keycode */,
  2064      int			/* keysyms_per_keycode */,
  2065      KeySym*		/* keysyms */,
  2066      int			/* num_codes */
  2067  );
  2068  
  2069  extern int XChangePointerControl(
  2070      Display*		/* display */,
  2071      Bool		/* do_accel */,
  2072      Bool		/* do_threshold */,
  2073      int			/* accel_numerator */,
  2074      int			/* accel_denominator */,
  2075      int			/* threshold */
  2076  );
  2077  
  2078  extern int XChangeProperty(
  2079      Display*		/* display */,
  2080      Window		/* w */,
  2081      Atom		/* property */,
  2082      Atom		/* type */,
  2083      int			/* format */,
  2084      int			/* mode */,
  2085      _Xconst unsigned char*	/* data */,
  2086      int			/* nelements */
  2087  );
  2088  
  2089  extern int XChangeSaveSet(
  2090      Display*		/* display */,
  2091      Window		/* w */,
  2092      int			/* change_mode */
  2093  );
  2094  
  2095  extern int XChangeWindowAttributes(
  2096      Display*		/* display */,
  2097      Window		/* w */,
  2098      unsigned long	/* valuemask */,
  2099      XSetWindowAttributes* /* attributes */
  2100  );
  2101  
  2102  extern Bool XCheckIfEvent(
  2103      Display*		/* display */,
  2104      XEvent*		/* event_return */,
  2105      Bool (*) (
  2106  	       Display*			/* display */,
  2107                 XEvent*			/* event */,
  2108                 XPointer			/* arg */
  2109               )		/* predicate */,
  2110      XPointer		/* arg */
  2111  );
  2112  
  2113  extern Bool XCheckMaskEvent(
  2114      Display*		/* display */,
  2115      long		/* event_mask */,
  2116      XEvent*		/* event_return */
  2117  );
  2118  
  2119  extern Bool XCheckTypedEvent(
  2120      Display*		/* display */,
  2121      int			/* event_type */,
  2122      XEvent*		/* event_return */
  2123  );
  2124  
  2125  extern Bool XCheckTypedWindowEvent(
  2126      Display*		/* display */,
  2127      Window		/* w */,
  2128      int			/* event_type */,
  2129      XEvent*		/* event_return */
  2130  );
  2131  
  2132  extern Bool XCheckWindowEvent(
  2133      Display*		/* display */,
  2134      Window		/* w */,
  2135      long		/* event_mask */,
  2136      XEvent*		/* event_return */
  2137  );
  2138  
  2139  extern int XCirculateSubwindows(
  2140      Display*		/* display */,
  2141      Window		/* w */,
  2142      int			/* direction */
  2143  );
  2144  
  2145  extern int XCirculateSubwindowsDown(
  2146      Display*		/* display */,
  2147      Window		/* w */
  2148  );
  2149  
  2150  extern int XCirculateSubwindowsUp(
  2151      Display*		/* display */,
  2152      Window		/* w */
  2153  );
  2154  
  2155  extern int XClearArea(
  2156      Display*		/* display */,
  2157      Window		/* w */,
  2158      int			/* x */,
  2159      int			/* y */,
  2160      unsigned int	/* width */,
  2161      unsigned int	/* height */,
  2162      Bool		/* exposures */
  2163  );
  2164  
  2165  extern int XClearWindow(
  2166      Display*		/* display */,
  2167      Window		/* w */
  2168  );
  2169  
  2170  extern int XCloseDisplay(
  2171      Display*		/* display */
  2172  );
  2173  
  2174  extern int XConfigureWindow(
  2175      Display*		/* display */,
  2176      Window		/* w */,
  2177      unsigned int	/* value_mask */,
  2178      XWindowChanges*	/* values */
  2179  );
  2180  
  2181  extern int XConnectionNumber(
  2182      Display*		/* display */
  2183  );
  2184  
  2185  extern int XConvertSelection(
  2186      Display*		/* display */,
  2187      Atom		/* selection */,
  2188      Atom 		/* target */,
  2189      Atom		/* property */,
  2190      Window		/* requestor */,
  2191      Time		/* time */
  2192  );
  2193  
  2194  extern int XCopyArea(
  2195      Display*		/* display */,
  2196      Drawable		/* src */,
  2197      Drawable		/* dest */,
  2198      GC			/* gc */,
  2199      int			/* src_x */,
  2200      int			/* src_y */,
  2201      unsigned int	/* width */,
  2202      unsigned int	/* height */,
  2203      int			/* dest_x */,
  2204      int			/* dest_y */
  2205  );
  2206  
  2207  extern int XCopyGC(
  2208      Display*		/* display */,
  2209      GC			/* src */,
  2210      unsigned long	/* valuemask */,
  2211      GC			/* dest */
  2212  );
  2213  
  2214  extern int XCopyPlane(
  2215      Display*		/* display */,
  2216      Drawable		/* src */,
  2217      Drawable		/* dest */,
  2218      GC			/* gc */,
  2219      int			/* src_x */,
  2220      int			/* src_y */,
  2221      unsigned int	/* width */,
  2222      unsigned int	/* height */,
  2223      int			/* dest_x */,
  2224      int			/* dest_y */,
  2225      unsigned long	/* plane */
  2226  );
  2227  
  2228  extern int XDefaultDepth(
  2229      Display*		/* display */,
  2230      int			/* screen_number */
  2231  );
  2232  
  2233  extern int XDefaultDepthOfScreen(
  2234      Screen*		/* screen */
  2235  );
  2236  
  2237  extern int XDefaultScreen(
  2238      Display*		/* display */
  2239  );
  2240  
  2241  extern int XDefineCursor(
  2242      Display*		/* display */,
  2243      Window		/* w */,
  2244      Cursor		/* cursor */
  2245  );
  2246  
  2247  extern int XDeleteProperty(
  2248      Display*		/* display */,
  2249      Window		/* w */,
  2250      Atom		/* property */
  2251  );
  2252  
  2253  extern int XDestroyWindow(
  2254      Display*		/* display */,
  2255      Window		/* w */
  2256  );
  2257  
  2258  extern int XDestroySubwindows(
  2259      Display*		/* display */,
  2260      Window		/* w */
  2261  );
  2262  
  2263  extern int XDoesBackingStore(
  2264      Screen*		/* screen */
  2265  );
  2266  
  2267  extern Bool XDoesSaveUnders(
  2268      Screen*		/* screen */
  2269  );
  2270  
  2271  extern int XDisableAccessControl(
  2272      Display*		/* display */
  2273  );
  2274  
  2275  
  2276  extern int XDisplayCells(
  2277      Display*		/* display */,
  2278      int			/* screen_number */
  2279  );
  2280  
  2281  extern int XDisplayHeight(
  2282      Display*		/* display */,
  2283      int			/* screen_number */
  2284  );
  2285  
  2286  extern int XDisplayHeightMM(
  2287      Display*		/* display */,
  2288      int			/* screen_number */
  2289  );
  2290  
  2291  extern int XDisplayKeycodes(
  2292      Display*		/* display */,
  2293      int*		/* min_keycodes_return */,
  2294      int*		/* max_keycodes_return */
  2295  );
  2296  
  2297  extern int XDisplayPlanes(
  2298      Display*		/* display */,
  2299      int			/* screen_number */
  2300  );
  2301  
  2302  extern int XDisplayWidth(
  2303      Display*		/* display */,
  2304      int			/* screen_number */
  2305  );
  2306  
  2307  extern int XDisplayWidthMM(
  2308      Display*		/* display */,
  2309      int			/* screen_number */
  2310  );
  2311  
  2312  extern int XDrawArc(
  2313      Display*		/* display */,
  2314      Drawable		/* d */,
  2315      GC			/* gc */,
  2316      int			/* x */,
  2317      int			/* y */,
  2318      unsigned int	/* width */,
  2319      unsigned int	/* height */,
  2320      int			/* angle1 */,
  2321      int			/* angle2 */
  2322  );
  2323  
  2324  extern int XDrawArcs(
  2325      Display*		/* display */,
  2326      Drawable		/* d */,
  2327      GC			/* gc */,
  2328      XArc*		/* arcs */,
  2329      int			/* narcs */
  2330  );
  2331  
  2332  extern int XDrawImageString(
  2333      Display*		/* display */,
  2334      Drawable		/* d */,
  2335      GC			/* gc */,
  2336      int			/* x */,
  2337      int			/* y */,
  2338      _Xconst char*	/* string */,
  2339      int			/* length */
  2340  );
  2341  
  2342  extern int XDrawImageString16(
  2343      Display*		/* display */,
  2344      Drawable		/* d */,
  2345      GC			/* gc */,
  2346      int			/* x */,
  2347      int			/* y */,
  2348      _Xconst XChar2b*	/* string */,
  2349      int			/* length */
  2350  );
  2351  
  2352  extern int XDrawLine(
  2353      Display*		/* display */,
  2354      Drawable		/* d */,
  2355      GC			/* gc */,
  2356      int			/* x1 */,
  2357      int			/* y1 */,
  2358      int			/* x2 */,
  2359      int			/* y2 */
  2360  );
  2361  
  2362  extern int XDrawLines(
  2363      Display*		/* display */,
  2364      Drawable		/* d */,
  2365      GC			/* gc */,
  2366      XPoint*		/* points */,
  2367      int			/* npoints */,
  2368      int			/* mode */
  2369  );
  2370  
  2371  extern int XDrawPoint(
  2372      Display*		/* display */,
  2373      Drawable		/* d */,
  2374      GC			/* gc */,
  2375      int			/* x */,
  2376      int			/* y */
  2377  );
  2378  
  2379  extern int XDrawPoints(
  2380      Display*		/* display */,
  2381      Drawable		/* d */,
  2382      GC			/* gc */,
  2383      XPoint*		/* points */,
  2384      int			/* npoints */,
  2385      int			/* mode */
  2386  );
  2387  
  2388  extern int XDrawRectangle(
  2389      Display*		/* display */,
  2390      Drawable		/* d */,
  2391      GC			/* gc */,
  2392      int			/* x */,
  2393      int			/* y */,
  2394      unsigned int	/* width */,
  2395      unsigned int	/* height */
  2396  );
  2397  
  2398  extern int XDrawRectangles(
  2399      Display*		/* display */,
  2400      Drawable		/* d */,
  2401      GC			/* gc */,
  2402      XRectangle*		/* rectangles */,
  2403      int			/* nrectangles */
  2404  );
  2405  
  2406  extern int XDrawSegments(
  2407      Display*		/* display */,
  2408      Drawable		/* d */,
  2409      GC			/* gc */,
  2410      XSegment*		/* segments */,
  2411      int			/* nsegments */
  2412  );
  2413  
  2414  extern int XDrawString(
  2415      Display*		/* display */,
  2416      Drawable		/* d */,
  2417      GC			/* gc */,
  2418      int			/* x */,
  2419      int			/* y */,
  2420      _Xconst char*	/* string */,
  2421      int			/* length */
  2422  );
  2423  
  2424  extern int XDrawString16(
  2425      Display*		/* display */,
  2426      Drawable		/* d */,
  2427      GC			/* gc */,
  2428      int			/* x */,
  2429      int			/* y */,
  2430      _Xconst XChar2b*	/* string */,
  2431      int			/* length */
  2432  );
  2433  
  2434  extern int XDrawText(
  2435      Display*		/* display */,
  2436      Drawable		/* d */,
  2437      GC			/* gc */,
  2438      int			/* x */,
  2439      int			/* y */,
  2440      XTextItem*		/* items */,
  2441      int			/* nitems */
  2442  );
  2443  
  2444  extern int XDrawText16(
  2445      Display*		/* display */,
  2446      Drawable		/* d */,
  2447      GC			/* gc */,
  2448      int			/* x */,
  2449      int			/* y */,
  2450      XTextItem16*	/* items */,
  2451      int			/* nitems */
  2452  );
  2453  
  2454  extern int XEnableAccessControl(
  2455      Display*		/* display */
  2456  );
  2457  
  2458  extern int XEventsQueued(
  2459      Display*		/* display */,
  2460      int			/* mode */
  2461  );
  2462  
  2463  extern Status XFetchName(
  2464      Display*		/* display */,
  2465      Window		/* w */,
  2466      char**		/* window_name_return */
  2467  );
  2468  
  2469  extern int XFillArc(
  2470      Display*		/* display */,
  2471      Drawable		/* d */,
  2472      GC			/* gc */,
  2473      int			/* x */,
  2474      int			/* y */,
  2475      unsigned int	/* width */,
  2476      unsigned int	/* height */,
  2477      int			/* angle1 */,
  2478      int			/* angle2 */
  2479  );
  2480  
  2481  extern int XFillArcs(
  2482      Display*		/* display */,
  2483      Drawable		/* d */,
  2484      GC			/* gc */,
  2485      XArc*		/* arcs */,
  2486      int			/* narcs */
  2487  );
  2488  
  2489  extern int XFillPolygon(
  2490      Display*		/* display */,
  2491      Drawable		/* d */,
  2492      GC			/* gc */,
  2493      XPoint*		/* points */,
  2494      int			/* npoints */,
  2495      int			/* shape */,
  2496      int			/* mode */
  2497  );
  2498  
  2499  extern int XFillRectangle(
  2500      Display*		/* display */,
  2501      Drawable		/* d */,
  2502      GC			/* gc */,
  2503      int			/* x */,
  2504      int			/* y */,
  2505      unsigned int	/* width */,
  2506      unsigned int	/* height */
  2507  );
  2508  
  2509  extern int XFillRectangles(
  2510      Display*		/* display */,
  2511      Drawable		/* d */,
  2512      GC			/* gc */,
  2513      XRectangle*		/* rectangles */,
  2514      int			/* nrectangles */
  2515  );
  2516  
  2517  extern int XFlush(
  2518      Display*		/* display */
  2519  );
  2520  
  2521  extern int XForceScreenSaver(
  2522      Display*		/* display */,
  2523      int			/* mode */
  2524  );
  2525  
  2526  extern int XFree(
  2527      void*		/* data */
  2528  );
  2529  
  2530  extern int XFreeColormap(
  2531      Display*		/* display */,
  2532      Colormap		/* colormap */
  2533  );
  2534  
  2535  extern int XFreeColors(
  2536      Display*		/* display */,
  2537      Colormap		/* colormap */,
  2538      unsigned long*	/* pixels */,
  2539      int			/* npixels */,
  2540      unsigned long	/* planes */
  2541  );
  2542  
  2543  extern int XFreeCursor(
  2544      Display*		/* display */,
  2545      Cursor		/* cursor */
  2546  );
  2547  
  2548  extern int XFreeExtensionList(
  2549      char**		/* list */
  2550  );
  2551  
  2552  extern int XFreeFont(
  2553      Display*		/* display */,
  2554      XFontStruct*	/* font_struct */
  2555  );
  2556  
  2557  extern int XFreeFontInfo(
  2558      char**		/* names */,
  2559      XFontStruct*	/* free_info */,
  2560      int			/* actual_count */
  2561  );
  2562  
  2563  extern int XFreeFontNames(
  2564      char**		/* list */
  2565  );
  2566  
  2567  extern int XFreeFontPath(
  2568      char**		/* list */
  2569  );
  2570  
  2571  extern int XFreeGC(
  2572      Display*		/* display */,
  2573      GC			/* gc */
  2574  );
  2575  
  2576  extern int XFreeModifiermap(
  2577      XModifierKeymap*	/* modmap */
  2578  );
  2579  
  2580  extern int XFreePixmap(
  2581      Display*		/* display */,
  2582      Pixmap		/* pixmap */
  2583  );
  2584  
  2585  extern int XGeometry(
  2586      Display*		/* display */,
  2587      int			/* screen */,
  2588      _Xconst char*	/* position */,
  2589      _Xconst char*	/* default_position */,
  2590      unsigned int	/* bwidth */,
  2591      unsigned int	/* fwidth */,
  2592      unsigned int	/* fheight */,
  2593      int			/* xadder */,
  2594      int			/* yadder */,
  2595      int*		/* x_return */,
  2596      int*		/* y_return */,
  2597      int*		/* width_return */,
  2598      int*		/* height_return */
  2599  );
  2600  
  2601  extern int XGetErrorDatabaseText(
  2602      Display*		/* display */,
  2603      _Xconst char*	/* name */,
  2604      _Xconst char*	/* message */,
  2605      _Xconst char*	/* default_string */,
  2606      char*		/* buffer_return */,
  2607      int			/* length */
  2608  );
  2609  
  2610  extern int XGetErrorText(
  2611      Display*		/* display */,
  2612      int			/* code */,
  2613      char*		/* buffer_return */,
  2614      int			/* length */
  2615  );
  2616  
  2617  extern Bool XGetFontProperty(
  2618      XFontStruct*	/* font_struct */,
  2619      Atom		/* atom */,
  2620      unsigned long*	/* value_return */
  2621  );
  2622  
  2623  extern Status XGetGCValues(
  2624      Display*		/* display */,
  2625      GC			/* gc */,
  2626      unsigned long	/* valuemask */,
  2627      XGCValues*		/* values_return */
  2628  );
  2629  
  2630  extern Status XGetGeometry(
  2631      Display*		/* display */,
  2632      Drawable		/* d */,
  2633      Window*		/* root_return */,
  2634      int*		/* x_return */,
  2635      int*		/* y_return */,
  2636      unsigned int*	/* width_return */,
  2637      unsigned int*	/* height_return */,
  2638      unsigned int*	/* border_width_return */,
  2639      unsigned int*	/* depth_return */
  2640  );
  2641  
  2642  extern Status XGetIconName(
  2643      Display*		/* display */,
  2644      Window		/* w */,
  2645      char**		/* icon_name_return */
  2646  );
  2647  
  2648  extern int XGetInputFocus(
  2649      Display*		/* display */,
  2650      Window*		/* focus_return */,
  2651      int*		/* revert_to_return */
  2652  );
  2653  
  2654  extern int XGetKeyboardControl(
  2655      Display*		/* display */,
  2656      XKeyboardState*	/* values_return */
  2657  );
  2658  
  2659  extern int XGetPointerControl(
  2660      Display*		/* display */,
  2661      int*		/* accel_numerator_return */,
  2662      int*		/* accel_denominator_return */,
  2663      int*		/* threshold_return */
  2664  );
  2665  
  2666  extern int XGetPointerMapping(
  2667      Display*		/* display */,
  2668      unsigned char*	/* map_return */,
  2669      int			/* nmap */
  2670  );
  2671  
  2672  extern int XGetScreenSaver(
  2673      Display*		/* display */,
  2674      int*		/* timeout_return */,
  2675      int*		/* interval_return */,
  2676      int*		/* prefer_blanking_return */,
  2677      int*		/* allow_exposures_return */
  2678  );
  2679  
  2680  extern Status XGetTransientForHint(
  2681      Display*		/* display */,
  2682      Window		/* w */,
  2683      Window*		/* prop_window_return */
  2684  );
  2685  
  2686  extern int XGetWindowProperty(
  2687      Display*		/* display */,
  2688      Window		/* w */,
  2689      Atom		/* property */,
  2690      long		/* long_offset */,
  2691      long		/* long_length */,
  2692      Bool		/* delete */,
  2693      Atom		/* req_type */,
  2694      Atom*		/* actual_type_return */,
  2695      int*		/* actual_format_return */,
  2696      unsigned long*	/* nitems_return */,
  2697      unsigned long*	/* bytes_after_return */,
  2698      unsigned char**	/* prop_return */
  2699  );
  2700  
  2701  extern Status XGetWindowAttributes(
  2702      Display*		/* display */,
  2703      Window		/* w */,
  2704      XWindowAttributes*	/* window_attributes_return */
  2705  );
  2706  
  2707  extern int XGrabButton(
  2708      Display*		/* display */,
  2709      unsigned int	/* button */,
  2710      unsigned int	/* modifiers */,
  2711      Window		/* grab_window */,
  2712      Bool		/* owner_events */,
  2713      unsigned int	/* event_mask */,
  2714      int			/* pointer_mode */,
  2715      int			/* keyboard_mode */,
  2716      Window		/* confine_to */,
  2717      Cursor		/* cursor */
  2718  );
  2719  
  2720  extern int XGrabKey(
  2721      Display*		/* display */,
  2722      int			/* keycode */,
  2723      unsigned int	/* modifiers */,
  2724      Window		/* grab_window */,
  2725      Bool		/* owner_events */,
  2726      int			/* pointer_mode */,
  2727      int			/* keyboard_mode */
  2728  );
  2729  
  2730  extern int XGrabKeyboard(
  2731      Display*		/* display */,
  2732      Window		/* grab_window */,
  2733      Bool		/* owner_events */,
  2734      int			/* pointer_mode */,
  2735      int			/* keyboard_mode */,
  2736      Time		/* time */
  2737  );
  2738  
  2739  extern int XGrabPointer(
  2740      Display*		/* display */,
  2741      Window		/* grab_window */,
  2742      Bool		/* owner_events */,
  2743      unsigned int	/* event_mask */,
  2744      int			/* pointer_mode */,
  2745      int			/* keyboard_mode */,
  2746      Window		/* confine_to */,
  2747      Cursor		/* cursor */,
  2748      Time		/* time */
  2749  );
  2750  
  2751  extern int XGrabServer(
  2752      Display*		/* display */
  2753  );
  2754  
  2755  extern int XHeightMMOfScreen(
  2756      Screen*		/* screen */
  2757  );
  2758  
  2759  extern int XHeightOfScreen(
  2760      Screen*		/* screen */
  2761  );
  2762  
  2763  extern int XIfEvent(
  2764      Display*		/* display */,
  2765      XEvent*		/* event_return */,
  2766      Bool (*) (
  2767  	       Display*			/* display */,
  2768                 XEvent*			/* event */,
  2769                 XPointer			/* arg */
  2770               )		/* predicate */,
  2771      XPointer		/* arg */
  2772  );
  2773  
  2774  extern int XImageByteOrder(
  2775      Display*		/* display */
  2776  );
  2777  
  2778  extern int XInstallColormap(
  2779      Display*		/* display */,
  2780      Colormap		/* colormap */
  2781  );
  2782  
  2783  extern KeyCode XKeysymToKeycode(
  2784      Display*		/* display */,
  2785      KeySym		/* keysym */
  2786  );
  2787  
  2788  extern int XKillClient(
  2789      Display*		/* display */,
  2790      XID			/* resource */
  2791  );
  2792  
  2793  extern Status XLookupColor(
  2794      Display*		/* display */,
  2795      Colormap		/* colormap */,
  2796      _Xconst char*	/* color_name */,
  2797      XColor*		/* exact_def_return */,
  2798      XColor*		/* screen_def_return */
  2799  );
  2800  
  2801  extern int XLowerWindow(
  2802      Display*		/* display */,
  2803      Window		/* w */
  2804  );
  2805  
  2806  extern int XMapRaised(
  2807      Display*		/* display */,
  2808      Window		/* w */
  2809  );
  2810  
  2811  extern int XMapSubwindows(
  2812      Display*		/* display */,
  2813      Window		/* w */
  2814  );
  2815  
  2816  extern int XMapWindow(
  2817      Display*		/* display */,
  2818      Window		/* w */
  2819  );
  2820  
  2821  extern int XMaskEvent(
  2822      Display*		/* display */,
  2823      long		/* event_mask */,
  2824      XEvent*		/* event_return */
  2825  );
  2826  
  2827  extern int XMaxCmapsOfScreen(
  2828      Screen*		/* screen */
  2829  );
  2830  
  2831  extern int XMinCmapsOfScreen(
  2832      Screen*		/* screen */
  2833  );
  2834  
  2835  extern int XMoveResizeWindow(
  2836      Display*		/* display */,
  2837      Window		/* w */,
  2838      int			/* x */,
  2839      int			/* y */,
  2840      unsigned int	/* width */,
  2841      unsigned int	/* height */
  2842  );
  2843  
  2844  extern int XMoveWindow(
  2845      Display*		/* display */,
  2846      Window		/* w */,
  2847      int			/* x */,
  2848      int			/* y */
  2849  );
  2850  
  2851  extern int XNextEvent(
  2852      Display*		/* display */,
  2853      XEvent*		/* event_return */
  2854  );
  2855  
  2856  extern int XNoOp(
  2857      Display*		/* display */
  2858  );
  2859  
  2860  extern Status XParseColor(
  2861      Display*		/* display */,
  2862      Colormap		/* colormap */,
  2863      _Xconst char*	/* spec */,
  2864      XColor*		/* exact_def_return */
  2865  );
  2866  
  2867  extern int XParseGeometry(
  2868      _Xconst char*	/* parsestring */,
  2869      int*		/* x_return */,
  2870      int*		/* y_return */,
  2871      unsigned int*	/* width_return */,
  2872      unsigned int*	/* height_return */
  2873  );
  2874  
  2875  extern int XPeekEvent(
  2876      Display*		/* display */,
  2877      XEvent*		/* event_return */
  2878  );
  2879  
  2880  extern int XPeekIfEvent(
  2881      Display*		/* display */,
  2882      XEvent*		/* event_return */,
  2883      Bool (*) (
  2884  	       Display*		/* display */,
  2885                 XEvent*		/* event */,
  2886                 XPointer		/* arg */
  2887               )		/* predicate */,
  2888      XPointer		/* arg */
  2889  );
  2890  
  2891  extern int XPending(
  2892      Display*		/* display */
  2893  );
  2894  
  2895  extern int XPlanesOfScreen(
  2896      Screen*		/* screen */
  2897  );
  2898  
  2899  extern int XProtocolRevision(
  2900      Display*		/* display */
  2901  );
  2902  
  2903  extern int XProtocolVersion(
  2904      Display*		/* display */
  2905  );
  2906  
  2907  
  2908  extern int XPutBackEvent(
  2909      Display*		/* display */,
  2910      XEvent*		/* event */
  2911  );
  2912  
  2913  extern int XPutImage(
  2914      Display*		/* display */,
  2915      Drawable		/* d */,
  2916      GC			/* gc */,
  2917      XImage*		/* image */,
  2918      int			/* src_x */,
  2919      int			/* src_y */,
  2920      int			/* dest_x */,
  2921      int			/* dest_y */,
  2922      unsigned int	/* width */,
  2923      unsigned int	/* height */
  2924  );
  2925  
  2926  extern int XQLength(
  2927      Display*		/* display */
  2928  );
  2929  
  2930  extern Status XQueryBestCursor(
  2931      Display*		/* display */,
  2932      Drawable		/* d */,
  2933      unsigned int        /* width */,
  2934      unsigned int	/* height */,
  2935      unsigned int*	/* width_return */,
  2936      unsigned int*	/* height_return */
  2937  );
  2938  
  2939  extern Status XQueryBestSize(
  2940      Display*		/* display */,
  2941      int			/* class */,
  2942      Drawable		/* which_screen */,
  2943      unsigned int	/* width */,
  2944      unsigned int	/* height */,
  2945      unsigned int*	/* width_return */,
  2946      unsigned int*	/* height_return */
  2947  );
  2948  
  2949  extern Status XQueryBestStipple(
  2950      Display*		/* display */,
  2951      Drawable		/* which_screen */,
  2952      unsigned int	/* width */,
  2953      unsigned int	/* height */,
  2954      unsigned int*	/* width_return */,
  2955      unsigned int*	/* height_return */
  2956  );
  2957  
  2958  extern Status XQueryBestTile(
  2959      Display*		/* display */,
  2960      Drawable		/* which_screen */,
  2961      unsigned int	/* width */,
  2962      unsigned int	/* height */,
  2963      unsigned int*	/* width_return */,
  2964      unsigned int*	/* height_return */
  2965  );
  2966  
  2967  extern int XQueryColor(
  2968      Display*		/* display */,
  2969      Colormap		/* colormap */,
  2970      XColor*		/* def_in_out */
  2971  );
  2972  
  2973  extern int XQueryColors(
  2974      Display*		/* display */,
  2975      Colormap		/* colormap */,
  2976      XColor*		/* defs_in_out */,
  2977      int			/* ncolors */
  2978  );
  2979  
  2980  extern Bool XQueryExtension(
  2981      Display*		/* display */,
  2982      _Xconst char*	/* name */,
  2983      int*		/* major_opcode_return */,
  2984      int*		/* first_event_return */,
  2985      int*		/* first_error_return */
  2986  );
  2987  
  2988  extern int XQueryKeymap(
  2989      Display*		/* display */,
  2990      char [32]		/* keys_return */
  2991  );
  2992  
  2993  extern Bool XQueryPointer(
  2994      Display*		/* display */,
  2995      Window		/* w */,
  2996      Window*		/* root_return */,
  2997      Window*		/* child_return */,
  2998      int*		/* root_x_return */,
  2999      int*		/* root_y_return */,
  3000      int*		/* win_x_return */,
  3001      int*		/* win_y_return */,
  3002      unsigned int*       /* mask_return */
  3003  );
  3004  
  3005  extern int XQueryTextExtents(
  3006      Display*		/* display */,
  3007      XID			/* font_ID */,
  3008      _Xconst char*	/* string */,
  3009      int			/* nchars */,
  3010      int*		/* direction_return */,
  3011      int*		/* font_ascent_return */,
  3012      int*		/* font_descent_return */,
  3013      XCharStruct*	/* overall_return */
  3014  );
  3015  
  3016  extern int XQueryTextExtents16(
  3017      Display*		/* display */,
  3018      XID			/* font_ID */,
  3019      _Xconst XChar2b*	/* string */,
  3020      int			/* nchars */,
  3021      int*		/* direction_return */,
  3022      int*		/* font_ascent_return */,
  3023      int*		/* font_descent_return */,
  3024      XCharStruct*	/* overall_return */
  3025  );
  3026  
  3027  extern Status XQueryTree(
  3028      Display*		/* display */,
  3029      Window		/* w */,
  3030      Window*		/* root_return */,
  3031      Window*		/* parent_return */,
  3032      Window**		/* children_return */,
  3033      unsigned int*	/* nchildren_return */
  3034  );
  3035  
  3036  extern int XRaiseWindow(
  3037      Display*		/* display */,
  3038      Window		/* w */
  3039  );
  3040  
  3041  extern int XReadBitmapFile(
  3042      Display*		/* display */,
  3043      Drawable 		/* d */,
  3044      _Xconst char*	/* filename */,
  3045      unsigned int*	/* width_return */,
  3046      unsigned int*	/* height_return */,
  3047      Pixmap*		/* bitmap_return */,
  3048      int*		/* x_hot_return */,
  3049      int*		/* y_hot_return */
  3050  );
  3051  
  3052  extern int XReadBitmapFileData(
  3053      _Xconst char*	/* filename */,
  3054      unsigned int*	/* width_return */,
  3055      unsigned int*	/* height_return */,
  3056      unsigned char**	/* data_return */,
  3057      int*		/* x_hot_return */,
  3058      int*		/* y_hot_return */
  3059  );
  3060  
  3061  extern int XRebindKeysym(
  3062      Display*		/* display */,
  3063      KeySym		/* keysym */,
  3064      KeySym*		/* list */,
  3065      int			/* mod_count */,
  3066      _Xconst unsigned char*	/* string */,
  3067      int			/* bytes_string */
  3068  );
  3069  
  3070  extern int XRecolorCursor(
  3071      Display*		/* display */,
  3072      Cursor		/* cursor */,
  3073      XColor*		/* foreground_color */,
  3074      XColor*		/* background_color */
  3075  );
  3076  
  3077  extern int XRefreshKeyboardMapping(
  3078      XMappingEvent*	/* event_map */
  3079  );
  3080  
  3081  extern int XRemoveFromSaveSet(
  3082      Display*		/* display */,
  3083      Window		/* w */
  3084  );
  3085  
  3086  extern int XRemoveHost(
  3087      Display*		/* display */,
  3088      XHostAddress*	/* host */
  3089  );
  3090  
  3091  extern int XRemoveHosts(
  3092      Display*		/* display */,
  3093      XHostAddress*	/* hosts */,
  3094      int			/* num_hosts */
  3095  );
  3096  
  3097  extern int XReparentWindow(
  3098      Display*		/* display */,
  3099      Window		/* w */,
  3100      Window		/* parent */,
  3101      int			/* x */,
  3102      int			/* y */
  3103  );
  3104  
  3105  extern int XResetScreenSaver(
  3106      Display*		/* display */
  3107  );
  3108  
  3109  extern int XResizeWindow(
  3110      Display*		/* display */,
  3111      Window		/* w */,
  3112      unsigned int	/* width */,
  3113      unsigned int	/* height */
  3114  );
  3115  
  3116  extern int XRestackWindows(
  3117      Display*		/* display */,
  3118      Window*		/* windows */,
  3119      int			/* nwindows */
  3120  );
  3121  
  3122  extern int XRotateBuffers(
  3123      Display*		/* display */,
  3124      int			/* rotate */
  3125  );
  3126  
  3127  extern int XRotateWindowProperties(
  3128      Display*		/* display */,
  3129      Window		/* w */,
  3130      Atom*		/* properties */,
  3131      int			/* num_prop */,
  3132      int			/* npositions */
  3133  );
  3134  
  3135  extern int XScreenCount(
  3136      Display*		/* display */
  3137  );
  3138  
  3139  extern int XSelectInput(
  3140      Display*		/* display */,
  3141      Window		/* w */,
  3142      long		/* event_mask */
  3143  );
  3144  
  3145  extern Status XSendEvent(
  3146      Display*		/* display */,
  3147      Window		/* w */,
  3148      Bool		/* propagate */,
  3149      long		/* event_mask */,
  3150      XEvent*		/* event_send */
  3151  );
  3152  
  3153  extern int XSetAccessControl(
  3154      Display*		/* display */,
  3155      int			/* mode */
  3156  );
  3157  
  3158  extern int XSetArcMode(
  3159      Display*		/* display */,
  3160      GC			/* gc */,
  3161      int			/* arc_mode */
  3162  );
  3163  
  3164  extern int XSetBackground(
  3165      Display*		/* display */,
  3166      GC			/* gc */,
  3167      unsigned long	/* background */
  3168  );
  3169  
  3170  extern int XSetClipMask(
  3171      Display*		/* display */,
  3172      GC			/* gc */,
  3173      Pixmap		/* pixmap */
  3174  );
  3175  
  3176  extern int XSetClipOrigin(
  3177      Display*		/* display */,
  3178      GC			/* gc */,
  3179      int			/* clip_x_origin */,
  3180      int			/* clip_y_origin */
  3181  );
  3182  
  3183  extern int XSetClipRectangles(
  3184      Display*		/* display */,
  3185      GC			/* gc */,
  3186      int			/* clip_x_origin */,
  3187      int			/* clip_y_origin */,
  3188      XRectangle*		/* rectangles */,
  3189      int			/* n */,
  3190      int			/* ordering */
  3191  );
  3192  
  3193  extern int XSetCloseDownMode(
  3194      Display*		/* display */,
  3195      int			/* close_mode */
  3196  );
  3197  
  3198  extern int XSetCommand(
  3199      Display*		/* display */,
  3200      Window		/* w */,
  3201      char**		/* argv */,
  3202      int			/* argc */
  3203  );
  3204  
  3205  extern int XSetDashes(
  3206      Display*		/* display */,
  3207      GC			/* gc */,
  3208      int			/* dash_offset */,
  3209      _Xconst char*	/* dash_list */,
  3210      int			/* n */
  3211  );
  3212  
  3213  extern int XSetFillRule(
  3214      Display*		/* display */,
  3215      GC			/* gc */,
  3216      int			/* fill_rule */
  3217  );
  3218  
  3219  extern int XSetFillStyle(
  3220      Display*		/* display */,
  3221      GC			/* gc */,
  3222      int			/* fill_style */
  3223  );
  3224  
  3225  extern int XSetFont(
  3226      Display*		/* display */,
  3227      GC			/* gc */,
  3228      Font		/* font */
  3229  );
  3230  
  3231  extern int XSetFontPath(
  3232      Display*		/* display */,
  3233      char**		/* directories */,
  3234      int			/* ndirs */
  3235  );
  3236  
  3237  extern int XSetForeground(
  3238      Display*		/* display */,
  3239      GC			/* gc */,
  3240      unsigned long	/* foreground */
  3241  );
  3242  
  3243  extern int XSetFunction(
  3244      Display*		/* display */,
  3245      GC			/* gc */,
  3246      int			/* function */
  3247  );
  3248  
  3249  extern int XSetGraphicsExposures(
  3250      Display*		/* display */,
  3251      GC			/* gc */,
  3252      Bool		/* graphics_exposures */
  3253  );
  3254  
  3255  extern int XSetIconName(
  3256      Display*		/* display */,
  3257      Window		/* w */,
  3258      _Xconst char*	/* icon_name */
  3259  );
  3260  
  3261  extern int XSetInputFocus(
  3262      Display*		/* display */,
  3263      Window		/* focus */,
  3264      int			/* revert_to */,
  3265      Time		/* time */
  3266  );
  3267  
  3268  extern int XSetLineAttributes(
  3269      Display*		/* display */,
  3270      GC			/* gc */,
  3271      unsigned int	/* line_width */,
  3272      int			/* line_style */,
  3273      int			/* cap_style */,
  3274      int			/* join_style */
  3275  );
  3276  
  3277  extern int XSetModifierMapping(
  3278      Display*		/* display */,
  3279      XModifierKeymap*	/* modmap */
  3280  );
  3281  
  3282  extern int XSetPlaneMask(
  3283      Display*		/* display */,
  3284      GC			/* gc */,
  3285      unsigned long	/* plane_mask */
  3286  );
  3287  
  3288  extern int XSetPointerMapping(
  3289      Display*		/* display */,
  3290      _Xconst unsigned char*	/* map */,
  3291      int			/* nmap */
  3292  );
  3293  
  3294  extern int XSetScreenSaver(
  3295      Display*		/* display */,
  3296      int			/* timeout */,
  3297      int			/* interval */,
  3298      int			/* prefer_blanking */,
  3299      int			/* allow_exposures */
  3300  );
  3301  
  3302  extern int XSetSelectionOwner(
  3303      Display*		/* display */,
  3304      Atom	        /* selection */,
  3305      Window		/* owner */,
  3306      Time		/* time */
  3307  );
  3308  
  3309  extern int XSetState(
  3310      Display*		/* display */,
  3311      GC			/* gc */,
  3312      unsigned long 	/* foreground */,
  3313      unsigned long	/* background */,
  3314      int			/* function */,
  3315      unsigned long	/* plane_mask */
  3316  );
  3317  
  3318  extern int XSetStipple(
  3319      Display*		/* display */,
  3320      GC			/* gc */,
  3321      Pixmap		/* stipple */
  3322  );
  3323  
  3324  extern int XSetSubwindowMode(
  3325      Display*		/* display */,
  3326      GC			/* gc */,
  3327      int			/* subwindow_mode */
  3328  );
  3329  
  3330  extern int XSetTSOrigin(
  3331      Display*		/* display */,
  3332      GC			/* gc */,
  3333      int			/* ts_x_origin */,
  3334      int			/* ts_y_origin */
  3335  );
  3336  
  3337  extern int XSetTile(
  3338      Display*		/* display */,
  3339      GC			/* gc */,
  3340      Pixmap		/* tile */
  3341  );
  3342  
  3343  extern int XSetWindowBackground(
  3344      Display*		/* display */,
  3345      Window		/* w */,
  3346      unsigned long	/* background_pixel */
  3347  );
  3348  
  3349  extern int XSetWindowBackgroundPixmap(
  3350      Display*		/* display */,
  3351      Window		/* w */,
  3352      Pixmap		/* background_pixmap */
  3353  );
  3354  
  3355  extern int XSetWindowBorder(
  3356      Display*		/* display */,
  3357      Window		/* w */,
  3358      unsigned long	/* border_pixel */
  3359  );
  3360  
  3361  extern int XSetWindowBorderPixmap(
  3362      Display*		/* display */,
  3363      Window		/* w */,
  3364      Pixmap		/* border_pixmap */
  3365  );
  3366  
  3367  extern int XSetWindowBorderWidth(
  3368      Display*		/* display */,
  3369      Window		/* w */,
  3370      unsigned int	/* width */
  3371  );
  3372  
  3373  extern int XSetWindowColormap(
  3374      Display*		/* display */,
  3375      Window		/* w */,
  3376      Colormap		/* colormap */
  3377  );
  3378  
  3379  extern int XStoreBuffer(
  3380      Display*		/* display */,
  3381      _Xconst char*	/* bytes */,
  3382      int			/* nbytes */,
  3383      int			/* buffer */
  3384  );
  3385  
  3386  extern int XStoreBytes(
  3387      Display*		/* display */,
  3388      _Xconst char*	/* bytes */,
  3389      int			/* nbytes */
  3390  );
  3391  
  3392  extern int XStoreColor(
  3393      Display*		/* display */,
  3394      Colormap		/* colormap */,
  3395      XColor*		/* color */
  3396  );
  3397  
  3398  extern int XStoreColors(
  3399      Display*		/* display */,
  3400      Colormap		/* colormap */,
  3401      XColor*		/* color */,
  3402      int			/* ncolors */
  3403  );
  3404  
  3405  extern int XStoreName(
  3406      Display*		/* display */,
  3407      Window		/* w */,
  3408      _Xconst char*	/* window_name */
  3409  );
  3410  
  3411  extern int XStoreNamedColor(
  3412      Display*		/* display */,
  3413      Colormap		/* colormap */,
  3414      _Xconst char*	/* color */,
  3415      unsigned long	/* pixel */,
  3416      int			/* flags */
  3417  );
  3418  
  3419  extern int XSync(
  3420      Display*		/* display */,
  3421      Bool		/* discard */
  3422  );
  3423  
  3424  extern int XTextExtents(
  3425      XFontStruct*	/* font_struct */,
  3426      _Xconst char*	/* string */,
  3427      int			/* nchars */,
  3428      int*		/* direction_return */,
  3429      int*		/* font_ascent_return */,
  3430      int*		/* font_descent_return */,
  3431      XCharStruct*	/* overall_return */
  3432  );
  3433  
  3434  extern int XTextExtents16(
  3435      XFontStruct*	/* font_struct */,
  3436      _Xconst XChar2b*	/* string */,
  3437      int			/* nchars */,
  3438      int*		/* direction_return */,
  3439      int*		/* font_ascent_return */,
  3440      int*		/* font_descent_return */,
  3441      XCharStruct*	/* overall_return */
  3442  );
  3443  
  3444  extern int XTextWidth(
  3445      XFontStruct*	/* font_struct */,
  3446      _Xconst char*	/* string */,
  3447      int			/* count */
  3448  );
  3449  
  3450  extern int XTextWidth16(
  3451      XFontStruct*	/* font_struct */,
  3452      _Xconst XChar2b*	/* string */,
  3453      int			/* count */
  3454  );
  3455  
  3456  extern Bool XTranslateCoordinates(
  3457      Display*		/* display */,
  3458      Window		/* src_w */,
  3459      Window		/* dest_w */,
  3460      int			/* src_x */,
  3461      int			/* src_y */,
  3462      int*		/* dest_x_return */,
  3463      int*		/* dest_y_return */,
  3464      Window*		/* child_return */
  3465  );
  3466  
  3467  extern int XUndefineCursor(
  3468      Display*		/* display */,
  3469      Window		/* w */
  3470  );
  3471  
  3472  extern int XUngrabButton(
  3473      Display*		/* display */,
  3474      unsigned int	/* button */,
  3475      unsigned int	/* modifiers */,
  3476      Window		/* grab_window */
  3477  );
  3478  
  3479  extern int XUngrabKey(
  3480      Display*		/* display */,
  3481      int			/* keycode */,
  3482      unsigned int	/* modifiers */,
  3483      Window		/* grab_window */
  3484  );
  3485  
  3486  extern int XUngrabKeyboard(
  3487      Display*		/* display */,
  3488      Time		/* time */
  3489  );
  3490  
  3491  extern int XUngrabPointer(
  3492      Display*		/* display */,
  3493      Time		/* time */
  3494  );
  3495  
  3496  extern int XUngrabServer(
  3497      Display*		/* display */
  3498  );
  3499  
  3500  extern int XUninstallColormap(
  3501      Display*		/* display */,
  3502      Colormap		/* colormap */
  3503  );
  3504  
  3505  extern int XUnloadFont(
  3506      Display*		/* display */,
  3507      Font		/* font */
  3508  );
  3509  
  3510  extern int XUnmapSubwindows(
  3511      Display*		/* display */,
  3512      Window		/* w */
  3513  );
  3514  
  3515  extern int XUnmapWindow(
  3516      Display*		/* display */,
  3517      Window		/* w */
  3518  );
  3519  
  3520  extern int XVendorRelease(
  3521      Display*		/* display */
  3522  );
  3523  
  3524  extern int XWarpPointer(
  3525      Display*		/* display */,
  3526      Window		/* src_w */,
  3527      Window		/* dest_w */,
  3528      int			/* src_x */,
  3529      int			/* src_y */,
  3530      unsigned int	/* src_width */,
  3531      unsigned int	/* src_height */,
  3532      int			/* dest_x */,
  3533      int			/* dest_y */
  3534  );
  3535  
  3536  extern int XWidthMMOfScreen(
  3537      Screen*		/* screen */
  3538  );
  3539  
  3540  extern int XWidthOfScreen(
  3541      Screen*		/* screen */
  3542  );
  3543  
  3544  extern int XWindowEvent(
  3545      Display*		/* display */,
  3546      Window		/* w */,
  3547      long		/* event_mask */,
  3548      XEvent*		/* event_return */
  3549  );
  3550  
  3551  extern int XWriteBitmapFile(
  3552      Display*		/* display */,
  3553      _Xconst char*	/* filename */,
  3554      Pixmap		/* bitmap */,
  3555      unsigned int	/* width */,
  3556      unsigned int	/* height */,
  3557      int			/* x_hot */,
  3558      int			/* y_hot */
  3559  );
  3560  
  3561  extern Bool XSupportsLocale (void);
  3562  
  3563  extern char *XSetLocaleModifiers(
  3564      const char*		/* modifier_list */
  3565  );
  3566  
  3567  extern XOM XOpenOM(
  3568      Display*			/* display */,
  3569      struct _XrmHashBucketRec*	/* rdb */,
  3570      _Xconst char*		/* res_name */,
  3571      _Xconst char*		/* res_class */
  3572  );
  3573  
  3574  extern Status XCloseOM(
  3575      XOM			/* om */
  3576  );
  3577  
  3578  extern char *XSetOMValues(
  3579      XOM			/* om */,
  3580      ...
  3581  ) _X_SENTINEL(0);
  3582  
  3583  extern char *XGetOMValues(
  3584      XOM			/* om */,
  3585      ...
  3586  ) _X_SENTINEL(0);
  3587  
  3588  extern Display *XDisplayOfOM(
  3589      XOM			/* om */
  3590  );
  3591  
  3592  extern char *XLocaleOfOM(
  3593      XOM			/* om */
  3594  );
  3595  
  3596  extern XOC XCreateOC(
  3597      XOM			/* om */,
  3598      ...
  3599  ) _X_SENTINEL(0);
  3600  
  3601  extern void XDestroyOC(
  3602      XOC			/* oc */
  3603  );
  3604  
  3605  extern XOM XOMOfOC(
  3606      XOC			/* oc */
  3607  );
  3608  
  3609  extern char *XSetOCValues(
  3610      XOC			/* oc */,
  3611      ...
  3612  ) _X_SENTINEL(0);
  3613  
  3614  extern char *XGetOCValues(
  3615      XOC			/* oc */,
  3616      ...
  3617  ) _X_SENTINEL(0);
  3618  
  3619  extern XFontSet XCreateFontSet(
  3620      Display*		/* display */,
  3621      _Xconst char*	/* base_font_name_list */,
  3622      char***		/* missing_charset_list */,
  3623      int*		/* missing_charset_count */,
  3624      char**		/* def_string */
  3625  );
  3626  
  3627  extern void XFreeFontSet(
  3628      Display*		/* display */,
  3629      XFontSet		/* font_set */
  3630  );
  3631  
  3632  extern int XFontsOfFontSet(
  3633      XFontSet		/* font_set */,
  3634      XFontStruct***	/* font_struct_list */,
  3635      char***		/* font_name_list */
  3636  );
  3637  
  3638  extern char *XBaseFontNameListOfFontSet(
  3639      XFontSet		/* font_set */
  3640  );
  3641  
  3642  extern char *XLocaleOfFontSet(
  3643      XFontSet		/* font_set */
  3644  );
  3645  
  3646  extern Bool XContextDependentDrawing(
  3647      XFontSet		/* font_set */
  3648  );
  3649  
  3650  extern Bool XDirectionalDependentDrawing(
  3651      XFontSet		/* font_set */
  3652  );
  3653  
  3654  extern Bool XContextualDrawing(
  3655      XFontSet		/* font_set */
  3656  );
  3657  
  3658  extern XFontSetExtents *XExtentsOfFontSet(
  3659      XFontSet		/* font_set */
  3660  );
  3661  
  3662  extern int XmbTextEscapement(
  3663      XFontSet		/* font_set */,
  3664      _Xconst char*	/* text */,
  3665      int			/* bytes_text */
  3666  );
  3667  
  3668  extern int XwcTextEscapement(
  3669      XFontSet		/* font_set */,
  3670      _Xconst wchar_t*	/* text */,
  3671      int			/* num_wchars */
  3672  );
  3673  
  3674  extern int Xutf8TextEscapement(
  3675      XFontSet		/* font_set */,
  3676      _Xconst char*	/* text */,
  3677      int			/* bytes_text */
  3678  );
  3679  
  3680  extern int XmbTextExtents(
  3681      XFontSet		/* font_set */,
  3682      _Xconst char*	/* text */,
  3683      int			/* bytes_text */,
  3684      XRectangle*		/* overall_ink_return */,
  3685      XRectangle*		/* overall_logical_return */
  3686  );
  3687  
  3688  extern int XwcTextExtents(
  3689      XFontSet		/* font_set */,
  3690      _Xconst wchar_t*	/* text */,
  3691      int			/* num_wchars */,
  3692      XRectangle*		/* overall_ink_return */,
  3693      XRectangle*		/* overall_logical_return */
  3694  );
  3695  
  3696  extern int Xutf8TextExtents(
  3697      XFontSet		/* font_set */,
  3698      _Xconst char*	/* text */,
  3699      int			/* bytes_text */,
  3700      XRectangle*		/* overall_ink_return */,
  3701      XRectangle*		/* overall_logical_return */
  3702  );
  3703  
  3704  extern Status XmbTextPerCharExtents(
  3705      XFontSet		/* font_set */,
  3706      _Xconst char*	/* text */,
  3707      int			/* bytes_text */,
  3708      XRectangle*		/* ink_extents_buffer */,
  3709      XRectangle*		/* logical_extents_buffer */,
  3710      int			/* buffer_size */,
  3711      int*		/* num_chars */,
  3712      XRectangle*		/* overall_ink_return */,
  3713      XRectangle*		/* overall_logical_return */
  3714  );
  3715  
  3716  extern Status XwcTextPerCharExtents(
  3717      XFontSet		/* font_set */,
  3718      _Xconst wchar_t*	/* text */,
  3719      int			/* num_wchars */,
  3720      XRectangle*		/* ink_extents_buffer */,
  3721      XRectangle*		/* logical_extents_buffer */,
  3722      int			/* buffer_size */,
  3723      int*		/* num_chars */,
  3724      XRectangle*		/* overall_ink_return */,
  3725      XRectangle*		/* overall_logical_return */
  3726  );
  3727  
  3728  extern Status Xutf8TextPerCharExtents(
  3729      XFontSet		/* font_set */,
  3730      _Xconst char*	/* text */,
  3731      int			/* bytes_text */,
  3732      XRectangle*		/* ink_extents_buffer */,
  3733      XRectangle*		/* logical_extents_buffer */,
  3734      int			/* buffer_size */,
  3735      int*		/* num_chars */,
  3736      XRectangle*		/* overall_ink_return */,
  3737      XRectangle*		/* overall_logical_return */
  3738  );
  3739  
  3740  extern void XmbDrawText(
  3741      Display*		/* display */,
  3742      Drawable		/* d */,
  3743      GC			/* gc */,
  3744      int			/* x */,
  3745      int			/* y */,
  3746      XmbTextItem*	/* text_items */,
  3747      int			/* nitems */
  3748  );
  3749  
  3750  extern void XwcDrawText(
  3751      Display*		/* display */,
  3752      Drawable		/* d */,
  3753      GC			/* gc */,
  3754      int			/* x */,
  3755      int			/* y */,
  3756      XwcTextItem*	/* text_items */,
  3757      int			/* nitems */
  3758  );
  3759  
  3760  extern void Xutf8DrawText(
  3761      Display*		/* display */,
  3762      Drawable		/* d */,
  3763      GC			/* gc */,
  3764      int			/* x */,
  3765      int			/* y */,
  3766      XmbTextItem*	/* text_items */,
  3767      int			/* nitems */
  3768  );
  3769  
  3770  extern void XmbDrawString(
  3771      Display*		/* display */,
  3772      Drawable		/* d */,
  3773      XFontSet		/* font_set */,
  3774      GC			/* gc */,
  3775      int			/* x */,
  3776      int			/* y */,
  3777      _Xconst char*	/* text */,
  3778      int			/* bytes_text */
  3779  );
  3780  
  3781  extern void XwcDrawString(
  3782      Display*		/* display */,
  3783      Drawable		/* d */,
  3784      XFontSet		/* font_set */,
  3785      GC			/* gc */,
  3786      int			/* x */,
  3787      int			/* y */,
  3788      _Xconst wchar_t*	/* text */,
  3789      int			/* num_wchars */
  3790  );
  3791  
  3792  extern void Xutf8DrawString(
  3793      Display*		/* display */,
  3794      Drawable		/* d */,
  3795      XFontSet		/* font_set */,
  3796      GC			/* gc */,
  3797      int			/* x */,
  3798      int			/* y */,
  3799      _Xconst char*	/* text */,
  3800      int			/* bytes_text */
  3801  );
  3802  
  3803  extern void XmbDrawImageString(
  3804      Display*		/* display */,
  3805      Drawable		/* d */,
  3806      XFontSet		/* font_set */,
  3807      GC			/* gc */,
  3808      int			/* x */,
  3809      int			/* y */,
  3810      _Xconst char*	/* text */,
  3811      int			/* bytes_text */
  3812  );
  3813  
  3814  extern void XwcDrawImageString(
  3815      Display*		/* display */,
  3816      Drawable		/* d */,
  3817      XFontSet		/* font_set */,
  3818      GC			/* gc */,
  3819      int			/* x */,
  3820      int			/* y */,
  3821      _Xconst wchar_t*	/* text */,
  3822      int			/* num_wchars */
  3823  );
  3824  
  3825  extern void Xutf8DrawImageString(
  3826      Display*		/* display */,
  3827      Drawable		/* d */,
  3828      XFontSet		/* font_set */,
  3829      GC			/* gc */,
  3830      int			/* x */,
  3831      int			/* y */,
  3832      _Xconst char*	/* text */,
  3833      int			/* bytes_text */
  3834  );
  3835  
  3836  extern XIM XOpenIM(
  3837      Display*			/* dpy */,
  3838      struct _XrmHashBucketRec*	/* rdb */,
  3839      char*			/* res_name */,
  3840      char*			/* res_class */
  3841  );
  3842  
  3843  extern Status XCloseIM(
  3844      XIM /* im */
  3845  );
  3846  
  3847  extern char *XGetIMValues(
  3848      XIM /* im */, ...
  3849  ) _X_SENTINEL(0);
  3850  
  3851  extern char *XSetIMValues(
  3852      XIM /* im */, ...
  3853  ) _X_SENTINEL(0);
  3854  
  3855  extern Display *XDisplayOfIM(
  3856      XIM /* im */
  3857  );
  3858  
  3859  extern char *XLocaleOfIM(
  3860      XIM /* im*/
  3861  );
  3862  
  3863  extern XIC XCreateIC(
  3864      XIM /* im */, ...
  3865  ) _X_SENTINEL(0);
  3866  
  3867  extern void XDestroyIC(
  3868      XIC /* ic */
  3869  );
  3870  
  3871  extern void XSetICFocus(
  3872      XIC /* ic */
  3873  );
  3874  
  3875  extern void XUnsetICFocus(
  3876      XIC /* ic */
  3877  );
  3878  
  3879  extern wchar_t *XwcResetIC(
  3880      XIC /* ic */
  3881  );
  3882  
  3883  extern char *XmbResetIC(
  3884      XIC /* ic */
  3885  );
  3886  
  3887  extern char *Xutf8ResetIC(
  3888      XIC /* ic */
  3889  );
  3890  
  3891  extern char *XSetICValues(
  3892      XIC /* ic */, ...
  3893  ) _X_SENTINEL(0);
  3894  
  3895  extern char *XGetICValues(
  3896      XIC /* ic */, ...
  3897  ) _X_SENTINEL(0);
  3898  
  3899  extern XIM XIMOfIC(
  3900      XIC /* ic */
  3901  );
  3902  
  3903  extern Bool XFilterEvent(
  3904      XEvent*	/* event */,
  3905      Window	/* window */
  3906  );
  3907  
  3908  extern int XmbLookupString(
  3909      XIC			/* ic */,
  3910      XKeyPressedEvent*	/* event */,
  3911      char*		/* buffer_return */,
  3912      int			/* bytes_buffer */,
  3913      KeySym*		/* keysym_return */,
  3914      Status*		/* status_return */
  3915  );
  3916  
  3917  extern int XwcLookupString(
  3918      XIC			/* ic */,
  3919      XKeyPressedEvent*	/* event */,
  3920      wchar_t*		/* buffer_return */,
  3921      int			/* wchars_buffer */,
  3922      KeySym*		/* keysym_return */,
  3923      Status*		/* status_return */
  3924  );
  3925  
  3926  extern int Xutf8LookupString(
  3927      XIC			/* ic */,
  3928      XKeyPressedEvent*	/* event */,
  3929      char*		/* buffer_return */,
  3930      int			/* bytes_buffer */,
  3931      KeySym*		/* keysym_return */,
  3932      Status*		/* status_return */
  3933  );
  3934  
  3935  extern XVaNestedList XVaCreateNestedList(
  3936      int /*unused*/, ...
  3937  ) _X_SENTINEL(0);
  3938  
  3939  /* internal connections for IMs */
  3940  
  3941  extern Bool XRegisterIMInstantiateCallback(
  3942      Display*			/* dpy */,
  3943      struct _XrmHashBucketRec*	/* rdb */,
  3944      char*			/* res_name */,
  3945      char*			/* res_class */,
  3946      XIDProc			/* callback */,
  3947      XPointer			/* client_data */
  3948  );
  3949  
  3950  extern Bool XUnregisterIMInstantiateCallback(
  3951      Display*			/* dpy */,
  3952      struct _XrmHashBucketRec*	/* rdb */,
  3953      char*			/* res_name */,
  3954      char*			/* res_class */,
  3955      XIDProc			/* callback */,
  3956      XPointer			/* client_data */
  3957  );
  3958  
  3959  typedef void (*XConnectionWatchProc)(
  3960      Display*			/* dpy */,
  3961      XPointer			/* client_data */,
  3962      int				/* fd */,
  3963      Bool			/* opening */,	 /* open or close flag */
  3964      XPointer*			/* watch_data */ /* open sets, close uses */
  3965  );
  3966  
  3967  
  3968  extern Status XInternalConnectionNumbers(
  3969      Display*			/* dpy */,
  3970      int**			/* fd_return */,
  3971      int*			/* count_return */
  3972  );
  3973  
  3974  extern void XProcessInternalConnection(
  3975      Display*			/* dpy */,
  3976      int				/* fd */
  3977  );
  3978  
  3979  extern Status XAddConnectionWatch(
  3980      Display*			/* dpy */,
  3981      XConnectionWatchProc	/* callback */,
  3982      XPointer			/* client_data */
  3983  );
  3984  
  3985  extern void XRemoveConnectionWatch(
  3986      Display*			/* dpy */,
  3987      XConnectionWatchProc	/* callback */,
  3988      XPointer			/* client_data */
  3989  );
  3990  
  3991  extern void XSetAuthorization(
  3992      char *			/* name */,
  3993      int				/* namelen */,
  3994      char *			/* data */,
  3995      int				/* datalen */
  3996  );
  3997  
  3998  extern int _Xmbtowc(
  3999      wchar_t *			/* wstr */,
  4000      char *			/* str */,
  4001      int				/* len */
  4002  );
  4003  
  4004  extern int _Xwctomb(
  4005      char *			/* str */,
  4006      wchar_t			/* wc */
  4007  );
  4008  
  4009  extern Bool XGetEventData(
  4010      Display*			/* dpy */,
  4011      XGenericEventCookie*	/* cookie*/
  4012  );
  4013  
  4014  extern void XFreeEventData(
  4015      Display*			/* dpy */,
  4016      XGenericEventCookie*	/* cookie*/
  4017  );
  4018  
  4019  #ifdef __clang__
  4020  #pragma clang diagnostic pop
  4021  #endif
  4022  
  4023  _XFUNCPROTOEND
  4024  
  4025  #endif /* _X11_XLIB_H_ */