samer@0: ;;; This is a non-scrolly version samer@0: samer@0: (define (expose-all vbls name) samer@0: (define win (Shell.getWindow name)) samer@0: (define cnt (.container win)) samer@0: (.setLayout cnt (javax.swing.BoxLayout. cnt javax.swing.BoxLayout.Y_AXIS$)) samer@0: (for-each (lambda (v) (.add cnt (.getComponent (.getViewer v)))) vbls) samer@0: ;;; window listener? samer@0: ;;; container listener? samer@0: (.addWindowListener win (Shell.closeListener win)) samer@0: (.expose win) samer@0: ) samer@0: samer@0: ;;; Scrolly version a bit more complicated samer@0: samer@0: '(define (expose-all-scrolly vbls name) samer@0: (define win (Shell.getWindow name)) samer@0: (define box (javax.swing.Box.createVerticalBox)) samer@0: (define scr (javax.swing.JScrollPane. box)) samer@0: (define (no-scrollbars) samer@0: (define sb=(.getVerticalScrollBar scr)) samer@0: (if (eq? sb null) samer@0: #t samer@0: (not (.isVisible sb)))) samer@0: samer@0: (.setBorder scr null) samer@0: (.add (.container win) scr) samer@0: (for-each (lambda (v) (.add box (.getComponent (.getViewer v)))) vbls) samer@0: ;;; window listener? samer@0: ;;; container listener? samer@0: ;;; packing/scrollbar policy? samer@0: (.addWindowListener win (Shell.closeListener win)) samer@0: (.expose win) samer@0: )