[racket] Creating a useful snip
copy.
Robby
On Tue, Apr 5, 2011 at 1:34 PM, Jay McCarthy <jay.mccarthy at gmail.com> wrote:
> I'm trying to create a useful snip that displays a different sub-snip
> every second. I think I've overridden every method required to get a
> "useful" snip, but nothing gets display in DrRacket and the functions
> aren't called ever. Are there other methods that need to be
> overridden?
>
> The code is below...
>
> Jay
>
> #lang racket/base
> (require (for-syntax racket/base)
> racket/class
> racket/function
> racket/runtime-path
> racket/snip)
>
> (define reactive-snip%
> (class* snip% ()
> (init-field sub-snips)
>
> (printf "Snips: ~a\n" sub-snips)
>
> (define (the-snip)
> (list-ref sub-snips
> (modulo (current-seconds) (length sub-snips))))
>
> (define-syntax-rule (delegate id)
> (define/override (id . a)
> (define some-snip (the-snip))
> (printf "Delegating (~a ~a) to ~a\n"
> 'id a
> some-snip)
> (send/apply some-snip id a)))
>
> (delegate get-extent)
> (delegate draw)
> (delegate get-text)
> ; set-unmodified or modified
>
> (super-new)))
>
> (define-runtime-path img1 '(lib "PLT-206-larval.png" "icons"))
> (define-runtime-path img2 '(lib "PLT-206-mars.jpg" "icons"))
>
> (define sub-snips
> (map (curry make-object image-snip%)
> (list img1 img2)))
>
> (define x
> (make-object
> reactive-snip%
> sub-snips))
>
> sub-snips
>
> x
>
> --
> Jay McCarthy <jay at cs.byu.edu>
> Assistant Professor / Brigham Young University
> http://faculty.cs.byu.edu/~jay
>
> "The glory of God is Intelligence" - D&C 93
> _________________________________________________
> For list-related administrative tasks:
> http://lists.racket-lang.org/listinfo/users
>