Patch title: Release 96 bulk changes
Abstract:
File: /pliant/graphic/console/x11_api.pli
Key:
    Removed line
    Added line
module "/pliant/language/compiler.pli"

constant xlib "libX11.so.6"


public


type XID
  field uInt id

type XWindow
  field uInt id

type XPixmap
  field uInt id
  
type XFont
  field uInt id

type XGContext
  field uInt id

type XColormap
  field uInt id

type XCursor
  field uInt id

type XVisualID
  field uInt id

type XKeySym
  field uInt id

type XPointer
  field Address adr

type XTime
  field uInt time

type XColor
  packed
  field uInt pixel
  field uInt16 red green blue
  field uInt8 flags pad


type XVisual
  packed
  field Address ext_data
  field XVisualID visualid
  field Int class
  field Int red_mask green_mask blue_mask
  field Int bits_per_rgb
  field Int map_entries
  
type XDepth
  packed
  field Int depth
  field Int nvisuals
  field Address visuals

type XScreen
  packed
  field Address ext_data
  field Address display
  field XWindow root
  field Int width height
  field Int mwidth mheight
  field Int ndepths
  field Address depths
  field Int root_depth
  field Pointer:XVisual root_visual
  field Address default_gc
  field XColormap cmap
  field uInt white_pixel black_pixel
  field Int max_maps min_maps
  field Int backing_store
  field CBool save_unders
  field Int root_input_mask

type XDisplay
  packed
  field Address ext_data
  field Address private1
  field Int fd
  field Int private2
  field Int proto_major_version proto_minor_version
  field Address vendor
  field XID private3 private4 private5 private6
  field Address resource_alloc
  field Int byte_order
  field Int bitmap_unit
  field Int bitmap_pad
  field Int bitmap_bit_order
  field Int nformats
  field Address pixmap_format
  field Int private8
  field Int release
  field Address private9 private10
  field Int qlen last_request_read request
  field XPointer private11 private12 private13 private14
  field uInt max_request_size
  field Address db
  field Address private15
  field Address display_name
  field Int default_screen
  field Int nscreens
  field Address screens
  field uInt motion_buffer
  field uInt private16
  field Int min_keycode max_keycode
  field XPointer private17 private18 
  field Int private19
  field Address xdefaults

type XImage
  field Int width height
  field Int xoffset
  field Int format
  field Address data
  field Int byte_order
  field Int bitmap_unit
  field Int bitmap_bit_order
  field Int bitmap_pad
  field Int depth
  field Int bytes_per_line
  field Int bits_per_pixel
  field uInt32 red_mask
  field uInt32 green_mask
  field uInt32 blue_mask
  field XPointer obdata
  field Address create_image
  field Address destroy_image
  field Address get_pixel
  field Address put_pixel
  field Address sub_image
  field Address add_pixel

constant ZPixmap 2
constant LSBFirst 0
constant MSBFirst 1

type XSetWindowAttributes
  packed
  field XPixmap background_pixmap
  field uInt background_pixel
  field XPixmap border_pixmap
  field uInt border_pixel
  field Int bit_gravity
  field Int win_gravity
  field Int backing_store
  field uInt backing_planes
  field uInt backing_pixel
  field CBool save_under
  field Int event_mask
  field Int do_not_propagate_mask
  field CBool override_redirect
  field XColormap colormap
  field XCursor cursor
  
constant CWBackPixmap       2^0
constant CWBackPixel        2^1
constant CWBorderPixmap     2^2
constant CWBorderPixel      2^3
constant CWBitGravity       2^4
constant CWWinGravity       2^5
constant CWBackingStore     2^6
constant CWBackingPlanes    2^7
constant CWBackingPixel     2^8
constant CWOverrideRedirect 2^9
constant CWSaveUnder        2^10
constant CWEventMask        2^11
constant CWDontPropagate    2^12
constant CWColormap         2^13
constant CWCursor           2^14

type XSizeHints
  packed
  field Int flags
  field Int x y
  field Int width height
  field Int min_width min_height
  field Int max_width max_height
  field Int width_inc height_inc
  field Int min_aspect_x min_aspect_y
  field Int max_aspect_x max_aspect_y
  field Int base_width base_height
  field Int win_gravity

