ControlsDoc.tioga
Bloomenthal, September 15, 1986 9:15:43 pm PDT
CEDAR 6.1 — FOR INTERNAL XEROX USE ONLY
Controls
Jules Bloomenthal
© Copyright 1985 Xerox Corporation. All rights reserved.
Abstract: An interface is provided for the creation of menu buttons, vertical or horizontal sliders, circular dials, a typescript, functions, and a graphics display within a viewer. Placement and sizing of these is semi-automatic. Attention has been paid to ease of interaction. A test program is provided to demonstrate some of the control capabilities.
Created by: Jules Bloomenthal
Maintained by: Jules Bloomenthal <Bloomenthal.pa>
Keywords: Controls, sliders, dials, functions, contours, sketches, viewers, interaction.
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
1. Introduction
Generally, Controls is used to produce a top level viewer within which are a number of optional viewers. These optional viewers are of the following types:
Button:  a menu button.
Typescript: a viewer for messages to/from the user.
Graphics: a viewer for drawing pictures.
Control:  is an interactive viewer of one of the following types:
  
  a circular dial or horizontal or vertical slider:
  The sliders or dials may contain optional detent positions, marked by thin
  lines within the control. The control will become detented if the mouse is
  close to the detent position. When detented, the center of the dial or slider
  will display a small circle or square.
  
  a function:
  The user may sketch a function; the left or middle mouse buttons produce a
  freehand curve; the right button connects positions with straight lines.
  
  a contour:
  The user may sketch a freehand contour; if the end of the contour is within a
  few pixels of the beginning, then the contour will be closed. The contour may
  be edited by redrawing parts of it. Some unpredictable results may occur if
  the direction of drawing is reversed while editing the contour.
  
  a sketch:
  The user may make a freehand sketch.
A convenience procedure, OuterViewer, permits an arbitrary number of buttons and controls to be placed within a top level viewer, but only one typescript and one graphics viewer are supported. All subviewers are optional. Generally, OuterViewer positions the buttons at the top, followed in vertically descending order by the typescript, the graphics, and the controls. The controls may be arbitrarily positioned by the client or default positioned by OuterViewer.
The test program, ControlsTest, demonstrates the above features.
2. Software Environment
Bringover -p /Cedar/CedarChest6.1/Top/Controls.df.
3. The Interface
The best description of the procedures and data structures is in Controls.mesa. ControlsTestImpl.mesa provides a programming example.