This paper introduces the Slate package, which has been developed as
part of the Tycho project at UC Berkeley. The Slate is layered over
the Tcl/Tk canvas, and contains features that we believe to be useful
for implementing complex graphical editing and visualization
widgets. The first key feature is the ability to define new item types
in Tcl. The second is an implementation of the concept of
interactor, which abstracts low-level mouse events into
self-contained objects. The third is access to and modification of
items based on their shape, rather than raw coordinates. Combined
with a straight-forward implementation of the model-view-controller
architecture, the Slate is capable of implementing quite sophisticated
graphical editors.