/* Xlib binding for D language Copyright 2007 TEISSIER Sylvere sligor(at)free.fr version 0.1 2007/08/29 This binding is an alpha release and need to be more tested This file is free software, please read COPYING file for more informations */ /* This file is binding from: $XdotOrg: lib/X11/include/X11/Xlib.h,v 1.6 2005-11-08 06:33:25 jkj Exp $ $Xorg: Xlib.h,v 1.6 2001/02/09 02:03:38 xorgcvs Exp $ */ module std.c.linux.X11.Xlib; version(USE_XCB): public import std.c.linux.X11.X; const int XlibSpecificationRelease=6; version = X_HAVE_UTF8_STRING; alias XPointer = void*; alias Status = int; enum Bool:int{False,True}; //xlib boolean is int type, D bool is only byte enum QueueMode{QueuedAlready,QueuedAfterReading,QueuedAfterFlush}; /+ TODO Nested struc or union verify +/ int ConnectionNumber(Display *dpy) {return dpy.fd;} Window RootWindow(Display *dpy,int scr) {return ScreenOfDisplay(dpy,scr).root;} int DefaultScreen(Display *dpy) {return dpy.default_screen;} Window DefaultRootWindow(Display *dpy) {return ScreenOfDisplay(dpy,DefaultScreen(dpy)).root;} Visual* DefaultVisual(Display *dpy,int scr) {return ScreenOfDisplay(dpy,scr).root_visual;} GC DefaultGC(Display *dpy,int scr) {return ScreenOfDisplay(dpy,scr).default_gc;} uint BlackPixel(Display *dpy,int scr) {return cast(uint) ScreenOfDisplay(dpy,scr).black_pixel;} uint WhitePixel(Display *dpy,int scr) {return cast(uint) ScreenOfDisplay(dpy,scr).white_pixel;} ulong AllPlanes() {return 0xFFFFFFFF;} int QLength(Display *dpy) {return dpy.qlen;} int DisplayWidth(Display *dpy,int scr) {return ScreenOfDisplay(dpy,scr).width;} int DisplayHeight(Display *dpy,int scr) {return ScreenOfDisplay(dpy,scr).height;} int DisplayWidthMM(Display *dpy,int scr){return ScreenOfDisplay(dpy,scr).mwidth;} int DisplayHeightMM(Display *dpy,int scr){return ScreenOfDisplay(dpy,scr).mheight;} int DisplayPlanes(Display *dpy,int scr) {return ScreenOfDisplay(dpy,scr).root_depth;} int DisplayCells(Display *dpy,int scr) {return DefaultVisual(dpy,scr).map_entries;} int ScreenCount(Display *dpy) {return dpy.nscreens;} char* ServerVendor(Display *dpy) {return dpy.vendor;} int ProtocolVersion(Display *dpy) {return dpy.proto_major_version;} int ProtocolRevision(Display *dpy) {return dpy.proto_minor_version;} int VendorRelease(Display *dpy) {return dpy.release;} char* DisplayString(Display *dpy) {return dpy.display_name;} int DefaultDepth(Display *dpy,int scr) {return ScreenOfDisplay(dpy,scr).root_depth;} Colormap DefaultColormap(Display *dpy,int scr){return ScreenOfDisplay(dpy,scr).cmap;} int BitmapUnit(Display *dpy) {return dpy.bitmap_unit;} int BitmapBitOrder(Display *dpy) {return dpy.bitmap_bit_order;} int BitmapPad(Display *dpy) {return dpy.bitmap_pad;} int ImageByteOrder(Display *dpy) {return dpy.byte_order;} uint NextRequest(Display *dpy) {return cast(uint) dpy.request + 1;} uint LastKnownRequestProcessed(Display *dpy) {return cast(uint) dpy.last_request_read;} /* macros for screen oriented applications (toolkit) */ Screen* ScreenOfDisplay(Display *dpy,int scr) {return &dpy.screens[scr];} Screen* DefaultScreenOfDisplay(Display *dpy) {return ScreenOfDisplay(dpy,DefaultScreen(dpy));} Display* DisplayOfScreen(Screen s) {return s.display;} Window RootWindowOfScreen(Screen s) {return s.root;} uint BlackPixelOfScreen(Screen s) {return cast(uint) s.black_pixel;} uint WhitePixelOfScreen(Screen s) {return cast(uint) s.white_pixel;} Colormap DefaultColormapOfScreen(Screen s) {return s.cmap;} int DefaultDepthOfScreen(Screen s) {return s.root_depth;} GC DefaultGCOfScreen(Screen s) {return s.default_gc;} Visual* DefaultVisualOfScreen(Screen s) {return s.root_visual;} int WidthOfScreen(Screen s) {return s.width;} int HeightOfScreen(Screen s) {return s.height;} int WidthMMOfScreen(Screen s) {return s.mwidth;} int HeightMMOfScreen(Screen s) {return s.mheight;} int PlanesOfScreen(Screen s) {return s.root_depth;} int CellsOfScreen(Screen s) {return DefaultVisualOfScreen(s).map_entries;} int MinCmapsOfScreen(Screen s) {return s.min_maps;} int MaxCmapsOfScreen(Screen s) {return s.max_maps;} Bool DoesSaveUnders(Screen s) {return s.save_unders;} int DoesBackingStore(Screen s) {return s.backing_store;} int EventMaskOfScreen(Screen s) {return cast(int) s.root_input_mask;} /* * Extensions need a way to hang private data on some structures. */ struct XExtData { int number; /* number returned by XRegisterExtension */ XExtData *next; /* next item on list of data for structure */ int function(XExtData *extension) free_private; /* called to free private storage */ XPointer private_data; /* data private to this extension. */ }; /* * This file contains structures used by the extension mechanism. */ struct XExtCodes { /* public to extension, cannot be changed */ int extension; /* extension number */ int major_opcode; /* major op-code assigned by server */ int first_event; /* first event number for the extension */ int first_error; /* first error number for the extension */ }; /* * Data structure for retrieving info about pixmap formats. */ struct XPixmapFormatValues { int depth; int bits_per_pixel; int scanline_pad; }; struct XGCValues { GraphicFunction function_; /* logical operation*/ ulong plane_mask; /* plane mask */ ulong foreground; /* foreground pixel */ ulong background; /* background pixel */ int line_width; /* line width */ LineStyle line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */ CapStyle cap_style; /* CapNotLast, CapButt, CapRound, CapProjecting */ LineStyle join_style; /* JoinMiter, JoinRound, JoinBevel */ FillStyle fill_style; /* FillSolid, FillTiled,FillStippled, FillOpaeueStippled */ FillRule fill_rule; /* EvenOddRule, WindingRule */ ArcMode arc_mode; /* ArcChord, ArcPieSlice */ Pixmap tile; /* tile pixmap for tiling operations */ Pixmap stipple; /* stipple 1 plane pixmap for stipping */ int ts_x_origin; /* offset for tile or stipple operations */ int ts_y_origin; Font font; /* default text font for text operations */ SubwindowMode subwindow_mode; /* ClipByChildren, IncludeInferiors */ Bool graphics_exposures; /* Boolean, should exposures be generated */ int clip_x_origin; /* origin for clipping */ int clip_y_origin; Pixmap clip_mask; /* bitmap clipping; other calls for rects */ int dash_offset; /* patterned/dashed line information */ byte dashes; }; alias GC = void*; /* * Visual structure; contains information about colormapping possible. */ struct Visual { XExtData *ext_data; /* hook for extension to hang data */ VisualID visualid; /* visual id of this visual */ int class_; /* class of screen (monochrome, etc.) */ ulong red_mask, green_mask, blue_mask; /* mask values */ int bits_per_rgb; /* log base 2 of distinct color values */ int map_entries; /* color map entries */ } ; /* * Depth structure; contains information for each possible depth. */ struct Depth { int depth; /* this depth (Z) of the depth */ int nvisuals; /* number of Visual types at this depth */ Visual *visuals; /* list of visuals possible at this depth */ }; alias Display XDisplay; struct Screen{ XExtData *ext_data; /* hook for extension to hang data */ XDisplay *display; /* back pointer to display structure */ Window root; /* Root window id. */ int width, height; /* width and height of screen */ int mwidth, mheight; /* width and height of in millimeters */ int ndepths; /* number of depths possible */ Depth *depths; /* list of allowable depths on the screen */ int root_depth; /* bits per pixel */ Visual *root_visual; /* root visual */ GC default_gc; /* GC for the root root visual */ Colormap cmap; /* default color map */ ulong white_pixel; ulong black_pixel; /* White and Black pixel values */ int max_maps, min_maps; /* max and min color maps */ int backing_store; /* Never, WhenMapped, Always */ Bool save_unders; long root_input_mask; /* initial root input mask */ }; /* * Format structure; describes ZFormat data the screen will understand. */ struct ScreenFormat { XExtData *ext_data; /* hook for extension to hang data */ int depth; /* depth of this image format */ int bits_per_pixel; /* bits/pixel at this depth */ int scanline_pad; /* scanline must padded to this multiple */ }; /* * Data structure for setting window attributes. */ struct XSetWindowAttributes { Pixmap background_pixmap; /* background or None or ParentRelative */ ulong background_pixel; /* background pixel */ Pixmap border_pixmap; /* border of the window */ ulong border_pixel; /* border pixel value */ BitGravity bit_gravity; /* one of bit gravity values */ BitGravity win_gravity; /* one of the window gravity values */ BackingStoreHint backing_store; /* NotUseful, WhenMapped, Always */ ulong backing_planes; /* planes to be preseved if possible */ ulong backing_pixel; /* value to use in restoring planes */ Bool save_under; /* should bits under be saved? (popups) */ long event_mask; /* set of events that should be saved */ long do_not_propagate_mask;/* set of events that should not propagate */ Bool override_redirect; /* Boolean value for override-redirect */ Colormap colormap; /* color map to be associated with window */ Cursor cursor; /* cursor to be displayed (or None) */ }; struct XWindowAttributes { int x, y; /* location of window */ int width, height; /* width and height of window */ int border_width; /* border width of window */ int depth; /* depth of window */ Visual *visual; /* the associated visual structure */ Window root; /* root of screen containing window */ WindowClass class_; /* InputOutput, InputOnly*/ BitGravity bit_gravity; /* one of bit gravity values */ BitGravity win_gravity; /* one of the window gravity values */ BackingStoreHint backing_store; /* NotUseful, WhenMapped, Always */ ulong backing_planes; /* planes to be preserved if possible */ ulong backing_pixel; /* value to be used when restoring planes */ Bool save_under; /* Boolean, should bits under be saved? */ Colormap colormap; /* color map to be associated with window */ Bool map_installed; /* Boolean, is color map currently installed*/ MapState map_state; /* IsUnmapped, IsUnviewable, IsViewable */ EventMask all_event_masks; /* set of events all people have interest in*/ EventMask your_event_mask; /* my event mask */ EventMask do_not_propagate_mask; /* set of events that should not propagate */ Bool override_redirect; /* Boolean value for override-redirect */ Screen *screen; /* back pointer to correct screen */ }; /* * Data structure for host setting; getting routines. * */ struct XHostAddress { ProtocolFamlily family; /* for example FamilyInternet */ int length; /* length of address, in bytes */ void *address; /* pointer to where to find the bytes */ }; /* * Data structure for ServerFamilyInterpreted addresses in host routines */ struct XServerInterpretedAddress { int typelength; /* length of type string, in bytes */ int valuelength; /* length of value string, in bytes */ void *type; /* pointer to where to find the type string */ void *value; /* pointer to where to find the address */ }; /* * Data structure for "image" data, used by image manipulation routines. */ struct XImage { int width, height; /* size of image */ int xoffset; /* number of pixels offset in X direction */ ImageFormat format; /* XYBitmap, XYPixmap, ZPixmap */ void *data; /* pointer to image data */ ByteOrder byte_order; /* data byte order, LSBFirst, MSBFirst */ int bitmap_unit; /* quant. of scanline 8, 16, 32 */ int bitmap_bit_order; /* LSBFirst, MSBFirst */ int bitmap_pad; /* 8, 16, 32 either XY or ZPixmap */ int depth; /* depth of image */ int bytes_per_line; /* accelarator to next line */ int bits_per_pixel; /* bits per pixel (ZPixmap) */ ulong red_mask; /* bits in z arrangment */ ulong green_mask; ulong blue_mask; XPointer obdata; /* hook for the object routines to hang on */ struct f { /* image manipulation routines */ XImage* function( XDisplay* /* display */, Visual* /* visual */, uint /* depth */, int /* format */, int /* offset */, byte* /* data */, uint /* width */, uint /* height */, int /* bitmap_pad */, int /* bytes_per_line */) create_image; int function(XImage *)destroy_image; ulong function(XImage *, int, int)get_pixel; int function(XImage *, int, int, ulong)put_pixel; XImage function(XImage *, int, int, uint, uint)sub_image; int function(XImage *, long)add_pixel; }; }; /* * Data structure for XReconfigureWindow */ struct XWindowChanges{ int x, y; int width, height; int border_width; Window sibling; WindowStackingMethod stack_mode; }; /* * Data structure used by color operations */ struct XColor { ulong pixel; ushort red, green, blue; StoreColor flags; /* do_red, do_green, do_blue */ byte pad; }; /* * Data structures for graphics operations. On most machines, these are * congruent with the wire protocol structures, so reformatting the data * can be avoided on these architectures. */ struct XSegment { short x1, y1, x2, y2; }; struct XPoint { short x, y; }; struct XRectangle { short x, y; ushort width, height; }; struct XArc { short x, y; ushort width, height; short angle1, angle2; }; /* Data structure for XChangeKeyboardControl */ struct XKeyboardControl { int key_click_percent; int bell_percent; int bell_pitch; int bell_duration; int led; LedMode led_mode; int key; AutoRepeatMode auto_repeat_mode; /* On, Off, Default */ }; /* Data structure for XGetKeyboardControl */ struct XKeyboardState { int key_click_percent; int bell_percent; uint bell_pitch, bell_duration; ulong led_mask; int global_auto_repeat; byte auto_repeats[32]; }; struct XTimeCoord { Time time; short x, y; }; /* Data structure for X{Set,Get}ModifierMapping */ struct XModifierKeymap { int max_keypermod; /* The server's max # of keys per modifier */ KeyCode *modifiermap; /* An 8 by max_keypermod array of modifiers */ }; /+ todo Verify Here+/ /* * Display datatype maintaining display specific data. * The contents of this structure are implementation dependent. * A Display should be treated as opaque by application code. */ struct _XPrivate{} /* Forward declare before use for C++ */ struct _XrmHashBucketRec{} struct Display { XExtData *ext_data; /* hook for extension to hang data */ _XPrivate *private1; int fd; /* Network socket. */ int private2; int proto_major_version;/* major version of server's X protocol */ int proto_minor_version;/* minor version of servers X protocol */ char *vendor; /* vendor of the server hardware */ XID private3; XID private4; XID private5; int private6; XID function(Display*)resource_alloc;/* allocator function */ ByteOrder byte_order; /* screen byte order, LSBFirst, MSBFirst */ int bitmap_unit; /* padding and data requirements */ int bitmap_pad; /* padding requirements on bitmaps */ ByteOrder bitmap_bit_order; /* LeastSignificant or MostSignificant */ int nformats; /* number of pixmap formats in list */ ScreenFormat *pixmap_format; /* pixmap format list */ int private8; int release; /* release of the server */ _XPrivate *private9; _XPrivate *private10; int qlen; /* Length of input event queue */ ulong last_request_read; /* seq number of last event read */ ulong request; /* sequence number of last request. */ XPointer private11; XPointer private12; XPointer private13; XPointer private14; uint max_request_size; /* maximum number 32 bit words in request*/ _XrmHashBucketRec *db; int function (Display*)private15; char *display_name; /* "host:display" string used on this connect*/ int default_screen; /* default screen for operations */ int nscreens; /* number of screens on this server*/ Screen *screens; /* pointer to list of screens */ ulong motion_buffer; /* size of motion buffer */ ulong private16; int min_keycode; /* minimum defined keycode */ int max_keycode; /* maximum defined keycode */ XPointer private17; XPointer private18; int private19; byte *xdefaults; /* contents of defaults from server */ /* there is more to this structure, but it is private to Xlib */ } alias _XPrivDisplay = Display *; struct XrmHashBucketRec{}; /* * Definitions of specific events. */ struct XKeyEvent { int type; /* of event */ ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* "event" window it is reported relative to */ Window root; /* root window that the event occurred on */ Window subwindow; /* child window */ Time time; /* milliseconds */ int x, y; /* pointer x, y coordinates in event window */ int x_root, y_root; /* coordinates relative to root */ KeyOrButtonMask state; /* key or button mask */ uint keycode; /* detail */ Bool same_screen; /* same screen flag */ }; alias XKeyPressedEvent = XKeyEvent; alias XKeyReleasedEvent = XKeyEvent; struct XButtonEvent { int type; /* of event */ ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* "event" window it is reported relative to */ Window root; /* root window that the event occurred on */ Window subwindow; /* child window */ Time time; /* milliseconds */ int x, y; /* pointer x, y coordinates in event window */ int x_root, y_root; /* coordinates relative to root */ KeyOrButtonMask state; /* key or button mask */ uint button; /* detail */ Bool same_screen; /* same screen flag */ }; alias XButtonPressedEvent = XButtonEvent; alias XButtonReleasedEvent = XButtonEvent; struct XMotionEvent{ int type; /* of event */ ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* "event" window reported relative to */ Window root; /* root window that the event occurred on */ Window subwindow; /* child window */ Time time; /* milliseconds */ int x, y; /* pointer x, y coordinates in event window */ int x_root, y_root; /* coordinates relative to root */ KeyOrButtonMask state; /* key or button mask */ byte is_hint; /* detail */ Bool same_screen; /* same screen flag */ }; alias XPointerMovedEvent = XMotionEvent; struct XCrossingEvent{ int type; /* of event */ ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* "event" window reported relative to */ Window root; /* root window that the event occurred on */ Window subwindow; /* child window */ Time time; /* milliseconds */ int x, y; /* pointer x, y coordinates in event window */ int x_root, y_root; /* coordinates relative to root */ NotifyModes mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */ NotifyDetail detail; /* * NotifyAncestor, NotifyVirtual, NotifyInferior, * NotifyNonlinear,NotifyNonlinearVirtual */ Bool same_screen; /* same screen flag */ Bool focus; /* Boolean focus */ KeyOrButtonMask state; /* key or button mask */ }; alias XEnterWindowEvent = XCrossingEvent ; alias XLeaveWindowEvent = XCrossingEvent ; struct XFocusChangeEvent{ int type; /* FocusIn or FocusOut */ ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* window of event */ NotifyModes mode; /* NotifyNormal, NotifyWhileGrabbed, NotifyGrab, NotifyUngrab */ NotifyDetail detail; /* * NotifyAncestor, NotifyVirtual, NotifyInferior, * NotifyNonlinear,NotifyNonlinearVirtual, NotifyPointer, * NotifyPointerRoot, NotifyDetailNone */ }; alias XFocusInEvent = XFocusChangeEvent; alias XFocusOutEvent = XFocusChangeEvent; /* generated on EnterWindow and FocusIn when KeyMapState selected */ struct XKeymapEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; byte key_vector[32]; }; struct XExposeEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; int x, y; int width, height; int count; /* if non-zero, at least this many more */ }; struct XGraphicsExposeEvent{ int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Drawable drawable; int x, y; int width, height; int count; /* if non-zero, at least this many more */ int major_code; /* core is CopyArea or CopyPlane */ int minor_code; /* not defined in the core */ }; struct XNoExposeEvent{ int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Drawable drawable; int major_code; /* core is CopyArea or CopyPlane */ int minor_code; /* not defined in the core */ }; struct XVisibilityEvent{ int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; VisibilityNotify state; /* Visibility state */ }; struct XCreateWindowEvent{ int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window parent; /* parent of the window */ Window window; /* window id of window created */ int x, y; /* window location */ int width, height; /* size of window */ int border_width; /* border width */ Bool override_redirect; /* creation should be overridden */ }; struct XDestroyWindowEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window event; Window window; }; struct XUnmapEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window event; Window window; Bool from_configure; }; struct XMapEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window event; Window window; Bool override_redirect; /* Boolean, is override set... */ }; struct XMapRequestEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window parent; Window window; }; struct XReparentEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window event; Window window; Window parent; int x, y; Bool override_redirect; }; struct XConfigureEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window event; Window window; int x, y; int width, height; int border_width; Window above; Bool override_redirect; }; struct XGravityEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window event; Window window; int x, y; }; struct XResizeRequestEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; int width, height; }; struct XConfigureRequestEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window parent; Window window; int x, y; int width, height; int border_width; Window above; WindowStackingMethod detail; /* Above, Below, TopIf, BottomIf, Opposite */ uint value_mask; }; struct XCirculateEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window event; Window window; CirculationRequest place; /* PlaceOnTop, PlaceOnBottom */ }; struct XCirculateRequestEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window parent; Window window; CirculationRequest place; /* PlaceOnTop, PlaceOnBottom */ }; struct XPropertyEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; Atom atom; Time time; PropertyNotification state; /* NewValue, Deleted */ }; struct XSelectionClearEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; Atom selection; Time time; }; struct XSelectionRequestEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window owner; Window requestor; Atom selection; Atom target; Atom property; Time time; }; struct XSelectionEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window requestor; Atom selection; Atom target; Atom property; /* ATOM or None */ Time time; } ; struct XColormapEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; Colormap colormap; /* COLORMAP or None */ Bool new_; /* C++ */ ColorMapNotification state; /* ColormapInstalled, ColormapUninstalled */ }; struct XClientMessageEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; Atom message_type; int format; union data{ byte b[20]; short s[10]; long l[5]; }; }; struct XMappingEvent { int type; ulong serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* unused */ MappingType request; /* one of MappingModifier, MappingKeyboard, MappingPointer */ int first_keycode; /* first keycode */ int count; /* defines range of change w. first_keycode*/ }; struct XErrorEvent { int type; Display *display; /* Display the event was read from */ XID resourceid; /* resource id */ ulong serial; /* serial number of failed request */ uint error_code; /* error code of failed request */ ubyte request_code; /* Major op-code of failed request */ ubyte minor_code; /* Minor op-code of failed request */ }; struct XAnyEvent { int type; ubyte serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display;/* Display the event was read from */ Window window; /* window on which event was requested in event mask */ }; /* * this union is defined so Xlib can always use the same sized * event structure internally, to avoid memory fragmentation. */ union XEvent{ int type; /* must not be changed; first element */ XAnyEvent xany; XKeyEvent xkey; XButtonEvent xbutton; XMotionEvent xmotion; XCrossingEvent xcrossing; XFocusChangeEvent xfocus; XExposeEvent xexpose; XGraphicsExposeEvent xgraphicsexpose; XNoExposeEvent xnoexpose; XVisibilityEvent xvisibility; XCreateWindowEvent xcreatewindow; XDestroyWindowEvent xdestroywindow; XUnmapEvent xunmap; XMapEvent xmap; XMapRequestEvent xmaprequest; XReparentEvent xreparent; XConfigureEvent xconfigure; XGravityEvent xgravity; XResizeRequestEvent xresizerequest; XConfigureRequestEvent xconfigurerequest; XCirculateEvent xcirculate; XCirculateRequestEvent xcirculaterequest; XPropertyEvent xproperty; XSelectionClearEvent xselectionclear; XSelectionRequestEvent xselectionrequest; XSelectionEvent xselection; XColormapEvent xcolormap; XClientMessageEvent xclient; XMappingEvent xmapping; XErrorEvent xerror; XKeymapEvent xkeymap; long pad[24]; }; int XAllocID(Display* dpy) {return cast(int) dpy.resource_alloc(dpy);} /* * per character font metric information. */ struct XCharStruct { short lbearing; /* origin to left edge of raster */ short rbearing; /* origin to right edge of raster */ short width; /* advance to next char's origin */ short ascent; /* baseline to top edge of raster */ short descent; /* baseline to bottom edge of raster */ short attributes; /* per char flags (not predefined) */ }; /* * To allow arbitrary information with fonts, there are additional properties * returned. */ struct XFontProp { Atom name; ulong card32; }; struct XFontStruct{ XExtData *ext_data; /* hook for extension to hang data */ Font fid; /* Font id for this font */ FontDrawDirection direction; /* hint about direction the font is painted */ uint min_char_or_byte2; /* first character */ uint max_char_or_byte2; /* last character */ uint min_byte1; /* first row that exists */ uint max_byte1; /* last row that exists */ Bool all_chars_exist; /* flag if all characters have non-zero size*/ uint default_char; /* char to print for undefined character */ int n_properties; /* how many properties there are */ XFontProp *properties; /* pointer to array of additional properties*/ XCharStruct min_bounds; /* minimum bounds over all existing char*/ XCharStruct max_bounds; /* maximum bounds over all existing char*/ XCharStruct *per_char; /* first_char to last_char information */ int ascent; /* log. extent above baseline for spacing */ int descent; /* log. descent below baseline for spacing */ }; /* * PolyText routines take these as arguments. */ struct XTextItem{ char *chars; /* pointer to string */ int nchars; /* number of characters */ int delta; /* delta between strings */ Font font; /* font to print it in, None don't change */ }; struct XChar2b { /* normal 16 bit characters are two bytes */ align(1): ubyte byte1; ubyte byte2; }; struct XTextItem16 { XChar2b *chars; /* two byte characters */ int nchars; /* number of characters */ int delta; /* delta between strings */ Font font; /* font to print it in, None don't change */ } union XEDataObject { Display *display; GC gc; Visual *visual; Screen *screen; ScreenFormat *pixmap_format; XFontStruct *font; } ; struct XFontSetExtents{ XRectangle max_ink_extent; XRectangle max_logical_extent; }; /* unused: typedef void (*XOMProc)(); */ struct _XOM{} struct _XOC{} alias XOM = _XOM *; alias XOC = _XOC *; alias XFontSet = _XOC *; struct XmbTextItem{ byte *chars; int nchars; int delta; XFontSet font_set; }; struct XwcTextItem{ wchar *chars; int nchars; int delta; XFontSet font_set; } ; char[] XNRequiredCharSet ="requiredCharSet".dup; char[] XNQueryOrientation ="queryOrientation".dup; char[] XNBaseFontName ="baseFontName".dup; char[] XNOMAutomatic ="omAutomatic".dup; char[] XNMissingCharSet ="missingCharSet".dup; char[] XNDefaultString ="defaultString".dup; char[] XNOrientation ="orientation".dup; char[] XNDirectionalDependentDrawing ="directionalDependentDrawing".dup; char[] XNContextualDrawing ="contextualDrawing".dup; char[] XNFontInfo ="fontInfo".dup; struct XOMCharSetList { int charset_count; byte **charset_list; }; enum XOrientation { XOMOrientation_LTR_TTB, XOMOrientation_RTL_TTB, XOMOrientation_TTB_LTR, XOMOrientation_TTB_RTL, XOMOrientation_Context }; struct XOMOrientation{ int num_orientation; XOrientation *orientation; /* Input Text description */ }; struct XOMFontInfo{ int num_font; XFontStruct **font_struct_list; byte **font_name_list; } ; struct _XIM{} struct _XIC{} alias XIM = _XIM *; alias XIC = _XIC *; alias XIMProc = void function( XIM, XPointer, XPointer ) ; alias XICProc = Bool function( XIC, XPointer, XPointer ); alias XIDProc = void function( Display*, XPointer, XPointer ); enum XIMStyle:ulong { XIMPreeditArea =0x0001L, XIMPreeditCallbacks =0x0002L, XIMPreeditPosition =0x0004L, XIMPreeditNothing =0x0008L, XIMPreeditNone =0x0010L, XIMStatusArea =0x0100L, XIMStatusCallbacks =0x0200L, XIMStatusNothing =0x0400L, XIMStatusNone =0x0800L } struct XIMStyles{ ushort count_styles; XIMStyle *supported_styles; }; const char[] XNVaNestedList ="XNVaNestedList"; const char[] XNQueryInputStyle ="queryInputStyle"; const char[] XNClientWindow ="clientWindow"; const char[] XNInputStyle ="inputStyle"; const char[] XNFocusWindow ="focusWindow"; const char[] XNResourceName ="resourceName"; const char[] XNResourceClass ="resourceClass"; const char[] XNGeometryCallback ="geometryCallback"; const char[] XNDestroyCallback ="destroyCallback"; const char[] XNFilterEvents ="filterEvents"; const char[] XNPreeditStartCallback ="preeditStartCallback"; const char[] XNPreeditDoneCallback ="preeditDoneCallback"; const char[] XNPreeditDrawCallback ="preeditDrawCallback"; const char[] XNPreeditCaretCallback ="preeditCaretCallback"; const char[] XNPreeditStateNotifyCallback ="preeditStateNotifyCallback"; const char[] XNPreeditAttributes ="preeditAttributes"; const char[] XNStatusStartCallback ="statusStartCallback"; const char[] XNStatusDoneCallback ="statusDoneCallback"; const char[] XNStatusDrawCallback ="statusDrawCallback"; const char[] XNStatusAttributes ="statusAttributes"; const char[] XNArea ="area"; const char[] XNAreaNeeded ="areaNeeded"; const char[] XNSpotLocation ="spotLocation"; const char[] XNColormap ="colorMap"; const char[] XNStdColormap ="stdColorMap"; const char[] XNForeground ="foreground"; const char[] XNBackground ="background"; const char[] XNBackgroundPixmap ="backgroundPixmap"; const char[] XNFontSet ="fontSet"; const char[] XNLineSpace ="lineSpace"; const char[] XNCursor ="cursor"; const char[] XNQueryIMValuesList ="queryIMValuesList"; const char[] XNQueryICValuesList ="queryICValuesList"; const char[] XNVisiblePosition ="visiblePosition"; const char[] XNR6PreeditCallback ="r6PreeditCallback"; const char[] XNStringConversionCallback ="stringConversionCallback"; const char[] XNStringConversion ="stringConversion"; const char[] XNResetState ="resetState"; const char[] XNHotKey ="hotKey"; const char[] XNHotKeyState ="hotKeyState"; const char[] XNPreeditState ="preeditState"; const char[] XNSeparatorofNestedList ="separatorofNestedList"; const int XBufferOverflow= -1; const int XLookupNone= 1; const int XLookupChars= 2; const int XLookupKeySym= 3; const int XLookupBoth = 4; alias XVaNestedList = void *; struct XIMCallback{ XPointer client_data; XIMProc callback; }; struct XICCallback{ XPointer client_data; XICProc callback; }; enum XIMFeedback:ulong { XIMReverse =1, XIMUnderline =1<<1, XIMHighlight =1<<2, XIMPrimary =1<<5, XIMSecondary =1<<6, XIMTertiary =1<<7, XIMVisibleToForward =1<<8, XIMVisibleToBackword=1<<9, XIMVisibleToCenter =1<<10 } struct XIMText { ushort length; XIMFeedback *feedback; Bool encoding_is_wchar; union string { byte *multi_byte; wchar *wide_char; }; }; enum XIMPreeditState:ulong { XIMPreeditUnKnown =0L, XIMPreeditEnable =1L, XIMPreeditDisable =1L<<1 } struct XIMPreeditStateNotifyCallbackStruct { XIMPreeditState state; } enum XIMResetState:ulong { XIMInitialState =1L, XIMPreserveState =1L<<1 } enum XIMStringConversionFeedback:ulong { XIMStringConversionLeftEdge =0x00000001, XIMStringConversionRightEdge =0x00000002, XIMStringConversionTopEdge =0x00000004, XIMStringConversionBottomEdge =0x00000008, XIMStringConversionConcealed =0x00000010, XIMStringConversionWrapped =0x00000020 } struct XIMStringConversionText { uint length; XIMStringConversionFeedback *feedback; Bool encoding_is_wchar; union string { byte *mbs; wchar *wcs; }; }; alias XIMStringConversionPosition = ushort ; enum XIMStringConversionType:ushort { XIMStringConversionBuffer =0x0001, XIMStringConversionLine =0x0002, XIMStringConversionWord =0x0003, XIMStringConversionChar =0x0004 } enum XIMStringConversionOperation:ushort { XIMStringConversionSubstitution =0x0001, XIMStringConversionRetrieval =0x0002 } enum XIMCaretDirection:int{ XIMForwardChar, XIMBackwardChar, XIMForwardWord, XIMBackwardWord, XIMCaretUp, XIMCaretDown, XIMNextLine, XIMPreviousLine, XIMLineStart, XIMLineEnd, XIMAbsolutePosition, XIMDontChange }; struct XIMStringConversionCallbackStruct { XIMStringConversionPosition position; XIMCaretDirection direction; XIMStringConversionOperation operation; ushort factor; XIMStringConversionText *text; }; struct XIMPreeditDrawCallbackStruct { int caret; /* Cursor offset within pre-edit string */ int chg_first; /* Starting change position */ int chg_length; /* Length of the change in character count */ XIMText *text; } ; enum XIMCaretStyle{ XIMIsInvisible, /* Disable caret feedback */ XIMIsPrimary, /* UI defined caret feedback */ XIMIsSecondary /* UI defined caret feedback */ }; struct XIMPreeditCaretCallbackStruct { int position; /* Caret offset within pre-edit string */ XIMCaretDirection direction; /* Caret moves direction */ XIMCaretStyle style; /* Feedback of the caret */ }; enum XIMStatusDataType{ XIMTextType, XIMBitmapType }; struct XIMStatusDrawCallbackStruct { XIMStatusDataType type; union data{ XIMText *text; Pixmap bitmap; } ; }; struct XIMHotKeyTrigger { KeySym keysym; int modifier; int modifier_mask; } ; struct XIMHotKeyTriggers { int num_hot_key; XIMHotKeyTrigger *key; }; enum XIMHotKeyState:ulong { XIMHotKeyStateON =0x0001L, XIMHotKeyStateOFF =0x0002L } struct XIMValuesList{ ushort count_values; byte **supported_values; }; /* FUNCTION PROTOTYPES*/ extern (C) { extern int _Xdebug; extern XFontStruct *XLoadQueryFont( Display* /* display */, byte* /* name */ ); extern XFontStruct *XQueryFont( Display* /* display */, XID /* font_ID */ ); extern XTimeCoord *XGetMotionEvents( Display* /* display */, Window /* w */, Time /* start */, Time /* stop */, int* /* nevents_return */ ); extern XModifierKeymap *XDeleteModifiermapEntry( XModifierKeymap* /* modmap */, KeyCode /* keycode_entry */, int /* modifier */ ); extern XModifierKeymap *XGetModifierMapping( Display* /* display */ ); extern XModifierKeymap *XInsertModifiermapEntry( XModifierKeymap* /* modmap */, KeyCode /* keycode_entry */, int /* modifier */ ); extern XModifierKeymap *XNewModifiermap( int /* max_keys_per_mod */ ); extern XImage *XCreateImage( Display* /* display */, Visual* /* visual */, uint /* depth */, int /* format */, int /* offset */, byte* /* data */, uint /* width */, uint /* height */, int /* bitmap_pad */, int /* bytes_per_line */ ); extern Status XInitImage( XImage* /* image */ ); extern XImage *XGetImage( Display* /* display */, Drawable /* d */, int /* x */, int /* y */, uint /* width */, uint /* height */, ulong /* plane_mask */, ImageFormat /* format */ ); extern XImage *XGetSubImage( Display* /* display */, Drawable /* d */, int /* x */, int /* y */, uint /* width */, uint /* height */, ulong /* plane_mask */, int /* format */, XImage* /* dest_image */, int /* dest_x */, int /* dest_y */ ); /* * X function declarations. */ extern Display *XOpenDisplay( char* /* display_name */ ); /* struct XVisualInfo { Visual *visual; VisualID visualid; int screen; uint depth; int c_class; uint red_mask; uint green_mask; uint blue_mask; int colormap_size; int bits_per_rgb; }; * */ extern void XrmInitialize(); extern byte *XFetchBytes( Display* /* display */, int* /* nbytes_return */ ); extern byte *XFetchBuffer( Display* /* display */, int* /* nbytes_return */, int /* buffer */ ); extern byte *XGetAtomName( Display* /* display */, Atom /* atom */ ); extern Status XGetAtomNames( Display* /* dpy */, Atom* /* atoms */, int /* count */, byte** /* names_return */ ); extern byte *XGetDefault( Display* /* display */, byte* /* program */, byte* /* option */ ); extern char *XDisplayName( char* /* string */ ); extern char *XKeysymToString( KeySym /* keysym */ ); extern int function(Display*/* display */,Bool /* onoff */)XSynchronize( Display* /* display */ ); extern int function( Display* /* display */, int function( Display* /* display */ ) /* procedure */ )XSetAfterFunction( Display* /* display */ ); extern Atom XInternAtom( Display* /* display */, byte* /* atom_name */, Bool /* only_if_exists */ ); extern Status XInternAtoms( Display* /* dpy */, byte** /* names */, int /* count */, Bool /* onlyIfExists */, Atom* /* atoms_return */ ); extern Colormap XCopyColormapAndFree( Display* /* display */, Colormap /* colormap */ ); extern Colormap XCreateColormap( Display* /* display */, Window /* w */, Visual* /* visual */, int /* alloc */ ); extern Cursor XCreatePixmapCursor( Display* /* display */, Pixmap /* source */, Pixmap /* mask */, XColor* /* foreground_color */, XColor* /* background_color */, uint /* x */, uint /* y */ ); extern Cursor XCreateGlyphCursor( Display* /* display */, Font /* source_font */, Font /* mask_font */, uint /* source_char */, uint /* mask_char */, XColor* /* foreground_color */, XColor* /* background_color */ ); extern Cursor XCreateFontCursor( Display* /* display */, uint /* shape */ ); extern Font XLoadFont( Display* /* display */, byte* /* name */ ); extern GC XCreateGC( Display* /* display */, Drawable /* d */, ulong /* valuemask */, XGCValues* /* values */ ); extern GContext XGContextFromGC( GC /* gc */ ); extern void XFlushGC( Display* /* display */, GC /* gc */ ); extern Pixmap XCreatePixmap( Display* /* display */, Drawable /* d */, uint /* width */, uint /* height */, uint /* depth */ ); extern Pixmap XCreateBitmapFromData( Display* /* display */, Drawable /* d */, byte* /* data */, uint /* width */, uint /* height */ ); extern Pixmap XCreatePixmapFromBitmapData( Display* /* display */, Drawable /* d */, byte* /* data */, uint /* width */, uint /* height */, ulong /* fg */, ulong /* bg */, uint /* depth */ ); extern Window XCreateSimpleWindow( Display* /* display */, Window /* parent */, int /* x */, int /* y */, uint /* width */, uint /* height */, uint /* border_width */, ulong /* border */, ulong /* background */ ); extern Window XGetSelectionOwner( Display* /* display */, Atom /* selection */ ); extern Window XCreateWindow( Display* /* display */, Window /* parent */, int /* x */, int /* y */, uint /* width */, uint /* height */, uint /* border_width */, int /* depth */, WindowClass /* class */, Visual* /* visual */, WindowAttribute /* valuemask */, XSetWindowAttributes* /* attributes */ ); extern Colormap *XListInstalledColormaps( Display* /* display */, Window /* w */, int* /* num_return */ ); extern byte **XListFonts( Display* /* display */, byte* /* pattern */, int /* maxnames */, int* /* actual_count_return */ ); extern byte **XListFontsWithInfo( Display* /* display */, byte* /* pattern */, int /* maxnames */, int* /* count_return */, XFontStruct** /* info_return */ ); extern byte **XGetFontPath( Display* /* display */, int* /* npaths_return */ ); extern byte **XListExtensions( Display* /* display */, int* /* nextensions_return */ ); extern Atom *XListProperties( Display* /* display */, Window /* w */, int* /* num_prop_return */ ); extern XHostAddress *XListHosts( Display* /* display */, int* /* nhosts_return */, Bool* /* state_return */ ); extern KeySym XKeycodeToKeysym( Display* /* display */, KeyCode /* keycode */, int /* index */ ); extern KeySym XLookupKeysym( XKeyEvent* /* key_event */, int /* index */ ); extern KeySym *XGetKeyboardMapping( Display* /* display */, KeyCode /* first_keycode */, int /* keycode_count */, int* /* keysyms_per_keycode_return */ ); extern KeySym XStringToKeysym( char* /* string */ ); extern long XMaxRequestSize( Display* /* display */ ); extern long XExtendedMaxRequestSize( Display* /* display */ ); extern char *XResourceManagerString( Display* /* display */ ); extern char *XScreenResourceString( Screen* /* screen */ ); extern ulong XDisplayMotionBufferSize( Display* /* display */ ); extern VisualID XVisualIDFromVisual( Visual* /* visual */ ); /* multithread routines */ extern Status XInitThreads(); extern void XLockDisplay( Display* /* display */ ); extern void XUnlockDisplay( Display* /* display */ ); /* routines for dealing with extensions */ extern XExtCodes *XInitExtension( Display* /* display */, byte* /* name */ ); extern XExtCodes *XAddExtension( Display* /* display */ ); extern XExtData *XFindOnExtensionList( XExtData** /* structure */, int /* number */ ); extern XExtData **XEHeadOfExtensionList( XEDataObject /* object */ ); /* these are routines for which there are also macros */ extern Window XRootWindow( Display* /* display */, int /* screen_number */ ); extern Window XDefaultRootWindow( Display* /* display */ ); extern Window XRootWindowOfScreen( Screen* /* screen */ ); extern Visual *XDefaultVisual( Display* /* display */, int /* screen_number */ ); extern Visual *XDefaultVisualOfScreen( Screen* /* screen */ ); extern GC XDefaultGC( Display* /* display */, int /* screen_number */ ); extern GC XDefaultGCOfScreen( Screen* /* screen */ ); extern ulong XBlackPixel( Display* /* display */, int /* screen_number */ ); extern ulong XWhitePixel( Display* /* display */, int /* screen_number */ ); extern ulong XAllPlanes(); extern ulong XBlackPixelOfScreen( Screen* /* screen */ ); extern ulong XWhitePixelOfScreen( Screen* /* screen */ ); extern ulong XNextRequest( Display* /* display */ ); extern ulong XLastKnownRequestProcessed( Display* /* display */ ); extern char *XServerVendor( Display* /* display */ ); extern char *XDisplayString( Display* /* display */ ); extern Colormap XDefaultColormap( Display* /* display */, int /* screen_number */ ); extern Colormap XDefaultColormapOfScreen( Screen* /* screen */ ); extern Display *XDisplayOfScreen( Screen* /* screen */ ); extern Screen *XScreenOfDisplay( Display* /* display */, int /* screen_number */ ); extern Screen *XDefaultScreenOfDisplay( Display* /* display */ ); extern long XEventMaskOfScreen( Screen* /* screen */ ); extern int XScreenNumberOfScreen( Screen* /* screen */ ); alias XErrorHandler = int function ( /* WARNING, this type not in Xlib spec */ Display* /* display */, XErrorEvent* /* error_event */ ); extern XErrorHandler XSetErrorHandler ( XErrorHandler /* handler */ ); alias XIOErrorHandler = int function ( /* WARNING, this type not in Xlib spec */ Display* /* display */ ); extern XIOErrorHandler XSetIOErrorHandler ( XIOErrorHandler /* handler */ ); extern XPixmapFormatValues *XListPixmapFormats( Display* /* display */, int* /* count_return */ ); extern int *XListDepths( Display* /* display */, int /* screen_number */, int* /* count_return */ ); /* ICCCM routines for things that don't require special include files; */ /* other declarations are given in Xutil.h */ extern Status XReconfigureWMWindow( Display* /* display */, Window /* w */, int /* screen_number */, ConfigureWindowStruct /* mask */, XWindowChanges* /* changes */ ); extern Status XGetWMProtocols( Display* /* display */, Window /* w */, Atom** /* protocols_return */, int* /* count_return */ ); extern Status XSetWMProtocols( Display* /* display */, Window /* w */, Atom* /* protocols */, int /* count */ ); extern Status XIconifyWindow( Display* /* display */, Window /* w */, int /* screen_number */ ); extern Status XWithdrawWindow( Display* /* display */, Window /* w */, int /* screen_number */ ); extern Status XGetCommand( Display* /* display */, Window /* w */, byte*** /* argv_return */, int* /* argc_return */ ); extern Status XGetWMColormapWindows( Display* /* display */, Window /* w */, Window** /* windows_return */, int* /* count_return */ ); extern Status XSetWMColormapWindows( Display* /* display */, Window /* w */, Window* /* colormap_windows */, int /* count */ ); extern void XFreeStringList( char** /* list */ ); extern int XSetTransientForHint( Display* /* display */, Window /* w */, Window /* prop_window */ ); /* The following are given in alphabetical order */ extern int XActivateScreenSaver( Display* /* display */ ); extern int XAddHost( Display* /* display */, XHostAddress* /* host */ ); extern int XAddHosts( Display* /* display */, XHostAddress* /* hosts */, int /* num_hosts */ ); extern int XAddToExtensionList( XExtData** /* structure */, XExtData* /* ext_data */ ); extern int XAddToSaveSet( Display* /* display */, Window /* w */ ); extern Status XAllocColor( Display* /* display */, Colormap /* colormap */, XColor* /* screen_in_out */ ); extern Status XAllocColorCells( Display* /* display */, Colormap /* colormap */, Bool /* contig */, ulong* /* plane_masks_return */, uint /* nplanes */, ulong* /* pixels_return */, uint /* npixels */ ); extern Status XAllocColorPlanes( Display* /* display */, Colormap /* colormap */, Bool /* contig */, ulong* /* pixels_return */, int /* ncolors */, int /* nreds */, int /* ngreens */, int /* nblues */, ulong* /* rmask_return */, ulong* /* gmask_return */, ulong* /* bmask_return */ ); const AllocNone = 0; extern Status XAllocNamedColor( Display* /* display */, Colormap /* colormap */, byte* /* color_name */, XColor* /* screen_def_return */, XColor* /* exact_def_return */ ); extern int XAllowEvents( Display* /* display */, int /* event_mode */, Time /* time */ ); extern int XAutoRepeatOff( Display* /* display */ ); extern int XAutoRepeatOff( Display* /* display */ ); extern int XAutoRepeatOn( Display* /* display */ ); extern int XBell( Display* /* display */, int /* percent */ ); extern int XBitmapBitOrder( Display* /* display */ ); extern int XBitmapPad( Display* /* display */ ); extern int XBitmapUnit( Display* /* display */ ); extern int XCellsOfScreen( Screen* /* screen */ ); extern int XChangeActivePointerGrab( Display* /* display */, EventMask /* event_mask */, Cursor /* cursor */, Time /* time */ ); extern int XChangeGC( Display* /* display */, GC /* gc */, GCMask /* valuemask */, XGCValues* /* values */ ); extern int XChangeKeyboardControl( Display* /* display */, KBMask /* value_mask */, XKeyboardControl* /* values */ ); extern int XChangeKeyboardMapping( Display* /* display */, int /* first_keycode */, int /* keysyms_per_keycode */, KeySym* /* keysyms */, int /* num_codes */ ); extern int XChangePointerControl( Display* /* display */, Bool /* do_accel */, Bool /* do_threshold */, int /* accel_numerator */, int /* accel_denominator */, int /* threshold */ ); extern int XChangeProperty( Display* /* display */, Window /* w */, Atom /* property */, Atom /* type */, int /* format */, PropertyMode/* mode */, ubyte* /* data */, int /* nelements */ ); extern int XChangeSaveSet( Display* /* display */, Window /* w */, ChangeMode /* change_mode */ ); extern int XChangeWindowAttributes( Display* /* display */, Window /* w */, WindowAttribute /* valuemask */, XSetWindowAttributes* /* attributes */ ); extern Bool XCheckIfEvent( Display* /* display */, XEvent* /* event_return */, Bool function( Display* /* display */, XEvent* /* event */, XPointer /* arg */ ) /* predicate */, XPointer /* arg */ ); extern Bool XCheckMaskEvent( Display* /* display */, EventMask /* event_mask */, XEvent* /* event_return */ ); extern Bool XCheckTypedEvent( Display* /* display */, EventType /* event_type */, XEvent* /* event_return */ ); extern Bool XCheckTypedWindowEvent( Display* /* display */, Window /* w */, EventType /* event_type */, XEvent* /* event_return */ ); extern Bool XCheckWindowEvent( Display* /* display */, Window /* w */, EventMask /* event_mask */, XEvent* /* event_return */ ); extern int XCirculateSubwindows( Display* /* display */, Window /* w */, CircularDirection /* direction */ ); extern int XCirculateSubwindowsDown( Display* /* display */, Window /* w */ ); extern int XCirculateSubwindowsUp( Display* /* display */, Window /* w */ ); extern int XClearArea( Display* /* display */, Window /* w */, int /* x */, int /* y */, uint /* width */, uint /* height */, Bool /* exposures */ ); extern int XClearWindow( Display* /* display */, Window /* w */ ); extern int XCloseDisplay( Display* /* display */ ); extern int XConfigureWindow( Display* /* display */, Window /* w */, uint /* value_mask */, XWindowChanges* /* values */ ); extern int XConnectionNumber( Display* /* display */ ); extern int XConvertSelection( Display* /* display */, Atom /* selection */, Atom /* target */, Atom /* property */, Window /* requestor */, Time /* time */ ); extern int XCopyArea( Display* /* display */, Drawable /* src */, Drawable /* dest */, GC /* gc */, int /* src_x */, int /* src_y */, uint /* width */, uint /* height */, int /* dest_x */, int /* dest_y */ ); extern int XCopyGC( Display* /* display */, GC /* src */, GCMask /* valuemask */, GC /* dest */ ); extern int XCopyPlane( Display* /* display */, Drawable /* src */, Drawable /* dest */, GC /* gc */, int /* src_x */, int /* src_y */, uint /* width */, uint /* height */, int /* dest_x */, int /* dest_y */, ulong /* plane */ ); extern int XDefaultDepth( Display* /* display */, int /* screen_number */ ); extern int XDefaultDepthOfScreen( Screen* /* screen */ ); extern int XDefaultScreen( Display* /* display */ ); extern int XDefineCursor( Display* /* display */, Window /* w */, Cursor /* cursor */ ); extern int XDeleteProperty( Display* /* display */, Window /* w */, Atom /* property */ ); extern int XDestroyWindow( Display* /* display */, Window /* w */ ); extern int XDestroySubwindows( Display* /* display */, Window /* w */ ); extern int XDoesBackingStore( Screen* /* screen */ ); extern Bool XDoesSaveUnders( Screen* /* screen */ ); extern int XDisableAccessControl( Display* /* display */ ); extern int XDisplayCells( Display* /* display */, int /* screen_number */ ); extern int XDisplayHeight( Display* /* display */, int /* screen_number */ ); extern int XDisplayHeightMM( Display* /* display */, int /* screen_number */ ); extern int XDisplayKeycodes( Display* /* display */, int* /* min_keycodes_return */, int* /* max_keycodes_return */ ); extern int XDisplayPlanes( Display* /* display */, int /* screen_number */ ); extern int XDisplayWidth( Display* /* display */, int /* screen_number */ ); extern int XDisplayWidthMM( Display* /* display */, int /* screen_number */ ); extern int XDrawArc( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, uint /* width */, uint /* height */, int /* angle1 */, int /* angle2 */ ); extern int XDrawArcs( Display* /* display */, Drawable /* d */, GC /* gc */, XArc* /* arcs */, int /* narcs */ ); extern int XDrawImageString( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, char* /* string */, int /* length */ ); extern int XDrawImageString16( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, XChar2b* /* string */, int /* length */ ); extern int XDrawLine( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x1 */, int /* y1 */, int /* x2 */, int /* y2 */ ); extern int XDrawLines( Display* /* display */, Drawable /* d */, GC /* gc */, XPoint* /* points */, int /* npoints */, CoordinateMode /* mode */ ); extern int XDrawPoint( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */ ); extern int XDrawPoints( Display* /* display */, Drawable /* d */, GC /* gc */, XPoint* /* points */, int /* npoints */, CoordinateMode /* mode */ ); extern int XDrawRectangle( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, uint /* width */, uint /* height */ ); extern int XDrawRectangles( Display* /* display */, Drawable /* d */, GC /* gc */, XRectangle* /* rectangles */, int /* nrectangles */ ); extern int XDrawSegments( Display* /* display */, Drawable /* d */, GC /* gc */, XSegment* /* segments */, int /* nsegments */ ); extern int XDrawString( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, char* /* string */, int /* length */ ); extern int XDrawString16( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, XChar2b* /* string */, int /* length */ ); extern int XDrawText( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, XTextItem* /* items */, int /* nitems */ ); extern int XDrawText16( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, XTextItem16*/* items */, int /* nitems */ ); extern int XEnableAccessControl( Display* /* display */ ); extern int XEventsQueued( Display* /* display */, QueueMode /* mode */ ); extern Status XFetchName( Display* /* display */, Window /* w */, byte** /* window_name_return */ ); extern int XFillArc( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, uint /* width */, uint /* height */, int /* angle1 */, int /* angle2 */ ); extern int XFillArcs( Display* /* display */, Drawable /* d */, GC /* gc */, XArc* /* arcs */, int /* narcs */ ); extern int XFillPolygon( Display* /* display */, Drawable /* d */, GC /* gc */, XPoint* /* points */, int /* npoints */, int /* shape */, CoordinateMode /* mode */ ); extern int XFillRectangle( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, uint /* width */, uint /* height */ ); extern int XFillRectangles( Display* /* display */, Drawable /* d */, GC /* gc */, XRectangle* /* rectangles */, int /* nrectangles */ ); extern int XFlush( Display* /* display */ ); extern int XForceScreenSaver( Display* /* display */, ScreenSaverMode /* mode */ ); extern int XFree( void* /* data */ ); extern int XFreeColormap( Display* /* display */, Colormap /* colormap */ ); extern int XFreeColors( Display* /* display */, Colormap /* colormap */, ulong* /* pixels */, int /* npixels */, ulong /* planes */ ); extern int XFreeCursor( Display* /* display */, Cursor /* cursor */ ); extern int XFreeExtensionList( byte** /* list */ ); extern int XFreeFont( Display* /* display */, XFontStruct*/* font_struct */ ); extern int XFreeFontInfo( byte** /* names */, XFontStruct*/* free_info */, int /* actual_count */ ); extern int XFreeFontNames( byte** /* list */ ); extern int XFreeFontPath( byte** /* list */ ); extern int XFreeGC( Display* /* display */, GC /* gc */ ); extern int XFreeModifiermap( XModifierKeymap* /* modmap */ ); extern int XFreePixmap( Display* /* display */, Pixmap /* pixmap */ ); extern int XGeometry( Display* /* display */, int /* screen */, byte* /* position */, byte* /* default_position */, uint /* bwidth */, uint /* fwidth */, uint /* fheight */, int /* xadder */, int /* yadder */, int* /* x_return */, int* /* y_return */, int* /* width_return */, int* /* height_return */ ); extern int XGetErrorDatabaseText( Display* /* display */, char* /* name */, char* /* message */, char* /* default_string */, byte* /* buffer_return */, int /* length */ ); extern int XGetErrorText( Display* /* display */, XErrorCode /* code */, byte* /* buffer_return */, int /* length */ ); extern Bool XGetFontProperty( XFontStruct*/* font_struct */, Atom /* atom */, ulong* /* value_return */ ); extern Status XGetGCValues( Display* /* display */, GC /* gc */, GCMask /* valuemask */, XGCValues* /* values_return */ ); extern Status XGetGeometry( Display* /* display */, Drawable /* d */, Window* /* root_return */, int* /* x_return */, int* /* y_return */, uint* /* width_return */, uint* /* height_return */, uint* /* border_width_return */, uint* /* depth_return */ ); extern Status XGetIconName( Display* /* display */, Window /* w */, byte** /* icon_name_return */ ); extern int XGetInputFocus( Display* /* display */, Window* /* focus_return */, int* /* revert_to_return */ ); extern int XGetKeyboardControl( Display* /* display */, XKeyboardState* /* values_return */ ); extern int XGetPointerControl( Display* /* display */, int* /* accel_numerator_return */, int* /* accel_denominator_return */, int* /* threshold_return */ ); extern int XGetPointerMapping( Display* /* display */, ubyte* /* map_return */, int /* nmap */ ); extern int XGetScreenSaver( Display* /* display */, int* /* timeout_return */, int* /* interval_return */, int* /* prefer_blanking_return */, int* /* allow_exposures_return */ ); extern Status XGetTransientForHint( Display* /* display */, Window /* w */, Window* /* prop_window_return */ ); extern int XGetWindowProperty( Display* /* display */, Window /* w */, Atom /* property */, long /* long_offset */, long /* long_length */, Bool /* delete */, Atom /* req_type */, Atom* /* actual_type_return */, int* /* actual_format_return */, ulong* /* nitems_return */, ulong* /* bytes_after_return */, ubyte** /* prop_return */ ); extern Status XGetWindowAttributes( Display* /* display */, Window /* w */, XWindowAttributes* /* window_attributes_return */ ); extern int XGrabButton( Display* /* display */, uint /* button */, uint /* modifiers */, Window /* grab_window */, Bool /* owner_events */, EventMask /* event_mask */, GrabMode /* pointer_mode */, GrabMode /* keyboard_mode */, Window /* confine_to */, Cursor /* cursor */ ); extern int XGrabKey( Display* /* display */, int /* keycode */, KeyMask /* modifiers */, Window /* grab_window */, Bool /* owner_events */, GrabMode /* pointer_mode */, GrabMode /* keyboard_mode */ ); extern int XGrabKeyboard( Display* /* display */, Window /* grab_window */, Bool /* owner_events */, GrabMode /* pointer_mode */, GrabMode /* keyboard_mode */, Time /* time */ ); extern int XGrabPointer( Display* /* display */, Window /* grab_window */, Bool /* owner_events */, EventMask /* event_mask */, GrabMode /* pointer_mode */, GrabMode /* keyboard_mode */, Window /* confine_to */, Cursor /* cursor */, Time /* time */ ); extern int XGrabServer( Display* /* display */ ); extern int XHeightMMOfScreen( Screen* /* screen */ ); extern int XHeightOfScreen( Screen* /* screen */ ); extern int XIfEvent( Display* /* display */, XEvent* /* event_return */, Bool function( Display* /* display */, XEvent* /* event */, XPointer /* arg */ ) /* predicate */, XPointer /* arg */ ); extern int XImageByteOrder( Display* /* display */ ); extern int XInstallColormap( Display* /* display */, Colormap /* colormap */ ); extern KeyCode XKeysymToKeycode( Display* /* display */, KeySym /* keysym */ ); extern int XKillClient( Display* /* display */, XID /* resource */ ); extern Status XLookupColor( Display* /* display */, Colormap /* colormap */, byte* /* color_name */, XColor* /* exact_def_return */, XColor* /* screen_def_return */ ); extern int XLowerWindow( Display* /* display */, Window /* w */ ); extern int XMapRaised( Display* /* display */, Window /* w */ ); extern int XMapSubwindows( Display* /* display */, Window /* w */ ); extern int XMapWindow( Display* /* display */, Window /* w */ ); extern int XMaskEvent( Display* /* display */, EventMask /* event_mask */, XEvent* /* event_return */ ); extern int XMaxCmapsOfScreen( Screen* /* screen */ ); extern int XMinCmapsOfScreen( Screen* /* screen */ ); extern int XMoveResizeWindow( Display* /* display */, Window /* w */, int /* x */, int /* y */, uint /* width */, uint /* height */ ); extern int XMoveWindow( Display* /* display */, Window /* w */, int /* x */, int /* y */ ); extern int XNextEvent( Display* /* display */, XEvent* /* event_return */ ); extern int XNoOp( Display* /* display */ ); extern Status XParseColor( Display* /* display */, Colormap /* colormap */, ubyte* /* spec */, XColor* /* exact_def_return */ ); extern int XParseGeometry( char* /* parsestring */, int* /* x_return */, int* /* y_return */, uint* /* width_return */, uint* /* height_return */ ); extern int XPeekEvent( Display* /* display */, XEvent* /* event_return */ ); extern int XPeekIfEvent( Display* /* display */, XEvent* /* event_return */, Bool function ( Display* /* display */, XEvent* /* event */, XPointer /* arg */ ) /* predicate */, XPointer /* arg */ ); extern int XPending( Display* /* display */ ); extern int XPlanesOfScreen( Screen* /* screen */ ); extern int XProtocolRevision( Display* /* display */ ); extern int XProtocolVersion( Display* /* display */ ); extern int XPutBackEvent( Display* /* display */, XEvent* /* event */ ); extern int XPutImage( Display* /* display */, Drawable /* d */, GC /* gc */, XImage* /* image */, int /* src_x */, int /* src_y */, int /* dest_x */, int /* dest_y */, uint /* width */, uint /* height */ ); extern int XQLength( Display* /* display */ ); extern Status XQueryBestCursor( Display* /* display */, Drawable /* d */, uint /* width */, uint /* height */, uint* /* width_return */, uint* /* height_return */ ); extern Status XQueryBestSize( Display* /* display */, int /* class */, Drawable /* which_screen */, uint /* width */, uint /* height */, uint* /* width_return */, uint* /* height_return */ ); extern Status XQueryBestStipple( Display* /* display */, Drawable /* which_screen */, uint /* width */, uint /* height */, uint* /* width_return */, uint* /* height_return */ ); extern Status XQueryBestTile( Display* /* display */, Drawable /* which_screen */, uint /* width */, uint /* height */, uint* /* width_return */, uint* /* height_return */ ); extern int XQueryColor( Display* /* display */, Colormap /* colormap */, XColor* /* def_in_out */ ); extern int XQueryColors( Display* /* display */, Colormap /* colormap */, XColor* /* defs_in_out */, int /* ncolors */ ); extern Bool XQueryExtension( Display* /* display */, byte* /* name */, int* /* major_opcode_return */, int* /* first_event_return */, int* /* first_error_return */ ); extern int XQueryKeymap( Display* /* display */, byte [32] /* keys_return */ ); extern Bool XQueryPointer( Display* /* display */, Window /* w */, Window* /* root_return */, Window* /* child_return */, int* /* root_x_return */, int* /* root_y_return */, int* /* win_x_return */, int* /* win_y_return */, uint* /* mask_return */ ); extern int XQueryTextExtents( Display* /* display */, XID /* font_ID */, char* /* string */, int /* nchars */, FontDrawDirection* /* direction_return */, int* /* font_ascent_return */, int* /* font_descent_return */, XCharStruct*/* overall_return */ ); extern int XQueryTextExtents16( Display* /* display */, XID /* font_ID */, XChar2b* /* string */, int /* nchars */, FontDrawDirection* /* direction_return */, int* /* font_ascent_return */, int* /* font_descent_return */, XCharStruct*/* overall_return */ ); extern Status XQueryTree( Display* /* display */, Window /* w */, Window* /* root_return */, Window* /* parent_return */, Window** /* children_return */, uint* /* nchildren_return */ ); extern int XRaiseWindow( Display* /* display */, Window /* w */ ); extern int XReadBitmapFile( Display* /* display */, Drawable /* d */, ubyte* /* filename */, uint* /* width_return */, uint* /* height_return */, Pixmap* /* bitmap_return */, int* /* x_hot_return */, int* /* y_hot_return */ ); extern int XReadBitmapFileData( byte* /* filename */, uint* /* width_return */, uint* /* height_return */, ubyte** /* data_return */, int* /* x_hot_return */, int* /* y_hot_return */ ); extern int XRebindKeysym( Display* /* display */, KeySym /* keysym */, KeySym* /* list */, int /* mod_count */, char* /* string */, int /* bytes_string */ ); extern int XRecolorCursor( Display* /* display */, Cursor /* cursor */, XColor* /* foreground_color */, XColor* /* background_color */ ); extern int XRefreshKeyboardMapping( XMappingEvent* /* event_map */ ); extern int XRemoveFromSaveSet( Display* /* display */, Window /* w */ ); extern int XRemoveHost( Display* /* display */, XHostAddress* /* host */ ); extern int XRemoveHosts( Display* /* display */, XHostAddress* /* hosts */, int /* num_hosts */ ); extern int XReparentWindow( Display* /* display */, Window /* w */, Window /* parent */, int /* x */, int /* y */ ); extern int XResetScreenSaver( Display* /* display */ ); extern int XResizeWindow( Display* /* display */, Window /* w */, uint /* width */, uint /* height */ ); extern int XRestackWindows( Display* /* display */, Window* /* windows */, int /* nwindows */ ); extern int XRotateBuffers( Display* /* display */, int /* rotate */ ); extern int XRotateWindowProperties( Display* /* display */, Window /* w */, Atom* /* properties */, int /* num_prop */, int /* npositions */ ); extern int XScreenCount( Display* /* display */ ); extern int XSelectInput( Display* /* display */, Window /* w */, EventMask /* event_mask */ ); extern Status XSendEvent( Display* /* display */, Window /* w */, Bool /* propagate */, EventMask /* event_mask */, XEvent* /* event_send */ ); extern int XSetAccessControl( Display* /* display */, HostAccess /* mode */ ); extern int XSetArcMode( Display* /* display */, GC /* gc */, ArcMode /* arc_mode */ ); extern int XSetBackground( Display* /* display */, GC /* gc */, ulong /* background */ ); extern int XSetClipMask( Display* /* display */, GC /* gc */, Pixmap /* pixmap */ ); extern int XSetClipOrigin( Display* /* display */, GC /* gc */, int /* clip_x_origin */, int /* clip_y_origin */ ); extern int XSetClipRectangles( Display* /* display */, GC /* gc */, int /* clip_x_origin */, int /* clip_y_origin */, XRectangle* /* rectangles */, int /* n */, int /* ordering */ ); extern int XSetCloseDownMode( Display* /* display */, int /* close_mode */ ); extern int XSetCommand( Display* /* display */, Window /* w */, byte** /* argv */, int /* argc */ ); extern int XSetDashes( Display* /* display */, GC /* gc */, int /* dash_offset */, byte* /* dash_list */, int /* n */ ); extern int XSetFillRule( Display* /* display */, GC /* gc */, FillRule /* fill_rule */ ); extern int XSetFillStyle( Display* /* display */, GC /* gc */, FillStyle /* fill_style */ ); extern int XSetFont( Display* /* display */, GC /* gc */, Font /* font */ ); extern int XSetFontPath( Display* /* display */, byte** /* directories */, int /* ndirs */ ); extern int XSetForeground( Display* /* display */, GC /* gc */, ulong /* foreground */ ); extern int XSetFunction( Display* /* display */, GC /* gc */, int /* function */ ); extern int XSetGraphicsExposures( Display* /* display */, GC /* gc */, Bool /* graphics_exposures */ ); extern int XSetIconName( Display* /* display */, Window /* w */, byte* /* icon_name */ ); extern int XSetInputFocus( Display* /* display */, Window /* focus */, int /* revert_to */, Time /* time */ ); extern int XSetLineAttributes( Display* /* display */, GC /* gc */, uint /* line_width */, LineStyle /* line_style */, CapStyle /* cap_style */, JoinStyle /* join_style */ ); extern int XSetModifierMapping( Display* /* display */, XModifierKeymap*/* modmap */ ); extern int XSetPlaneMask( Display* /* display */, GC /* gc */, ulong /* plane_mask */ ); extern int XSetPointerMapping( Display* /* display */, ubyte* /* map */, int /* nmap */ ); extern int XSetScreenSaver( Display* /* display */, int /* timeout */, int /* interval */, int /* prefer_blanking */, int /* allow_exposures */ ); extern int XSetSelectionOwner( Display* /* display */, Atom /* selection */, Window /* owner */, Time /* time */ ); extern int XSetState( Display* /* display */, GC /* gc */, ulong /* foreground */, ulong /* background */, GraphicFunction /* function */, ulong /* plane_mask */ ); extern int XSetStipple( Display* /* display */, GC /* gc */, Pixmap /* stipple */ ); extern int XSetSubwindowMode( Display* /* display */, GC /* gc */, int /* subwindow_mode */ ); extern int XSetTSOrigin( Display* /* display */, GC /* gc */, int /* ts_x_origin */, int /* ts_y_origin */ ); extern int XSetTile( Display* /* display */, GC /* gc */, Pixmap /* tile */ ); extern int XSetWindowBackground( Display* /* display */, Window /* w */, ulong /* background_pixel */ ); extern int XSetWindowBackgroundPixmap( Display* /* display */, Window /* w */, Pixmap /* background_pixmap */ ); extern int XSetWindowBorder( Display* /* display */, Window /* w */, ulong /* border_pixel */ ); extern int XSetWindowBorderPixmap( Display* /* display */, Window /* w */, Pixmap /* border_pixmap */ ); extern int XSetWindowBorderWidth( Display* /* display */, Window /* w */, uint /* width */ ); extern int XSetWindowColormap( Display* /* display */, Window /* w */, Colormap /* colormap */ ); extern int XStoreBuffer( Display* /* display */, byte* /* bytes */, int /* nbytes */, int /* buffer */ ); extern int XStoreBytes( Display* /* display */, byte* /* bytes */, int /* nbytes */ ); extern int XStoreColor( Display* /* display */, Colormap /* colormap */, XColor* /* color */ ); extern int XStoreColors( Display* /* display */, Colormap /* colormap */, XColor* /* color */, int /* ncolors */ ); extern int XStoreName( Display* /* display */, Window /* w */, char* /* window_name */ ); extern int XStoreNamedColor( Display* /* display */, Colormap /* colormap */, char* /* color */, ulong /* pixel */, StoreColor /* flags */ ); extern int XSync( Display* /* display */, Bool /* discard */ ); extern int XTextExtents( XFontStruct* /* font_struct */, char* /* string */, int /* nchars */, int* /* direction_return */, int* /* font_ascent_return */, int* /* font_descent_return */, XCharStruct* /* overall_return */ ); extern int XTextExtents16( XFontStruct* /* font_struct */, XChar2b* /* string */, int /* nchars */, FontDrawDirection* /* direction_return */, int* /* font_ascent_return */, int* /* font_descent_return */, XCharStruct* /* overall_return */ ); extern int XTextWidth( XFontStruct* /* font_struct */, char* /* string */, int /* count */ ); extern int XTextWidth16( XFontStruct* /* font_struct */, XChar2b* /* string */, int /* count */ ); extern Bool XTranslateCoordinates( Display* /* display */, Window /* src_w */, Window /* dest_w */, int /* src_x */, int /* src_y */, int* /* dest_x_return */, int* /* dest_y_return */, Window* /* child_return */ ); extern int XUndefineCursor( Display* /* display */, Window /* w */ ); extern int XUngrabButton( Display* /* display */, uint /* button */, KeyMask /* modifiers */, Window /* grab_window */ ); extern int XUngrabKey( Display* /* display */, int /* keycode */, KeyMask /* modifiers */, Window /* grab_window */ ); extern int XUngrabKeyboard( Display* /* display */, Time /* time */ ); extern int XUngrabPointer( Display* /* display */, Time /* time */ ); extern int XUngrabServer( Display* /* display */ ); extern int XUninstallColormap( Display* /* display */, Colormap /* colormap */ ); extern int XUnloadFont( Display* /* display */, Font /* font */ ); extern int XUnmapSubwindows( Display* /* display */, Window /* w */ ); extern int XUnmapWindow( Display* /* display */, Window /* w */ ); extern int XVendorRelease( Display* /* display */ ); extern int XWarpPointer( Display* /* display */, Window /* src_w */, Window /* dest_w */, int /* src_x */, int /* src_y */, uint /* src_width */, uint /* src_height */, int /* dest_x */, int /* dest_y */ ); extern int XWidthMMOfScreen( Screen* /* screen */ ); extern int XWidthOfScreen( Screen* /* screen */ ); extern int XWindowEvent( Display* /* display */, Window /* w */, EventMask /* event_mask */, XEvent* /* event_return */ ); extern int XWriteBitmapFile( Display* /* display */, byte* /* filename */, Pixmap /* bitmap */, uint /* width */, uint /* height */, int /* x_hot */, int /* y_hot */ ); extern Bool XSupportsLocale (); extern byte *XSetLocaleModifiers( byte* /* modifier_list */ ); extern XOM XOpenOM( Display* /* display */, XrmHashBucketRec* /* rdb */, byte* /* res_name */, byte* /* res_class */ ); extern Status XCloseOM( XOM /* om */ ); /+todo extern byte *XSetOMValues( XOM /* om */, ... ) _X_SENTINEL(0); extern byte *XGetOMValues( XOM /* om */, ... ) _X_SENTINEL(0); +/ extern Display *XDisplayOfOM( XOM /* om */ ); extern byte *XLocaleOfOM( XOM /* om */ ); /+todo extern XOC XCreateOC( XOM /* om */, ... ) _X_SENTINEL(0); +/ extern void XDestroyOC( XOC /* oc */ ); extern XOM XOMOfOC( XOC /* oc */ ); /+todo extern byte *XSetOCValues( XOC /* oc */, ... ) _X_SENTINEL(0); extern byte *XGetOCValues( XOC /* oc */, ... ) _X_SENTINEL(0); +/ extern XFontSet XCreateFontSet( Display* /* display */, byte* /* base_font_name_list */, byte*** /* missing_charset_list */, int* /* missing_charset_count */, char** /* def_string */ ); extern void XFreeFontSet( Display* /* display */, XFontSet /* font_set */ ); extern int XFontsOfFontSet( XFontSet /* font_set */, XFontStruct*** /* font_struct_list */, byte*** /* font_name_list */ ); extern byte *XBaseFontNameListOfFontSet( XFontSet /* font_set */ ); extern byte *XLocaleOfFontSet( XFontSet /* font_set */ ); extern Bool XContextDependentDrawing( XFontSet /* font_set */ ); extern Bool XDirectionalDependentDrawing( XFontSet /* font_set */ ); extern Bool XContextualDrawing( XFontSet /* font_set */ ); extern XFontSetExtents *XExtentsOfFontSet( XFontSet /* font_set */ ); extern int XmbTextEscapement( XFontSet /* font_set */, byte* /* text */, int /* bytes_text */ ); extern int XwcTextEscapement( XFontSet /* font_set */, wchar* /* text */, int /* num_wchars */ ); extern int Xutf8TextEscapement( XFontSet /* font_set */, char* /* text */, int /* bytes_text */ ); extern int XmbTextExtents( XFontSet /* font_set */, byte* /* text */, int /* bytes_text */, XRectangle* /* overall_ink_return */, XRectangle* /* overall_logical_return */ ); extern int XwcTextExtents( XFontSet /* font_set */, wchar* /* text */, int /* num_wchars */, XRectangle* /* overall_ink_return */, XRectangle* /* overall_logical_return */ ); extern int Xutf8TextExtents( XFontSet /* font_set */, char* /* text */, int /* bytes_text */, XRectangle* /* overall_ink_return */, XRectangle* /* overall_logical_return */ ); extern Status XmbTextPerCharExtents( XFontSet /* font_set */, byte* /* text */, int /* bytes_text */, XRectangle* /* ink_extents_buffer */, XRectangle* /* logical_extents_buffer */, int /* buffer_size */, int* /* num_chars */, XRectangle* /* overall_ink_return */, XRectangle* /* overall_logical_return */ ); extern Status XwcTextPerCharExtents( XFontSet /* font_set */, wchar* /* text */, int /* num_wchars */, XRectangle* /* ink_extents_buffer */, XRectangle* /* logical_extents_buffer */, int /* buffer_size */, int* /* num_chars */, XRectangle* /* overall_ink_return */, XRectangle* /* overall_logical_return */ ); extern Status Xutf8TextPerCharExtents( XFontSet /* font_set */, char* /* text */, int /* bytes_text */, XRectangle* /* ink_extents_buffer */, XRectangle* /* logical_extents_buffer */, int /* buffer_size */, int* /* num_chars */, XRectangle* /* overall_ink_return */, XRectangle* /* overall_logical_return */ ); extern void XmbDrawText( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, XmbTextItem* /* text_items */, int /* nitems */ ); extern void XwcDrawText( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, XwcTextItem* /* text_items */, int /* nitems */ ); extern void Xutf8DrawText( Display* /* display */, Drawable /* d */, GC /* gc */, int /* x */, int /* y */, XmbTextItem* /* text_items */, int /* nitems */ ); extern void XmbDrawString( Display* /* display */, Drawable /* d */, XFontSet /* font_set */, GC /* gc */, int /* x */, int /* y */, char* /* text */, int /* bytes_text */ ); extern void XwcDrawString( Display* /* display */, Drawable /* d */, XFontSet /* font_set */, GC /* gc */, int /* x */, int /* y */, wchar* /* text */, int /* num_wchars */ ); extern void Xutf8DrawString( Display* /* display */, Drawable /* d */, XFontSet /* font_set */, GC /* gc */, int /* x */, int /* y */, char* /* text */, int /* bytes_text */ ); extern void XmbDrawImageString( Display* /* display */, Drawable /* d */, XFontSet /* font_set */, GC /* gc */, int /* x */, int /* y */, char* /* text */, int /* bytes_text */ ); extern void XwcDrawImageString( Display* /* display */, Drawable /* d */, XFontSet /* font_set */, GC /* gc */, int /* x */, int /* y */, wchar* /* text */, int /* num_wchars */ ); extern void Xutf8DrawImageString( Display* /* display */, Drawable /* d */, XFontSet /* font_set */, GC /* gc */, int /* x */, int /* y */, char* /* text */, int /* bytes_text */ ); extern XIM XOpenIM( Display* /* dpy */, XrmHashBucketRec* /* rdb */, byte* /* res_name */, byte* /* res_class */ ); extern Status XCloseIM( XIM /* im */ ); /+todo extern byte *XGetIMValues( XIM /* im */, ... ) _X_SENTINEL(0); extern byte *XSetIMValues( XIM /* im */, ... ) _X_SENTINEL(0); +/ extern Display *XDisplayOfIM( XIM /* im */ ); extern byte *XLocaleOfIM( XIM /* im*/ ); /+todo extern XIC XCreateIC( XIM /* im */, ... ) _X_SENTINEL(0); +/ extern void XDestroyIC( XIC /* ic */ ); extern void XSetICFocus( XIC /* ic */ ); extern void XUnsetICFocus( XIC /* ic */ ); extern wchar *XwcResetIC( XIC /* ic */ ); extern byte *XmbResetIC( XIC /* ic */ ); extern byte *Xutf8ResetIC( XIC /* ic */ ); /+todo extern byte *XSetICValues( XIC /* ic */, ... ) _X_SENTINEL(0); extern byte *XGetICValues( XIC /* ic */, ... ) _X_SENTINEL(0); +/ extern XIM XIMOfIC( XIC /* ic */ ); extern Bool XFilterEvent( XEvent* /* event */, Window /* window */ ); extern int XmbLookupString( XIC /* ic */, XKeyPressedEvent* /* event */, char* /* buffer_return */, int /* bytes_buffer */, KeySym* /* keysym_return */, Status* /* status_return */ ); extern int XwcLookupString( XIC /* ic */, XKeyPressedEvent* /* event */, wchar* /* buffer_return */, int /* wchars_buffer */, KeySym* /* keysym_return */, Status* /* status_return */ ); extern int Xutf8LookupString( XIC /* ic */, XKeyPressedEvent* /* event */, char* /* buffer_return */, int /* bytes_buffer */, KeySym* /* keysym_return */, Status* /* status_return */ ); /+todo extern XVaNestedList XVaCreateNestedList( int /*unused*/, ... ) _X_SENTINEL(0); +/ /* internal connections for IMs */ extern Bool XRegisterIMInstantiateCallback( Display* /* dpy */, XrmHashBucketRec* /* rdb */, byte* /* res_name */, byte* /* res_class */, XIDProc /* callback */, XPointer /* client_data */ ); extern Bool XUnregisterIMInstantiateCallback( Display* /* dpy */, XrmHashBucketRec* /* rdb */, byte* /* res_name */, byte* /* res_class */, XIDProc /* callback */, XPointer /* client_data */ ); alias XConnectionWatchProc = void function( Display* /* dpy */, XPointer /* client_data */, int /* fd */, Bool /* opening */, /* open or close flag */ XPointer* /* watch_data */ /* open sets, close uses */ ); extern Status XInternalConnectionNumbers( Display* /* dpy */, int** /* fd_return */, int* /* count_return */ ); extern void XProcessInternalConnection( Display* /* dpy */, int /* fd */ ); extern Status XAddConnectionWatch( Display* /* dpy */, XConnectionWatchProc /* callback */, XPointer /* client_data */ ); extern void XRemoveConnectionWatch( Display* /* dpy */, XConnectionWatchProc /* callback */, XPointer /* client_data */ ); extern void XSetAuthorization( byte * /* name */, int /* namelen */, byte * /* data */, int /* datalen */ ); extern int _Xmbtowc( wchar * /* wstr */, byte * /* str */, int /* len */ ); extern int _Xwctomb( byte * /* str */, wchar /* wc */ ); }