-- JaMTypeScript.mesa
-- Last edit by Paxton, October 4, 1982 2:34 pm
-- Last Edited by: Stone, March 8, 1983 4:57 pm
DIRECTORY
ViewerClasses USING [Viewer],
JaMInternal USING [Frame],
Rope USING [ROPE];
JaMTypeScript: DEFINITIONS = {
InitTool: PROC [viewerName: Rope.ROPE,
frame: JaMInternal.Frame ← NIL,
param: Rope.ROPE ← NIL,
initFrame: BOOLEAN ← FALSE]
RETURNS [tool: ViewerClasses.Viewer, already: BOOLEAN];
-- create JaM typescript viewer
-- returns true if viewer already existed for given frame
GetTypeScript: PROC [frame: JaMInternal.Frame] RETURNS [ViewerClasses.Viewer];
-- return the ts associated with frame
-- returns NIL if no association exists
NotifyBeforeDestroy: PROC [ts: ViewerClasses.Viewer, proc: PROC [JaMInternal.Frame]];
-- before destroy ts, call proc with frame for ts as arg
DoButton: PROC[tool: ViewerClasses.Viewer, atom: ATOM, x,y: REAL];
DoAtom: PROC[tool: ViewerClasses.Viewer, atom: ATOM];
MouseProc: TYPE = PROC[JaMInternal.Frame,REAL,REAL];
SetMouseProc: PROC[MouseProc] RETURNS[MouseProc];
}.