1389 lines
41 KiB
Factor
1389 lines
41 KiB
Factor
! Copyright (C) 2005, 2006 Eduardo Cavazos
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
!
|
|
! The most popular guides to programming the X Window System are
|
|
! the series from Oreilly. For programming with Xlib, there is
|
|
! the reference manual and the programmers guide. However, a
|
|
! lesser known manual is the free Xlib manual that comes with
|
|
! the MIT X distribution. The arrangement and order of these
|
|
! bindings follows the structure of the free Xlib manual. If you
|
|
! add to this library and are wondering what part of the file to
|
|
! modify, just find the function or data structure in the manual
|
|
! and note the section.
|
|
!
|
|
! https://www.x.org/releases/X11R7.6/doc/libX11/specs/libX11/libX11.html
|
|
USING: accessors alien.c-types alien.data alien.syntax classes.struct
|
|
io.encodings.ascii kernel literals math x11.X x11.syntax ;
|
|
FROM: alien.c-types => short ;
|
|
IN: x11.xlib
|
|
|
|
LIBRARY: xlib
|
|
|
|
TYPEDEF: c-string XPointer
|
|
C-TYPE: Screen
|
|
TYPEDEF: void* GC
|
|
C-TYPE: Visual
|
|
C-TYPE: XExtData
|
|
C-TYPE: XFontProp
|
|
C-TYPE: XComposeStatus
|
|
TYPEDEF: void* XIM
|
|
TYPEDEF: void* XIC
|
|
|
|
TYPEDEF: int Status
|
|
|
|
TYPEDEF: int Bool
|
|
|
|
TYPEDEF: ulong VisualID
|
|
TYPEDEF: ulong Time
|
|
|
|
: *XID ( bytes -- n ) ulong deref ;
|
|
ALIAS: *Window *XID
|
|
ALIAS: *Drawable *XID
|
|
ALIAS: *KeySym *XID
|
|
: *Atom ( bytes -- n ) ulong deref ;
|
|
!
|
|
! 2 - Display Functions
|
|
!
|
|
|
|
! This struct is incomplete
|
|
STRUCT: Display
|
|
{ ext_data void* }
|
|
{ free_funcs void* }
|
|
{ fd int } ;
|
|
|
|
X-FUNCTION: Display* XOpenDisplay ( c-string[ascii] display_name )
|
|
|
|
! 2.2 Obtaining Information about the Display, Image Formats, or Screens
|
|
|
|
X-FUNCTION: ulong XBlackPixel ( Display* display, int screen_number )
|
|
X-FUNCTION: ulong XWhitePixel ( Display* display, int screen_number )
|
|
X-FUNCTION: Colormap XDefaultColormap ( Display* display, int screen_number )
|
|
X-FUNCTION: int XDefaultDepth ( Display* display, int screen_number )
|
|
X-FUNCTION: GC XDefaultGC ( Display* display, int screen_number )
|
|
X-FUNCTION: int XDefaultScreen ( Display* display )
|
|
X-FUNCTION: Window XRootWindow ( Display* display, int screen_number )
|
|
X-FUNCTION: Window XDefaultRootWindow ( Display* display )
|
|
X-FUNCTION: int XProtocolVersion ( Display* display )
|
|
X-FUNCTION: int XProtocolRevision ( Display* display )
|
|
X-FUNCTION: int XQLength ( Display* display )
|
|
X-FUNCTION: int XScreenCount ( Display* display )
|
|
X-FUNCTION: int XConnectionNumber ( Display* display )
|
|
|
|
! 2.5 Closing the Display
|
|
X-FUNCTION: int XCloseDisplay ( Display* display )
|
|
|
|
!
|
|
! 3 - Window Functions
|
|
!
|
|
|
|
! 3.2 - Window Attributes
|
|
|
|
: CWBackPixmap ( -- n ) 0 2^ ; inline
|
|
: CWBackPixel ( -- n ) 1 2^ ; inline
|
|
: CWBorderPixmap ( -- n ) 2 2^ ; inline
|
|
: CWBorderPixel ( -- n ) 3 2^ ; inline
|
|
: CWBitGravity ( -- n ) 4 2^ ; inline
|
|
: CWWinGravity ( -- n ) 5 2^ ; inline
|
|
: CWBackingStore ( -- n ) 6 2^ ; inline
|
|
: CWBackingPlanes ( -- n ) 7 2^ ; inline
|
|
: CWBackingPixel ( -- n ) 8 2^ ; inline
|
|
: CWOverrideRedirect ( -- n ) 9 2^ ; inline
|
|
: CWSaveUnder ( -- n ) 10 2^ ; inline
|
|
: CWEventMask ( -- n ) 11 2^ ; inline
|
|
: CWDontPropagate ( -- n ) 12 2^ ; inline
|
|
: CWColormap ( -- n ) 13 2^ ; inline
|
|
: CWCursor ( -- n ) 14 2^ ; inline
|
|
|
|
STRUCT: XSetWindowAttributes
|
|
{ background_pixmap Pixmap }
|
|
{ background_pixel ulong }
|
|
{ border_pixmap Pixmap }
|
|
{ border_pixel ulong }
|
|
{ bit_gravity int }
|
|
{ win_gravity int }
|
|
{ backing_store int }
|
|
{ backing_planes ulong }
|
|
{ backing_pixel ulong }
|
|
{ save_under Bool }
|
|
{ event_mask long }
|
|
{ do_not_propagate_mask long }
|
|
{ override_redirect Bool }
|
|
{ colormap Colormap }
|
|
{ cursor Cursor } ;
|
|
|
|
! 3.3 - Creating Windows
|
|
|
|
X-FUNCTION: Window XCreateWindow ( Display* display,
|
|
Window parent,
|
|
int x, int y, uint width, uint height,
|
|
uint border_width, int depth, uint class,
|
|
Visual* visual, ulong valuemask,
|
|
XSetWindowAttributes* attributes )
|
|
X-FUNCTION: Window XCreateSimpleWindow ( Display* display,
|
|
Window parent,
|
|
int x, int y, uint width, uint height,
|
|
uint border_width, ulong border,
|
|
ulong background )
|
|
X-FUNCTION: Status XDestroyWindow ( Display* display, Window w )
|
|
X-FUNCTION: Status XMapWindow ( Display* display, Window window )
|
|
X-FUNCTION: Status XMapSubwindows ( Display* display, Window window )
|
|
X-FUNCTION: Status XUnmapWindow ( Display* display, Window w )
|
|
X-FUNCTION: Status XUnmapSubwindows ( Display* display, Window w )
|
|
|
|
! 3.5 Mapping Windows
|
|
|
|
X-FUNCTION: int XMapRaised ( Display* display, Window w )
|
|
|
|
! 3.7 - Configuring Windows
|
|
|
|
STRUCT: XWindowChanges
|
|
{ x int }
|
|
{ y int }
|
|
{ width int }
|
|
{ height int }
|
|
{ border_width int }
|
|
{ sibling Window }
|
|
{ stack_mode int } ;
|
|
|
|
X-FUNCTION: Status XConfigureWindow ( Display* display,
|
|
Window w,
|
|
uint value_mask, XWindowChanges* values )
|
|
X-FUNCTION: Status XMoveWindow ( Display* display, Window w,
|
|
int x, int y )
|
|
X-FUNCTION: Status XResizeWindow ( Display* display,
|
|
Window w,
|
|
uint width,
|
|
uint height )
|
|
X-FUNCTION: Status XSetWindowBorderWidth ( Display* display,
|
|
ulong w,
|
|
uint width )
|
|
|
|
|
|
! 3.8 Changing Window Stacking Order
|
|
|
|
X-FUNCTION: Status XRaiseWindow ( Display* display, Window w )
|
|
X-FUNCTION: Status XLowerWindow ( Display* display, Window w )
|
|
|
|
! 3.9 - Changing Window Attributes
|
|
|
|
X-FUNCTION: Status XChangeWindowAttributes ( Display* display,
|
|
Window w,
|
|
ulong valuemask,
|
|
XSetWindowAttributes* attr )
|
|
X-FUNCTION: Status XSetWindowBackground ( Display* display,
|
|
Window w, ulong background_pixel )
|
|
X-FUNCTION: Status XDefineCursor ( Display* display, Window w, Cursor cursor )
|
|
X-FUNCTION: Status XUndefineCursor ( Display* display, Window w )
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 4 - Window Information Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
! 4.1 - Obtaining Window Information
|
|
|
|
X-FUNCTION: Status XQueryTree ( Display* display,
|
|
Window w,
|
|
Window* root_return,
|
|
Window* parent_return,
|
|
Window** children_return,
|
|
uint* nchildren_return )
|
|
|
|
STRUCT: XWindowAttributes
|
|
{ x int }
|
|
{ y int }
|
|
{ width int }
|
|
{ height int }
|
|
{ border_width int }
|
|
{ depth int }
|
|
{ visual Visual* }
|
|
{ root Window }
|
|
{ class int }
|
|
{ bit_gravity int }
|
|
{ win_gravity int }
|
|
{ backing_store int }
|
|
{ backing_planes ulong }
|
|
{ backing_pixel ulong }
|
|
{ save_under Bool }
|
|
{ colormap Colormap }
|
|
{ map_installed Bool }
|
|
{ map_state int }
|
|
{ all_event_masks long }
|
|
{ your_event_mask long }
|
|
{ do_not_propagate_mask long }
|
|
{ override_redirect Bool }
|
|
{ screen Screen* } ;
|
|
|
|
X-FUNCTION: Status XGetWindowAttributes ( Display* display,
|
|
Window w,
|
|
XWindowAttributes* attr )
|
|
|
|
X-FUNCTION: 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 )
|
|
|
|
! 4.2 - Translating Screen Coordinates
|
|
|
|
X-FUNCTION: 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 )
|
|
|
|
! 4.3 - Properties and Atoms
|
|
|
|
X-FUNCTION: Atom XInternAtom ( Display* display,
|
|
c-string atom_name,
|
|
Bool only_if_exists )
|
|
|
|
X-FUNCTION: c-string XGetAtomName ( Display* display, Atom atom )
|
|
|
|
! 4.4 - Obtaining and Changing Window Properties
|
|
|
|
X-FUNCTION: 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,
|
|
c-string* prop_return )
|
|
|
|
X-FUNCTION: int XChangeProperty ( Display* display, Window w, Atom property,
|
|
Atom type, int format,
|
|
int mode, void* data, int nelements )
|
|
|
|
! 4.5 Selections
|
|
|
|
X-FUNCTION: int XSetSelectionOwner ( Display* display,
|
|
Atom selection,
|
|
Window owner,
|
|
Time time )
|
|
|
|
X-FUNCTION: Window XGetSelectionOwner ( Display* display, Atom selection )
|
|
|
|
X-FUNCTION: int XConvertSelection ( Display* display,
|
|
Atom selection,
|
|
Atom target,
|
|
Atom property,
|
|
Window requestor,
|
|
Time time )
|
|
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 5 - Pixmap and Cursor Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
! 5.1 - Creating and Freeing Pixmaps
|
|
|
|
X-FUNCTION: Pixmap XCreatePixmap ( Display* display,
|
|
Drawable d,
|
|
uint width, uint height, uint depth )
|
|
X-FUNCTION: int XFreePixmap ( Display* display, Pixmap pixmap )
|
|
|
|
! 5.2 - Creating, Recoloring, and Freeing Cursors
|
|
|
|
C-TYPE: XColor
|
|
X-FUNCTION: Cursor XCreatePixmapCursor ( Display* display,
|
|
Pixmap source, Pixmap mask,
|
|
XColor* foreground_color,
|
|
XColor* background_color,
|
|
uint x, uint y )
|
|
X-FUNCTION: int XFreeCursor ( Display* display, Cursor cursor )
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 6 - Color Management Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XColor
|
|
{ pixel ulong }
|
|
{ red ushort }
|
|
{ green ushort }
|
|
{ blue ushort }
|
|
{ flags char }
|
|
{ pad char } ;
|
|
|
|
X-FUNCTION: Status XLookupColor ( Display* display,
|
|
Colormap colormap,
|
|
c-string color_name,
|
|
XColor* exact_def_return,
|
|
XColor* screen_def_return )
|
|
X-FUNCTION: Status XAllocColor ( Display* display, Colormap colormap, XColor* screen_in_out )
|
|
X-FUNCTION: Status XQueryColor ( Display* display, Colormap colormap, XColor* def_in_out )
|
|
|
|
! 6.4 Creating, Copying, and Destroying Colormaps
|
|
|
|
X-FUNCTION: Colormap XCreateColormap ( Display* display, Window w, Visual* visual, int alloc )
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 7 - Graphics Context Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XGCValues
|
|
{ function int }
|
|
{ plane_mask ulong }
|
|
{ foreground ulong }
|
|
{ background ulong }
|
|
{ line_width int }
|
|
{ line_style int }
|
|
{ cap_style int }
|
|
{ join_style int }
|
|
{ fill_style int }
|
|
{ fill_rule int }
|
|
{ arc_mode int }
|
|
{ tile Pixmap }
|
|
{ stipple Pixmap }
|
|
{ ts_x_origin int }
|
|
{ ts_y_origin int }
|
|
{ font Font }
|
|
{ subwindow_mode int }
|
|
{ graphics_exposures Bool }
|
|
{ clip_x_origin int }
|
|
{ clip_y_origin int }
|
|
{ clip_mask Pixmap }
|
|
{ dash_offset int }
|
|
{ dashes char } ;
|
|
|
|
X-FUNCTION: GC XCreateGC ( Display* display, Window d, ulong valuemask, XGCValues* values )
|
|
X-FUNCTION: int XChangeGC ( Display* display, GC gc, ulong valuemask, XGCValues* values )
|
|
X-FUNCTION: Status XGetGCValues ( Display* display, GC gc, ulong valuemask, XGCValues* values_return )
|
|
X-FUNCTION: Status XSetForeground ( Display* display, GC gc, ulong foreground )
|
|
X-FUNCTION: Status XSetBackground ( Display* display, GC gc, ulong background )
|
|
X-FUNCTION: Status XSetFunction ( Display* display, GC gc, int function )
|
|
X-FUNCTION: Status XSetSubwindowMode ( Display* display, GC gc, int subwindow_mode )
|
|
|
|
X-FUNCTION: GContext XGContextFromGC ( GC gc )
|
|
|
|
X-FUNCTION: Status XSetFont ( Display* display, GC gc, Font font )
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 8 - Graphics Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
X-FUNCTION: Status XClearWindow ( Display* display, Window w )
|
|
X-FUNCTION: Status XDrawPoint ( Display* display, Drawable d, GC gc, int x, int y )
|
|
X-FUNCTION: Status XDrawLine ( Display* display, Drawable d, GC gc, int x1, int y1, int x2, int y2 )
|
|
X-FUNCTION: Status XDrawArc ( Display* display, Drawable d, GC gc, int x, int y, uint width, uint height, int angle1, int angle2 )
|
|
X-FUNCTION: Status XFillArc ( Display* display, Drawable d, GC gc, int x, int y, uint width, uint height, int angle1, int angle2 )
|
|
|
|
! 8.5 - Font Metrics
|
|
|
|
STRUCT: XCharStruct
|
|
{ lbearing short }
|
|
{ rbearing short }
|
|
{ width short }
|
|
{ ascent short }
|
|
{ descent short }
|
|
{ attributes ushort } ;
|
|
|
|
STRUCT: XFontStruct
|
|
{ ext_data XExtData* }
|
|
{ fid Font }
|
|
{ direction uint }
|
|
{ min_char_or_byte2 uint }
|
|
{ max_char_or_byte2 uint }
|
|
{ min_byte1 uint }
|
|
{ max_byte1 uint }
|
|
{ all_chars_exist Bool }
|
|
{ default_char uint }
|
|
{ n_properties int }
|
|
{ properties XFontProp* }
|
|
{ min_bounds XCharStruct }
|
|
{ max_bounds XCharStruct }
|
|
{ per_char XCharStruct* }
|
|
{ ascent int }
|
|
{ descent int } ;
|
|
|
|
X-FUNCTION: Font XLoadFont ( Display* display, c-string name )
|
|
X-FUNCTION: XFontStruct* XQueryFont ( Display* display, XID font_ID )
|
|
X-FUNCTION: XFontStruct* XLoadQueryFont ( Display* display, c-string name )
|
|
|
|
X-FUNCTION: int XTextWidth ( XFontStruct* font_struct, c-string string, int count )
|
|
|
|
! 8.6 - Drawing Text
|
|
|
|
X-FUNCTION: Status XDrawString (
|
|
Display* display,
|
|
Drawable d,
|
|
GC gc,
|
|
int x,
|
|
int y,
|
|
c-string string,
|
|
int length )
|
|
|
|
! 8.7 - Transferring Images between Client and Server
|
|
|
|
CONSTANT: AllPlanes -1
|
|
|
|
STRUCT: XImage-funcs
|
|
{ create_image void* }
|
|
{ destroy_image void* }
|
|
{ get_pixel void* }
|
|
{ put_pixel void* }
|
|
{ sub_image void* }
|
|
{ add_pixel void* } ;
|
|
|
|
STRUCT: XImage
|
|
{ width int }
|
|
{ height int }
|
|
{ xoffset int }
|
|
{ format int }
|
|
{ data uchar* }
|
|
{ byte_order int }
|
|
{ bitmap_unit int }
|
|
{ bitmap_bit_order int }
|
|
{ bitmap_pad int }
|
|
{ depth int }
|
|
{ bytes_per_line int }
|
|
{ bits_per_pixel int }
|
|
{ red_mask ulong }
|
|
{ green_mask ulong }
|
|
{ blue_mask ulong }
|
|
{ obdata XPointer }
|
|
{ f XImage-funcs } ;
|
|
|
|
X-FUNCTION: XImage* XGetImage ( Display* display, Drawable d, int x, int y, uint width, uint height, ulong plane_mask, int format )
|
|
X-FUNCTION: int XDestroyImage ( XImage* ximage )
|
|
|
|
: XImage-size ( ximage -- size )
|
|
[ height>> ] [ bytes_per_line>> ] bi * ;
|
|
|
|
: XImage-pixels ( ximage -- byte-array )
|
|
[ data>> ] [ XImage-size ] bi memory>byte-array ;
|
|
|
|
!
|
|
! 9 - Window and Session Manager Functions
|
|
!
|
|
|
|
X-FUNCTION: Status XReparentWindow ( Display* display, Window w, Window parent, int x, int y )
|
|
X-FUNCTION: Status XAddToSaveSet ( Display* display, Window w )
|
|
X-FUNCTION: Status XRemoveFromSaveSet ( Display* display, Window w )
|
|
X-FUNCTION: Status XGrabServer ( Display* display )
|
|
X-FUNCTION: Status XUngrabServer ( Display* display )
|
|
X-FUNCTION: Status XKillClient ( Display* display, XID resource )
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 10 - Events
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
! 10.3 - Event Masks
|
|
|
|
STRUCT: XAnyEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
! 10.5 Keyboard and Pointer Events
|
|
|
|
STRUCT: XButtonEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ root Window }
|
|
{ subwindow Window }
|
|
{ time Time }
|
|
{ x int }
|
|
{ y int }
|
|
{ x_root int }
|
|
{ y_root int }
|
|
{ state uint }
|
|
{ button uint }
|
|
{ same_screen Bool } ;
|
|
|
|
TYPEDEF: XButtonEvent XButtonPressedEvent
|
|
TYPEDEF: XButtonEvent XButtonReleasedEvent
|
|
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XKeyEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ root Window }
|
|
{ subwindow Window }
|
|
{ time Time }
|
|
{ x int }
|
|
{ y int }
|
|
{ x_root int }
|
|
{ y_root int }
|
|
{ state uint }
|
|
{ keycode uint }
|
|
{ same_screen Bool } ;
|
|
|
|
TYPEDEF: XKeyEvent XKeyPressedEvent
|
|
TYPEDEF: XKeyEvent XKeyReleasedEvent
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XMotionEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ root Window }
|
|
{ subwindow Window }
|
|
{ time Time }
|
|
{ x int }
|
|
{ y int }
|
|
{ x_root int }
|
|
{ y_root int }
|
|
{ state uint }
|
|
{ is_hint char }
|
|
{ same_screen Bool } ;
|
|
|
|
TYPEDEF: XMotionEvent XPointerMovedEvent
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XCrossingEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ root Window }
|
|
{ subwindow Window }
|
|
{ time Time }
|
|
{ x int }
|
|
{ y int }
|
|
{ x_root int }
|
|
{ y_root int }
|
|
{ mode int }
|
|
{ detail int }
|
|
{ same_screen Bool }
|
|
{ focus Bool }
|
|
{ state uint } ;
|
|
|
|
TYPEDEF: XCrossingEvent XEnterWindowEvent
|
|
TYPEDEF: XCrossingEvent XLeaveWindowEvent
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XFocusChangeEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ mode int }
|
|
{ detail int } ;
|
|
|
|
TYPEDEF: XFocusChangeEvent XFocusInEvent
|
|
TYPEDEF: XFocusChangeEvent XFocusOutEvent
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XExposeEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ x int }
|
|
{ y int }
|
|
{ width int }
|
|
{ height int }
|
|
{ count int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XGraphicsExposeEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ drawable Drawable }
|
|
{ x int }
|
|
{ y int }
|
|
{ width int }
|
|
{ height int }
|
|
{ count int }
|
|
{ major_code int }
|
|
{ minor_code int } ;
|
|
|
|
STRUCT: XNoExposeEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ drawable Drawable }
|
|
{ major_code int }
|
|
{ minor_code int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XVisibilityEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ state int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XCreateWindowEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ parent Window }
|
|
{ window Window }
|
|
{ x int }
|
|
{ y int }
|
|
{ width int }
|
|
{ height int }
|
|
{ border_width int }
|
|
{ override_redirect Bool } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XDestroyWindowEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ event Window }
|
|
{ window Window } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XUnmapEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ event Window }
|
|
{ window Window }
|
|
{ from_configure Bool } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XMapEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ event Window }
|
|
{ window Window }
|
|
{ override_redirect Bool } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XMapRequestEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ parent Window }
|
|
{ window Window } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XReparentEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ event Window }
|
|
{ window Window }
|
|
{ parent Window }
|
|
{ x int }
|
|
{ y int }
|
|
{ override_redirect Bool } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XConfigureEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ event Window }
|
|
{ window Window }
|
|
{ x int }
|
|
{ y int }
|
|
{ width int }
|
|
{ height int }
|
|
{ border_width int }
|
|
{ above Window }
|
|
{ override_redirect Bool } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XGravityEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ event Window }
|
|
{ window Window }
|
|
{ x int }
|
|
{ y int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XResizeRequestEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ width int }
|
|
{ height int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XConfigureRequestEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ parent Window }
|
|
{ window Window }
|
|
{ x int }
|
|
{ y int }
|
|
{ width int }
|
|
{ height int }
|
|
{ border_width int }
|
|
{ above Window }
|
|
{ detail int }
|
|
{ value_mask ulong } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XCirculateEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ event Window }
|
|
{ window Window }
|
|
{ place int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XCirculateRequestEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ parent Window }
|
|
{ window Window }
|
|
{ place int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XPropertyEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ atom Atom }
|
|
{ time Time }
|
|
{ state int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XSelectionClearEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ selection Atom }
|
|
{ time Time } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XSelectionRequestEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ owner Window }
|
|
{ requestor Window }
|
|
{ selection Atom }
|
|
{ target Atom }
|
|
{ property Atom }
|
|
{ time Time } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XSelectionEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ requestor Window }
|
|
{ selection Atom }
|
|
{ target Atom }
|
|
{ property Atom }
|
|
{ time Time } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XColormapEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ colormap Colormap }
|
|
{ new Bool }
|
|
{ state int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XClientMessageEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ message_type Atom }
|
|
{ format int }
|
|
{ data0 long }
|
|
{ data1 long }
|
|
{ data2 long }
|
|
{ data3 long }
|
|
{ data4 long } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XMappingEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ request int }
|
|
{ first_keycode int }
|
|
{ count int } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XErrorEvent
|
|
{ type int }
|
|
{ display Display* }
|
|
{ resourceid XID }
|
|
{ serial ulong }
|
|
{ error_code uchar }
|
|
{ request_code uchar }
|
|
{ minor_code uchar } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
STRUCT: XKeymapEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ window Window }
|
|
{ pad int[8] } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
! Newer things, needed for XInput2 support. Not in the book.
|
|
|
|
! GenericEvent is the standard event for all newer extensions.
|
|
STRUCT: XGenericEvent
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ extension int }
|
|
{ evtype int } ;
|
|
|
|
STRUCT: XGenericEventCookie
|
|
{ type int }
|
|
{ serial ulong }
|
|
{ send_event Bool }
|
|
{ display Display* }
|
|
{ extension int }
|
|
{ evtype int }
|
|
{ cookie uint }
|
|
{ data void* } ;
|
|
|
|
X-FUNCTION: Bool XGetEventData ( Display* dpy, XGenericEventCookie* cookie )
|
|
X-FUNCTION: void XFreeEventData ( Display* dpy, XGenericEventCookie* cookie )
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
UNION-STRUCT: XEvent
|
|
{ int int }
|
|
{ XAnyEvent XAnyEvent }
|
|
{ XKeyEvent XKeyEvent }
|
|
{ XButtonEvent XButtonEvent }
|
|
{ XMotionEvent XMotionEvent }
|
|
{ XCrossingEvent XCrossingEvent }
|
|
{ XFocusChangeEvent XFocusChangeEvent }
|
|
{ XExposeEvent XExposeEvent }
|
|
{ XGraphicsExposeEvent XGraphicsExposeEvent }
|
|
{ XNoExposeEvent XNoExposeEvent }
|
|
{ XVisibilityEvent XVisibilityEvent }
|
|
{ XCreateWindowEvent XCreateWindowEvent }
|
|
{ XDestroyWindowEvent XDestroyWindowEvent }
|
|
{ XUnmapEvent XUnmapEvent }
|
|
{ XMapEvent XMapEvent }
|
|
{ XMapRequestEvent XMapRequestEvent }
|
|
{ XReparentEvent XReparentEvent }
|
|
{ XConfigureEvent XConfigureEvent }
|
|
{ XGravityEvent XGravityEvent }
|
|
{ XResizeRequestEvent XResizeRequestEvent }
|
|
{ XConfigureRequestEvent XConfigureRequestEvent }
|
|
{ XCirculateEvent XCirculateEvent }
|
|
{ XCirculateRequestEvent XCirculateRequestEvent }
|
|
{ XPropertyEvent XPropertyEvent }
|
|
{ XSelectionClearEvent XSelectionClearEvent }
|
|
{ XSelectionRequestEvent XSelectionRequestEvent }
|
|
{ XSelectionEvent XSelectionEvent }
|
|
{ XColormapEvent XColormapEvent }
|
|
{ XClientMessageEvent XClientMessageEvent }
|
|
{ XMappingEvent XMappingEvent }
|
|
{ XErrorEvent XErrorEvent }
|
|
{ XKeymapEvent XKeymapEvent }
|
|
{ XGenericEvent XGenericEvent }
|
|
{ XGenericEventCookie XGenericEventCookie }
|
|
{ padding long[24] } ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 11 - Event Handling Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
X-FUNCTION: Status XSelectInput ( Display* display, Window w, long event_mask )
|
|
X-FUNCTION: Status XFlush ( Display* display )
|
|
X-FUNCTION: Status XSync ( Display* display, int discard )
|
|
X-FUNCTION: Status XNextEvent ( Display* display, XEvent* event )
|
|
X-FUNCTION: Status XMaskEvent ( Display* display,
|
|
long event_mask,
|
|
XEvent* event_return )
|
|
|
|
! 11.3 - Event Queue Management
|
|
|
|
CONSTANT: QueuedAlready 0
|
|
CONSTANT: QueuedAfterReading 1
|
|
CONSTANT: QueuedAfterFlush 2
|
|
|
|
X-FUNCTION: int XEventsQueued ( Display* display, int mode )
|
|
X-FUNCTION: int XPending ( Display* display )
|
|
|
|
! 11.6 - Sending Events to Other Applications
|
|
|
|
X-FUNCTION: Status XSendEvent ( Display* display,
|
|
Window w,
|
|
Bool propagate,
|
|
long event_mask,
|
|
XEvent* event_send )
|
|
|
|
! 11.8 - Handling Protocol Errors
|
|
|
|
X-FUNCTION: int XSetErrorHandler ( void* handler )
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 12 - Input Device Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
X-FUNCTION: int XGrabPointer (
|
|
Display* display,
|
|
Window grab_window,
|
|
Bool owner_events,
|
|
uint event_mask,
|
|
int pointer_mode,
|
|
int keyboard_mode,
|
|
Window confine_to,
|
|
Cursor cursor,
|
|
Time time
|
|
)
|
|
|
|
X-FUNCTION: Status XUngrabPointer ( Display* display, Time time )
|
|
X-FUNCTION: Status XChangeActivePointerGrab ( Display* display, uint event_mask, Cursor cursor, Time time )
|
|
X-FUNCTION: Status XGrabKey (
|
|
Display* display, int keycode, uint modifiers,
|
|
Window grab_window, Bool owner_events,
|
|
int pointer_mode, int keyboard_mode
|
|
)
|
|
X-FUNCTION: int XGrabKeyboard (
|
|
Display* display, Window grab_window,
|
|
Bool owner_events,
|
|
int pointer_mode, int keyboard_mode, Time time
|
|
)
|
|
X-FUNCTION: Status XSetInputFocus ( Display* display, Window focus, int revert_to, Time time )
|
|
|
|
X-FUNCTION: Status XGetInputFocus (
|
|
Display* display,
|
|
Window* focus_return,
|
|
int* revert_to_return
|
|
)
|
|
|
|
X-FUNCTION: Status 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
|
|
)
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 14 - Inter-Client Communication Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
! 14.1 Client to Window Manager Communication
|
|
|
|
X-FUNCTION: Status XFetchName ( Display* display, Window w, c-string* window_name_return )
|
|
X-FUNCTION: Status XGetTransientForHint ( Display* display, Window w, Window* prop_window_return )
|
|
|
|
! 14.1.1. Manipulating Top-Level Windows
|
|
|
|
X-FUNCTION: Status XIconifyWindow (
|
|
Display* display,
|
|
Window w,
|
|
int screen_number
|
|
)
|
|
|
|
X-FUNCTION: Status XWithdrawWindow (
|
|
Display* display,
|
|
Window w,
|
|
int screen_number
|
|
)
|
|
|
|
! 14.1.6 - Setting and Reading the WM_HINTS Property
|
|
|
|
! 17.1.7 - Setting and Reading the WM_NORMAL_HINTS Property
|
|
|
|
: USPosition ( -- n ) 0 2^ ; inline
|
|
: USSize ( -- n ) 1 2^ ; inline
|
|
: PPosition ( -- n ) 2 2^ ; inline
|
|
: PSize ( -- n ) 3 2^ ; inline
|
|
: PMinSize ( -- n ) 4 2^ ; inline
|
|
: PMaxSize ( -- n ) 5 2^ ; inline
|
|
: PResizeInc ( -- n ) 6 2^ ; inline
|
|
: PAspect ( -- n ) 7 2^ ; inline
|
|
: PBaseSize ( -- n ) 8 2^ ; inline
|
|
: PWinGravity ( -- n ) 9 2^ ; inline
|
|
CONSTANT: PAllHints
|
|
flags{ PPosition PSize PMinSize PMaxSize PResizeInc PAspect }
|
|
|
|
STRUCT: XSizeHints
|
|
{ flags long }
|
|
{ x int }
|
|
{ y int }
|
|
{ width int }
|
|
{ height int }
|
|
{ min_width int }
|
|
{ min_height int }
|
|
{ max_width int }
|
|
{ max_height int }
|
|
{ width_inc int }
|
|
{ height_inc int }
|
|
{ min_aspect_x int }
|
|
{ min_aspect_y int }
|
|
{ max_aspect_x int }
|
|
{ max_aspect_y int }
|
|
{ base_width int }
|
|
{ base_height int }
|
|
{ win_gravity int } ;
|
|
|
|
! 14.1.10. Setting and Reading the WM_PROTOCOLS Property
|
|
|
|
X-FUNCTION: Status XSetWMProtocols (
|
|
Display* display, Window w, Atom* protocols, int count )
|
|
|
|
X-FUNCTION: Status XGetWMProtocols (
|
|
Display* display,
|
|
Window w,
|
|
Atom** protocols_return,
|
|
int* count_return )
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! 16 - Application Utility Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
! 16.1 Keyboard Utility Functions
|
|
|
|
X-FUNCTION: KeySym XLookupKeysym ( XKeyEvent* key_event, int index )
|
|
|
|
X-FUNCTION: int XLookupString (
|
|
XKeyEvent* event_struct,
|
|
void* buffer_return,
|
|
int bytes_buffer,
|
|
KeySym* keysym_return,
|
|
XComposeStatus* status_in_out
|
|
)
|
|
|
|
! 16.7 Determining the Appropriate Visual Type
|
|
|
|
CONSTANT: VisualNoMask 0x0
|
|
CONSTANT: VisualIDMask 0x1
|
|
CONSTANT: VisualScreenMask 0x2
|
|
CONSTANT: VisualDepthMask 0x4
|
|
CONSTANT: VisualClassMask 0x8
|
|
CONSTANT: VisualRedMaskMask 0x10
|
|
CONSTANT: VisualGreenMaskMask 0x20
|
|
CONSTANT: VisualBlueMaskMask 0x40
|
|
CONSTANT: VisualColormapSizeMask 0x80
|
|
CONSTANT: VisualBitsPerRGBMask 0x100
|
|
CONSTANT: VisualAllMask 0x1FF
|
|
|
|
STRUCT: XVisualInfo
|
|
{ visual Visual* }
|
|
{ visualid VisualID }
|
|
{ screen int }
|
|
{ depth uint }
|
|
{ class int }
|
|
{ red_mask ulong }
|
|
{ green_mask ulong }
|
|
{ blue_mask ulong }
|
|
{ colormap_size int }
|
|
{ bits_per_rgb int } ;
|
|
|
|
! 16.9 Manipulating Bitmaps
|
|
X-FUNCTION: Pixmap XCreateBitmapFromData (
|
|
Display* display,
|
|
Drawable d,
|
|
c-string data,
|
|
uint width,
|
|
uint height )
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! Appendix C - Extensions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
X-FUNCTION: Bool XQueryExtension (
|
|
Display* display,
|
|
c-string name,
|
|
int* major_opcode_return,
|
|
int* first_event_return,
|
|
int* first_error_return
|
|
)
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! Appendix D - Compatibility Functions
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
X-FUNCTION: Status XSetStandardProperties (
|
|
Display* display,
|
|
Window w,
|
|
c-string window_name,
|
|
c-string icon_name,
|
|
Pixmap icon_pixmap,
|
|
c-string* argv,
|
|
int argc,
|
|
XSizeHints* hints
|
|
)
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
CONSTANT: XA_PRIMARY 1
|
|
CONSTANT: XA_SECONDARY 2
|
|
CONSTANT: XA_ARC 3
|
|
CONSTANT: XA_ATOM 4
|
|
CONSTANT: XA_BITMAP 5
|
|
CONSTANT: XA_CARDINAL 6
|
|
CONSTANT: XA_COLORMAP 7
|
|
CONSTANT: XA_CURSOR 8
|
|
CONSTANT: XA_CUT_BUFFER0 9
|
|
CONSTANT: XA_CUT_BUFFER1 10
|
|
CONSTANT: XA_CUT_BUFFER2 11
|
|
CONSTANT: XA_CUT_BUFFER3 12
|
|
CONSTANT: XA_CUT_BUFFER4 13
|
|
CONSTANT: XA_CUT_BUFFER5 14
|
|
CONSTANT: XA_CUT_BUFFER6 15
|
|
CONSTANT: XA_CUT_BUFFER7 16
|
|
CONSTANT: XA_DRAWABLE 17
|
|
CONSTANT: XA_FONT 18
|
|
CONSTANT: XA_INTEGER 19
|
|
CONSTANT: XA_PIXMAP 20
|
|
CONSTANT: XA_POINT 21
|
|
CONSTANT: XA_RECTANGLE 22
|
|
CONSTANT: XA_RESOURCE_MANAGER 23
|
|
CONSTANT: XA_RGB_COLOR_MAP 24
|
|
CONSTANT: XA_RGB_BEST_MAP 25
|
|
CONSTANT: XA_RGB_BLUE_MAP 26
|
|
CONSTANT: XA_RGB_DEFAULT_MAP 27
|
|
CONSTANT: XA_RGB_GRAY_MAP 28
|
|
CONSTANT: XA_RGB_GREEN_MAP 29
|
|
CONSTANT: XA_RGB_RED_MAP 30
|
|
CONSTANT: XA_STRING 31
|
|
CONSTANT: XA_VISUALID 32
|
|
CONSTANT: XA_WINDOW 33
|
|
CONSTANT: XA_WM_COMMAND 34
|
|
CONSTANT: XA_WM_HINTS 35
|
|
CONSTANT: XA_WM_CLIENT_MACHINE 36
|
|
CONSTANT: XA_WM_ICON_NAME 37
|
|
CONSTANT: XA_WM_ICON_SIZE 38
|
|
CONSTANT: XA_WM_NAME 39
|
|
CONSTANT: XA_WM_NORMAL_HINTS 40
|
|
CONSTANT: XA_WM_SIZE_HINTS 41
|
|
CONSTANT: XA_WM_ZOOM_HINTS 42
|
|
CONSTANT: XA_MIN_SPACE 43
|
|
CONSTANT: XA_NORM_SPACE 44
|
|
CONSTANT: XA_MAX_SPACE 45
|
|
CONSTANT: XA_END_SPACE 46
|
|
CONSTANT: XA_SUPERSCRIPT_X 47
|
|
CONSTANT: XA_SUPERSCRIPT_Y 48
|
|
CONSTANT: XA_SUBSCRIPT_X 49
|
|
CONSTANT: XA_SUBSCRIPT_Y 50
|
|
CONSTANT: XA_UNDERLINE_POSITION 51
|
|
CONSTANT: XA_UNDERLINE_THICKNESS 52
|
|
CONSTANT: XA_STRIKEOUT_ASCENT 53
|
|
CONSTANT: XA_STRIKEOUT_DESCENT 54
|
|
CONSTANT: XA_ITALIC_ANGLE 55
|
|
CONSTANT: XA_X_HEIGHT 56
|
|
CONSTANT: XA_QUAD_WIDTH 57
|
|
CONSTANT: XA_WEIGHT 58
|
|
CONSTANT: XA_POINT_SIZE 59
|
|
CONSTANT: XA_RESOLUTION 60
|
|
CONSTANT: XA_COPYRIGHT 61
|
|
CONSTANT: XA_NOTICE 62
|
|
CONSTANT: XA_FONT_NAME 63
|
|
CONSTANT: XA_FAMILY_NAME 64
|
|
CONSTANT: XA_FULL_NAME 65
|
|
CONSTANT: XA_CAP_HEIGHT 66
|
|
CONSTANT: XA_WM_CLASS 67
|
|
CONSTANT: XA_WM_TRANSIENT_FOR 68
|
|
|
|
CONSTANT: XA_LAST_PREDEFINED 68
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! The rest of the stuff is not from the book.
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
X-FUNCTION: void XFree ( void* data )
|
|
X-FUNCTION: int XStoreName ( Display* display, Window w, c-string window_name )
|
|
X-FUNCTION: void XSetWMNormalHints ( Display* display,
|
|
Window w,
|
|
XSizeHints* hints )
|
|
X-FUNCTION: int XBell ( Display* display, int percent )
|
|
|
|
! !!! INPUT METHODS
|
|
|
|
CONSTANT: XIMPreeditArea 0x0001
|
|
CONSTANT: XIMPreeditCallbacks 0x0002
|
|
CONSTANT: XIMPreeditPosition 0x0004
|
|
CONSTANT: XIMPreeditNothing 0x0008
|
|
CONSTANT: XIMPreeditNone 0x0010
|
|
CONSTANT: XIMStatusArea 0x0100
|
|
CONSTANT: XIMStatusCallbacks 0x0200
|
|
CONSTANT: XIMStatusNothing 0x0400
|
|
CONSTANT: XIMStatusNone 0x0800
|
|
|
|
CONSTANT: XNVaNestedList "XNVaNestedList"
|
|
CONSTANT: XNQueryInputStyle "queryInputStyle"
|
|
CONSTANT: XNClientWindow "clientWindow"
|
|
CONSTANT: XNInputStyle "inputStyle"
|
|
CONSTANT: XNFocusWindow "focusWindow"
|
|
CONSTANT: XNResourceName "resourceName"
|
|
CONSTANT: XNResourceClass "resourceClass"
|
|
CONSTANT: XNGeometryCallback "geometryCallback"
|
|
CONSTANT: XNDestroyCallback "destroyCallback"
|
|
CONSTANT: XNFilterEvents "filterEvents"
|
|
CONSTANT: XNPreeditStartCallback "preeditStartCallback"
|
|
CONSTANT: XNPreeditDoneCallback "preeditDoneCallback"
|
|
CONSTANT: XNPreeditDrawCallback "preeditDrawCallback"
|
|
CONSTANT: XNPreeditCaretCallback "preeditCaretCallback"
|
|
CONSTANT: XNPreeditStateNotifyCallback "preeditStateNotifyCallback"
|
|
CONSTANT: XNPreeditAttributes "preeditAttributes"
|
|
CONSTANT: XNStatusStartCallback "statusStartCallback"
|
|
CONSTANT: XNStatusDoneCallback "statusDoneCallback"
|
|
CONSTANT: XNStatusDrawCallback "statusDrawCallback"
|
|
CONSTANT: XNStatusAttributes "statusAttributes"
|
|
CONSTANT: XNArea "area"
|
|
CONSTANT: XNAreaNeeded "areaNeeded"
|
|
CONSTANT: XNSpotLocation "spotLocation"
|
|
CONSTANT: XNColormap "colorMap"
|
|
CONSTANT: XNStdColormap "stdColorMap"
|
|
CONSTANT: XNForeground "foreground"
|
|
CONSTANT: XNBackground "background"
|
|
CONSTANT: XNBackgroundPixmap "backgroundPixmap"
|
|
CONSTANT: XNFontSet "fontSet"
|
|
CONSTANT: XNLineSpace "lineSpace"
|
|
CONSTANT: XNCursor "cursor"
|
|
|
|
CONSTANT: XNQueryIMValuesList "queryIMValuesList"
|
|
CONSTANT: XNQueryICValuesList "queryICValuesList"
|
|
CONSTANT: XNVisiblePosition "visiblePosition"
|
|
CONSTANT: XNR6PreeditCallback "r6PreeditCallback"
|
|
CONSTANT: XNStringConversionCallback "stringConversionCallback"
|
|
CONSTANT: XNStringConversion "stringConversion"
|
|
CONSTANT: XNResetState "resetState"
|
|
CONSTANT: XNHotKey "hotKey"
|
|
CONSTANT: XNHotKeyState "hotKeyState"
|
|
CONSTANT: XNPreeditState "preeditState"
|
|
CONSTANT: XNSeparatorofNestedList "separatorofNestedList"
|
|
|
|
CONSTANT: XBufferOverflow -1
|
|
CONSTANT: XLookupNone 1
|
|
CONSTANT: XLookupChars 2
|
|
CONSTANT: XLookupKeySym 3
|
|
CONSTANT: XLookupBoth 4
|
|
|
|
X-FUNCTION: Bool XFilterEvent ( XEvent* event, Window w )
|
|
|
|
X-FUNCTION: XIM XOpenIM ( Display* dpy,
|
|
void* rdb,
|
|
c-string res_name,
|
|
c-string res_class )
|
|
|
|
X-FUNCTION: Status XCloseIM ( XIM im )
|
|
|
|
X-FUNCTION: XIC XCreateIC ( XIM im,
|
|
c-string key1, Window value1,
|
|
c-string key2, Window value2,
|
|
c-string key3, int value3,
|
|
c-string key4, c-string value4,
|
|
c-string key5, c-string value5,
|
|
int key6 )
|
|
|
|
X-FUNCTION: void XDestroyIC ( XIC ic )
|
|
|
|
X-FUNCTION: void XSetICFocus ( XIC ic )
|
|
|
|
X-FUNCTION: void XUnsetICFocus ( XIC ic )
|
|
|
|
X-FUNCTION: int XwcLookupString ( XIC ic,
|
|
XKeyPressedEvent* event,
|
|
ulong* buffer_return,
|
|
int bytes_buffer,
|
|
KeySym* keysym_return,
|
|
Status* status_return )
|
|
|
|
X-FUNCTION: int Xutf8LookupString ( XIC ic,
|
|
XKeyPressedEvent* event,
|
|
c-string buffer_return,
|
|
int bytes_buffer,
|
|
KeySym* keysym_return,
|
|
Status* status_return )
|
|
|
|
! !!! category of setlocale
|
|
CONSTANT: LC_ALL 0
|
|
CONSTANT: LC_COLLATE 1
|
|
CONSTANT: LC_CTYPE 2
|
|
CONSTANT: LC_MONETARY 3
|
|
CONSTANT: LC_NUMERIC 4
|
|
CONSTANT: LC_TIME 5
|
|
|
|
X-FUNCTION: c-string setlocale ( int category, c-string name )
|
|
|
|
X-FUNCTION: Bool XSupportsLocale ( )
|
|
|
|
X-FUNCTION: c-string XSetLocaleModifiers ( c-string modifier_list )
|
|
|
|
! uncategorized xlib bindings
|
|
|
|
X-FUNCTION: int XQueryKeymap ( Display* display, char[32] keys_return )
|