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