diff --git a/collects/mrlib/cache-image-snip.ss b/collects/mrlib/cache-image-snip.ss index fd2b60d8..12eadb20 100644 --- a/collects/mrlib/cache-image-snip.ss +++ b/collects/mrlib/cache-image-snip.ss @@ -6,6 +6,7 @@ (lib "list.ss")) (provide cache-image-snip% + cache-image-snip-class% snip-class) ;; type argb = (make-argb (vectorof rational[between 0 & 255]) int) @@ -143,18 +144,24 @@ (define cache-image-snip-class% (class snip-class% (define/override (read f) - (let ([data (read-from-string (send f get-bytes) (lambda () #f))]) - (if data + (data->snip (read-from-string (send f get-bytes) (lambda () #f)))) + (define/public (data->snip data) + (if data (argb->cache-image-snip (make-argb (first data) (second data)) (third data) (fourth data)) - (make-null-cache-image-snip)))) + (make-null-cache-image-snip))) (super-new))) (define snip-class (new cache-image-snip-class%)) (send snip-class set-version 1) (send snip-class set-classname (format "~s" `(lib "cache-image-snip.ss" "mrlib"))) - (send (get-the-snip-class-list) add snip-class) + + ;; ***** WARNING: illegal activities **** -- MF + (define the-drscheme-snip-class (get-the-snip-class-list)) + (send the-drscheme-snip-class add snip-class) + (provide the-drscheme-snip-class) + ;; ***** WARNING: illegal activities **** (define (make-null-cache-image-snip) (define size 10)