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