diff --git a/scheme/xlib/xlib-interfaces.scm b/scheme/xlib/xlib-interfaces.scm index f300223..82d91e2 100644 --- a/scheme/xlib/xlib-interfaces.scm +++ b/scheme/xlib/xlib-interfaces.scm @@ -1,81 +1,3 @@ -;;; 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 @@ -84,6 +6,7 @@ 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 @@ -115,16 +38,8 @@ 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? @@ -192,24 +107,12 @@ 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 @@ -220,34 +123,14 @@ 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? @@ -257,43 +140,14 @@ 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 @@ -302,7 +156,7 @@ query-best-size query-best-cursor - query-best-title + query-best-tile query-best-stipple gcontext-function @@ -354,4 +208,53 @@ set-gcontext-clip-rectangles! set-gcontext-dashlist! - )) \ No newline at end of file + )) + + +(define-interface xlib-graphics-interface + (export clear-area + copy-area + copy-plane + draw-point + draw-points + draw-line + draw-lines + draw-segments + draw-rectangle + draw-rectangles + fill-rectangle + fill-rectangles + draw-arc + fill-arc + draw-arcs + fill-arcs + fill-polygon)) + + +;; pixmap - not done! + +(define-interface xlib-pixmap-interface + (export pixmap? + free-pixmap + pixmap-display)) + +(define-interface xlib-event-interface + (export event-ready? + events-pending + next-event + peek-event)) + +;; all together + +(define-interface xlib-interface + (compound-interface xlib-display-interface + xlib-pixmap-interface + xlib-window-interface + xlib-drawable-interface + xlib-color-interface + xlib-colormap-interface + xlib-pixel-interface + xlib-gcontext-interface + xlib-graphics-interface + xlib-event-interface + )) \ No newline at end of file