Xlib.h
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:97k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

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