Mercurial > hg > jslab
annotate src/scheme/viewables.scm @ 8:5e3cbbf173aa tip
Reorganise some more
author | samer |
---|---|
date | Fri, 05 Apr 2019 22:41:58 +0100 |
parents | bf79fb79ee13 |
children |
rev | line source |
---|---|
samer@0 | 1 ;;; This is a non-scrolly version |
samer@0 | 2 |
samer@0 | 3 (define (expose-all vbls name) |
samer@0 | 4 (define win (Shell.getWindow name)) |
samer@0 | 5 (define cnt (.container win)) |
samer@0 | 6 (.setLayout cnt (javax.swing.BoxLayout. cnt javax.swing.BoxLayout.Y_AXIS$)) |
samer@0 | 7 (for-each (lambda (v) (.add cnt (.getComponent (.getViewer v)))) vbls) |
samer@0 | 8 ;;; window listener? |
samer@0 | 9 ;;; container listener? |
samer@0 | 10 (.addWindowListener win (Shell.closeListener win)) |
samer@0 | 11 (.expose win) |
samer@0 | 12 ) |
samer@0 | 13 |
samer@0 | 14 ;;; Scrolly version a bit more complicated |
samer@0 | 15 |
samer@0 | 16 '(define (expose-all-scrolly vbls name) |
samer@0 | 17 (define win (Shell.getWindow name)) |
samer@0 | 18 (define box (javax.swing.Box.createVerticalBox)) |
samer@0 | 19 (define scr (javax.swing.JScrollPane. box)) |
samer@0 | 20 (define (no-scrollbars) |
samer@0 | 21 (define sb=(.getVerticalScrollBar scr)) |
samer@0 | 22 (if (eq? sb null) |
samer@0 | 23 #t |
samer@0 | 24 (not (.isVisible sb)))) |
samer@0 | 25 |
samer@0 | 26 (.setBorder scr null) |
samer@0 | 27 (.add (.container win) scr) |
samer@0 | 28 (for-each (lambda (v) (.add box (.getComponent (.getViewer v)))) vbls) |
samer@0 | 29 ;;; window listener? |
samer@0 | 30 ;;; container listener? |
samer@0 | 31 ;;; packing/scrollbar policy? |
samer@0 | 32 (.addWindowListener win (Shell.closeListener win)) |
samer@0 | 33 (.expose win) |
samer@0 | 34 ) |