Check out the new USENIX Web site.

Home About USENIX Events Membership Publications Students
USENIX Technical Program - Paper - Proceedings of the The Sixth Annual Tcl/Tk Workshop, 1998    [Technical Program]

Pp. 201–202 of the Proceedings

Enhancing Interfaces with Animated Widgets

D. Scott McCrickard
Graphics, Visualization, and Usability Center
and College of Computing
Atlanta GA 30332,

As noted by Tcl creator John Ousterhout, scripting languages are designed to ``glue'' together existing resources making them easier and more efficient to use. In particular, the Tcl/Tk scripting language is designed to be platform-independent with an extensible graphical toolkit for interface design. However, many programs written with scripting languages (specifically agents) are autonomous and long-lived, implying that new interaction techniques may be necessary to best serve the interface designer. One approach is to use animation to provide a hands-off way to deliver information to a user.

Our Agentk toolkit consists of animated widgets, widgets whose appearance changes over time to provide additional information to users. An animated widget is a type of of mega-widget, a collection of widgets operated using a single programming interface. Programmers can control the contents, animation speed, bindings, and other factors of an animated widget using the same type of widget creation commands, widget subcommands, and options syntax that they use with existing widgets. Agentk consists of the following types of widgets:

  • Fade widgets display multiple blocks of text or graphics within a given space by gradually fading between them. The information contained in a fade widget slowly changes color until it matches the background color. This fading effect allows multiple blocks of information (such as stock quotes or ball scores) to be displayed in a single area without having to flip or scroll between items. To control the rate at which information is displayed, a user can click and hold the mouse button to pause the fading effect, then can release it to jump to the next information block.
  • Ticker widgets provide a ticker tape display that automatically scrolls or ``tickers'' text and graphics horizontally across the screen. As with the fade widget, a gradual tickering effect can be less distracting than a sudden switch in information. While the fade widget is useful for showing fixed-size blocks of information, the ticker widget proves to work better for streams of text with arbitrary length such as news or weather bulletins. The user can pause the flow of information by clicking on the ticker and can alter the flow by dragging.
  • Roll widgets scroll information vertically across the screen. As one line disappears at the top of a widget the next appears at the bottom. Roll widgets are well-suited for ordered lists of information such as golf leaderboards or product rankings. As with the ticker widget, a user can pause or alter the flow of information using the mouse.
  • Navigation bar widgets allow a user to view and find information in a list. Navigation bars employ many of the same components as a scrollbar (arrows, a thumb, a trough) that function in a similar manner, but the trough contains colored horizontal lines that represent the items in the list. The colors correspond to groupings of list items, so repeated color patterns will reveal related items. Navigation bars have various programmer-configurable layout options that are useful for various types of lists. As a list changes, the navigation bar automatically updates to show the change.

The Agentk toolkit has been used in a variety of applications for managing email, news, and Web-based information. More information, screenshots, and details on obtaining Agentk can be found at We hope that the animated widgets in Agentk will help programmers build better information management agents and programs.

This paper was originally published in the Sixth Annual Tcl/Tk Workshop, September 14-18, 1998, San Diego, California, USA
Last changed: 8 April 2002 ml
Technical Program
Workshop Index