constant USPosition  2^0
constant USSize      2^1
constant PPosition   2^2
constant PSize       2^3
constant PMinSize    2^4
constant PMaxSize    2^5
constant PResizeInc  2^6
constant PAspect     2^7
constant PBaseSize   2^8
constant PWinGravity 2^9


type XCharStruct
  packed
  field Int16 lbearing rbearing
  field Int16 width
  field Int16 ascent descent
  field uInt16 attributes

type XFontStruct
  packed
  field Address ext_data
  field XFont fid
  field uInt direction
  field uInt min_char_or_byte2 max_char_or_byte2
  field uInt min_byte1 max_byte1
  field CBool all_chars_exist
  field uInt default_char
  field Int n_properties
  field Address properties
  field XCharStruct min_bounds max_bounds
  field Int ascent descent
  

type XGCValues
  packed
  field Int function
  field uInt plane_mask
  field uInt foreground background
  field Int line_width line_style cap_style join_style
  field Int fill_style fill_rule
  field Int arc_mode
  field XPixmap tile
  field XPixmap stipple;
  field Int ts_x_origin ts_y_origin
  field XFont font
  field Int subwindow_mode
  field CBool graphics_exposures
  field Int clip_x_origin clip_y_origin
  field XPixmap clip_mask
  field Int dash_offset
  field Int8 dashes
  field (Array Byte 3) padding

constant GCGraphicsExposures 2^16

type XGC
  packed
  field Address real_structure

constant KeyPressMask             2^0  
constant KeyReleaseMask           2^1
constant ButtonPressMask          2^2  
constant ButtonReleaseMask        2^3 
constant EnterWindowMask          2^4
constant LeaveWindowMask          2^5  
constant PointerMotionMask        2^6
constant PointerMotionHintMask    2^7  
constant Button1MotionMask        2^8
constant Button2MotionMask        2^9
constant Button3MotionMask        2^10
constant Button4MotionMask        2^11
constant Button5MotionMask        2^12
constant ButtonMotionMask         2^13
constant KeymapStateMask          2^14
constant ExposureMask             2^15
constant VisibilityChangeMask     2^16
constant StructureNotifyMask      2^17 
constant ResizeRedirectMask       2^18
constant SubstructureNotifyMask   2^19
constant SubstructureRedirectMask 2^20
constant FocusChangeMask          2^21
constant PropertyChangeMask       2^22
constant ColormapChangeMask       2^23
constant OwnerGrabButtonMask      2^24

constant KeyPress         2
constant KeyRelease       3
constant ButtonPress      4
constant ButtonRelease    5
constant MotionNotify     6
constant EnterNotify      7
constant LeaveNotify      8
constant FocusIn          9
constant FocusOut         10
constant KeymapNotify     11
constant Expose           12
constant GraphicsExpose   13
constant NoExpose         14
constant VisibilityNotify 15
constant CreateNotify     16
constant DestroyNotify    17
constant UnmapNotify      18
constant MapNotify        19
constant MapRequest       20
constant ReparentNotify   21
constant ConfigureNotify  22
constant ConfigureRequest 23
constant GravityNotify    24
constant ResizeRequest    25
constant CirculateNotify  26
constant CirculateRequest 27
constant PropertyNotify   28
constant SelectionClear   29
constant SelectionRequest 30
constant SelectionNotify  31
constant ColormapNotify   32
constant ClientMessage    33
constant MappingNotify    34
constant LASTEvent        35

type XEvent
  packed
  field Int type
(addressof:XEvent map Type) size := 24*Int:size

type XExposeEvent
  packed
  field Int type
  field uInt serial
  field CBool send_event
  field Pointer:XDisplay display
  field XWindow window
  field Int x y
  field Int width height
  field Int count

type XKeyEvent
  packed
  field Int type
  field uInt serial
  field CBool send_event
  field Pointer:XDisplay display
  field XWindow window
  field XWindow root
  field XWindow subwindow
  field XTime time
  field Int x y
  field Int x_root y_root
  field uInt state
  field uInt keycode
  field CBool same_screen

type XButtonEvent
  packed
  field Int type
  field uInt serial
  field CBool send_event
  field Pointer:XDisplay display
  field XWindow window
  field XWindow root
  field XWindow subwindow
  field XTime time
  field Int x y
  field Int x_root y_root
  field uInt state
  field uInt button
  field CBool same_screen

