Updated 2014-10-21 21:33:56 by SEH

What: incr Tk Slate megawidget
 Where: http://ptolemy.eecs.berkeley.edu/%7Ejohnr/archives/code/slate/
 Description: The Slate is an [incr Tcl] megawidget layered over the Tcl/Tk
        canvas.  It contains visual hierarchy, symbolic item aspects and
        interaction support.  Release 3.0alpha supports
        Tcl 8.0 or [incr Tcl] 3.0.
 Updated: 07/1998
 Contact: mailto:[email protected] (John Reekie)

JMN 2007-01-28 The entire ptolemy system seems to have migrated to Java a while ago - but there are still earlier versions available which include the Tcl slate code. It's under a BSD style license and includes some very interesting features such as 'interactors'. From the documentation:
 Interactors package common patterns of user interaction into reusable objects.
 They are a mechanism originally developed in Brad Meyer's Garnet system

With a bit of mucking about I was able to get most of the slate demos running under Tcl 8.5 - and it seems to me that the code may be worth rescuing.

escargo 29 Jan 2007 - If it's to be rescued, don't your changes need to be saved somewhere accessible?

JMN 2007-02-03 sure.. I'm working on some stuff in a private subversion repository at the moment - but I'll make it publicly accessible if I get anywhere with it. At the moment I'm just ripping out the logic related to the tycho & ptolemy packages. While it's admirable that slate goes to lengths to test for the presence of things such as Itcl & tycho and adjust accordingly - I had trouble with for example the 'obstcl' oo package that is supposed to emulate Itcl. Most of the code is written using incr Tcl/Tk so in the interests of simplification I'm just giving it a firm dependency on that. Someone can hack 'oo layer' switchability of some sort back in later if they really want it. I'm giving the new package a dependency on Tcl8.5+ and doing minor tweaks like bracing 'expr' statements. Tcl8.5 allows replacement of things like 'tycho::lassign v1 v2 .. $val_list' with the new builtin 'lassign $val_list v1 v2 ...' There's also a tycho::apply which I suspect may be replacable with Tcl8.5 apply...

see also - The Tycho Slate: Complex Drawing and Editing in Tcl/Tk[1]

Source code: [2]