The Slate is an [incr Tcl] megawidget layered over the Tcl/Tk canvas.
It contains features that we believe to be necessary or useful for
implementing complex graphical editing and visualization widgets. The
key features of the Slate are:
- A visual hierarchy
- The Slate implements a straight-forward visual hierarchy, as is
common in many graphics packages. We are able to define new kinds of
graphical items that are composed of simpler items. All of the canvas
methods are rewritten to handle hierarchical items.
- Item shapes
- Every item has a shape, such as point, rectangle,
polygon, or a custom-designed shape. Items can be queried for
the coordinates of an aspect, such as the north-east corner or
the second vertex. Items can be requested to move one or more aspects,
reshaping the item.
- Interactors
- Event-handlers can be bound to any level of the visual
hierarchy. In addition, we implemented a more abstract and much more
powerful user interaction framework, in which a particular sequence of
user interactions is abstracted into objects called
interactors.
The Slate also contains other useful methods, such as highlighting and
selection. To see an example of an editor
and some widgets created with the Slate, see the
Continuous time simulation demo screen-shot page.
Documentation available:
- A short tutorial
- If
you are reading this in the Tycho HTML browser, you can double-click
on the Tcl code to execute it. Otherwise, you can copy and
paste, or just read it.
- The programmer's guide
- A somewhat-disorganized guide to the internals of the Slate,
the available classes and features, and a programmer's
FAQ.
- Class documentation
- Documentation for the Slate classes, generated from the source
code by the
tydoc
utility.
Some other useful links:
- The Tycho Slate: Complex Drawing and Editing in Tcl/Tk
- A paper about the Slate, which will appear in the Tcl/Tk
conference in September 1998.
- The Tycho User Interface System
- A paper about Tycho.
Copyright © 1996-1998, The Regents of the University of California.
All rights reserved.
Last updated: 05/07/98,
comments to: johnr@eecs.berkeley.edu