type XMotionEvent
  packed
  field Int type
  field uInt serial
  field CBool send_event
  field Pointer:XDisplay display
  field XWindow window
  field XWindow root
  field XWindow subwindow
  field XTime time
  field Int x y
  field Int x_root y_root
  field uInt state
  field uInt is_hint
  field CBool same_screen

type XResizeRequestEvent
  packed
  field Int type
  field uInt serial
  field CBool send_event
  field Pointer:XDisplay display
  field XWindow window
  field Int width height

type XConfigureEvent
  packed
  field Int type
  field uInt serial
  field CBool send_event
  field Pointer:XDisplay display
  field XWindow event
  field XWindow window
  field Int x y
  field Int width height
  field Int border_width
  field XWindow above
  field CBool override_redirect

type XClientMessageEvent
  packed
  field Int type
  field uInt serial
  field CBool send_event
  field Pointer:XDisplay display
  field XWindow window
  field Int atom
  field Int format
  field (Array Char 20) b

type XSelectionRequestEvent
  packed
  field Int type
  field uInt serial
  field CBool send_event
  field Pointer:XDisplay display
  field XWindow owner
  field XWindow requestor
  field Int selection
  field Int target
  field Int property
  field Int time

type XSelectionEvent
  packed
  field Int type
  field uInt serial
  field CBool send_event
  field Pointer:XDisplay display
  field XWindow requestor
  field Int selection
  field Int target
  field Int property
  field Int time

type XComposeStatus
  packed
  field Address compose_ptr
  field Int chars_matched

constant XK_ISO_Left_Tab 0FE20h

constant XK_Shift_L     0FFE1h
constant XK_Shift_R     0FFE2h
constant XK_Control_L   0FFE3h
constant XK_Control_R   0FFE4h
constant XK_Alt_L       0FFE9h
constant XK_Alt_R       0FFEAh
constant XK_Mode_switch 0FF7Eh

constant XK_BackSpace   0FF08h
constant XK_Tab         0FF09h
constant XK_Linefeed    0FF0Ah
constant XK_Clear       0FF0Bh
constant XK_Return      0FF0Dh
constant XK_Pause       0FF13h
constant XK_Scroll_Lock 0FF14h
constant XK_Sys_Req     0FF15h
constant XK_Escape      0FF1Bh

constant XK_Home        0FF50h
constant XK_Left        0FF51h
constant XK_Up          0FF52h
constant XK_Right       0FF53h
constant XK_Down        0FF54h
constant XK_Page_Up     0FF55h
constant XK_Page_Down   0FF56h
constant XK_End         0FF57h
constant XK_Print       0FF61h
constant XK_Insert      0FF63h
constant XK_Delete      0FFFFh

constant XK_F0          0FFBDh
constant XK_F1          0FFBEh
constant XK_F12         0FFC9h

constant XK_XP_0         0FFB0h
constant XK_XP_9         0FFB9h
constant XK_XP_decimal   0FFAEh # .
constant XK_XP_Enter     0FF8Dh # Enter
constant XK_XP_Multiply  0FFAAh # *
constant XK_XP_Add       0FFABh # +
constant XK_XP_Substract 0FFADh # -
constant XK_XP_Divide    0FFAFh # /


#------------------------------------------------------------------------
#  X11 functions


constant xlib "/usr/X11R6/lib/libX11.so.6"

function XOpenDisplay name -> display
  arg CStr name ; arg_R XDisplay display
  external xlib "XOpenDisplay"
  
function XCloseDisplay display
  arg XDisplay display
  external xlib "XCloseDisplay"
  
constant InputOutput 1
constant InputOnly   2

function XCreateWindow display parent x y width height border_width depth class visual valuemask attributes -> window
  arg XDisplay display ; arg XWindow parent 
  arg Int x y width height border_width depth
  arg Int class ; arg XVisual visual ; arg uInt valuemask ; arg XSetWindowAttributes attributes
  arg XWindow window
  external xlib "XCreateWindow"
  
function XDestroyWindow display window
  arg XDisplay display ; arg XWindow window
  external xlib "XDestroyWindow"

function XStoreName display window name
  arg XDisplay display ; arg XWindow window ; arg CStr name
  external xlib "XStoreName"

function XMapWindow display window
  arg XDisplay display ; arg XWindow window
  external xlib "XMapWindow"

