-- 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.ROPENIL,
 initFrame: BOOLEANFALSE]
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];

}.