29 lines
582 B
Scheme
29 lines
582 B
Scheme
(define (make-standard-viewer)
|
|
(let ((x 1)
|
|
(y 1)
|
|
(text "")
|
|
(value #f))
|
|
|
|
(lambda (message)
|
|
(cond
|
|
|
|
((eq? message 'init)
|
|
(lambda (self new-value buffer)
|
|
(set! value new-value)
|
|
(set! text
|
|
(layout-result-standard
|
|
(exp->string value)
|
|
(result-buffer-num-cols buffer)))
|
|
self))
|
|
|
|
((eq? message 'paint)
|
|
(lambda (self win buffer have-focus?)
|
|
;; #### get rid of this cruft
|
|
((make-simple-result-buffer-printer y x text '() '())
|
|
win buffer have-focus?)))
|
|
|
|
((eq? message 'key-press)
|
|
(lambda (self . ignore)
|
|
self))))))
|
|
|