function XMoveWindow display window x y
  arg XDisplay display ; arg XWindow window ; arg Int x y
  external xlib "XMoveWindow"

function XResizeWindow display window width height
  arg XDisplay display ; arg XWindow window ; arg Int width height
  external xlib "XResizeWindow"

function XSetInputFocus display focus revert_to time
  arg XDisplay display ; arg XWindow focus ; arg Int revert_to time
  external xlib "XSetInputFocus"

function XCreateFontCursor display shape -> cursor
  arg XDisplay display ; arg Int shape ; arg XCursor cursor
  external xlib "XCreateFontCursor"

function XFlush display
  arg XDisplay display
  external xlib "XFlush" 

function XCreateGC display window valuemask values -> gc
  arg XDisplay display ; arg XWindow window ; arg uInt valuemask ; arg_rw XGCValues values ; arg XGC gc
  external xlib "XCreateGC" 

function XFreeGC display gc
  arg XDisplay display ; arg XGC gc
  external xlib "XFreeGC" 

function XNextEvent display event
  arg XDisplay display ; arg_w XEvent event
  external xlib "XNextEvent" 

function XMaskEvent display mask event
  arg XDisplay display ; arg Int mask ; arg_w XEvent event
  external xlib "XMaskEvent"

function XCheckMaskEvent display mask event -> ok
  arg XDisplay display ; arg Int mask ; arg_w XEvent event ; arg CBool ok
  external xlib "XCheckMaskEvent"

function XCheckTypedEvent display event_type event -> ok
  arg XDisplay display ; arg Int event_type ; arg_w XEvent event ; arg CBool ok
  external xlib "XCheckTypedEvent"

function XLookupColor display colormap namez exact_def screen_def -> status
  arg XDisplay display ; arg XColormap colormap ; arg Address namez ; arg_w XColor exact_def screen_def ; arg Int status
  external xlib "XLookupColor" 

function XAllocColor display colormap color -> status
  arg XDisplay display ; arg XColormap colormap ; arg_rw XColor color ; arg Int status
  external xlib "XAllocColor" 

function XAllocNamedColor display colormap namez exact_def screen_def -> status
  arg XDisplay display ; arg XColormap colormap ; arg CStr namez ; arg_w XColor exact_def screen_def ; arg Int status
  external xlib "XAllocNamedColor" 

function XSetForeground display gc color
  arg XDisplay display ; arg XGC gc ; arg Int color
  external xlib "XSetForeground" 

function XSetBackground display gc color
  arg XDisplay display ; arg XGC gc ; arg Int color
  external xlib "XSetBackground" 

function XFreeColors display colormap pixels npixels planes
  arg XDisplay display ; arg XColormap colormap ; arg Address pixels ; arg Int npixels planes
  external xlib "XFreeColors" 

function XFillRectangle display window gc x y width height
  arg XDisplay display ; arg XWindow window ; arg XGC gc
  arg Int x y width height
  external xlib "XFillRectangle" 

function XInitImage image -> ok
  arg_rw XImage image ; arg CBool ok
  external xlib "XInitImage"

function XCreateImage display visual depth format offset data width height bitmap_pad bytes_per_line
  arg XDisplay display ; arg XVisual visual ; arg uInt depth ; arg Int format offset ; arg Address data
  arg uInt width height ; arg Int bitmap_pad bytes_per_line
  external xlib "XCreateImage"

function XPutImage display window gc image src_x src_y dest_x dest_y width height -> err
  arg XDisplay display ; arg XWindow window ; arg XGC gc ; arg XImage image
  arg Int src_x src_y dest_x dest_y width height err
  external xlib "XPutImage"

function XGetImage display window x y width height plan_mask format -> img
  arg XDisplay display ; arg XWindow window ; arg Int x y width height plan_mask format ; arg_RW XImage img
  external xlib "XGetImage"

function XDestroyImage image
 arg_w XImage image
 function destroy_prototype image f
   arg_w XImage image ; arg Function f
   indirect
 var Function f ; f executable := image destroy_image
 destroy_prototype image f

function XLoadQueryFont display namez -> font
  arg XDisplay display ; arg Address namez ; arg_RW XFontStruct font
  external xlib "XLoadQueryFont" 

