Next: Observational Study Data
Up: Maintaining Information Awareness in
Previous: Pilot Study Questionnaire
Agentk (pronounced agent-t-k) is extension to the Tcl/Tk toolkit
that facilitate the incorporation of various graphical and
motion-based effects into user interfaces.
It requires Tcl/Tk 8.3 (or a later version)
and requires Jeff Hobbs' megawidget creation
package (included in the distribution) to operate.
Agentk is available on the Web from the Agentk Web site:
http://www.cc.gatech.edu/ mccricks/agentk/
The remainder of this appendix describes the widgets,
options, subcommands, and bindings for Agentk
as well as several sample programs that are included with the
distribution.
The fade widget fades in and out between several blocks of text and
graphics. The gradual change will be less distracting than a sudden
switch, yet will allow multiple information blocks to be displayed in
a single area. The programmer controls the speed with which the fade
occurs depending on the nature of the application: if the widget is
used in a non-agent application interface, a quick fade might be used,
while an agent might call for a slower, less intrusive fade.
The ticker widget provides a ticker tape display that scrolls or
"tickers" information across the screen. As with the fade widget, a
slow tickering can be less distracting than a sudden switch in
information. The ticker widget is better suited for streams of text
with arbitrary length - news headlines, weather reports, traffic
updates. The programmer can control the rate of the tickering
depending on the nature of the programming. The user can grab the
ticker using the mouse to stop the tickering effect to make it easier
to see the information. By dragging the information at a certain
velocity, the user can change the speed and direction of the tickering
effect.
Roll widgets are similar to ticker widgets, except they scroll
information vertically. They work best for lists of information like
golf leaderboards or top sales charts.
The navigation bar communicates information
about the contents of a list by using the space in the trough of the
scrollbar to represent the list entry. Each list entry is represented
with a graphical line. Properties of the list entries are reflected in
properties of the graphical lines.
This section describes the subcommands, options, and bindings
for the Agentk animated widgets.
A subcommand is a command that is available within
a widget command. For example, all Tcl/Tk widgets
(including the animated widgets)
support the configure subcommand
for querying and altering the widget options.
Animated widgets additionally support the following subcommands:
- run command starts the animation effect for the widget.
- pause command pauses the animation until the
run command is reissued.
- jump (fade only) jumps to the next item in the
fade display list.
A configuration option alters the behavior and appearance
of a widget. Common options include -geometry, -font,
and -width.
The following are some selected options that are available
with the animated widgets.
- -speed indicates the speed with which the animation runs.
- -delay (fade only) is the delay in milliseconds
before an item that has faded in begins to fade out.
- -text[variable], -bitmap[variable], and
-image[variable] control the information
that appears in the widget. When the
value is changed, the new information
animates into view as the old information disappears.
For the variable options (such as -textvariable),
the contents of each variable are animated on the screen.
Only one of these options can be used for any given widget
(the variable options have highest precedence,
and images take precedence over bitmaps, and bitmaps over text).
- -separator contains a sequence of characters
that separate entries in the ticker and roll widgets.
This option is overridden by the
-separatorbitmap and -separatorimage options,
which can contain a bitmap or image separator.
- -markupstyle indicates a typeface markup
(either bold, italic, or a color) used to highlight
changes in information. Thus, if new text appears
and the markupstyle is set to red,
the new text will be red.
To end the highlighting,
-markupcount can be set to a number of iterations
or -markuptimeout can be set to a length of time
after which the markups will disappear.
Section 6.4.1 talks more about automatic markups.
- -shadowhistory (a boolean) indicates whether
history-based shadowing should be enabled. If it is,
previous states of the displayed information (text only)
are shown using a shadow effect. See Figure 19
for an example.
-shadowcount and -shadowtimeout can be used
to remove the shadowing after some number of iterations
or some length of time.
Section 6.4.2 talks more about history-based shadowing.
- -throw (a boolean) indicates whether speed
should be adjusted when the user ``throws'' a ticker or roll widget;
that is, drags and releases it.
- -drive synchronizes widgets of the same type
so that they will run in lock step. For example, the two
fade widgets in Figure 21 must always run together
as one widget shows images and the other shows labels for the images.
As one drives the other, each step in the two fades will be calculated
and displayed at the same time.
Figure 21:
The fade interface of the CWIC passive Web browser.
The display consists of two fade widgets
running in sync using the -drive option.
The upper one fades between images
and the lower one fades between text labels for the image.
The first frame shows an initial image and text.
The next two frames show how the image and text fade away
as the new ones fade in.
The final two frames show how the new image and text appear
in their entirety as the old disappear.
Bindings define the behavior when certain actions are performed
by a user on a widget.
Below are the default bindings.
A programmer can tailor the bindings
based on the needs of their applications.
- ButtonPress binding stops the animation effect.
Users who want to read the text without being distracted
by the animation can press and hold the mouse button.
- Motion of the mouse while the mouse button
is being held down drags the ticker and roll widgets.
- ButtonRelease for the fade widget jumps to the
next block of information. For the ticker and roll widget,
it calculates a new speed based on the speed at which the widget
was dragged. For all widgets it restarts the animation effect.
Agentk comes with several demo scripts that showcase its power.
Most of them simply demonstrate the abilities of the widget,
though some provide useful information monitoring capabilities.
The Agentk demo programs are:
- NewsAgent: (Unix only) A simple news agent that monitors
the Yahoo news site and constantly tickers the news headers
across the screen. When new news arrives, a message rapidly
fades in and out until a button is pressed. The button pulls up
a simple news reader. Written by Emily Stretch.
- checklpq: (Unix only) Printer queue checker using a roll widget.
- demo-fade: Fade widgets that show images and captions in sync.
- demo-navbar: Navigation bar widget that highlights names
in a list.
- demo-roll: Displays the script itself in a roll widget.
- demo-ticker: Displays the script itself in a ticker widget.
- tkwatch: (Unix only) Displays stock quotes,
sports scores, news headlines, and more using either a fade,
ticker, or list widget. This is the system used in the observational
study described in Chapter 7.
Next: Observational Study Data
Up: Maintaining Information Awareness in
Previous: Pilot Study Questionnaire
D. Scott McCrickard
Mon Feb 12 12:12:24 EST 2001