(module ft-read-only-text frtime (require racket/gui/base racket/class) (define ft-read-only-text% (class text% (init text (line-spacing 1.0) (tab-stops null) (auto-wrap #f)) (inherit delete insert last-position hide-caret) (define text-e (changes text)) (define programmatic-context? (make-parameter #f)) (define/augment (can-insert? s l) (programmatic-context?)) (define/augment (can-delete? s l) (programmatic-context?)) (define/public set-text (lambda (t) (parameterize ([programmatic-context? #t]) (delete 0 (last-position)) (insert t 0)))) (define text-action (==> text-e (lambda (x) (set-text x)))) (super-new (line-spacing line-spacing) (tab-stops tab-stops) (auto-wrap auto-wrap)) (hide-caret #t)) ) (provide ft-read-only-text%))