function XSetFont display gc font
  arg XDisplay display ; arg XGC gc ; arg XFont font
  external xlib "XSetFont" 

function XDrawString display window gc x y chars len
  arg XDisplay display ; arg XWindow window ; arg XGC gc ; arg Int x y ; arg Address chars ; arg Int len
  external xlib "XDrawString" 

function XLookupString event buffer buffer_len keysym status
  arg XKeyEvent event ; arg Address buffer ; arg Int buffer_len ; arg_w XKeySym keysym ; arg_rw XComposeStatus status
  external xlib "XLookupString"

function XTextExtents font chars len direction ascent descent overall
  arg XFontStruct font ; arg Address chars ; arg Int len ; arg_w Int direction ascent descent ; arg_w XCharStruct overall
  external xlib "XTextExtents"

function XClearArea display window x y width height exposures
  arg XDisplay display ; arg XWindow window ; arg Int x y width height ; arg CBool exposures
  external xlib "XClearArea"

function XCopyArea display src dest gc src_x src_y width height dest_x dest_y
  arg XDisplay display ; arg XWindow src dest ; arg XGC gc ; arg Int src_x src_y width height dest_x dest_y
  external xlib "XCopyArea"

function XSendEvent display w propagate event_mask event_send -> err
  arg XDisplay display ; arg XWindow w ; arg CBool propagate ; arg Int event_mask ; arg_rw XEvent event_send ; arg Int err
  external xlib "XSendEvent"

function XWarpPointer display src_w dest_w src_x src_y src_width src_height dest_x dest_y
  arg XDisplay display ; arg XWindow src_w dest_w ; arg Int src_x src_y src_width src_height dest_x dest_y
  external xlib "XWarpPointer"

function XStoreBytes display adr size
  arg XDisplay display ; arg Address adr ; arg Int size
  external xlib "XStoreBytes"

function XFetchBytes display size -> adr
  arg XDisplay display ; arg_w Int size ; arg Address adr
  external xlib "XFetchBytes"

function XSetSelectionOwner display selection owner time
  arg XDisplay display ; arg Int selection ; arg XWindow owner ; arg Int time
  external xlib "XSetSelectionOwner"
constant XA_PRIMARY 1

function XGetSelectionOwner display selection -> owner
  arg XDisplay display ; arg Int selection ; arg XWindow owner
  external xlib "XGetSelectionOwner"

function XConvertSelection display selection target property requestor time
  arg XDisplay display ; arg Int selection target property ; arg XWindow requestor ; arg Int time
  external xlib "XConvertSelection"

function XChangeProperty display window property ptype format mode adr size -> err
  arg XDisplay display ; arg XWindow window ; arg Int property ptype format mode ; arg Address adr ; arg Int size err
  external xlib "XChangeProperty"
constant XA_STRING 31
constant PropModeReplace 0

function XGetWindowProperty display window property offset length delete req_type actual_type actual_format nitems bytes_after prop -> err
  arg XDisplay display ; arg XWindow window ; arg Int property offset length ; arg CBool delete ; arg Int req_type ; arg_w Int actual_type actual_format nitems bytes_after ; arg_w Address prop ; arg Int err
  external xlib "XGetWindowProperty"

function XDeleteProperty display window property
  arg XDisplay display ; arg XWindow window ; arg Int property
  external xlib "XDeleteProperty"

function XFree adr
  arg Address adr
  external xlib "XFree"

function XInternAtom display property_name only_if_exists -> atom
  arg XDisplay display ; arg CStr property_name ; arg CBool only_if_exists ; arg Int atom
  external xlib "XInternAtom"

function XGetAtomName display atom -> name
  arg XDisplay display ; arg Int atom ; arg CStr name
  external xlib "XGetAtomName"


type XIconSize
  field Int min_width min_height
  field Int max_width max_height
  field Int width_inc height_inc

function XGetIconSizes display w size_list count
  arg XDisplay display ; arg XWindow w ; arg_w Pointer:XIconSize size_list ; arg_w Int count
  external xlib "XGetIconSizes"

type XWMHints
  field Int flags
  field CBool input
  field Int initial_state
  field XPixmap icon_pixmap
  field XWindow icon_window
  field Int icon_x icon_y
  field XPixmap icon_mask
  field Int window_group
constant XA_WM_HINTS 35
constant IconWindowHint 2^3