1 /*
2                                     __
3                                    / _|
4   __ _ _   _ _ __ ___  _ __ __ _  | |_ ___  ___ ___
5  / _` | | | | '__/ _ \| '__/ _` | |  _/ _ \/ __/ __|
6 | (_| | |_| | | | (_) | | | (_| | | || (_) \__ \__ \
7  \__,_|\__,_|_|  \___/|_|  \__,_| |_| \___/|___/___/
8 
9 Copyright (C) 2018-2019 Aurora Free Open Source Software.
10 
11 This file is part of the Aurora Free Open Source Software. This
12 organization promote free and open source software that you can
13 redistribute and/or modify under the terms of the GNU Lesser General
14 Public License Version 3 as published by the Free Software Foundation or
15 (at your option) any later version approved by the Aurora Free Open Source
16 Software Organization. The license is available in the package root path
17 as 'LICENSE' file. Please review the following information to ensure the
18 GNU Lesser General Public License version 3 requirements will be met:
19 https://www.gnu.org/licenses/lgpl.html .
20 
21 Alternatively, this file may be used under the terms of the GNU General
22 Public License version 3 or later as published by the Free Software
23 Foundation. Please review the following information to ensure the GNU
24 General Public License requirements will be met:
25 http://www.gnu.org/licenses/gpl-3.0.html.
26 
27 NOTE: All products, services or anything associated to trademarks and
28 service marks used or referenced on this file are the property of their
29 respective companies/owners or its subsidiaries. Other names and brands
30 may be claimed as the property of others.
31 
32 For more info about intellectual property visit: aurorafoss.org or
33 directly send an email to: contact (at) aurorafoss.org .
34 */
35 
36 module riverd.x11.types;
37 
38 import core.stdc.config;
39 import core.stdc.stddef;
40 
41 alias int Bool;
42 alias int Status;
43 alias uint VisualID;
44 alias byte* XPointer;
45 
46 alias void Display;
47 alias uint XID;
48 alias XID Window;
49 alias XID Drawable;
50 alias XID Font;
51 alias XID Pixmap;
52 alias XID Cursor;
53 alias XID Colormap;
54 alias XID GContext;
55 alias XID KeySym;
56 
57 struct Visual
58 {
59 	XExtData* ext_data;
60 	VisualID visualid;
61 	int _class;
62 	uint red_mask, green_mask, blue_mask;
63 	int bits_per_rgb;
64 	int map_entries;
65 }
66 
67 struct XVisualInfo
68 {
69 	Visual* visual;
70 	VisualID visualid;
71 	int screen;
72 	int depth;
73 	int _class;
74 	uint red_mask;
75 	uint green_mask;
76 	uint blue_mask;
77 	int colormap_size;
78 	int bits_per_rgb;
79 }
80 
81 alias uint Mask;
82 alias uint Atom;
83 alias uint Time;
84 alias ubyte KeyCode;
85 
86 /*****************************************************************
87  * RESERVED RESOURCE AND CONSTANT DEFINITIONS
88  *****************************************************************/
89 
90 enum None = 0; /* universal null resource or null atom */
91 
92 enum ParentRelative = 1L; /* background pixmap in CreateWindow
93 				    and ChangeWindowAttributes */
94 
95 enum CopyFromParent = 0L; /* border pixmap in CreateWindow
96 				       and ChangeWindowAttributes
97 				   special VisualID and special window
98 				       class passed to CreateWindow */
99 
100 enum PointerWindow = 0L; /* destination window in SendEvent */
101 enum InputFocus = 1L; /* destination window in SendEvent */
102 
103 enum PointerRoot = 1L; /* focus window in SetInputFocus */
104 
105 enum AnyPropertyType = 0L; /* special Atom, passed to GetProperty */
106 
107 enum AnyKey = 0L; /* special Key Code, passed to GrabKey */
108 
109 enum AnyButton = 0L; /* special Button Code, passed to GrabButton */
110 
111 enum AllTemporary = 0L; /* special Resource ID passed to KillClient */
112 
113 enum CurrentTime = 0L; /* special Time */
114 
115 enum NoSymbol = 0L; /* special KeySym */
116 
117 /*****************************************************************
118  * EVENT DEFINITIONS
119  *****************************************************************/
120 
121 /* Input Event Masks. Used as event-mask window attribute and as arguments
122    to Grab requests.  Not to be confused with event names.  */
123 
124 enum NoEventMask = 0L;
125 enum KeyPressMask = (1L << 0);
126 enum KeyReleaseMask = (1L << 1);
127 enum ButtonPressMask = (1L << 2);
128 enum ButtonReleaseMask = (1L << 3);
129 enum EnterWindowMask = (1L << 4);
130 enum LeaveWindowMask = (1L << 5);
131 enum PointerMotionMask = (1L << 6);
132 enum PointerMotionHintMask = (1L << 7);
133 enum Button1MotionMask = (1L << 8);
134 enum Button2MotionMask = (1L << 9);
135 enum Button3MotionMask = (1L << 10);
136 enum Button4MotionMask = (1L << 11);
137 enum Button5MotionMask = (1L << 12);
138 enum ButtonMotionMask = (1L << 13);
139 enum KeymapStateMask = (1L << 14);
140 enum ExposureMask = (1L << 15);
141 enum VisibilityChangeMask = (1L << 16);
142 enum StructureNotifyMask = (1L << 17);
143 enum ResizeRedirectMask = (1L << 18);
144 enum SubstructureNotifyMask = (1L << 19);
145 enum SubstructureRedirectMask = (1L << 20);
146 enum FocusChangeMask = (1L << 21);
147 enum PropertyChangeMask = (1L << 22);
148 enum ColormapChangeMask = (1L << 23);
149 enum OwnerGrabButtonMask = (1L << 24);
150 
151 /* Event names.  Used in "type" field in XEvent structures.  Not to be
152 confused with event masks above.  They start from 2 because 0 and 1
153 are reserved in the protocol for errors and replies. */
154 
155 enum KeyPress = 2;
156 enum KeyRelease = 3;
157 enum ButtonPress = 4;
158 enum ButtonRelease = 5;
159 enum MotionNotify = 6;
160 enum EnterNotify = 7;
161 enum LeaveNotify = 8;
162 enum FocusIn = 9;
163 enum FocusOut = 10;
164 enum KeymapNotify = 11;
165 enum Expose = 12;
166 enum GraphicsExpose = 13;
167 enum NoExpose = 14;
168 enum VisibilityNotify = 15;
169 enum CreateNotify = 16;
170 enum DestroyNotify = 17;
171 enum UnmapNotify = 18;
172 enum MapNotify = 19;
173 enum MapRequest = 20;
174 enum ReparentNotify = 21;
175 enum ConfigureNotify = 22;
176 enum ConfigureRequest = 23;
177 enum GravityNotify = 24;
178 enum ResizeRequest = 25;
179 enum CirculateNotify = 26;
180 enum CirculateRequest = 27;
181 enum PropertyNotify = 28;
182 enum SelectionClear = 29;
183 enum SelectionRequest = 30;
184 enum SelectionNotify = 31;
185 enum ColormapNotify = 32;
186 enum ClientMessage = 33;
187 enum MappingNotify = 34;
188 enum GenericEvent = 35;
189 enum LASTEvent = 36; /* must be bigger than any event # */
190 
191 /* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
192    state in various key-, mouse-, and button-related events. */
193 
194 enum ShiftMask = (1 << 0);
195 enum LockMask = (1 << 1);
196 enum ControlMask = (1 << 2);
197 enum Mod1Mask = (1 << 3);
198 enum Mod2Mask = (1 << 4);
199 enum Mod3Mask = (1 << 5);
200 enum Mod4Mask = (1 << 6);
201 enum Mod5Mask = (1 << 7);
202 
203 /* modifier names.  Used to build a SetModifierMapping request or
204    to read a GetModifierMapping request.  These correspond to the
205    masks defined above. */
206 enum ShiftMapIndex = 0;
207 enum LockMapIndex = 1;
208 enum ControlMapIndex = 2;
209 enum Mod1MapIndex = 3;
210 enum Mod2MapIndex = 4;
211 enum Mod3MapIndex = 5;
212 enum Mod4MapIndex = 6;
213 enum Mod5MapIndex = 7;
214 
215 /* button masks.  Used in same manner as Key masks above. Not to be confused
216    with button names below. */
217 
218 enum Button1Mask = (1 << 8);
219 enum Button2Mask = (1 << 9);
220 enum Button3Mask = (1 << 10);
221 enum Button4Mask = (1 << 11);
222 enum Button5Mask = (1 << 12);
223 
224 enum AnyModifier = (1 << 15); /* used in GrabButton, GrabKey */
225 
226 /* button names. Used as arguments to GrabButton and as detail in ButtonPress
227    and ButtonRelease events.  Not to be confused with button masks above.
228    Note that 0 is already defined above as "AnyButton".  */
229 
230 enum Button1 = 1;
231 enum Button2 = 2;
232 enum Button3 = 3;
233 enum Button4 = 4;
234 enum Button5 = 5;
235 
236 /* Notify modes */
237 
238 enum NotifyNormal = 0;
239 enum NotifyGrab = 1;
240 enum NotifyUngrab = 2;
241 enum NotifyWhileGrabbed = 3;
242 
243 enum NotifyHint = 1; /* for MotionNotify events */
244 
245 /* Notify detail */
246 
247 enum NotifyAncestor = 0;
248 enum NotifyVirtual = 1;
249 enum NotifyInferior = 2;
250 enum NotifyNonlinear = 3;
251 enum NotifyNonlinearVirtual = 4;
252 enum NotifyPointer = 5;
253 enum NotifyPointerRoot = 6;
254 enum NotifyDetailNone = 7;
255 
256 /* Visibility notify */
257 
258 enum VisibilityUnobscured = 0;
259 enum VisibilityPartiallyObscured = 1;
260 enum VisibilityFullyObscured = 2;
261 
262 /* Circulation request */
263 
264 enum PlaceOnTop = 0;
265 enum PlaceOnBottom = 1;
266 
267 /* protocol families */
268 
269 enum FamilyInternet = 0; /* IPv4 */
270 enum FamilyDECnet = 1;
271 enum FamilyChaos = 2;
272 enum FamilyInternet6 = 6; /* IPv6 */
273 
274 /* authentication families not tied to a specific protocol */
275 enum FamilyServerInterpreted = 5;
276 
277 /* Property notification */
278 
279 enum PropertyNewValue = 0;
280 enum PropertyDelete = 1;
281 
282 /* Color Map notification */
283 
284 enum ColormapUninstalled = 0;
285 enum ColormapInstalled = 1;
286 
287 /* GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes */
288 
289 enum GrabModeSync = 0;
290 enum GrabModeAsync = 1;
291 
292 /* GrabPointer, GrabKeyboard reply status */
293 
294 enum GrabSuccess = 0;
295 enum AlreadyGrabbed = 1;
296 enum GrabInvalidTime = 2;
297 enum GrabNotViewable = 3;
298 enum GrabFrozen = 4;
299 
300 /* AllowEvents modes */
301 
302 enum AsyncPointer = 0;
303 enum SyncPointer = 1;
304 enum ReplayPointer = 2;
305 enum AsyncKeyboard = 3;
306 enum SyncKeyboard = 4;
307 enum ReplayKeyboard = 5;
308 enum AsyncBoth = 6;
309 enum SyncBoth = 7;
310 
311 /* Used in SetInputFocus, GetInputFocus */
312 
313 enum RevertToNone = None;
314 enum RevertToPointerRoot = PointerRoot;
315 enum RevertToParent = 2;
316 
317 /*****************************************************************
318  * ERROR CODES
319  *****************************************************************/
320 
321 enum Success = 0; /* everything's okay */
322 enum BadRequest = 1; /* bad request code */
323 enum BadValue = 2; /* int parameter out of range */
324 enum BadWindow = 3; /* parameter not a Window */
325 enum BadPixmap = 4; /* parameter not a Pixmap */
326 enum BadAtom = 5; /* parameter not an Atom */
327 enum BadCursor = 6; /* parameter not a Cursor */
328 enum BadFont = 7; /* parameter not a Font */
329 enum BadMatch = 8; /* parameter mismatch */
330 enum BadDrawable = 9; /* parameter not a Pixmap or Window */
331 enum BadAccess = 10; /* depending on context:
332 				 - key/button already grabbed
333 				 - attempt to free an illegal
334 				   cmap entry
335 				- attempt to store into a read-only
336 				   color map entry.
337  				- attempt to modify the access control
338 				   list from other than the local host.
339 				*/
340 enum BadAlloc = 11; /* insufficient resources */
341 enum BadColor = 12; /* no such colormap */
342 enum BadGC = 13; /* parameter not a GC */
343 enum BadIDChoice = 14; /* choice not in range or already used */
344 enum BadName = 15; /* font or color name doesn't exist */
345 enum BadLength = 16; /* Request length incorrect */
346 enum BadImplementation = 17; /* server is defective */
347 
348 enum FirstExtensionError = 128;
349 enum LastExtensionError = 255;
350 
351 /*****************************************************************
352  * WINDOW DEFINITIONS
353  *****************************************************************/
354 
355 /* Window classes used by CreateWindow */
356 /* Note that CopyFromParent is already defined as 0 above */
357 
358 enum InputOutput = 1;
359 enum InputOnly = 2;
360 
361 /* Window attributes for CreateWindow and ChangeWindowAttributes */
362 
363 enum CWBackPixmap = (1L << 0);
364 enum CWBackPixel = (1L << 1);
365 enum CWBorderPixmap = (1L << 2);
366 enum CWBorderPixel = (1L << 3);
367 enum CWBitGravity = (1L << 4);
368 enum CWWinGravity = (1L << 5);
369 enum CWBackingStore = (1L << 6);
370 enum CWBackingPlanes = (1L << 7);
371 enum CWBackingPixel = (1L << 8);
372 enum CWOverrideRedirect = (1L << 9);
373 enum CWSaveUnder = (1L << 10);
374 enum CWEventMask = (1L << 11);
375 enum CWDontPropagate = (1L << 12);
376 enum CWColormap = (1L << 13);
377 enum CWCursor = (1L << 14);
378 
379 /* ConfigureWindow structure */
380 
381 enum CWX = (1 << 0);
382 enum CWY = (1 << 1);
383 enum CWWidth = (1 << 2);
384 enum CWHeight = (1 << 3);
385 enum CWBorderWidth = (1 << 4);
386 enum CWSibling = (1 << 5);
387 enum CWStackMode = (1 << 6);
388 
389 /* Bit Gravity */
390 
391 enum ForgetGravity = 0;
392 enum NorthWestGravity = 1;
393 enum NorthGravity = 2;
394 enum NorthEastGravity = 3;
395 enum WestGravity = 4;
396 enum CenterGravity = 5;
397 enum EastGravity = 6;
398 enum SouthWestGravity = 7;
399 enum SouthGravity = 8;
400 enum SouthEastGravity = 9;
401 enum StaticGravity = 10;
402 
403 /* Window gravity + bit gravity above */
404 
405 enum UnmapGravity = 0;
406 
407 /* Used in CreateWindow for backing-store hint */
408 
409 enum NotUseful = 0;
410 enum WhenMapped = 1;
411 enum Always = 2;
412 
413 /* Used in GetWindowAttributes reply */
414 
415 enum IsUnmapped = 0;
416 enum IsUnviewable = 1;
417 enum IsViewable = 2;
418 
419 /* Used in ChangeSaveSet */
420 
421 enum SetModeInsert = 0;
422 enum SetModeDelete = 1;
423 
424 /* Used in ChangeCloseDownMode */
425 
426 enum DestroyAll = 0;
427 enum RetainPermanent = 1;
428 enum RetainTemporary = 2;
429 
430 /* Window stacking method (in configureWindow) */
431 
432 enum Above = 0;
433 enum Below = 1;
434 enum TopIf = 2;
435 enum BottomIf = 3;
436 enum Opposite = 4;
437 
438 /* Circulation direction */
439 
440 enum RaiseLowest = 0;
441 enum LowerHighest = 1;
442 
443 /* Property modes */
444 
445 enum PropModeReplace = 0;
446 enum PropModePrepend = 1;
447 enum PropModeAppend = 2;
448 
449 /*****************************************************************
450  * GRAPHICS DEFINITIONS
451  *****************************************************************/
452 
453 /* graphics functions, as in GC.alu */
454 
455 enum GXclear = 0x0; /* 0 */
456 enum GXand = 0x1; /* src AND dst */
457 enum GXandReverse = 0x2; /* src AND NOT dst */
458 enum GXcopy = 0x3; /* src */
459 enum GXandInverted = 0x4; /* NOT src AND dst */
460 enum GXnoop = 0x5; /* dst */
461 enum GXxor = 0x6; /* src XOR dst */
462 enum GXor = 0x7; /* src OR dst */
463 enum GXnor = 0x8; /* NOT src AND NOT dst */
464 enum GXequiv = 0x9; /* NOT src XOR dst */
465 enum GXinvert = 0xa; /* NOT dst */
466 enum GXorReverse = 0xb; /* src OR NOT dst */
467 enum GXcopyInverted = 0xc; /* NOT src */
468 enum GXorInverted = 0xd; /* NOT src OR dst */
469 enum GXnand = 0xe; /* NOT src OR NOT dst */
470 enum GXset = 0xf; /* 1 */
471 
472 /* LineStyle */
473 
474 enum LineSolid = 0;
475 enum LineOnOffDash = 1;
476 enum LineDoubleDash = 2;
477 
478 /* capStyle */
479 
480 enum CapNotLast = 0;
481 enum CapButt = 1;
482 enum CapRound = 2;
483 enum CapProjecting = 3;
484 
485 /* joinStyle */
486 
487 enum JoinMiter = 0;
488 enum JoinRound = 1;
489 enum JoinBevel = 2;
490 
491 /* fillStyle */
492 
493 enum FillSolid = 0;
494 enum FillTiled = 1;
495 enum FillStippled = 2;
496 enum FillOpaqueStippled = 3;
497 
498 /* fillRule */
499 
500 enum EvenOddRule = 0;
501 enum WindingRule = 1;
502 
503 /* subwindow mode */
504 
505 enum ClipByChildren = 0;
506 enum IncludeInferiors = 1;
507 
508 /* SetClipRectangles ordering */
509 
510 enum Unsorted = 0;
511 enum YSorted = 1;
512 enum YXSorted = 2;
513 enum YXBanded = 3;
514 
515 /* CoordinateMode for drawing routines */
516 
517 enum CoordModeOrigin = 0; /* relative to the origin */
518 enum CoordModePrevious = 1; /* relative to previous point */
519 
520 /* Polygon shapes */
521 
522 enum Complex = 0; /* paths may intersect */
523 enum Nonconvex = 1; /* no paths intersect, but not convex */
524 enum Convex = 2; /* wholly convex */
525 
526 /* Arc modes for PolyFillArc */
527 
528 enum ArcChord = 0; /* join endpoints of arc */
529 enum ArcPieSlice = 1; /* join endpoints to center of arc */
530 
531 /* GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into
532    GC.stateChanges */
533 
534 enum GCFunction = (1L << 0);
535 enum GCPlaneMask = (1L << 1);
536 enum GCForeground = (1L << 2);
537 enum GCBackground = (1L << 3);
538 enum GCLineWidth = (1L << 4);
539 enum GCLineStyle = (1L << 5);
540 enum GCCapStyle = (1L << 6);
541 enum GCJoinStyle = (1L << 7);
542 enum GCFillStyle = (1L << 8);
543 enum GCFillRule = (1L << 9);
544 enum GCTile = (1L << 10);
545 enum GCStipple = (1L << 11);
546 enum GCTileStipXOrigin = (1L << 12);
547 enum GCTileStipYOrigin = (1L << 13);
548 enum GCFont = (1L << 14);
549 enum GCSubwindowMode = (1L << 15);
550 enum GCGraphicsExposures = (1L << 16);
551 enum GCClipXOrigin = (1L << 17);
552 enum GCClipYOrigin = (1L << 18);
553 enum GCClipMask = (1L << 19);
554 enum GCDashOffset = (1L << 20);
555 enum GCDashList = (1L << 21);
556 enum GCArcMode = (1L << 22);
557 
558 enum GCLastBit = 22;
559 /*****************************************************************
560  * FONTS
561  *****************************************************************/
562 
563 /* used in QueryFont -- draw direction */
564 
565 enum FontLeftToRight = 0;
566 enum FontRightToLeft = 1;
567 
568 enum FontChange = 255;
569 
570 /*****************************************************************
571  *  IMAGING
572  *****************************************************************/
573 
574 /* ImageFormat -- PutImage, GetImage */
575 
576 enum XYBitmap = 0; /* depth 1, XYFormat */
577 enum XYPixmap = 1; /* depth == drawable depth */
578 enum ZPixmap = 2; /* depth == drawable depth */
579 
580 /*****************************************************************
581  *  COLOR MAP STUFF
582  *****************************************************************/
583 
584 /* For CreateColormap */
585 
586 enum AllocNone = 0; /* create map with no entries */
587 enum AllocAll = 1; /* allocate entire map writeable */
588 
589 /* Flags used in StoreNamedColor, StoreColors */
590 
591 enum DoRed = (1 << 0);
592 enum DoGreen = (1 << 1);
593 enum DoBlue = (1 << 2);
594 
595 /*****************************************************************
596  * CURSOR STUFF
597  *****************************************************************/
598 
599 /* QueryBestSize Class */
600 
601 enum CursorShape = 0; /* largest size that can be displayed */
602 enum TileShape = 1; /* size tiled fastest */
603 enum StippleShape = 2; /* size stippled fastest */
604 
605 /*****************************************************************
606  * KEYBOARD/POINTER STUFF
607  *****************************************************************/
608 
609 enum AutoRepeatModeOff = 0;
610 enum AutoRepeatModeOn = 1;
611 enum AutoRepeatModeDefault = 2;
612 
613 enum LedModeOff = 0;
614 enum LedModeOn = 1;
615 
616 /* masks for ChangeKeyboardControl */
617 
618 enum KBKeyClickPercent = (1L << 0);
619 enum KBBellPercent = (1L << 1);
620 enum KBBellPitch = (1L << 2);
621 enum KBBellDuration = (1L << 3);
622 enum KBLed = (1L << 4);
623 enum KBLedMode = (1L << 5);
624 enum KBKey = (1L << 6);
625 enum KBAutoRepeatMode = (1L << 7);
626 
627 enum MappingSuccess = 0;
628 enum MappingBusy = 1;
629 enum MappingFailed = 2;
630 
631 enum MappingModifier = 0;
632 enum MappingKeyboard = 1;
633 enum MappingPointer = 2;
634 
635 /*****************************************************************
636  * SCREEN SAVER STUFF
637  *****************************************************************/
638 
639 enum DontPreferBlanking = 0;
640 enum PreferBlanking = 1;
641 enum DefaultBlanking = 2;
642 
643 enum DisableScreenSaver = 0;
644 enum DisableScreenInterval = 0;
645 
646 enum DontAllowExposures = 0;
647 enum AllowExposures = 1;
648 enum DefaultExposures = 2;
649 
650 /* for ForceScreenSaver */
651 
652 enum ScreenSaverReset = 0;
653 enum ScreenSaverActive = 1;
654 
655 /*****************************************************************
656  * HOSTS AND CONNECTIONS
657  *****************************************************************/
658 
659 /* for ChangeHosts */
660 
661 enum HostInsert = 0;
662 enum HostDelete = 1;
663 
664 /* for ChangeAccessControl */
665 
666 enum EnableAccess = 1;
667 enum DisableAccess = 0;
668 
669 /* Display classes  used in opening the connection
670  * Note that the statically allocated ones are even numbered and the
671  * dynamically changeable ones are odd numbered */
672 
673 enum StaticGray = 0;
674 enum GrayScale = 1;
675 enum StaticColor = 2;
676 enum PseudoColor = 3;
677 enum TrueColor = 4;
678 enum DirectColor = 5;
679 
680 /* Byte order  used in imageByteOrder and bitmapBitOrder */
681 
682 enum LSBFirst = 0;
683 enum MSBFirst = 1;
684 
685 //XLib
686 enum True = 1;
687 enum False = 0;
688 
689 enum QueuedAlready = 0;
690 enum QueuedAfterReading = 1;
691 enum QueuedAfterFlush = 2;
692 
693 struct XrmHashBucketRec;
694 
695 /*
696  * Extensions need a way to hang private data on some structures.
697  */
698 struct XExtData
699 {
700 	int number; /* number returned by XRegisterExtension */
701 	XExtData* next; /* next item on list of data for structure */
702 	/* called to free private storage */
703 	int function(XExtData* extension) free_private;
704 	XPointer private_data; /* data private to this extension. */
705 }
706 
707 /*
708  * This file contains structures used by the extension mechanism.
709  */
710 struct XExtCodes
711 { /* public to extension, cannot be changed */
712 	int extension; /* extension number */
713 	int major_opcode; /* major op-code assigned by server */
714 	int first_event; /* first event number for the extension */
715 	int first_error; /* first error number for the extension */
716 }
717 
718 /*
719  * Data structure for retrieving info about pixmap formats.
720  */
721 
722 struct XPixmapFormatValues
723 {
724 	int depth;
725 	int bits_per_pixel;
726 	int scanline_pad;
727 }
728 
729 /*
730  * Data structure for setting graphics context.
731  */
732 struct XGCValues
733 {
734 	int function_; /* logical operation */
735 	c_ulong plane_mask; /* plane mask */
736 	c_ulong foreground; /* foreground pixel */
737 	c_ulong background; /* background pixel */
738 	int line_width; /* line width */
739 	int line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */
740 	int cap_style; /* CapNotLast, CapButt,
741 				   CapRound, CapProjecting */
742 	int join_style; /* JoinMiter, JoinRound, JoinBevel */
743 	int fill_style; /* FillSolid, FillTiled,
744 				   FillStippled, FillOpaeueStippled */
745 	int fill_rule; /* EvenOddRule, WindingRule */
746 	int arc_mode; /* ArcChord, ArcPieSlice */
747 	Pixmap tile; /* tile pixmap for tiling operations */
748 	Pixmap stipple; /* stipple 1 plane pixmap for stipping */
749 	int ts_x_origin; /* offset for tile or stipple operations */
750 	int ts_y_origin;
751 	Font font; /* default text font for text operations */
752 	int subwindow_mode; /* ClipByChildren, IncludeInferiors */
753 	Bool graphics_exposures; /* boolean, should exposures be generated */
754 	int clip_x_origin; /* origin for clipping */
755 	int clip_y_origin;
756 	Pixmap clip_mask; /* bitmap clipping; other calls for rects */
757 	int dash_offset; /* patterned/dashed line information */
758 	char dashes;
759 }
760 
761 struct _XGC;
762 alias GC = _XGC*;
763 
764 /*
765  * Depth structure; contains information for each possible depth.
766  */
767 struct Depth
768 {
769 	int depth; /* this depth (Z) of the depth */
770 	int nvisuals; /* number of Visual types at this depth */
771 	Visual* visuals; /* list of visuals possible at this depth */
772 }
773 
774 /*
775  * Information about the screen.  The contents of this structure are
776  * implementation dependent.  A Screen should be treated as opaque
777  * by application code.
778  */
779 
780 struct Screen
781 {
782 	XExtData* ext_data; /* hook for extension to hang data */
783 	Display* display; /* back pointer to display structure */
784 	Window root; /* Root window id. */
785 	int width, height; /* width and height of screen */
786 	int mwidth, mheight; /* width and height of  in millimeters */
787 	int ndepths; /* number of depths possible */
788 	Depth* depths; /* list of allowable depths on the screen */
789 	int root_depth; /* bits per pixel */
790 	Visual* root_visual; /* root visual */
791 	GC default_gc; /* GC for the root root visual */
792 	Colormap cmap; /* default color map */
793 	c_ulong white_pixel;
794 	c_ulong black_pixel; /* White and Black pixel values */
795 	int max_maps, min_maps; /* max and min color maps */
796 	int backing_store; /* Never, WhenMapped, Always */
797 	Bool save_unders;
798 	c_long root_input_mask; /* initial root input mask */
799 }
800 
801 /*
802  * Format structure; describes ZFormat data the screen will understand.
803  */
804 struct ScreenFormat
805 {
806 	XExtData* ext_data; /* hook for extension to hang data */
807 	int depth; /* depth of this image format */
808 	int bits_per_pixel; /* bits/pixel at this depth */
809 	int scanline_pad; /* scanline must padded to this multiple */
810 }
811 
812 /*
813  * Data structure for setting window attributes.
814  */
815 struct XSetWindowAttributes
816 {
817 	Pixmap background_pixmap; /* background or None or ParentRelative */
818 	c_ulong background_pixel; /* background pixel */
819 	Pixmap border_pixmap; /* border of the window */
820 	c_ulong border_pixel; /* border pixel value */
821 	int bit_gravity; /* one of bit gravity values */
822 	int win_gravity; /* one of the window gravity values */
823 	int backing_store; /* NotUseful, WhenMapped, Always */
824 	c_ulong backing_planes; /* planes to be preseved if possible */
825 	c_ulong backing_pixel; /* value to use in restoring planes */
826 	Bool save_under; /* should bits under be saved? (popups) */
827 	c_long event_mask; /* set of events that should be saved */
828 	c_long do_not_propagate_mask; /* set of events that should not propagate */
829 	Bool override_redirect; /* boolean value for override-redirect */
830 	Colormap colormap; /* color map to be associated with window */
831 	Cursor cursor; /* cursor to be displayed (or None) */
832 }
833 
834 struct XWindowAttributes
835 {
836 	int x, y; /* location of window */
837 	int width, height; /* width and height of window */
838 	int border_width; /* border width of window */
839 	int depth; /* depth of window */
840 	Visual* visual; /* the associated visual structure */
841 	Window root; /* root of screen containing window */
842 	int class_; /* InputOutput, InputOnly*/
843 	int bit_gravity; /* one of bit gravity values */
844 	int win_gravity; /* one of the window gravity values */
845 	int backing_store; /* NotUseful, WhenMapped, Always */
846 	c_ulong backing_planes; /* planes to be preserved if possible */
847 	c_ulong backing_pixel; /* value to be used when restoring planes */
848 	Bool save_under; /* boolean, should bits under be saved? */
849 	Colormap colormap; /* color map to be associated with window */
850 	Bool map_installed; /* boolean, is color map currently installed*/
851 	int map_state; /* IsUnmapped, IsUnviewable, IsViewable */
852 	c_long all_event_masks; /* set of events all people have interest in*/
853 	c_long your_event_mask; /* my event mask */
854 	c_long do_not_propagate_mask; /* set of events that should not propagate */
855 	Bool override_redirect; /* boolean value for override-redirect */
856 	Screen* screen; /* back pointer to correct screen */
857 }
858 
859 /*
860  * Data structure for host setting; getting routines.
861  *
862  */
863 
864 struct XHostAddress
865 {
866 	int family; /* for example FamilyInternet */
867 	int length; /* length of address, in bytes */
868 	char* address; /* pointer to where to find the bytes */
869 }
870 
871 /*
872  * Data structure for ServerFamilyInterpreted addresses in host routines
873  */
874 struct XServerInterpretedAddress
875 {
876 	int typelength; /* length of type string, in bytes */
877 	int valuelength; /* length of value string, in bytes */
878 	char* type; /* pointer to where to find the type string */
879 	char* value; /* pointer to where to find the address */
880 }
881 
882 /*
883  * Data structure for "image" data, used by image manipulation routines.
884  */
885 struct XImage
886 {
887 	int width, height; /* size of image */
888 	int xoffset; /* number of pixels offset in X direction */
889 	int format; /* XYBitmap, XYPixmap, ZPixmap */
890 	char* data; /* pointer to image data */
891 	int byte_order; /* data byte order, LSBFirst, MSBFirst */
892 	int bitmap_unit; /* quant. of scanline 8, 16, 32 */
893 	int bitmap_bit_order; /* LSBFirst, MSBFirst */
894 	int bitmap_pad; /* 8, 16, 32 either XY or ZPixmap */
895 	int depth; /* depth of image */
896 	int bytes_per_line; /* accelarator to next line */
897 	int bits_per_pixel; /* bits per pixel (ZPixmap) */
898 	c_ulong red_mask; /* bits in z arrangment */
899 	c_ulong green_mask;
900 	c_ulong blue_mask;
901 	XPointer obdata; /* hook for the object routines to hang on */
902 
903 	private struct funcs
904 	{ /* image manipulation routines */
905 		XImage* function(Display*  /* display */ , Visual*  /* visual */ , uint /* depth */ ,
906 				int /* format */ , int /* offset */ , char*  /* data */ , uint /* width */ ,
907 				uint /* height */ , int /* bitmap_pad */ , int /* bytes_per_line */ ) create_image;
908 
909 		int function(XImage*) destroy_image;
910 		c_ulong function(XImage*, int, int) get_pixel;
911 		int function(XImage*, int, int, c_ulong) put_pixel;
912 		XImage* function(XImage*, int, int, uint, uint) sub_image;
913 		int function(XImage*, c_long) add_pixel;
914 	}
915 
916 	funcs f;
917 }
918 
919 /*
920  * Data structure for XReconfigureWindow
921  */
922 struct XWindowChanges
923 {
924 	int x, y;
925 	int width, height;
926 	int border_width;
927 	Window sibling;
928 	int stack_mode;
929 }
930 
931 /*
932  * Data structure used by color operations
933  */
934 struct XColor
935 {
936 	c_ulong pixel;
937 	ushort red, green, blue;
938 	char flags; /* do_red, do_green, do_blue */
939 	char pad;
940 }
941 
942 /*
943  * Data structures for graphics operations.  On most machines, these are
944  * congruent with the wire protocol structures, so reformatting the data
945  * can be avoided on these architectures.
946  */
947 struct XSegment
948 {
949 	short x1, y1, x2, y2;
950 }
951 
952 struct XPoint
953 {
954 	short x, y;
955 }
956 
957 struct XRectangle
958 {
959 	short x, y;
960 	ushort width, height;
961 }
962 
963 struct XArc
964 {
965 	short x, y;
966 	ushort width, height;
967 	short angle1, angle2;
968 }
969 
970 /* Data structure for XChangeKeyboardControl */
971 
972 struct XKeyboardControl
973 {
974 	int key_click_percent;
975 	int bell_percent;
976 	int bell_pitch;
977 	int bell_duration;
978 	int led;
979 	int led_mode;
980 	int key;
981 	int auto_repeat_mode; /* On, Off, Default */
982 }
983 
984 /* Data structure for XGetKeyboardControl */
985 
986 struct XKeyboardState
987 {
988 	int key_click_percent;
989 	int bell_percent;
990 	uint bell_pitch, bell_duration;
991 	c_ulong led_mask;
992 	int global_auto_repeat;
993 	char[32] auto_repeats;
994 }
995 
996 /* Data structure for XGetMotionEvents.  */
997 
998 struct XTimeCoord
999 {
1000 	Time time;
1001 	short x, y;
1002 }
1003 
1004 /* Data structure for X{Set,Get}ModifierMapping */
1005 
1006 struct XModifierKeymap
1007 {
1008 	int max_keypermod; /* The server's max # of keys per modifier */
1009 	KeyCode* modifiermap; /* An 8 by max_keypermod array of modifiers */
1010 }
1011 
1012 struct _XPrivate;
1013 struct _XrmHashBucketRec;
1014 
1015 /*
1016  * Definitions of specific events.
1017  */
1018 struct XKeyEvent
1019 {
1020 	int type; /* of event */
1021 	c_ulong serial; /* # of last request processed by server */
1022 	Bool send_event; /* true if this came from a SendEvent request */
1023 	Display* display; /* Display the event was read from */
1024 	Window window; /* "event" window it is reported relative to */
1025 	Window root; /* root window that the event occurred on */
1026 	Window subwindow; /* child window */
1027 	Time time; /* milliseconds */
1028 	int x, y; /* pointer x, y coordinates in event window */
1029 	int x_root, y_root; /* coordinates relative to root */
1030 	uint state; /* key or button mask */
1031 	uint keycode; /* detail */
1032 	Bool same_screen; /* same screen flag */
1033 }
1034 
1035 alias XKeyPressedEvent = XKeyEvent;
1036 alias XKeyReleasedEvent = XKeyEvent;
1037 
1038 struct XButtonEvent
1039 {
1040 	int type; /* of event */
1041 	c_ulong serial; /* # of last request processed by server */
1042 	Bool send_event; /* true if this came from a SendEvent request */
1043 	Display* display; /* Display the event was read from */
1044 	Window window; /* "event" window it is reported relative to */
1045 	Window root; /* root window that the event occurred on */
1046 	Window subwindow; /* child window */
1047 	Time time; /* milliseconds */
1048 	int x, y; /* pointer x, y coordinates in event window */
1049 	int x_root, y_root; /* coordinates relative to root */
1050 	uint state; /* key or button mask */
1051 	uint button; /* detail */
1052 	Bool same_screen; /* same screen flag */
1053 }
1054 
1055 alias XButtonPressedEvent = XButtonEvent;
1056 alias XButtonReleasedEvent = XButtonEvent;
1057 
1058 struct XMotionEvent
1059 {
1060 	int type; /* of event */
1061 	c_ulong serial; /* # of last request processed by server */
1062 	Bool send_event; /* true if this came from a SendEvent request */
1063 	Display* display; /* Display the event was read from */
1064 	Window window; /* "event" window reported relative to */
1065 	Window root; /* root window that the event occurred on */
1066 	Window subwindow; /* child window */
1067 	Time time; /* milliseconds */
1068 	int x, y; /* pointer x, y coordinates in event window */
1069 	int x_root, y_root; /* coordinates relative to root */
1070 	uint state; /* key or button mask */
1071 	char is_hint; /* detail */
1072 	Bool same_screen; /* same screen flag */
1073 }
1074 
1075 alias XPointerMovedEvent = XMotionEvent;
1076 
1077 struct XCrossingEvent
1078 {
1079 	int type; /* of event */
1080 	c_ulong serial; /* # of last request processed by server */
1081 	Bool send_event; /* true if this came from a SendEvent request */
1082 	Display* display; /* Display the event was read from */
1083 	Window window; /* "event" window reported relative to */
1084 	Window root; /* root window that the event occurred on */
1085 	Window subwindow; /* child window */
1086 	Time time; /* milliseconds */
1087 	int x, y; /* pointer x, y coordinates in event window */
1088 	int x_root, y_root; /* coordinates relative to root */
1089 	int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
1090 	int detail;
1091 	/*
1092 	 * NotifyAncestor, NotifyVirtual, NotifyInferior,
1093 	 * NotifyNonlinear,NotifyNonlinearVirtual
1094 	 */
1095 	Bool same_screen; /* same screen flag */
1096 	Bool focus; /* boolean focus */
1097 	uint state; /* key or button mask */
1098 }
1099 
1100 alias XEnterWindowEvent = XCrossingEvent;
1101 alias XLeaveWindowEvent = XCrossingEvent;
1102 
1103 struct XFocusChangeEvent
1104 {
1105 	int type; /* FocusIn or FocusOut */
1106 	c_ulong serial; /* # of last request processed by server */
1107 	Bool send_event; /* true if this came from a SendEvent request */
1108 	Display* display; /* Display the event was read from */
1109 	Window window; /* window of event */
1110 	int mode; /* NotifyNormal, NotifyWhileGrabbed,
1111 				   NotifyGrab, NotifyUngrab */
1112 	int detail;
1113 	/*
1114 	 * NotifyAncestor, NotifyVirtual, NotifyInferior,
1115 	 * NotifyNonlinear,NotifyNonlinearVirtual, NotifyPointer,
1116 	 * NotifyPointerRoot, NotifyDetailNone
1117 	 */
1118 }
1119 
1120 alias XFocusInEvent = XFocusChangeEvent;
1121 alias XFocusOutEvent = XFocusChangeEvent;
1122 
1123 /* generated on EnterWindow and FocusIn  when KeyMapState selected */
1124 struct XKeymapEvent
1125 {
1126 	int type;
1127 	c_ulong serial; /* # of last request processed by server */
1128 	Bool send_event; /* true if this came from a SendEvent request */
1129 	Display* display; /* Display the event was read from */
1130 	Window window;
1131 	char[32] key_vector;
1132 }
1133 
1134 struct XExposeEvent
1135 {
1136 	int type;
1137 	c_ulong serial; /* # of last request processed by server */
1138 	Bool send_event; /* true if this came from a SendEvent request */
1139 	Display* display; /* Display the event was read from */
1140 	Window window;
1141 	int x, y;
1142 	int width, height;
1143 	int count; /* if non-zero, at least this many more */
1144 }
1145 
1146 struct XGraphicsExposeEvent
1147 {
1148 	int type;
1149 	c_ulong serial; /* # of last request processed by server */
1150 	Bool send_event; /* true if this came from a SendEvent request */
1151 	Display* display; /* Display the event was read from */
1152 	Drawable drawable;
1153 	int x, y;
1154 	int width, height;
1155 	int count; /* if non-zero, at least this many more */
1156 	int major_code; /* core is CopyArea or CopyPlane */
1157 	int minor_code; /* not defined in the core */
1158 }
1159 
1160 struct XNoExposeEvent
1161 {
1162 	int type;
1163 	c_ulong serial; /* # of last request processed by server */
1164 	Bool send_event; /* true if this came from a SendEvent request */
1165 	Display* display; /* Display the event was read from */
1166 	Drawable drawable;
1167 	int major_code; /* core is CopyArea or CopyPlane */
1168 	int minor_code; /* not defined in the core */
1169 }
1170 
1171 struct XVisibilityEvent
1172 {
1173 	int type;
1174 	c_ulong serial; /* # of last request processed by server */
1175 	Bool send_event; /* true if this came from a SendEvent request */
1176 	Display* display; /* Display the event was read from */
1177 	Window window;
1178 	int state; /* Visibility state */
1179 }
1180 
1181 struct XCreateWindowEvent
1182 {
1183 	int type;
1184 	c_ulong serial; /* # of last request processed by server */
1185 	Bool send_event; /* true if this came from a SendEvent request */
1186 	Display* display; /* Display the event was read from */
1187 	Window parent; /* parent of the window */
1188 	Window window; /* window id of window created */
1189 	int x, y; /* window location */
1190 	int width, height; /* size of window */
1191 	int border_width; /* border width */
1192 	Bool override_redirect; /* creation should be overridden */
1193 }
1194 
1195 struct XDestroyWindowEvent
1196 {
1197 	int type;
1198 	c_ulong serial; /* # of last request processed by server */
1199 	Bool send_event; /* true if this came from a SendEvent request */
1200 	Display* display; /* Display the event was read from */
1201 	Window event;
1202 	Window window;
1203 }
1204 
1205 struct XUnmapEvent
1206 {
1207 	int type;
1208 	c_ulong serial; /* # of last request processed by server */
1209 	Bool send_event; /* true if this came from a SendEvent request */
1210 	Display* display; /* Display the event was read from */
1211 	Window event;
1212 	Window window;
1213 	Bool from_configure;
1214 }
1215 
1216 struct XMapEvent
1217 {
1218 	int type;
1219 	c_ulong serial; /* # of last request processed by server */
1220 	Bool send_event; /* true if this came from a SendEvent request */
1221 	Display* display; /* Display the event was read from */
1222 	Window event;
1223 	Window window;
1224 	Bool override_redirect; /* boolean, is override set... */
1225 }
1226 
1227 struct XMapRequestEvent
1228 {
1229 	int type;
1230 	c_ulong serial; /* # of last request processed by server */
1231 	Bool send_event; /* true if this came from a SendEvent request */
1232 	Display* display; /* Display the event was read from */
1233 	Window parent;
1234 	Window window;
1235 }
1236 
1237 struct XReparentEvent
1238 {
1239 	int type;
1240 	c_ulong serial; /* # of last request processed by server */
1241 	Bool send_event; /* true if this came from a SendEvent request */
1242 	Display* display; /* Display the event was read from */
1243 	Window event;
1244 	Window window;
1245 	Window parent;
1246 	int x, y;
1247 	Bool override_redirect;
1248 }
1249 
1250 struct XConfigureEvent
1251 {
1252 	int type;
1253 	c_ulong serial; /* # of last request processed by server */
1254 	Bool send_event; /* true if this came from a SendEvent request */
1255 	Display* display; /* Display the event was read from */
1256 	Window event;
1257 	Window window;
1258 	int x, y;
1259 	int width, height;
1260 	int border_width;
1261 	Window above;
1262 	Bool override_redirect;
1263 }
1264 
1265 struct XGravityEvent
1266 {
1267 	int type;
1268 	c_ulong serial; /* # of last request processed by server */
1269 	Bool send_event; /* true if this came from a SendEvent request */
1270 	Display* display; /* Display the event was read from */
1271 	Window event;
1272 	Window window;
1273 	int x, y;
1274 }
1275 
1276 struct XResizeRequestEvent
1277 {
1278 	int type;
1279 	c_ulong serial; /* # of last request processed by server */
1280 	Bool send_event; /* true if this came from a SendEvent request */
1281 	Display* display; /* Display the event was read from */
1282 	Window window;
1283 	int width, height;
1284 }
1285 
1286 struct XConfigureRequestEvent
1287 {
1288 	int type;
1289 	c_ulong serial; /* # of last request processed by server */
1290 	Bool send_event; /* true if this came from a SendEvent request */
1291 	Display* display; /* Display the event was read from */
1292 	Window parent;
1293 	Window window;
1294 	int x, y;
1295 	int width, height;
1296 	int border_width;
1297 	Window above;
1298 	int detail; /* Above, Below, TopIf, BottomIf, Opposite */
1299 	c_ulong value_mask;
1300 }
1301 
1302 struct XCirculateEvent
1303 {
1304 	int type;
1305 	c_ulong serial; /* # of last request processed by server */
1306 	Bool send_event; /* true if this came from a SendEvent request */
1307 	Display* display; /* Display the event was read from */
1308 	Window event;
1309 	Window window;
1310 	int place; /* PlaceOnTop, PlaceOnBottom */
1311 }
1312 
1313 struct XCirculateRequestEvent
1314 {
1315 	int type;
1316 	c_ulong serial; /* # of last request processed by server */
1317 	Bool send_event; /* true if this came from a SendEvent request */
1318 	Display* display; /* Display the event was read from */
1319 	Window parent;
1320 	Window window;
1321 	int place; /* PlaceOnTop, PlaceOnBottom */
1322 }
1323 
1324 struct XPropertyEvent
1325 {
1326 	int type;
1327 	c_ulong serial; /* # of last request processed by server */
1328 	Bool send_event; /* true if this came from a SendEvent request */
1329 	Display* display; /* Display the event was read from */
1330 	Window window;
1331 	Atom atom;
1332 	Time time;
1333 	int state; /* NewValue, Deleted */
1334 }
1335 
1336 struct XSelectionClearEvent
1337 {
1338 	int type;
1339 	c_ulong serial; /* # of last request processed by server */
1340 	Bool send_event; /* true if this came from a SendEvent request */
1341 	Display* display; /* Display the event was read from */
1342 	Window window;
1343 	Atom selection;
1344 	Time time;
1345 }
1346 
1347 struct XSelectionRequestEvent
1348 {
1349 	int type;
1350 	c_ulong serial; /* # of last request processed by server */
1351 	Bool send_event; /* true if this came from a SendEvent request */
1352 	Display* display; /* Display the event was read from */
1353 	Window owner;
1354 	Window requestor;
1355 	Atom selection;
1356 	Atom target;
1357 	Atom property;
1358 	Time time;
1359 }
1360 
1361 struct XSelectionEvent
1362 {
1363 	int type;
1364 	c_ulong serial; /* # of last request processed by server */
1365 	Bool send_event; /* true if this came from a SendEvent request */
1366 	Display* display; /* Display the event was read from */
1367 	Window requestor;
1368 	Atom selection;
1369 	Atom target;
1370 	Atom property; /* ATOM or None */
1371 	Time time;
1372 }
1373 
1374 struct XColormapEvent
1375 {
1376 	int type;
1377 	c_ulong serial; /* # of last request processed by server */
1378 	Bool send_event; /* true if this came from a SendEvent request */
1379 	Display* display; /* Display the event was read from */
1380 	Window window;
1381 	Colormap colormap; /* COLORMAP or None */
1382 	Bool new_;
1383 	int state; /* ColormapInstalled, ColormapUninstalled */
1384 }
1385 
1386 struct XClientMessageEvent
1387 {
1388 	int type;
1389 	c_ulong serial; /* # of last request processed by server */
1390 	Bool send_event; /* true if this came from a SendEvent request */
1391 	Display* display; /* Display the event was read from */
1392 	Window window;
1393 	Atom message_type;
1394 	int format;
1395 	private union data_
1396 	{
1397 		char[20] b;
1398 		short[10] s;
1399 		c_long[5] l;
1400 	}
1401 
1402 	data_ data;
1403 }
1404 
1405 struct XMappingEvent
1406 {
1407 	int type;
1408 	c_ulong serial; /* # of last request processed by server */
1409 	Bool send_event; /* true if this came from a SendEvent request */
1410 	Display* display; /* Display the event was read from */
1411 	Window window; /* unused */
1412 	int request; /* one of MappingModifier, MappingKeyboard,
1413 				   MappingPointer */
1414 	int first_keycode; /* first keycode */
1415 	int count; /* defines range of change w. first_keycode*/
1416 }
1417 
1418 struct XErrorEvent
1419 {
1420 	int type;
1421 	Display* display; /* Display the event was read from */
1422 	XID resourceid; /* resource id */
1423 	c_ulong serial; /* serial number of failed request */
1424 	ubyte error_code; /* error code of failed request */
1425 	ubyte request_code; /* Major op-code of failed request */
1426 	ubyte minor_code; /* Minor op-code of failed request */
1427 }
1428 
1429 struct XAnyEvent
1430 {
1431 	int type;
1432 	c_ulong serial; /* # of last request processed by server */
1433 	Bool send_event; /* true if this came from a SendEvent request */
1434 	Display* display; /* Display the event was read from */
1435 	Window window; /* window on which event was requested in event mask */
1436 }
1437 
1438 /***************************************************************
1439  *
1440  * GenericEvent.  This event is the standard event for all newer extensions.
1441  */
1442 
1443 struct XGenericEvent
1444 {
1445 	int type; /* of event. Always GenericEvent */
1446 	c_ulong serial; /* # of last request processed */
1447 	Bool send_event; /* true if from SendEvent request */
1448 	Display* display; /* Display the event was read from */
1449 	int extension; /* major opcode of extension that caused the event */
1450 	int evtype; /* actual event type. */
1451 }
1452 
1453 struct XGenericEventCookie
1454 {
1455 	int type; /* of event. Always GenericEvent */
1456 	c_ulong serial; /* # of last request processed */
1457 	Bool send_event; /* true if from SendEvent request */
1458 	Display* display; /* Display the event was read from */
1459 	int extension; /* major opcode of extension that caused the event */
1460 	int evtype; /* actual event type. */
1461 	uint cookie;
1462 	void* data;
1463 }
1464 
1465 /*
1466  * this union is defined so Xlib can always use the same sized
1467  * event structure internally, to avoid memory fragmentation.
1468  */
1469 union XEvent
1470 {
1471 	int type; /* must not be changed; first element */
1472 	XAnyEvent xany;
1473 	XKeyEvent xkey;
1474 	XButtonEvent xbutton;
1475 	XMotionEvent xmotion;
1476 	XCrossingEvent xcrossing;
1477 	XFocusChangeEvent xfocus;
1478 	XExposeEvent xexpose;
1479 	XGraphicsExposeEvent xgraphicsexpose;
1480 	XNoExposeEvent xnoexpose;
1481 	XVisibilityEvent xvisibility;
1482 	XCreateWindowEvent xcreatewindow;
1483 	XDestroyWindowEvent xdestroywindow;
1484 	XUnmapEvent xunmap;
1485 	XMapEvent xmap;
1486 	XMapRequestEvent xmaprequest;
1487 	XReparentEvent xreparent;
1488 	XConfigureEvent xconfigure;
1489 	XGravityEvent xgravity;
1490 	XResizeRequestEvent xresizerequest;
1491 	XConfigureRequestEvent xconfigurerequest;
1492 	XCirculateEvent xcirculate;
1493 	XCirculateRequestEvent xcirculaterequest;
1494 	XPropertyEvent xproperty;
1495 	XSelectionClearEvent xselectionclear;
1496 	XSelectionRequestEvent xselectionrequest;
1497 	XSelectionEvent xselection;
1498 	XColormapEvent xcolormap;
1499 	XClientMessageEvent xclient;
1500 	XMappingEvent xmapping;
1501 	XErrorEvent xerror;
1502 	XKeymapEvent xkeymap;
1503 	XGenericEvent xgeneric;
1504 	XGenericEventCookie xcookie;
1505 	c_long[24] pad;
1506 }
1507 
1508 //#define XAllocID(dpy) ((*((_XPrivDisplay)dpy)->resource_alloc)((dpy)))
1509 
1510 /*
1511  * per character font metric information.
1512  */
1513 struct XCharStruct
1514 {
1515 	short lbearing; /* origin to left edge of raster */
1516 	short rbearing; /* origin to right edge of raster */
1517 	short width; /* advance to next char's origin */
1518 	short ascent; /* baseline to top edge of raster */
1519 	short descent; /* baseline to bottom edge of raster */
1520 	ushort attributes; /* per char flags (not predefined) */
1521 }
1522 
1523 /*
1524  * To allow arbitrary information with fonts, there are additional properties
1525  * returned.
1526  */
1527 struct XFontProp
1528 {
1529 	Atom name;
1530 	c_ulong card32;
1531 }
1532 
1533 struct XFontStruct
1534 {
1535 	XExtData* ext_data; /* hook for extension to hang data */
1536 	Font fid; /* Font id for this font */
1537 	uint direction; /* hint about direction the font is painted */
1538 	uint min_char_or_byte2; /* first character */
1539 	uint max_char_or_byte2; /* last character */
1540 	uint min_byte1; /* first row that exists */
1541 	uint max_byte1; /* last row that exists */
1542 	Bool all_chars_exist; /* flag if all characters have non-zero size*/
1543 	uint default_char; /* char to print for undefined character */
1544 	int n_properties; /* how many properties there are */
1545 	XFontProp* properties; /* pointer to array of additional properties*/
1546 	XCharStruct min_bounds; /* minimum bounds over all existing char*/
1547 	XCharStruct max_bounds; /* maximum bounds over all existing char*/
1548 	XCharStruct* per_char; /* first_char to last_char information */
1549 	int ascent; /* log. extent above baseline for spacing */
1550 	int descent; /* log. descent below baseline for spacing */
1551 }
1552 
1553 /*
1554  * PolyText routines take these as arguments.
1555  */
1556 struct XTextItem
1557 {
1558 	char* chars; /* pointer to string */
1559 	int nchars; /* number of characters */
1560 	int delta; /* delta between strings */
1561 	Font font; /* font to print it in, None don't change */
1562 }
1563 
1564 struct XChar2b
1565 { /* normal 16 bit characters are two bytes */
1566 	ubyte byte1;
1567 	ubyte byte2;
1568 }
1569 
1570 struct XTextItem16
1571 {
1572 	XChar2b* chars; /* two byte characters */
1573 	int nchars; /* number of characters */
1574 	int delta; /* delta between strings */
1575 	Font font; /* font to print it in, None don't change */
1576 }
1577 
1578 union XEDataObject
1579 {
1580 	Display* display;
1581 	GC gc;
1582 	Visual* visual;
1583 	Screen* screen;
1584 	ScreenFormat* pixmap_format;
1585 	XFontStruct* font;
1586 }
1587 
1588 struct XFontSetExtents
1589 {
1590 	XRectangle max_ink_extent;
1591 	XRectangle max_logical_extent;
1592 }
1593 
1594 /* unused:
1595 typedef void (*XOMProc)();
1596  */
1597 
1598 struct _XOM;
1599 alias XOM = _XOM*;
1600 
1601 struct _XOC;
1602 alias XOC = _XOC*;
1603 alias XFontSet = _XOC*;
1604 
1605 struct XmbTextItem
1606 {
1607 	char* chars;
1608 	int nchars;
1609 	int delta;
1610 	XFontSet font_set;
1611 }
1612 
1613 struct XwcTextItem
1614 {
1615 	wchar_t* chars;
1616 	int nchars;
1617 	int delta;
1618 	XFontSet font_set;
1619 }
1620 
1621 enum XNRequiredCharSet = "requiredCharSet";
1622 enum XNQueryOrientation = "queryOrientation";
1623 enum XNBaseFontName = "baseFontName";
1624 enum XNOMAutomatic = "omAutomatic";
1625 enum XNMissingCharSet = "missingCharSet";
1626 enum XNDefaultString = "defaultString";
1627 enum XNOrientation = "orientation";
1628 enum XNDirectionalDependentDrawing = "directionalDependentDrawing";
1629 enum XNContextualDrawing = "contextualDrawing";
1630 enum XNFontInfo = "fontInfo";
1631 
1632 struct XOMCharSetList
1633 {
1634 	int charset_count;
1635 	char** charset_list;
1636 }
1637 
1638 enum XOrientation
1639 {
1640 	XOMOrientation_LTR_TTB,
1641 	XOMOrientation_RTL_TTB,
1642 	XOMOrientation_TTB_LTR,
1643 	XOMOrientation_TTB_RTL,
1644 	XOMOrientation_Context
1645 }
1646 
1647 alias XOMOrientation_LTR_TTB = XOrientation.XOMOrientation_LTR_TTB;
1648 alias XOMOrientation_RTL_TTB = XOrientation.XOMOrientation_RTL_TTB;
1649 alias XOMOrientation_TTB_LTR = XOrientation.XOMOrientation_TTB_LTR;
1650 alias XOMOrientation_TTB_RTL = XOrientation.XOMOrientation_TTB_RTL;
1651 alias XOMOrientation_Context = XOrientation.XOMOrientation_Context;
1652 
1653 struct XOMOrientation
1654 {
1655 	int num_orientation;
1656 	XOrientation* orientation; /* Input Text description */
1657 }
1658 
1659 struct XOMFontInfo
1660 {
1661 	int num_font;
1662 	XFontStruct** font_struct_list;
1663 	char** font_name_list;
1664 }
1665 
1666 struct _XIM;
1667 alias XIM = _XIM*;
1668 
1669 struct _XIC;
1670 alias XIC = _XIC*;
1671 
1672 alias XIMProc = void function(XIM, XPointer, XPointer);
1673 
1674 alias XICProc = Bool function(XIC, XPointer, XPointer);
1675 
1676 alias XIDProc = void function(Display*, XPointer, XPointer);
1677 
1678 alias XIMStyle = c_ulong;
1679 
1680 struct XIMStyles
1681 {
1682 	ushort count_styles;
1683 	XIMStyle* supported_styles;
1684 }
1685 
1686 enum XIMPreeditArea = 0x0001L;
1687 enum XIMPreeditCallbacks = 0x0002L;
1688 enum XIMPreeditPosition = 0x0004L;
1689 enum XIMPreeditNothing = 0x0008L;
1690 enum XIMPreeditNone = 0x0010L;
1691 enum XIMStatusArea = 0x0100L;
1692 enum XIMStatusCallbacks = 0x0200L;
1693 enum XIMStatusNothing = 0x0400L;
1694 enum XIMStatusNone = 0x0800L;
1695 
1696 enum const(char)* XNVaNestedList = "XNVaNestedList";
1697 enum const(char)* XNQueryInputStyle = "queryInputStyle";
1698 enum const(char)* XNClientWindow = "clientWindow";
1699 enum const(char)* XNInputStyle = "inputStyle";
1700 enum const(char)* XNFocusWindow = "focusWindow";
1701 enum const(char)* XNResourceName = "resourceName";
1702 enum const(char)* XNResourceClass = "resourceClass";
1703 enum const(char)* XNGeometryCallback = "geometryCallback";
1704 enum const(char)* XNDestroyCallback = "destroyCallback";
1705 enum const(char)* XNFilterEvents = "filterEvents";
1706 enum const(char)* XNPreeditStartCallback = "preeditStartCallback";
1707 enum const(char)* XNPreeditDoneCallback = "preeditDoneCallback";
1708 enum const(char)* XNPreeditDrawCallback = "preeditDrawCallback";
1709 enum const(char)* XNPreeditCaretCallback = "preeditCaretCallback";
1710 enum const(char)* XNPreeditStateNotifyCallback = "preeditStateNotifyCallback";
1711 enum const(char)* XNPreeditAttributes = "preeditAttributes";
1712 enum const(char)* XNStatusStartCallback = "statusStartCallback";
1713 enum const(char)* XNStatusDoneCallback = "statusDoneCallback";
1714 enum const(char)* XNStatusDrawCallback = "statusDrawCallback";
1715 enum const(char)* XNStatusAttributes = "statusAttributes";
1716 enum const(char)* XNArea = "area";
1717 enum const(char)* XNAreaNeeded = "areaNeeded";
1718 enum const(char)* XNSpotLocation = "spotLocation";
1719 enum const(char)* XNColormap = "colorMap";
1720 enum const(char)* XNStdColormap = "stdColorMap";
1721 enum const(char)* XNForeground = "foreground";
1722 enum const(char)* XNBackground = "background";
1723 enum const(char)* XNBackgroundPixmap = "backgroundPixmap";
1724 enum const(char)* XNFontSet = "fontSet";
1725 enum const(char)* XNLineSpace = "lineSpace";
1726 enum const(char)* XNCursor = "cursor";
1727 
1728 enum const(char)* XNQueryIMValuesList = "queryIMValuesList";
1729 enum const(char)* XNQueryICValuesList = "queryICValuesList";
1730 enum const(char)* XNVisiblePosition = "visiblePosition";
1731 enum const(char)* XNR6PreeditCallback = "r6PreeditCallback";
1732 enum const(char)* XNStringConversionCallback = "stringConversionCallback";
1733 enum const(char)* XNStringConversion = "stringConversion";
1734 enum const(char)* XNResetState = "resetState";
1735 enum const(char)* XNHotKey = "hotKey";
1736 enum const(char)* XNHotKeyState = "hotKeyState";
1737 enum const(char)* XNPreeditState = "preeditState";
1738 enum const(char)* XNSeparatorofNestedList = "separatorofNestedList";
1739 
1740 enum XBufferOverflow = -1;
1741 enum XLookupNone = 1;
1742 enum XLookupChars = 2;
1743 enum XLookupKeySym = 3;
1744 enum XLookupBoth = 4;
1745 
1746 alias XVaNestedList = void*;
1747 
1748 struct XIMCallback
1749 {
1750 	XPointer client_data;
1751 	XIMProc callback;
1752 }
1753 
1754 struct XICCallback
1755 {
1756 	XPointer client_data;
1757 	XICProc callback;
1758 }
1759 
1760 alias XIMFeedback = c_ulong;
1761 
1762 enum XIMReverse = 1L;
1763 enum XIMUnderline = (1L << 1);
1764 enum XIMHighlight = (1L << 2);
1765 enum XIMPrimary = (1L << 5);
1766 enum XIMSecondary = (1L << 6);
1767 enum XIMTertiary = (1L << 7);
1768 enum XIMVisibleToForward = (1L << 8);
1769 enum XIMVisibleToBackword = (1L << 9);
1770 enum XIMVisibleToCenter = (1L << 10);
1771 
1772 struct XIMText
1773 {
1774 	ushort length;
1775 	XIMFeedback* feedback;
1776 	Bool encoding_is_wchar;
1777 
1778 	private union string_union
1779 	{
1780 		char* multi_byte;
1781 		wchar_t* wide_char;
1782 	}
1783 
1784 	string_union string_;
1785 }
1786 
1787 alias XIMPreeditState = c_ulong;
1788 
1789 enum XIMPreeditUnKnown = 0L;
1790 enum XIMPreeditEnable = 1L;
1791 enum XIMPreeditDisable = (1L << 1);
1792 
1793 struct XIMPreeditStateNotifyCallbackStruct
1794 {
1795 	XIMPreeditState state;
1796 }
1797 
1798 alias XIMResetState = c_ulong;
1799 
1800 enum XIMInitialState = 1L;
1801 enum XIMPreserveState = (1L << 1);
1802 
1803 alias XIMStringConversionFeedback = c_ulong;
1804 
1805 enum XIMStringConversionLeftEdge = (0x00000001);
1806 enum XIMStringConversionRightEdge = (0x00000002);
1807 enum XIMStringConversionTopEdge = (0x00000004);
1808 enum XIMStringConversionBottomEdge = (0x00000008);
1809 enum XIMStringConversionConcealed = (0x00000010);
1810 enum XIMStringConversionWrapped = (0x00000020);
1811 
1812 struct XIMStringConversionText
1813 {
1814 	ushort length;
1815 	XIMStringConversionFeedback* feedback;
1816 	Bool encoding_is_wchar;
1817 	private union string_union
1818 	{
1819 		char* mbs;
1820 		wchar_t* wcs;
1821 	}
1822 
1823 	string_union string_;
1824 }
1825 
1826 alias XIMStringConversionPosition = c_ulong;
1827 
1828 alias XIMStringConversionType = c_ulong;
1829 
1830 enum XIMStringConversionBuffer = (0x0001);
1831 enum XIMStringConversionLine = (0x0002);
1832 enum XIMStringConversionWord = (0x0003);
1833 enum XIMStringConversionChar = (0x0004);
1834 
1835 alias XIMStringConversionOperation = c_ulong;
1836 
1837 enum XIMStringConversionSubstitution = (0x0001);
1838 enum XIMStringConversionRetrieval = (0x0002);
1839 
1840 enum XIMCaretDirection
1841 {
1842 	XIMForwardChar,
1843 	XIMBackwardChar,
1844 	XIMForwardWord,
1845 	XIMBackwardWord,
1846 	XIMCaretUp,
1847 	XIMCaretDown,
1848 	XIMNextLine,
1849 	XIMPreviousLine,
1850 	XIMLineStart,
1851 	XIMLineEnd,
1852 	XIMAbsolutePosition,
1853 	XIMDontChange
1854 }
1855 
1856 struct XIMStringConversionCallbackStruct
1857 {
1858 	XIMStringConversionPosition position;
1859 	XIMCaretDirection direction;
1860 	XIMStringConversionOperation operation;
1861 	ushort factor;
1862 	XIMStringConversionText* text;
1863 }
1864 
1865 struct XIMPreeditDrawCallbackStruct
1866 {
1867 	int caret; /* Cursor offset within pre-edit string */
1868 	int chg_first; /* Starting change position */
1869 	int chg_length; /* Length of the change in character count */
1870 	XIMText* text;
1871 }
1872 
1873 enum XIMCaretStyle
1874 {
1875 	XIMIsInvisible, /* Disable caret feedback */
1876 	XIMIsPrimary, /* UI defined caret feedback */
1877 	XIMIsSecondary /* UI defined caret feedback */
1878 }
1879 
1880 struct XIMPreeditCaretCallbackStruct
1881 {
1882 	int position; /* Caret offset within pre-edit string */
1883 	XIMCaretDirection direction; /* Caret moves direction */
1884 	XIMCaretStyle style; /* Feedback of the caret */
1885 }
1886 
1887 enum XIMStatusDataType
1888 {
1889 	XIMTextType,
1890 	XIMBitmapType
1891 }
1892 
1893 struct XIMStatusDrawCallbackStruct
1894 {
1895 	XIMStatusDataType type;
1896 	private union data_
1897 	{
1898 		XIMText* text;
1899 		Pixmap bitmap;
1900 	}
1901 
1902 	data_ data;
1903 }
1904 
1905 struct XIMHotKeyTrigger
1906 {
1907 	KeySym keysym;
1908 	int modifier;
1909 	int modifier_mask;
1910 }
1911 
1912 struct XIMHotKeyTriggers
1913 {
1914 	int num_hot_key;
1915 	XIMHotKeyTrigger* key;
1916 }
1917 
1918 alias XIMHotKeyState = c_ulong;
1919 
1920 enum XIMHotKeyStateON = (0x0001L);
1921 enum XIMHotKeyStateOFF = (0x0002L);
1922 
1923 struct XIMValuesList
1924 {
1925 	ushort count_values;
1926 	char** supported_values;
1927 }
1928 
1929 /* WARNING, this type not in Xlib spec */
1930 alias XErrorHandler = int function(Display*  /* display */ , XErrorEvent*  /* error_event */
1931 		);
1932 
1933 /* WARNING, this type not in Xlib spec */
1934 alias XIOErrorHandler = int function(Display*  /* display */
1935 		);
1936 
1937 alias XConnectionWatchProc = void function(Display*  /* dpy */ , XPointer /* client_data */ ,
1938 		int /* fd */ , Bool /* opening */ , /* open or close flag */
1939 		XPointer*  /* watch_data */  /* open sets, close uses */
1940 		);
1941 
1942 alias int XrmQuark;
1943 alias int* XrmQuarkList;
1944 
1945 alias XrmHashTable[] XrmSearchList;
1946 alias XrmHashBucket* XrmHashTable;
1947 alias _XrmHashBucketRec* XrmHashBucket;
1948 alias _XrmHashBucketRec* XrmDatabase;
1949 
1950 struct XrmValue
1951 {
1952 	uint size;
1953 	XPointer addr;
1954 }
1955 
1956 alias XrmValue* XrmValuePtr;
1957 
1958 alias XContext = int;
1959 
1960 extern (C) @nogc nothrow
1961 {
1962 	alias da_XLoadQueryFont = XFontStruct* function(Display*  /* display */ , const(char)*  /* name */);
1963 	alias da_XQueryFont = XFontStruct* function(Display*  /* display */ , XID /* font_ID */);
1964 	alias da_XGetMotionEvents = XTimeCoord* function(Display*  /* display */ , Window /* w */ , Time /* start */ , Time /* stop */ , int*  /* nevents_return */);
1965 
1966 	version (XlibWidePrototypes) alias da_XDeleteModifiermapEntry = XModifierKeymap* function(XModifierKeymap*  /* modmap */ , uint /* keycode_entry */ , int /* modifier */);
1967 	else alias da_XDeleteModifiermapEntry = XModifierKeymap* function(XModifierKeymap*  /* modmap */ , KeyCode /* keycode_entry */ , int /* modifier */);
1968 
1969 	alias da_XGetModifierMapping = XModifierKeymap* function(Display*  /* display */);
1970 
1971 	version (XlibWidePrototypes) alias da_XInsertModifiermapEntry = XModifierKeymap* function(XModifierKeymap*  /* modmap */ , uint /* keycode_entry */ , int /* modifier */);
1972 	else alias da_XInsertModifiermapEntry =XModifierKeymap* function(XModifierKeymap*  /* modmap */ , KeyCode /* keycode_entry */ , int /* modifier */);
1973 
1974 	alias da_XNewModifiermap = XModifierKeymap* function(int /* max_keys_per_mod */);
1975 	alias da_XCreateImage = XImage* function(Display*  /* display */ , Visual*  /* visual */ , uint /* depth */ ,int /* format */ , int /* offset */ , char*  /* data */ , uint /* width */ ,uint /* height */ , int /* bitmap_pad */ , int /* bytes_per_line */);
1976 	alias da_XInitImage = Status function(XImage*  /* image */);
1977 	alias da_XGetImage = XImage* function(Display*  /* display */ , Drawable /* d */ , int /* x */ ,int /* y */ , uint /* width */ , uint /* height */ , c_ulong /* plane_mask */ , int /* format */);
1978 	alias da_XGetSubImage = XImage* function(Display*  /* display */ , Drawable /* d */ , int /* x */ , int /* y */ , uint /* width */ , uint /* height */ , c_ulong /* plane_mask */ , int /* format */ , XImage*  /* dest_image */ , int /* dest_x */ , int /* dest_y */);
1979 	
1980 	/*
1981 	* X function declarations.
1982 	*/
1983 	alias da_XOpenDisplay = Display* function(const(char)*  /* display_name */);
1984 	alias da_XrmInitialize = void function();
1985 	alias da_XFetchBytes = char* function(Display*  /* display */ , int*  /* nbytes_return */);
1986 	alias da_XFetchBuffer = char* function(Display*  /* display */ , int*  /* nbytes_return */ , int /* buffer */);
1987 	alias da_XGetAtomName = char* function(Display*  /* display */ , Atom /* atom */);
1988 	alias da_XGetAtomNames = Status function(Display*  /* dpy */ , Atom*  /* atoms */ , int /* count */ , char**  /* names_return */);
1989 	alias da_XGetDefault = char* function(Display*  /* display */ , const(char)*  /* program */ , const(char)*  /* option */);
1990 	alias da_XDisplayName = char* function(const(char)*  /* string */);
1991 	alias da_XKeysymToString = char* function(KeySym /* keysym */);
1992 	alias da_XSynchronize = int function(Display*) function(Display*  /* display */ , Bool /* onoff */);
1993 	alias da_XSetAfterFunction = int function(Display*) function(Display*  /* display */ , int function(Display*) proc);
1994 	alias da_XInternAtom = Atom function(Display*  /* display */ , const(char)*  /* atom_name */ , Bool /* only_if_exists */);
1995 	alias da_XInternAtoms = Status function(Display*  /* dpy */ , char**  /* names */ , int /* count */ , Bool /* onlyIfExists */ , Atom*  /* atoms_return */);
1996 	alias da_XCopyColormapAndFree = Colormap function(Display*  /* display */ , Colormap /* colormap */);
1997 	alias da_XCreateColormap = Colormap function(Display*  /* display */ , Window /* w */ , Visual*  /* visual */ , int /* alloc */);
1998 	alias da_XCreatePixmapCursor = Cursor function(Display*  /* display */ , Pixmap /* source */ , Pixmap /* mask */ , XColor*  /* foreground_color */ , XColor*  /* background_color */ , uint /* x */ , uint /* y */);
1999 	alias da_XCreateGlyphCursor = Cursor function(Display*  /* display */ , Font /* source_font */ , Font /* mask_font */ , uint /* source_char */ , uint /* mask_char */ , const(XColor)*  /* foreground_color */ , const(XColor)*  /* background_color */);
2000 	alias da_XCreateFontCursor = Cursor function(Display*  /* display */ , uint /* shape */);
2001 	alias da_XLoadFont = Font function(Display*  /* display */ , const(char)*  /* name */);
2002 	alias da_XCreateGC = GC function(Display*  /* display */ , Drawable /* d */ , c_ulong /* valuemask */ , XGCValues*  /* values */);
2003 	alias da_XGContextFromGC = GContext function(GC /* gc */);
2004 	alias da_XFlushGC = void function(Display*  /* display */ , GC /* gc */);
2005 	alias da_XCreatePixmap = Pixmap function(Display*  /* display */ , Drawable /* d */ , uint /* width */ , uint /* height */ ,uint /* depth */);
2006 	alias da_XCreateBitmapFromData = Pixmap function(Display*  /* display */ , Drawable /* d */ , const(char)*  /* data */ , uint /* width */ , uint /* height */);
2007 	alias da_XCreatePixmapFromBitmapData = Pixmap function(Display*  /* display */ , Drawable /* d */ , char*  /* data */ , uint /* width */ , uint /* height */ , c_ulong /* fg */ , c_ulong /* bg */ , uint /* depth */);
2008 	alias da_XCreateSimpleWindow = Window function(Display*  /* display */ , Window /* parent */ , int /* x */ , int /* y */ , uint /* width */ ,uint /* height */ , uint /* border_width */ , c_ulong /* border */ , c_ulong /* background */);
2009 	alias da_XGetSelectionOwner = Window function(Display*  /* display */ , Atom /* selection */);
2010 	alias da_XCreateWindow = Window function(Display*  /* display */ , Window /* parent */ , int /* x */ , int /* y */ , uint /* width */ , uint /* height */ ,uint /* border_width */ , int /* depth */ , uint /* class */ , Visual*  /* visual */ , c_ulong /* valuemask */ , XSetWindowAttributes*  /* attributes */ );
2011 	alias da_XListInstalledColormaps = Colormap* function(Display*  /* display */ , Window /* w */ , int*  /* num_return */);
2012 	alias da_XListFonts = char** function(Display*  /* display */ , const(char)*  /* pattern */ , int /* maxnames */ , int*  /* actual_count_return */ );
2013 	alias da_XListFontsWithInfo = char** function(Display*  /* display */ , const(char)*  /* pattern */ , int /* maxnames */ , int*  /* count_return */ , XFontStruct**  /* info_return */);
2014 	alias da_XGetFontPath = char** function(Display*  /* display */ , int*  /* npaths_return */);
2015 	alias da_XListExtensions = char** function(Display*  /* display */ , int*  /* nextensions_return */);
2016 	alias da_XListProperties = Atom* function(Display*  /* display */ , Window /* w */ , int*  /* num_prop_return */);
2017 	alias da_XListHosts = XHostAddress* function(Display*  /* display */ , int*  /* nhosts_return */ , Bool*  /* state_return */);
2018 	alias da_XLookupKeysym = KeySym function(XKeyEvent*  /* key_event */ , int /* index */);
2019 	version (XlibWidePrototypes) KeySym* XGetKeyboardMapping(Display*  /* display */ , uint /* keycode_entry */ , int /* keycode_count */ , int*  /* keysyms_per_keycode_return */);
2020 	else KeySym* XGetKeyboardMapping(Display*  /* display */ , KeyCode /* keycode_entry */ , int /* keycode_count */ , int*  /* keysyms_per_keycode_return */);
2021 	alias da_XStringToKeysym = KeySym function(const(char)*  /* string */);
2022 	alias da_XMaxRequestSize = c_long function(Display*  /* display */);
2023 	alias da_XExtendedMaxRequestSize = c_long function(Display*  /* display */);
2024 	alias da_XDisplayMotionBufferSize = c_ulong function(Display*  /* display */);
2025 	alias da_XVisualIDFromVisual = VisualID function(Visual*  /* visual */);
2026 	alias da_XInitThreads = Status function();
2027 	alias da_XLockDisplay = void function(Display*  /* display */);
2028 	alias da_XUnlockDisplay = void function(Display*  /* display */);
2029 	alias da_XRootWindow = Window function(Display*  /* display */ , int /* screen_number */);
2030 	alias da_XDefaultRootWindow = Window function(Display*  /* display */);
2031 	alias da_XRootWindowOfScreen = Window function(Screen*  /* screen */);
2032 	alias da_XDefaultGC = GC function(Display*  /* display */ , int /* screen_number */);
2033 	alias da_XDefaultGCOfScreen = GC function(Screen*  /* screen */);
2034 	alias da_XBlackPixel = c_ulong function(Display*  /* display */ , int /* screen_number */);
2035 	alias da_XWhitePixel = c_ulong function(Display*  /* display */ , int /* screen_number */);
2036 	alias da_XAllPlanes = c_ulong function();
2037 	alias da_XBlackPixelOfScreen = c_ulong function(Screen*  /* screen */);
2038 	alias da_XWhitePixelOfScreen = c_ulong function(Screen*  /* screen */);
2039 	alias da_XNextRequest = c_ulong function(Display*  /* display */);
2040 	alias da_XLastKnownRequestProcessed = c_ulong function(Display*  /* display */);
2041 	alias da_XDefaultColormap = Colormap function(Display*  /* display */ , int /* screen_number */);
2042 	alias da_XDefaultColormapOfScreen = Colormap function(Screen*  /* screen */);
2043 	alias da_XEventMaskOfScreen = c_long function(Screen*  /* screen */);
2044 	alias da_XScreenNumberOfScreen = int function(Screen*  /* screen */);
2045 	alias da_XSetErrorHandler = XErrorHandler function(XErrorHandler /* handler */);
2046 	alias da_XSetIOErrorHandler = XIOErrorHandler function(XIOErrorHandler /* handler */);
2047 	alias da_XResourceManagerString = char* function(Display*  /* display */);
2048 	alias da_XScreenResourceString = char* function(Screen*  /* screen */);
2049 	alias da_XInitExtension = XExtCodes* function(Display*  /* display */ , const(char)*  /* name */);
2050 	alias da_XAddExtension = XExtCodes* function(Display*  /* display */);
2051 	alias da_XFindOnExtensionList = XExtData* function(XExtData**  /* structure */ , int /* number */);
2052 	alias da_XDefaultVisual = Visual* function(Display*  /* display */ , int /* screen_number */);
2053 	alias da_XDefaultVisualOfScreen = Visual* function(Screen*  /* screen */);
2054 	alias da_XServerVendor = char* function(Display*  /* display */);
2055 	alias da_XDisplayString = char* function(Display*  /* display */);
2056 	alias da_XDisplayOfScreen = Display* function(Screen*  /* screen */);
2057 	alias da_XScreenOfDisplay = Screen* function(Display*  /* display */ , int /* screen_number */);
2058 	alias da_XDefaultScreenOfDisplay = Screen* function(Display*  /* display */);
2059 	alias da_XListPixmapFormats = XPixmapFormatValues* function(Display*  /* display */ , int*  /* count_return */);
2060 	alias da_XListDepths = int* function(Display*  /* display */ , int /* screen_number */ , int*  /* count_return */);
2061 	alias da_XEHeadOfExtensionList = XExtData** function(XEDataObject /* object */);
2062 	alias da_XReconfigureWMWindow = Status function(Display*  /* display */ , Window /* w */ , int /* screen_number */ ,uint /* mask */ , XWindowChanges*  /* changes */);
2063 	alias da_XGetWMProtocols = Status function(Display*  /* display */ , Window /* w */ , Atom**  /* protocols_return */ ,int*  /* count_return */);
2064 	alias da_XSetWMProtocols = Status function(Display*  /* display */ , Window /* w */ , Atom*  /* protocols */ , int /* count */);
2065 	alias da_XIconifyWindow = Status function(Display*  /* display */ , Window /* w */ , int /* screen_number */);
2066 	alias da_XWithdrawWindow = Status function(Display*  /* display */ , Window /* w */ , int /* screen_number */);
2067 	alias da_XGetCommand = Status function(Display*  /* display */ , Window /* w */ , char***  /* argv_return */ , int*  /* argc_return */);
2068 	alias da_XGetWMColormapWindows = Status function(Display*  /* display */ , Window /* w */ , Window**  /* windows_return */ ,int*  /* count_return */);
2069 	alias da_XSetWMColormapWindows = Status function(Display*  /* display */ , Window /* w */ , Window*  /* colormap_windows */ ,int /* count */);
2070 	alias da_XFreeStringList = void function(char**  /* list */);
2071 	alias da_XSetTransientForHint = int function(Display*  /* display */ , Window /* w */ , Window /* prop_window */);
2072 	alias da_XActivateScreenSaver = int function(Display*  /* display */);
2073 	alias da_XAddHost = int function(Display*  /* display */ , XHostAddress*  /* host */);
2074 	alias da_XAddHosts = int function(Display*  /* display */ , XHostAddress*  /* hosts */ , int /* num_hosts */);
2075 	alias da_XAddToExtensionList = int function(XExtData**  /* structure */ , XExtData*  /* ext_data */);
2076 	alias da_XAddToSaveSet = int function(Display*  /* display */ , Window /* w */);
2077 	alias da_XAllocColor = Status function(Display*  /* display */ , Colormap /* colormap */ , XColor*  /* screen_in_out */);
2078 	alias da_XAllocColorCells = Status function(Display*  /* display */ , Colormap /* colormap */ ,Bool /* contig */ , c_ulong*  /* plane_masks_return */ , uint /* nplanes */ ,c_ulong*  /* pixels_return */ , uint /* npixels */);
2079 	alias da_XAllocColorPlanes = Status function(Display*  /* display */ , Colormap /* colormap */ , Bool /* contig */ , c_ulong*  /* pixels_return */ ,int /* ncolors */ , int /* nreds */ , int /* ngreens */ , int /* nblues */ ,c_ulong*  /* rmask_return */ , c_ulong*  /* gmask_return */ , c_ulong*  /* bmask_return */);
2080 	alias da_XAllocNamedColor = Status function(Display*  /* display */ , Colormap /* colormap */ ,const(char)*  /* color_name */ , XColor*  /* screen_def_return */ , XColor*  /* exact_def_return */);
2081 	alias da_XAllowEvents = int function(Display*  /* display */ , int /* event_mode */ , Time /* time */);
2082 	alias da_XAutoRepeatOff = int function(Display*  /* display */);
2083 	alias da_XAutoRepeatOn = int function(Display*  /* display */);
2084 	alias da_XBell = int function(Display*  /* display */ , int /* percent */);
2085 	alias da_XBitmapBitOrder = int function(Display*  /* display */);
2086 	alias da_XBitmapPad = int function(Display*  /* display */);
2087 	alias da_XBitmapUnit = int function(Display*  /* display */);
2088 	alias da_XCellsOfScreen = int function(Screen*  /* screen */);
2089 	alias da_XChangeActivePointerGrab = int function(Display*  /* display */ , uint /* event_mask */ , Cursor /* cursor */ ,Time /* time */);
2090 	alias da_XChangeGC = int function(Display*  /* display */ , GC /* gc */ , c_ulong /* valuemask */ , XGCValues*  /* values */);
2091 	alias da_XChangeKeyboardControl = int function(Display*  /* display */ , c_ulong /* value_mask */ ,XKeyboardControl*  /* values */);
2092 	alias da_XChangeKeyboardMapping = int function(Display*  /* display */ , int /* first_keycode */ , int /* keysyms_per_keycode */ , KeySym*  /* keysyms */ , int /* num_codes */);
2093 	alias da_XChangePointerControl = int function(Display*  /* display */ , Bool /* do_accel */ , Bool /* do_threshold */ ,int /* accel_numerator */ , int /* accel_denominator */ , int /* threshold */);
2094 	alias da_XChangeProperty = int function(Display*  /* display */ , Window /* w */ , Atom /* property */ , Atom /* type */ ,int /* format */ , int /* mode */ , const(ubyte)*  /* data */ , int /* nelements */);
2095 	alias da_XChangeSaveSet = int function(Display*  /* display */ , Window /* w */ , int /* change_mode */);
2096 	alias da_XChangeWindowAttributes = int function(Display*  /* display */ , Window /* w */ ,c_ulong /* valuemask */ , XSetWindowAttributes*  /* attributes */);
2097 	alias da_XCheckIfEvent = Bool function(Display*  /* display */ , XEvent*  /* event_return */ ,Bool function(Display*, XEvent*, XPointer) /* predicate */ , XPointer /* arg */);
2098 	alias da_XCheckMaskEvent = Bool function(Display*  /* display */ , c_long /* event_mask */ , XEvent*  /* event_return */);
2099 	alias da_XCheckTypedEvent = Bool function(Display*  /* display */ , int /* event_type */ , XEvent*  /* event_return */);
2100 	alias da_XCheckTypedWindowEvent = Bool function(Display*  /* display */ , Window /* w */ , int /* event_type */ ,XEvent*  /* event_return */);
2101 	alias da_XCheckWindowEvent = Bool function(Display*  /* display */ , Window /* w */ , c_long /* event_mask */ ,XEvent*  /* event_return */);
2102 	alias da_XCirculateSubwindows = int function(Display*  /* display */ , Window /* w */ , int /* direction */);
2103 	alias da_XCirculateSubwindowsDown = int function(Display*  /* display */ , Window /* w */);
2104 	alias da_XCirculateSubwindowsUp = int function(Display*  /* display */ , Window /* w */);
2105 	alias da_XClearArea = int function(Display*  /* display */ , Window /* w */ , int /* x */ , int /* y */ ,uint /* width */ , uint /* height */ , Bool /* exposures */);
2106 	alias da_XClearWindow = int function(Display*  /* display */ , Window /* w */);
2107 	alias da_XCloseDisplay = int function(Display*  /* display */);
2108 	alias da_XConfigureWindow = int function(Display*  /* display */ , Window /* w */ , uint /* value_mask */ ,XWindowChanges*  /* values */);
2109 	alias da_XConnectionNumber = int function(Display*  /* display */);
2110 	alias da_XConvertSelection = int function(Display*  /* display */ , Atom /* selection */ , Atom /* target */ ,Atom /* property */ , Window /* requestor */ , Time /* time */);
2111 	alias da_XCopyArea = int function(Display*  /* display */ , Drawable /* src */ , Drawable /* dest */ , GC /* gc */ ,int /* src_x */ , int /* src_y */ , uint /* width */ , uint /* height */ , int /* dest_x */ ,int /* dest_y */);
2112 	alias da_XCopyGC = int function(Display*  /* display */ , GC /* src */ , c_ulong /* valuemask */ , GC /* dest */);
2113 	alias da_XCopyPlane = int function(Display*  /* display */ , Drawable /* src */ , Drawable /* dest */ , GC /* gc */ , int /* src_x */ , int /* src_y */ ,uint /* width */ , uint /* height */ , int /* dest_x */ , int /* dest_y */ , c_ulong /* plane */);
2114 	alias da_XDefaultDepth = int function(Display*  /* display */ , int /* screen_number */);
2115 	alias da_XDefaultDepthOfScreen = int function(Screen*  /* screen */);
2116 	alias da_XDefaultScreen = int function(Display*  /* display */);
2117 	alias da_XDefineCursor = int function(Display*  /* display */ , Window /* w */ , Cursor /* cursor */);
2118 	alias da_XDeleteProperty = int function(Display*  /* display */ , Window /* w */ , Atom /* property */);
2119 	alias da_XDestroyWindow = int function(Display*  /* display */ , Window /* w */);
2120 	alias da_XDestroySubwindows = int function(Display*  /* display */ , Window /* w */);
2121 	alias da_XDoesBackingStore = int function(Screen*  /* screen */);
2122 	alias da_XDoesSaveUnders = Bool function(Screen*  /* screen */);
2123 	alias da_XDisableAccessControl = int function(Display*  /* display */);
2124 	alias da_XDisplayCells = int function(Display*  /* display */ , int /* screen_number */);
2125 	alias da_XDisplayHeight = int function(Display*  /* display */ , int /* screen_number */);
2126 	alias da_XDisplayHeightMM = int function(Display*  /* display */ , int /* screen_number */);
2127 	alias da_XDisplayKeycodes = int function(Display*  /* display */ , int*  /* min_keycodes_return */ , int*  /* max_keycodes_return */);
2128 	alias da_XDisplayPlanes = int function(Display*  /* display */ , int /* screen_number */);
2129 	alias da_XDisplayWidth = int function(Display*  /* display */ , int /* screen_number */);
2130 	alias da_XDisplayWidthMM = int function(Display*  /* display */ , int /* screen_number */);
2131 	alias da_XDrawArc = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ ,int /* y */ , uint /* width */ , uint /* height */ , int /* angle1 */ , int /* angle2 */);
2132 	alias da_XDrawArcs = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , XArc*  /* arcs */ , int /* narcs */);
2133 	alias da_XDrawImageString = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ ,int /* x */ , int /* y */ , const(char)*  /* string */ , int /* length */);
2134 	alias da_XDrawImageString16 = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ ,int /* y */ , const XChar2b*  /* string */ , int /* length */);
2135 	alias da_XDrawLine = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x1 */ ,int /* y1 */ , int /* x2 */ , int /* y2 */);
2136 	alias da_XDrawLines = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , XPoint*  /* points */ ,int /* npoints */ , int /* mode */);
2137 	alias da_XDrawPoint = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ , int /* y */);
2138 	alias da_XDrawPoints = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , XPoint*  /* points */ ,int /* npoints */ , int /* mode */);
2139 	alias da_XDrawRectangle = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ ,int /* y */ , uint /* width */ , uint /* height */);
2140 	alias da_XDrawRectangles = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , XRectangle*  /* rectangles */ ,int /* nrectangles */);
2141 	alias da_XDrawSegments = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , XSegment*  /* segments */ ,int /* nsegments */);
2142 	alias da_XDrawString = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ ,int /* x */ , int /* y */ , const(char)*  /* string */ , int /* length */);
2143 	alias da_XDrawString16 = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ ,int /* x */ , int /* y */ , const XChar2b*  /* string */ , int /* length */);
2144 	alias da_XDrawText = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ ,int /* y */ , XTextItem*  /* items */ , int /* nitems */);
2145 	alias da_XDrawText16 = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ ,int /* x */ , int /* y */ , XTextItem16*  /* items */ , int /* nitems */);
2146 	alias da_XEnableAccessControl = int function(Display*  /* display */);
2147 	alias da_XEventsQueued = int function(Display*  /* display */ , int /* mode */);
2148 	alias da_XFetchName = Status function(Display*  /* display */ , Window /* w */ , char**  /* window_name_return */);
2149 	alias da_XFillArc = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ ,	int /* y */ , uint /* width */ , uint /* height */ , int /* angle1 */ , int /* angle2 */);
2150 	alias da_XFillArcs = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , XArc*  /* arcs */ , int /* narcs */);
2151 	alias da_XFillPolygon = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , XPoint*  /* points */ ,int /* npoints */ , int /* shape */ , int /* mode */);
2152 	alias da_XFillRectangle = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ ,int /* y */ , uint /* width */ , uint /* height */);
2153 	alias da_XFillRectangles = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , XRectangle*  /* rectangles */ ,int /* nrectangles */);
2154 	alias da_XFlush = int function(Display*  /* display */);
2155 	alias da_XForceScreenSaver = int function(Display*  /* display */ , int /* mode */);
2156 	alias da_XFree = int function(void*  /* data */);
2157 	alias da_XFreeColormap = int function(Display*  /* display */ , Colormap /* colormap */);
2158 	alias da_XFreeColors = int function(Display*  /* display */ , Colormap /* colormap */ , c_ulong*  /* pixels */ ,int /* npixels */ , c_ulong /* planes */);
2159 	alias da_XFreeCursor = int function(Display*  /* display */ , Cursor /* cursor */);
2160 	alias da_XFreeExtensionList = int function(char**  /* list */);
2161 	alias da_XFreeFont = int function(Display*  /* display */ , XFontStruct*  /* font_struct */);
2162 	alias da_XFreeFontInfo = int function(char**  /* names */ , XFontStruct*  /* free_info */ , int /* actual_count */);
2163 	alias da_XFreeFontNames = int function(char**  /* list */);
2164 	alias da_XFreeFontPath = int function(char**  /* list */);
2165 	alias da_XFreeGC = int function(Display*  /* display */ , GC /* gc */);
2166 	alias da_XFreeModifiermap = int function(XModifierKeymap*  /* modmap */);
2167 	alias da_XFreePixmap = int function(Display*  /* display */ , Pixmap /* pixmap */);
2168 	alias da_XGeometry = int function(Display*  /* display */ , int /* screen */ , const(char)*  /* position */ ,const(char)*  /* default_position */ , uint /* bwidth */ , uint /* fwidth */ ,uint /* fheight */ , int /* xadder */ , int /* yadder */ , int*  /* x_return */ ,int*  /* y_return */ , int*  /* width_return */ , int*  /* height_return */);
2169 	alias da_XGetErrorDatabaseText = int function(Display*  /* display */ , const(char)*  /* name */ ,const(char)*  /* message */ , const(char)*  /* default_string */ , char*  /* buffer_return */ ,int /* length */);
2170 	alias da_XGetErrorText = int function(Display*  /* display */ , int /* code */ , char*  /* buffer_return */ , int /* length */);
2171 	alias da_XGetFontProperty = Bool function(XFontStruct*  /* font_struct */ , Atom /* atom */ , c_ulong*  /* value_return */);
2172 	alias da_XGetGCValues = Status function(Display*  /* display */ , GC /* gc */ , c_ulong /* valuemask */ ,XGCValues*  /* values_return */);
2173 	alias da_XGetGeometry = Status function(Display*  /* display */ , Drawable /* d */ , Window*  /* root_return */ , int*  /* x_return */ , int*  /* y_return */ ,uint*  /* width_return */ , uint*  /* height_return */ , uint*  /* border_width_return */ ,uint*  /* depth_return */);
2174 	alias da_XGetIconName = Status function(Display*  /* display */ , Window /* w */ , char**  /* icon_name_return */);
2175 	alias da_XGetInputFocus = int function(Display*  /* display */ , Window*  /* focus_return */ , int*  /* revert_to_return */);
2176 	alias da_XGetKeyboardControl = int function(Display*  /* display */ , XKeyboardState*  /* values_return */);
2177 	alias da_XGetPointerControl = int function(Display*  /* display */ , int*  /* accel_numerator_return */ ,int*  /* accel_denominator_return */ , int*  /* threshold_return */);
2178 	alias da_XGetPointerMapping = int function(Display*  /* display */ , ubyte*  /* map_return */ , int /* nmap */);
2179 	alias da_XGetScreenSaver = int function(Display*  /* display */ , int*  /* timeout_return */ , int*  /* interval_return */ ,int*  /* prefer_blanking_return */ , int*  /* allow_exposures_return */);
2180 	alias da_XGetTransientForHint = Status function(Display*  /* display */ , Window /* w */ , Window*  /* prop_window_return */);
2181 	alias da_XGetWindowProperty = int function(Display*  /* display */ , Window /* w */ , Atom /* property */ , c_long /* c_long_offset */ , c_long /* c_long_length */ ,Bool /* delete */ , Atom /* req_type */ , Atom*  /* actual_type_return */ ,int*  /* actual_format_return */ , c_ulong*  /* nitems_return */ , c_ulong*  /* bytes_after_return */ ,ubyte**  /* prop_return */);
2182 	alias da_XGetWindowAttributes = Status function(Display*  /* display */ , Window /* w */ , XWindowAttributes*  /* window_attributes_return */);
2183 	alias da_XGrabButton = int function(Display*  /* display */ , uint /* button */ , uint /* modifiers */ , Window /* grab_window */ ,Bool /* owner_events */ , uint /* event_mask */ , int /* pointer_mode */ ,int /* keyboard_mode */ , Window /* confine_to */ , Cursor /* cursor */);
2184 	alias da_XGrabKey = int function(Display*  /* display */ , int /* keycode */ , uint /* modifiers */ ,Window /* grab_window */ , Bool /* owner_events */ , int /* pointer_mode */ , int /* keyboard_mode */);
2185 	alias da_XGrabKeyboard = int function(Display*  /* display */ , Window /* grab_window */ , Bool /* owner_events */ ,int /* pointer_mode */ , int /* keyboard_mode */ , Time /* time */);
2186 	alias da_XGrabPointer = int function(Display*  /* display */ , Window /* grab_window */ , Bool /* owner_events */ ,uint /* event_mask */ , int /* pointer_mode */ , int /* keyboard_mode */ ,Window /* confine_to */ , Cursor /* cursor */ , Time /* time */);
2187 	alias da_XGrabServer = int function(Display*  /* display */);
2188 	alias da_XHeightMMOfScreen = int function(Screen*  /* screen */);
2189 	alias da_XHeightOfScreen = int function(Screen*  /* screen */);
2190 	alias da_XIfEvent = int function(Display*  /* display */ , XEvent*  /* event_return */ , Bool function(Display*  /* display */ ,XEvent*  /* event */ , XPointer /* arg */) /* predicate */ , XPointer /* arg */);
2191 	alias da_XImageByteOrder = int function(Display*  /* display */);
2192 	alias da_XInstallColormap = int function(Display*  /* display */ , Colormap /* colormap */);
2193 	alias da_XKeysymToKeycode = KeyCode function(Display*  /* display */ , KeySym /* keysym */);
2194 	alias da_XKillClient = int function(Display*  /* display */ , XID /* resource */);
2195 	alias da_XLookupColor = Status function(Display*  /* display */ , Colormap /* colormap */ ,const(char)*  /* color_name */ , XColor*  /* exact_def_return */ , XColor*  /* screen_def_return */);
2196 	alias da_XLowerWindow = int function(Display*  /* display */ , Window /* w */);
2197 	alias da_XMapRaised = int function(Display*  /* display */ , Window /* w */);
2198 	alias da_XMapSubwindows = int function(Display*  /* display */ , Window /* w */);
2199 	alias da_XMapWindow = int function(Display*  /* display */ , Window /* w */);
2200 	alias da_XMaskEvent = int function(Display*  /* display */ , c_long /* event_mask */ , XEvent*  /* event_return */);
2201 	alias da_XMaxCmapsOfScreen = int function(Screen*  /* screen */);
2202 	alias da_XMinCmapsOfScreen = int function(Screen*  /* screen */);
2203 	alias da_XMoveResizeWindow = int function(Display*  /* display */ , Window /* w */ , int /* x */ , int /* y */ ,uint /* width */ , uint /* height */);
2204 	alias da_XMoveWindow = int function(Display*  /* display */ , Window /* w */ , int /* x */ , int /* y */);
2205 	alias da_XNextEvent = int function(Display*  /* display */ , XEvent*  /* event_return */);
2206 	alias da_XNoOp = int function(Display*  /* display */);
2207 	alias da_XParseColor = Status function(Display*  /* display */ , Colormap /* colormap */ , const(char)*  /* spec */ ,XColor*  /* exact_def_return */);
2208 	alias da_XParseGeometry = int function(const(char)*  /* parsestring */ , int*  /* x_return */ , int*  /* y_return */ ,uint*  /* width_return */ , uint*  /* height_return */);
2209 	alias da_XPeekEvent = int function(Display*  /* display */ , XEvent*  /* event_return */);
2210 	alias da_XPeekIfEvent = int function(Display*  /* display */ , XEvent*  /* event_return */ , Bool function(Display*  /* display */ , XEvent*  /* event */ , XPointer /* arg */) /* predicate */ , XPointer /* arg */);
2211 	alias da_XPending = int function(Display*  /* display */);
2212 	alias da_XPlanesOfScreen = int function(Screen*  /* screen */);
2213 	alias da_XProtocolRevision = int function(Display*  /* display */);
2214 	alias da_XProtocolVersion = int function(Display*  /* display */);
2215 	alias da_XPutBackEvent = int function(Display*  /* display */ , XEvent*  /* event */);
2216 	alias da_XPutImage = int function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , XImage*  /* image */ ,int /* src_x */ , int /* src_y */ , int /* dest_x */ , int /* dest_y */ , uint /* width */ ,uint /* height */);
2217 	alias da_XQLength = int function(Display*  /* display */);
2218 	alias da_XQueryBestCursor = Status function(Display*  /* display */ , Drawable /* d */ , uint /* width */ ,uint /* height */ , uint*  /* width_return */ , uint*  /* height_return */);
2219 	alias da_XQueryBestSize = Status function(Display*  /* display */ , int /* class */ , Drawable /* which_screen */ ,uint /* width */ , uint /* height */ , uint*  /* width_return */ , uint*  /* height_return */);
2220 	alias da_XQueryBestStipple = Status function(Display*  /* display */ , Drawable /* which_screen */ ,uint /* width */ , uint /* height */ , uint*  /* width_return */ , uint*  /* height_return */);
2221 	alias da_XQueryBestTile = Status function(Display*  /* display */ , Drawable /* which_screen */ ,uint /* width */ , uint /* height */ , uint*  /* width_return */ , uint*  /* height_return */);
2222 	alias da_XQueryColor = int function(Display*  /* display */ , Colormap /* colormap */ , XColor*  /* def_in_out */);
2223 	alias da_XQueryColors = int function(Display*  /* display */ , Colormap /* colormap */ , XColor*  /* defs_in_out */ ,int /* ncolors */);
2224 	alias da_XQueryExtension = Bool function(Display*  /* display */ , const(char)*  /* name */ , int*  /* major_opcode_return */ ,int*  /* first_event_return */ , int*  /* first_error_return */);
2225 	alias da_XQueryKeymap = int function(Display*  /* display */ , char[32] /* keys_return */);
2226 	alias da_XQueryPointer = Bool function(Display*  /* display */ , Window /* w */ , Window*  /* root_return */ , Window*  /* child_return */ , int*  /* root_x_return */ ,int*  /* root_y_return */ , int*  /* win_x_return */ , int*  /* win_y_return */ , uint*  /* mask_return */);
2227 	alias da_XQueryTextExtents = int function(Display*  /* display */ , XID /* font_ID */ , const(char)*  /* string */ , int /* nchars */ , int*  /* direction_return */ ,int*  /* font_ascent_return */ , int*  /* font_descent_return */ , XCharStruct*  /* overall_return */);
2228 	alias da_XQueryTextExtents16 = int function(Display*  /* display */ , XID /* font_ID */ , const XChar2b*  /* string */ , int /* nchars */ ,int*  /* direction_return */ , int*  /* font_ascent_return */ , int*  /* font_descent_return */ ,XCharStruct*  /* overall_return */);
2229 	alias da_XQueryTree = Status function(Display*  /* display */ , Window /* w */ , Window*  /* root_return */ ,Window*  /* parent_return */ , Window**  /* children_return */ , uint*  /* nchildren_return */);
2230 	alias da_XRaiseWindow = int function(Display*  /* display */ , Window /* w */);
2231 	alias da_XReadBitmapFile = int function(Display*  /* display */ , Drawable /* d */ , const(char)*  /* filename */ , uint*  /* width_return */ ,uint*  /* height_return */ , Pixmap*  /* bitmap_return */ , int*  /* x_hot_return */ ,int*  /* y_hot_return */);
2232 	alias da_XReadBitmapFileData = int function(const(char)*  /* filename */ , uint*  /* width_return */ ,uint*  /* height_return */ , ubyte**  /* data_return */ , int*  /* x_hot_return */ ,int*  /* y_hot_return */);
2233 	alias da_XRebindKeysym = int function(Display*  /* display */ , KeySym /* keysym */ , KeySym*  /* list */ ,int /* mod_count */ , const(ubyte)*  /* string */ , int /* bytes_string */);
2234 	alias da_XRecolorCursor = int function(Display*  /* display */ , Cursor /* cursor */ , XColor*  /* foreground_color */ ,XColor*  /* background_color */);
2235 	alias da_XRefreshKeyboardMapping = int function(XMappingEvent*  /* event_map */);
2236 	alias da_XRemoveFromSaveSet = int function(Display*  /* display */ , Window /* w */);
2237 	alias da_XRemoveHost = int function(Display*  /* display */ , XHostAddress*  /* host */);
2238 	alias da_XRemoveHosts = int function(Display*  /* display */ , XHostAddress*  /* hosts */ , int /* num_hosts */);
2239 	alias da_XReparentWindow = int function(Display*  /* display */ , Window /* w */ , Window /* parent */ , int /* x */ , int /* y */);
2240 	alias da_XResetScreenSaver = int function(Display*  /* display */);
2241 	alias da_XResizeWindow = int function(Display*  /* display */ , Window /* w */ , uint /* width */ , uint /* height */);
2242 	alias da_XRestackWindows = int function(Display*  /* display */ , Window*  /* windows */ , int /* nwindows */);
2243 	alias da_XRotateBuffers = int function(Display*  /* display */ , int /* rotate */ );
2244 	alias da_XRotateWindowProperties = int function(Display*  /* display */ , Window /* w */ , Atom*  /* properties */ , int /* num_prop */ , int /* npositions */);
2245 	alias da_XScreenCount = int function(Display*  /* display */);
2246 	alias da_XSelectInput = int function(Display*  /* display */ , Window /* w */ , c_long /* event_mask */);
2247 	alias da_XSendEvent = Status function(Display*  /* display */ , Window /* w */ , Bool /* propagate */ , c_long /* event_mask */ , XEvent*  /* event_send */);
2248 	alias da_XSetAccessControl = int function(Display*  /* display */ , int /* mode */);
2249 	alias da_XSetArcMode = int function(Display*  /* display */ , GC /* gc */ , int /* arc_mode */);
2250 	alias da_XSetBackground = int function(Display*  /* display */ , GC /* gc */ , c_ulong /* background */);
2251 	alias da_XSetClipMask = int function(Display*  /* display */ , GC /* gc */ , Pixmap /* pixmap */);
2252 	alias da_XSetClipOrigin = int function(Display*  /* display */ , GC /* gc */ , int /* clip_x_origin */ , int /* clip_y_origin */);
2253 	alias da_XSetClipRectangles = int function(Display*  /* display */ , GC /* gc */ , int /* clip_x_origin */ , int /* clip_y_origin */ , XRectangle*  /* rectangles */ , int /* n */ , int /* ordering */);
2254 	alias da_XSetCloseDownMode = int function(Display*  /* display */ , int /* close_mode */);
2255 	alias da_XSetCommand = int function(Display*  /* display */ , Window /* w */ , char**  /* argv */ , int /* argc */);
2256 	alias da_XSetDashes = int function(Display*  /* display */ , GC /* gc */ , int /* dash_offset */ , const(char)*  /* dash_list */ ,int /* n */);
2257 	alias da_XSetFillRule = int function(Display*  /* display */ , GC /* gc */ , int /* fill_rule */);
2258 	alias da_XSetFillStyle = int function(Display*  /* display */ , GC /* gc */ , int /* fill_style */);
2259 	alias da_XSetFont = int function(Display*  /* display */ , GC /* gc */ , Font /* font */);
2260 	alias da_XSetFontPath = int function(Display*  /* display */ , char**  /* directories */ , int /* ndirs */);
2261 	alias da_XSetForeground = int function(Display*  /* display */ , GC /* gc */ , c_ulong /* foreground */);
2262 	alias da_XSetFunction = int function(Display*  /* display */ , GC /* gc */ , int /* function */);
2263 	alias da_XSetGraphicsExposures = int function(Display*  /* display */ , GC /* gc */ , Bool /* graphics_exposures */);
2264 	alias da_XSetIconName = int function(Display*  /* display */ , Window /* w */ , const(char)*  /* icon_name */);
2265 	alias da_XSetInputFocus = int function(Display*  /* display */ , Window /* focus */ , int /* revert_to */ , Time /* time */);
2266 	alias da_XSetLineAttributes = int function(Display*  /* display */ , GC /* gc */ , uint /* line_width */ , int /* line_style */ , int /* cap_style */ , int /* join_style */);
2267 	alias da_XSetModifierMapping = int function(Display*  /* display */ , XModifierKeymap*  /* modmap */);
2268 	alias da_XSetPlaneMask = int function(Display*  /* display */ , GC /* gc */ , c_ulong /* plane_mask */);
2269 	alias da_XSetPointerMapping = int function(Display*  /* display */ , const(ubyte)*  /* map */ , int /* nmap */);
2270 	alias da_XSetScreenSaver = int function(Display*  /* display */ , int /* timeout */ , int /* interval */ , int /* prefer_blanking */ ,int /* allow_exposures */);
2271 	alias da_XSetSelectionOwner = int function(Display*  /* display */ , Atom /* selection */ , Window /* owner */ , Time /* time */);
2272 	alias da_XSetState = int function(Display*  /* display */ , GC /* gc */ , c_ulong /* foreground */ , c_ulong /* background */ , int /* function */ , c_ulong /* plane_mask */);
2273 	alias da_XSetStipple = int function(Display*  /* display */ , GC /* gc */ , Pixmap /* stipple */);
2274 	alias da_XSetSubwindowMode = int function(Display*  /* display */ , GC /* gc */ , int /* subwindow_mode */);
2275 	alias da_XSetTSOrigin = int function(Display*  /* display */ , GC /* gc */ , int /* ts_x_origin */ , int /* ts_y_origin */);
2276 	alias da_XSetTile = int function(Display*  /* display */ , GC /* gc */ , Pixmap /* tile */);
2277 	alias da_XSetWindowBackground = int function(Display*  /* display */ , Window /* w */ , c_ulong /* background_pixel */);
2278 	alias da_XSetWindowBackgroundPixmap = int function(Display*  /* display */ , Window /* w */ , Pixmap /* background_pixmap */);
2279 	alias da_XSetWindowBorder = int function(Display*  /* display */ , Window /* w */ , c_ulong /* border_pixel */);
2280 	alias da_XSetWindowBorderPixmap = int function(Display*  /* display */ , Window /* w */ , Pixmap /* border_pixmap */);
2281 	alias da_XSetWindowBorderWidth = int function(Display*  /* display */ , Window /* w */ , uint /* width */);
2282 	alias da_XSetWindowColormap = int function(Display*  /* display */ , Window /* w */ , Colormap /* colormap */);
2283 	alias da_XStoreBuffer = int function(Display*  /* display */ , const(char)*  /* bytes */ , int /* nbytes */ , int /* buffer */);
2284 	alias da_XStoreBytes = int function(Display*  /* display */ , const(char)*  /* bytes */ , int /* nbytes */);
2285 	alias da_XStoreColor = int function(Display*  /* display */ , Colormap /* colormap */ , XColor*  /* color */);
2286 	alias da_XStoreColors = int function(Display*  /* display */ , Colormap /* colormap */ , XColor*  /* color */ , int /* ncolors */);
2287 	alias da_XStoreName = int function(Display*  /* display */ , Window /* w */ , const(char)*  /* window_name */);
2288 	alias da_XStoreNamedColor = int function(Display*  /* display */ , Colormap /* colormap */ , const(char)*  /* color */ , c_ulong /* pixel */ , int /* flags */);
2289 	alias da_XSync = int function(Display*  /* display */ , Bool /* discard */);
2290 	alias da_XTextExtents = int function(XFontStruct*  /* font_struct */ , const(char)*  /* string */ , int /* nchars */ , int*  /* direction_return */ , int*  /* font_ascent_return */ , int*  /* font_descent_return */ , XCharStruct*  /* overall_return */);
2291 	alias da_XTextExtents16 = int function(XFontStruct*  /* font_struct */ , const XChar2b*  /* string */ , int /* nchars */ , int*  /* direction_return */ , int*  /* font_ascent_return */ , int*  /* font_descent_return */ , XCharStruct*  /* overall_return */);
2292 	alias da_XTextWidth = int function(XFontStruct*  /* font_struct */ , const(char)*  /* string */ , int /* count */);
2293 	alias da_XTextWidth16 = int function(XFontStruct*  /* font_struct */ , const XChar2b*  /* string */ , int /* count */);
2294 	alias da_XTranslateCoordinates = Bool function(Display*  /* display */ , Window /* src_w */ , Window /* dest_w */ , int /* src_x */ , int /* src_y */ , int*  /* dest_x_return */ , int*  /* dest_y_return */ , Window*  /* child_return */);
2295 	alias da_XUndefineCursor = int function(Display*  /* display */ , Window /* w */);
2296 	alias da_XUngrabButton = int function(Display*  /* display */ , uint /* button */ , uint /* modifiers */ , Window /* grab_window */);
2297 	alias da_XUngrabKey = int function(Display*  /* display */ , int /* keycode */ , uint /* modifiers */ , Window /* grab_window */);
2298 	alias da_XUngrabKeyboard = int function(Display*  /* display */ , Time /* time */);
2299 	alias da_XUngrabPointer = int function(Display*  /* display */ , Time /* time */);
2300 	alias da_XUngrabServer = int function(Display*  /* display */);
2301 	alias da_XUninstallColormap = int function(Display*  /* display */ , Colormap /* colormap */);
2302 	alias da_XUnloadFont = int function(Display*  /* display */ , Font /* font */);
2303 	alias da_XUnmapSubwindows = int function(Display*  /* display */ , Window /* w */);
2304 	alias da_XUnmapWindow = int function(Display*  /* display */ , Window /* w */);
2305 	alias da_XVendorRelease = int function(Display*  /* display */);
2306 	alias da_XWarpPointer = int function(Display*  /* display */ , Window /* src_w */ , Window /* dest_w */ , int /* src_x */ , int /* src_y */ , uint /* src_width */ , uint /* src_height */ , int /* dest_x */ , int /* dest_y */);
2307 	alias da_XWidthMMOfScreen = int function(Screen*  /* screen */);
2308 	alias da_XWidthOfScreen = int function(Screen*  /* screen */);
2309 	alias da_XWindowEvent = int function(Display*  /* display */ , Window /* w */ , c_long /* event_mask */ , XEvent*  /* event_return */);
2310 	alias da_XWriteBitmapFile = int function(Display*  /* display */ , const(char)*  /* filename */ , Pixmap /* bitmap */ , uint /* width */ , uint /* height */ , int /* x_hot */ , int /* y_hot */);
2311 	alias da_XSupportsLocale = Bool function();
2312 	alias da_XSetLocaleModifiers = char* function(const(char)*  /* modifier_list */);
2313 	alias da_XOpenOM = XOM function(Display*  /* display */ , XrmHashBucketRec*  /* rdb */ , const(char)*  /* res_name */ , const(char)*  /* res_class */);
2314 	alias da_XCloseOM = Status function(XOM /* om */);
2315 	alias da_XSetOMValues = char* function(XOM /* om */ , ...);
2316 	alias da_XGetOMValues = char* function(XOM /* om */ , ...);
2317 	alias da_XDisplayOfOM = Display* function(XOM /* om */);
2318 	alias da_XLocaleOfOM = char* function(XOM /* om */);
2319 	alias da_XCreateOC = XOC function(XOM /* om */ , ...);
2320 	alias da_XDestroyOC = void function(XOC /* oc */);
2321 	alias da_XOMOfOC = XOM function(XOC /* oc */);
2322 	alias da_XSetOCValues = char* function(XOC /* oc */ , ...);
2323 	alias da_XGetOCValues = char* function(XOC /* oc */ , ...);
2324 	alias da_XCreateFontSet = XFontSet function(Display*  /* display */ , const(char)*  /* base_font_name_list */ , char***  /* missing_charset_list */ , int*  /* missing_charset_count */ , char**  /* def_string */);
2325 	alias da_XFreeFontSet = void function(Display*  /* display */ , XFontSet /* font_set */);
2326 	alias da_XFontsOfFontSet = int function(XFontSet /* font_set */ , XFontStruct***  /* font_struct_list */ , char***  /* font_name_list */);
2327 	alias da_XBaseFontNameListOfFontSet = char* function(XFontSet /* font_set */);
2328 	alias da_XLocaleOfFontSet = char* function(XFontSet /* font_set */);
2329 	alias da_XContextDependentDrawing = Bool function(XFontSet /* font_set */);
2330 	alias da_XDirectionalDependentDrawing = Bool function(XFontSet /* font_set */);
2331 	alias da_XContextualDrawing = Bool function(XFontSet /* font_set */);
2332 	alias da_XExtentsOfFontSet = XFontSetExtents* function(XFontSet /* font_set */);
2333 	alias da_XmbTextEscapement = int function(XFontSet /* font_set */ , const(char)*  /* text */ , int /* bytes_text */);
2334 	alias da_XwcTextEscapement = int function(XFontSet /* font_set */ , const wchar_t*  /* text */ , int /* num_wchars */);
2335 	alias da_Xutf8TextEscapement = int function(XFontSet /* font_set */ , const(char)*  /* text */ , int /* bytes_text */);
2336 	alias da_XmbTextExtents = int function(XFontSet /* font_set */ , const(char)*  /* text */ , int /* bytes_text */ , XRectangle*  /* overall_ink_return */ , XRectangle*  /* overall_logical_return */);
2337 	alias da_XwcTextExtents = int function(XFontSet /* font_set */ , const wchar_t*  /* text */ , int /* num_wchars */ , XRectangle*  /* overall_ink_return */ , XRectangle*  /* overall_logical_return */);
2338 	alias da_Xutf8TextExtents = int function(XFontSet /* font_set */ , const(char)*  /* text */ , int /* bytes_text */ , XRectangle*  /* overall_ink_return */ , XRectangle*  /* overall_logical_return */);
2339 	alias da_XmbTextPerCharExtents = Status function(XFontSet /* font_set */ , const(char)*  /* text */ , int /* bytes_text */ , XRectangle*  /* ink_extents_buffer */ , XRectangle*  /* logical_extents_buffer */ , int /* buffer_size */ , int*  /* num_chars */ , XRectangle*  /* overall_ink_return */ , XRectangle*  /* overall_logical_return */);
2340 	alias da_XwcTextPerCharExtents = Status function(XFontSet /* font_set */ , const wchar_t*  /* text */ , int /* num_wchars */ , XRectangle*  /* ink_extents_buffer */ , XRectangle*  /* logical_extents_buffer */ , int /* buffer_size */ , int*  /* num_chars */ , XRectangle*  /* overall_ink_return */ , XRectangle*  /* overall_logical_return */);
2341 	alias da_Xutf8TextPerCharExtents = Status function(XFontSet /* font_set */ , const(char)*  /* text */ , int /* bytes_text */ , XRectangle*  /* ink_extents_buffer */ , XRectangle*  /* logical_extents_buffer */ , int /* buffer_size */ , int*  /* num_chars */ , XRectangle*  /* overall_ink_return */ , XRectangle*  /* overall_logical_return */);
2342 	alias da_XmbDrawText = void function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ , int /* y */ , XmbTextItem*  /* text_items */ , int /* nitems */);
2343 	alias da_XwcDrawText = void function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ , int /* y */ , XwcTextItem*  /* text_items */ , int /* nitems */);
2344 	alias da_Xutf8DrawText = void function(Display*  /* display */ , Drawable /* d */ , GC /* gc */ , int /* x */ , int /* y */ , XmbTextItem*  /* text_items */ , int /* nitems */);
2345 	alias da_XmbDrawString = void function(Display*  /* display */ , Drawable /* d */ , XFontSet /* font_set */ , GC /* gc */ ,int /* x */ , int /* y */ , const(char)*  /* text */ , int /* bytes_text */);
2346 	alias da_XwcDrawString = void function(Display*  /* display */ , Drawable /* d */ , XFontSet /* font_set */ , GC /* gc */ , int /* x */ , int /* y */ , const wchar_t*  /* text */ , int /* num_wchars */);
2347 	alias da_Xutf8DrawString = void function(Display*  /* display */ , Drawable /* d */ , XFontSet /* font_set */ , GC /* gc */ , int /* x */ , int /* y */ , const(char)*  /* text */ , int /* bytes_text */);
2348 	alias da_XmbDrawImageString = void function(Display*  /* display */ , Drawable /* d */ , XFontSet /* font_set */ , GC /* gc */ , int /* x */ , int /* y */ , const(char)*  /* text */ , int /* bytes_text */);
2349 	alias da_XwcDrawImageString = void function(Display*  /* display */ , Drawable /* d */ , XFontSet /* font_set */ , GC /* gc */ , int /* x */ , int /* y */ , const wchar_t*  /* text */ , int /* num_wchars */);
2350 	alias da_Xutf8DrawImageString = void function(Display*  /* display */ , Drawable /* d */ , XFontSet /* font_set */ , GC /* gc */ , int /* x */ , int /* y */ , const(char)*  /* text */ , int /* bytes_text */);
2351 	alias da_XOpenIM = XIM function(Display*  /* dpy */ , XrmHashBucketRec*  /* rdb */ , char*  /* res_name */ , char*  /* res_class */);
2352 	alias da_XCloseIM = Status function(XIM /* im */);
2353 	alias da_XGetIMValues = char* function(XIM /* im */ , ...);
2354 	alias da_XSetIMValues = char* function(XIM /* im */ , ...);
2355 	alias da_XDisplayOfIM = Display* function(XIM /* im */);
2356 	alias da_XLocaleOfIM = char* function(XIM /* im*/);
2357 	alias da_XCreateIC = XIC function(XIM /* im */ , ...);
2358 	alias da_XDestroyIC = void function(XIC /* ic */);
2359 	alias da_XSetICFocus = void function(XIC /* ic */);
2360 	alias da_XUnsetICFocus = void function(XIC /* ic */);
2361 	alias da_XwcResetIC = wchar_t* function(XIC /* ic */);
2362 	alias da_XmbResetIC = char* function(XIC /* ic */);
2363 	alias da_Xutf8ResetIC = char* function(XIC /* ic */);
2364 	alias da_XSetICValues = char* function(XIC /* ic */ , ...);
2365 	alias da_XGetICValues = char* function(XIC /* ic */ , ...);
2366 	alias da_XIMOfIC = XIM function(XIC);
2367 	alias da_XFilterEvent = Bool function(XEvent*, Window);
2368 	alias da_XmbLookupString = int function(XIC, XKeyPressedEvent*, char*, int, KeySym*, Status*);
2369 	alias da_XwcLookupString = int function(XIC, XKeyPressedEvent*, wchar_t*, int, KeySym*, Status*);
2370 	alias da_Xutf8LookupString = int function(XIC, XKeyPressedEvent*, char*, int, KeySym*, Status*);
2371 	alias da_XVaCreateNestedList = XVaNestedList function(int, ...);
2372 	alias da_XRegisterIMInstantiateCallback = Bool function(Display*, XrmHashBucketRec*, char*, char*, XIDProc, XPointer);
2373 	alias da_XUnregisterIMInstantiateCallback = Bool function(Display*, XrmHashBucketRec*, char*, char*, XIDProc, XPointer);
2374 	alias da_XInternalConnectionNumbers = Status function(Display*, int**, int*);
2375 	alias da_XProcessInternalConnection = void function(Display*, int);
2376 	alias da_XAddConnectionWatch = Status function(Display*, XConnectionWatchProc, XPointer);
2377 	alias da_XRemoveConnectionWatch = void function(Display*, XConnectionWatchProc, XPointer);
2378 	alias da_XSetAuthorization = void function(char*, int, char*, int);
2379 	alias da_XGetEventData = Bool function(Display*, XGenericEventCookie*);
2380 	alias da_XFreeEventData = void function(Display*, XGenericEventCookie*);
2381 	alias da_XrmGetStringDatabase = XrmDatabase function(const(char)*);
2382 	alias da_XrmGetResource = Bool function(XrmDatabase, const(char)*, const(char)*, char**, XrmValue*);
2383 	alias da_XrmDestroyDatabase = void function(XrmDatabase);
2384 }