2003-03-27 20:40:16 -05:00
|
|
|
|
|
|
|
;; *** utils *********************************************************
|
|
|
|
(define-structure utils
|
|
|
|
(export mdisplay assq/false flatten
|
|
|
|
select* spawn* with-lock
|
2003-04-01 08:24:30 -05:00
|
|
|
make-sync-point sync-point-release sync-point-wait
|
2003-03-27 20:40:16 -05:00
|
|
|
|
|
|
|
create-options free-options
|
|
|
|
get-option-value get-option set-option! get-options
|
2003-03-29 20:50:06 -05:00
|
|
|
((define-options-spec) :syntax) options-spec-union
|
2003-03-27 20:40:16 -05:00
|
|
|
|
|
|
|
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
|
2003-04-01 08:24:30 -05:00
|
|
|
window-level
|
|
|
|
point-in-rectangle?
|
2003-03-27 20:40:16 -05:00
|
|
|
|
|
|
|
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
|
2003-04-01 08:24:30 -05:00
|
|
|
(export wm? wm:type wm:dpy wm:window wm:colormap wm:options wm:out-channel
|
|
|
|
wm:internal-out-channel
|
2003-03-27 20:40:16 -05:00
|
|
|
(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!
|
2003-04-01 08:24:30 -05:00
|
|
|
client-name
|
|
|
|
client-replace-window)
|
2003-03-27 20:40:16 -05:00
|
|
|
(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
|
2003-04-01 08:24:30 -05:00
|
|
|
(export create-split-wm split-wm?)
|
2003-03-27 20:40:16 -05:00
|
|
|
(open scheme list-lib define-record-types
|
2003-04-01 08:24:30 -05:00
|
|
|
threads rendezvous-channels rendezvous placeholders
|
2003-03-27 20:40:16 -05:00
|
|
|
xlib
|
|
|
|
manager
|
|
|
|
utils)
|
2003-03-29 20:50:06 -05:00
|
|
|
(files split-wm))
|
2003-03-27 20:40:16 -05:00
|
|
|
|
|
|
|
;; *** 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)
|
2003-03-29 20:50:06 -05:00
|
|
|
(open scheme list-lib
|
2003-03-27 20:40:16 -05:00
|
|
|
define-record-types
|
|
|
|
xlib
|
|
|
|
rendezvous rendezvous-channels
|
2003-03-29 20:50:06 -05:00
|
|
|
utils key-grab
|
2003-03-27 20:40:16 -05:00
|
|
|
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))
|