File: WhiteboardViewers.mesa
Copyright (C) 1984 by Xerox Corporation. All rights reserved.
Created by: Donahue, January 4, 1985 1:33:07 pm PST
The interface to the Viewer manipulations of whiteboards.
Last Edited by: Winkler, December 18, 1984 11:00:08 am PST
DIRECTORY
Icons USING [IconFlavor],
Rope USING [ROPE],
ViewerClasses USING [Viewer, ViewerFlavor],
ViewerTools USING [TiogaContents];
 
WhiteboardViewers: 
CEDAR 
DEFINITIONS =
BEGIN OPEN Rope;
 
Viewer: TYPE = ViewerClasses.Viewer;
wb: 
READONLY ViewerClasses.ViewerFlavor;
the ViewerFlavor of whiteboards
 
icon: 
READONLY ViewerClasses.ViewerFlavor;
the ViewerFlavor of icons appearing on whiteboards
 
text: 
READONLY ViewerClasses.ViewerFlavor;
the ViewerFlavor of text boxes appearing on whiteboards
 
SetMenu: 
PROC[v: Viewer];
Set the menu of the viewer to be the standard whiteboard menu
 
AddTextBox: 
PROCEDURE[wb: Viewer, x, y, w, h: 
INTEGER, contents: ViewerTools.TiogaContents] 
RETURNS[child: Viewer];
Create a new whiteboard text box with the specified contents, but don't paint it.
 
AddIcon: 
PROCEDURE[wb: Viewer, name: 
ROPE, icon: Icons.IconFlavor, x, y: 
INTEGER] 
RETURNS[child: Viewer];
Create a new icon, but don't paint it.
 
InvertIcon: 
PROC[icon: Viewer, paint: 
BOOL ← 
TRUE];
Invert the mode used to paint the icon (this can be used when opening an icon to suggest that it may take some time)
 
GetGrid: 
PROC[v: Viewer] 
RETURNS[grid: 
INT];
Return the current grid setting for a whiteboard. 
 
SetGrid: 
PROC[v: Viewer, grid: 
INT];
Change the current grid setting.
 
ResetGrid: 
PROC[v: Viewer, grid: 
INT];
Start with a fresh grid setting.
 
MoveChild: 
PROCEDURE[child: Viewer];
Move an object around on the whiteboard.
 
GrowBox: 
PROCEDURE[wb, box: Viewer, x, y: 
INTEGER];
Grow or shrink a whiteboard text box.
 
NearestChild: 
PROCEDURE[wb: Viewer, x, y: 
INTEGER, type: ViewerClasses.ViewerFlavor ← 
NIL] 
RETURNS[nearest: Viewer];
Produces the whiteboard viewer closest to the x, y position of the whiteboard wb.
 
Expand: 
PROC[parent, wb: Viewer, wbList: 
LIST 
OF 
ROPE];
Displays the listed whiteboards in the parent viewer, with lines drawn from the viewer for wb. No logging is done for the viewers added. 
 
DontLog: 
PROC[icon: Viewer] 
RETURNS [
BOOLEAN];
If this icon was added to the whiteboard as the result of an Expand operation, then DontLog will return TRUE -- the idea is that such expansions are not to be logged as permanent changes to the containing whiteboard (they reflect only the current state of affairs)
 
SetWBName: 
PROC[wb: Viewer, name: 
ROPE, paint: 
BOOLEAN ← 
TRUE];
Set the name of a whiteboard viewer to be "Whiteboard: <name>".
 
END...