[plt-scheme] user-extensible graphical "print" format

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun May 16 15:57:19 EDT 2004

Take a look at the new plot library in 207. It
shows plots as snips inside of Dr's repl.

-- Matthias

On May 16, 2004, at 2:27 PM, Neil W. Van Dyke wrote:

>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> Gregory Cooper <greg at cs.brown.edu> writes at 09:26 16-May-2004 -0400:
>> You can define a custom language%, overriding the render-value and
>> render-value/format methods.  This is how FrTime displays values that
>> change over time (look at frtime-tool.ss in the frtime collection).
> [...]
> That's very useful information, and I'm sure to want to define my own
> snip-heavy language at some point.
> I'd also like a way to associate a snip constructor with an object type
> (struct and object%) as a "graphical print" of that object, which works
> in *any* DrScheme language from which that object is exposed.  If not a
> snip, then a bitmap.
> Better yet, and the rest of this is just wishlist items for DrScheme
> implementors to keep in mind...
> I'd like DrScheme to have general-purpose struct and object%
> field-inspector snips with little turndown boxes like it currently has
> for syntax-snip.  My custom "graphical print" would be a snip, drawing
> routines, or bitmap, in addition to that.
> So, if i had a "barcode" struct that printed as "#<struct:barcode>",
> when printed in the DrScheme interactions window, there would be a
> little turndown control beside it.  When clicked, the snip would expand
> to show the inspectable field names and values (value displays might
> have turndown controls themselves).  That would be standard DrScheme
> stuff.  Then, if I defined a custom "graphical print" for "barcode"
> structs (which rendered the barcode graphically!), DrScheme would use
> that in lieu of "#<struct:barcode>" text, and still have the standard
> turndown control.
> To make this feasible, I imagine the turndowns might have to capture
> only a small representation of the field values but not prevent
> reclamation of huge amounts of memory if there are many turndown
> controls currently in the Interactions window.  Maybe weak references
> could be used to permit turndown navigation on a value only if it's not
> yet been GC'd (navigation would be in addition to the small
> representation we captured).
> -- 
> http://www.neilvandyke.org/

Posted on the users mailing list.