;;; A "header" package with all new datatypes (define-interface xlib-types-interface (export make-display display? display-Xdisplay display-after-function display-set-after-function! close-display make-window destroy-window window? drawable? window-tag window-set-tag! window-Xwindow window-display drawable-abstraction drawable-display drawable-Xobject make-color color? color-Xcolor color-tag color-set-tag! make-colormap colormap? free-colormap colormap-display colormap-Xcolormap colormap-tag make-pixel pixel? pixel-Xpixel pixel-tag make-gcontext gcontext? gcontext-display free-gcontext gcontext-Xgcontext gcontext-tag )) (define-structure xlib-types xlib-types-interface (open scsh scheme weak general-tables primitives define-record-types external-calls) (files type/display-type type/window-type type/color-type type/colormap-type type/pixel-type type/gcontext-type)) ;;; Basic package (define-interface xlib-basic-interface (export named-args->alist)) (define-structure xlib-basic xlib-basic-interface (open scsh scheme external-calls) (files stuff)) ;;; The display structure (define-interface xlib-display-interface (export display? open-display close-display display-after-function after-function ;; compatibility with Elk, same as above display-set-after-function! set-after-function! ;; compatibility with Elk, same as above display-default-root-window display-root-window ;; same as above display-default-colormap display-colormap ;; same as above display-default-gcontext display-default-depth display-default-screen-number display-cells display-planes display-string display-vendor display-protocol-version display-screen-count display-image-byte-order display-bitmap-unit display-bitmap-bit-order display-bitmap-pad display-width display-height display-width-mm display-height-mm display-motion-buffer-size display-flush-output display-wait-output display-no-op no-op ;; compatibility with Elk, same as above display-list-depths list-depths ;; compatibility with Elk, same as above display-list-pixmap-formats list-pixmap-formats ;; compatibility with Elk, same as above synchronize )) (define-structure xlib-display xlib-display-interface (open scsh scheme external-calls xlib-types xlib-basic) (files display)) (define-interface xlib-window-interface (export window? drawable? window-display create-window destroy-window change-window-attributes get-window-attributes map-window unmap-window set-window-background-pixmap! set-window-background-pixel! set-window-border-pixmap! set-window-border-pixel! set-window-bit-gravity! set-window-gravity! set-window-backing-store! set-window-backing-planes! set-window-backing-pixel! set-window-save-under! set-window-event-mask! set-window-do-not-propagate-mask! set-window-override-redirect! set-window-colormap! set-window-cursor! set-window-x! set-window-y! set-window-width! set-window-height! set-window-border-width! set-window-sibling! set-window-stack-mode! window-x window-y window-width window-height window-border-width window-depth window-visual window-root window-class window-bit-gravity window-backing-store window-backing-planes window-backing-pixel window-save-under window-colormap window-map-installed window-map-state window-all-event-masks window-your-event-mask window-do-not-propagate-mask window-override-redirect destroy-subwindows map-subwindows unmap-subwindows circulate-subwindows clear-window raise-window lower-window restack-windows query-tree translate-coordinates query-pointer )) (define-structure xlib-window xlib-window-interface (open scsh scheme external-calls receiving xlib-types xlib-basic xlib-graphics ;; for clear-window ) (files window)) ;;; the display-interface (define-interface xlib-drawable-interface (export drawable? drawable-root drawable-x drawable-y drawable-width drawable-height drawable-border-width drawable-depth)) (define-structure xlib-drawable xlib-drawable-interface (open scsh scheme xlib-types) (files drawable)) ;;; the color-interface (define-interface xlib-color-interface (export make-color color? color-rgb-values color-tag ;;?? color-set-tag!;;?? query-color query-colors lookup-color)) (define-structure xlib-color xlib-color-interface (open scsh scheme external-calls xlib-types xlib-basic) (files color)) ;;; the colormap-interface (define-interface xlib-colormap-interface (export make-colormap colormap? free-colormap colormap-display alloc-color alloc-named-color )) (define-structure xlib-colormap xlib-colormap-interface (open scsh scheme external-calls xlib-types xlib-basic) (files colormap)) ;;; the pixel-interface (define-interface xlib-pixel-interface (open scsh scheme external-calls xlib-types xlib-basic) (files pixel)) (define-structure xlib-pixel xlib-pixel-interface (export pixel? pixel-value black-pixel white-pixel )) ;;; the gcontext-interface (define-interface xlib-gcontext-interface (open scsh scheme external-calls receiving xlib-types xlib-basic) (files gcontext)) (define-structure xlib-gcontext xlib-gcontext-interface (export gcontext? gcontext-display create-gcontext copy-gcontext free-gcontext query-best-size query-best-cursor query-best-title query-best-stipple gcontext-function gcontext-plane-mask gcontext-foreground gcontext-background gcontext-line-width gcontext-line-style gcontext-cap-style gcontext-join-style gcontext-fill-style gcontext-fill-rule gcontext-arc-mode gcontext-tile gcontext-stipple gcontext-ts-x gcontext-ts-y gcontext-font gcontext-subwindow-mode gcontext-exposures gcontext-clip-x gcontext-clip-y gcontext-clip-mask gcontext-dash-offset gcontext-dashes set-gcontext-function! set-gcontext-plane-mask! set-gcontext-foreground! set-gcontext-background! set-gcontext-line-width! set-gcontext-line-style! set-gcontext-cap-style! set-gcontext-join-style! set-gcontext-fill-style! set-gcontext-fill-rule! set-gcontext-arc-mode! set-gcontext-tile! set-gcontext-stipple! set-gcontext-ts-x! set-gcontext-ts-y! set-gcontext-font! set-gcontext-subwindow-mode! set-gcontext-exposures! set-gcontext-clip-x! set-gcontext-clip-y! set-gcontext-clip-mask! set-gcontext-dash-offset! set-gcontext-clip-rectangles! set-gcontext-dashlist! ))