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