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