# Athena Widgets

The Athena widgets were written at MIT. Each of the widget names is a hypertext link to a page describing the widget and including an example.

## Simple Widgets

Command
  A push button that, when selected, may cause a specific action to take place. This widget can display a multi-line string or a bitmap image.
Grip
  A rectangle that, when selected, will cause an action to take place.
Label
  A rectangle that may contain one or more lines of text or a bitmap image.
List
  A list of text strings presented in row column format that may be individually selected. When an element is selected an action may take place.
Panner
  A rectangular area containing a slider that may be moved in two dimensions. Notification of movement may be continuous or discrete.
Repeater
  A push button that triggers an action at an increasing rate when selected.
Scrollbar
  A rectangular area containg a thumb that, when slid along one dimension, may cause a specific action to take place. The Scrollbar may be oriented horixontall or vertically.
Simple
  The vase class for most of the simple widgets. Provides a rectangular area with a settable mouse cursor and special border.
StripChart
  A real time data graph that will automatically update and scroll.
Toggle
  A push button [see Command] that contains state information. Toggles may also be used as radio buttons to implement a "one of many" group of buttons.

## Text Widgets

Text
  Basic text widget supports edit commands.
AsciiText
  This widget contains a text widget and also includes AsciiSrc and and AsciiSink widgets.

## Composite and Constraint Widgets

Box
  This widget will pack its children as tightly as possible in non-overlapping rows.
Dialog
  An implementation of a commonly used interaction semantic to prompt for auxiliary input from the user, such as a filename.
Form
  A more sophisticated layout widget that allows the children to specify their positions relative to the other children, or to the edges of the form.
Paned
  Allows children to be tiled vertically or horizontally. Controls are also provided to allow the user to dynamically resize the individual panes.
Porthole
  Allows viewing of a managed child which is as large as, or larger than its parent, typically under control of a Panner widget.
Tree
  Provides geometry management of widgets arranged in a directed, acyclic graph.
Viewport
  Consists of a frame, one of two scrollbars, and an inner window. The inner window can contain all the data that is to be displayed. This inner window will be clipped by the frame with the scrollbars controlling which section of the inner window is currently visible.