(module trace-control mzscheme
(require (lib "contract.ss")
(lib "class.ss")
(lib "mred.ss" "mred")
"interfaces.ss"
"message-mixins.ss"
"../model/view.ss"
)
(provide/contract
[trace-control% (class/c panel% updatee<%>)])
(define trace-control%
(class* vertical-panel% (updatee<%>)
(super-new [stretchable-height #f])
(init-field view trace-display)
(public on-update)
(define (do-update . args)
(send trace-display do-update))
(define update (new button%
[parent this]
[label "Update"]
[callback do-update]))
(define actions
(new (updatable-message-mixin message%)
[parent this]
[stretchable-width #t]
[update-label
(lambda () (format "Actions: ~s" (view-count-actions view)))]))
(define objects
(new (updatable-message-mixin message%)
[parent this]
[stretchable-width #t]
[update-label
(lambda () (format "Objects: ~s" (view-count-objects view)))]))
(define (on-update)
(send actions on-update)
(send objects on-update))
))
)