;; tkwait, used for waiting for dialog input (define tkwait-label #f) (define make-panel (lambda () (toplevel '.top) (button '.top.ok :text "OK" :command (lambda () (set! tkwait-label "ok") (destroy .top))) (button '.top.cancel :text "Cancel" :command (lambda () (set! tkwait-label "cancel") (destroy .top))) (pack .top.ok .top.cancel :side "left" :padx "10" :pady "10") (grab 'set .top) (tkwait 'window .top) tkwait-label)) (button '.b :text "Try pressing me!" :command (lambda () (let ([x (make-panel)]) (format #t "You pressed ~a\n" x)))) (pack .b)