orion-wm/src/packages.scm

140 lines
3.4 KiB
Scheme

;; *** utils *********************************************************
(define-structure utils
(export mdisplay assq/false flatten
select* spawn* with-lock
create-options free-options
get-option-value get-option set-option! get-options
((define-options-spec) :syntax)
string->keys string->key key:keycode key:modifiers
reparent-to-root window-path
window-viewable?
window-focused?
window-contains-focus?
take-focus delete-window
window-exists?
move-resize-window*
root-rectangle window-rectangle clip-rectangle
draw-shadow-rectangle
invalidate-window
text-center-pos
maximize-window maximal-size/hints
size-window desired-size/hints desired-position/hints)
(open scheme i/o list-lib define-record-types finite-types enum-sets
threads locks placeholders rendezvous
signals handle
rx-syntax field-reader-package
xlib)
(files utils))
(define-structure dragging
(export install-dragging-control)
(open scheme define-record-types threads
rendezvous-channels rendezvous
xlib
utils)
(files drag-window))
(define-structure titlebar
(export create-titlebar destroy-titlebar titlebar? titlebar:window
map-titlebar unmap-titlebar move-resize-titlebar
set-titlebar-state! set-titlebar-title!)
(open scheme define-record-types threads list-lib
rendezvous-channels rendezvous
xlib
utils)
(files titlebar))
;; *** key-grab ******************************************************
(define-structure key-grab
(export grab-shortcut)
(open scheme define-record-types enum-sets weak
threads list-lib
rendezvous-channels rendezvous locks
xlib utils)
(files key-grab))
;; *** manager *******************************************************
(define-structure manager
(export wm? wm:type wm:dpy wm:window wm:colormap wm:options
(manager-type :syntax) manager-types manager-type-name
create-wm destroy-wm
wm-clients wm-current-client
wm-manage-window wm-unmanage-window wm-select-client
client? client:window client:client-window
client:data set-client:data!
client-name)
(open scheme threads list-lib locks
xlib
define-record-types
finite-types
rendezvous-channels
rendezvous
utils key-grab)
(files manager))
;; *** move manager **************************************************
(define-structure move-wm
(export create-move-wm)
(open scheme list-lib define-record-types
threads rendezvous-channels rendezvous
xlib
manager key-grab
utils dragging titlebar)
(files move-wm
move-wm-resizer))
;; *** split manager *************************************************
(define-structure split-wm
(export create-split-wm)
(open scheme list-lib define-record-types
threads rendezvous-channels rendezvous
xlib
manager
utils)
(files split-wm
split-wm-resizer))
;; *** switch manager ************************************************
(define-structure switch-wm
(export create-switch-wm)
(open scheme list-lib define-record-types
threads rendezvous-channels rendezvous
xlib
manager titlebar dragging
utils key-grab)
(files switch-wm))
;; *** main package **************************************************
(define-structure root-manager
(export root-wm? create-root-wm)
(open scheme
define-record-types
xlib
rendezvous rendezvous-channels
utils
manager
move-wm split-wm switch-wm
)
(files root-manager))
(define-structure main
(export start)
(open scsh scheme threads
xlib
root-manager
utils)
(files main))