[racket] Creating a useful snip

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Apr 5 15:22:09 EDT 2011

Please! 

On Apr 5, 2011, at 3:06 PM, Jay McCarthy wrote:

> Should I update the docs to mention that as one that must be overridden?
> 
> Jay
> 
> 2011/4/5 Robby Findler <robby at eecs.northwestern.edu>:
>> 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
>>> 
>> 
> 
> 
> 
> -- 
> 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




Posted on the users mailing list.