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