Notes and cleanup for gui/val

This commit is contained in:
Jay McCarthy 2014-11-20 20:15:50 -08:00
parent bb1567f481
commit f1a4039c55
2 changed files with 26 additions and 32 deletions

View File

@ -1,15 +1,14 @@
#lang racket/base #lang racket/base
(require racket/class (require racket/class
racket/draw racket/draw
racket/fixnum
racket/contract/base racket/contract/base
pict pict
pict/convert) pict/convert)
;; xxx maybe draw to a bitmap and blit
(define (make-gui/val #:scale? [scale? #t]) (define (make-gui/val #:scale? [scale? #t])
(define last-val #f) (λ (o)
(define (output-val o)
(unless (eq? o last-val)
(set! last-val o)
(define p (pict-convert o)) (define p (pict-convert o))
(λ (w h dc) (λ (w h dc)
(parameterize ([dc-for-text-size dc]) (parameterize ([dc-for-text-size dc])
@ -26,7 +25,6 @@
(send dc set-brush "white" 'solid) (send dc set-brush "white" 'solid)
(send dc draw-rectangle left top spw sph) (send dc draw-rectangle left top spw sph)
(draw-pict sp dc left top))))) (draw-pict sp dc left top)))))
output-val)
(provide (provide
(contract-out (contract-out

View File

@ -11,7 +11,11 @@
lux/chaos/gui/key) lux/chaos/gui/key)
(define MODES (define MODES
'(pict image)) (list (pict:arrowhead 30 0)
(image:add-line
(image:rectangle 100 100 "solid" "darkolivegreen")
25 25 75 75
(image:make-pen "goldenrod" 30 "solid" "round" "round"))))
(struct demo (struct demo
(g/v mode) (g/v mode)
@ -20,15 +24,7 @@
(lux-standard-label "Values" ft)) (lux-standard-label "Values" ft))
(define (word-output w) (define (word-output w)
(match-define (demo g/v mode-n) w) (match-define (demo g/v mode-n) w)
(g/v (g/v (list-ref MODES mode-n)))
(match (list-ref MODES mode-n)
['pict
(pict:arrowhead 30 0)]
['image
(image:add-line
(image:rectangle 100 100 "solid" "darkolivegreen")
25 25 75 75
(image:make-pen "goldenrod" 30 "solid" "round" "round"))])))
(define (word-event w e) (define (word-event w e)
(match-define (demo g/v mode-n) w) (match-define (demo g/v mode-n) w)
(define closed? #f) (define closed? #f)