(module progress mzscheme (require (lib "list.ss" "srfi" "1") (lib "mred.ss" "mred") (lib "framework.ss" "framework") (lib "class.ss") "../../progress.ss") (define main-frame% (class (frame:status-line-mixin (frame:basic-mixin frame%)) (init label (parent #f) (width #f) (height #f)) (super-new (label label) (parent parent) (width width) (height height)))) (define frame (new main-frame% (label "Test") (width 600) (height 200))) (define contents (new vertical-pane% (parent (send frame get-area-container)) (alignment '(center center)) (stretchable-height #t))) (send frame open-status-line 'status) (send frame update-status-line 'status "In progress...") (send frame show #t) (define progress-meters (map-in-order (lambda (tick) (new progress-meter% (parent contents) (vert-margin 10) (width 505) (tick tick))) (list tick/large tick/medium tick/small))) (thread (lambda () (for-each (lambda (i) (map (lambda (p) (send p update-progress (/ (add1 i) 100))) progress-meters) (sleep 0.01)) (iota 100)) (send frame update-status-line 'status "Done."))) (provide (all-defined)))