-- RegisterJaMGraphics.mesa
-- Last changed by Warren Teitelman, 1-Apr-82 15:28:50
-- Last changed by Bill Paxton, May 18, 1982 1:21 pm
-- Last changed by McGregor, June 14, 1982 9:29 am
-- Last Edited by: Stone, March 16, 1983 7:02 pm
-- Last changed by Doug Wyatt, July 21, 1983 9:39 pm

DIRECTORY
Commander USING [Register, CommandProc],
IO USING [Handle, CreateOutputStreamToRope, GetOutputStreamRope, Put, text, int, rope, PutF,STREAM],
Rope USING [ROPE],
JaMInternal USING [Frame],
JaMOps USING [NewFrame, defaultFrame],
TJaMGraphics USING [Create],
ViewerClasses USING [Viewer],
JaMTypeScript USING [InitTool];

RegisterJaMGraphics: PROGRAM
IMPORTS IO, JaMOps, JaMTypeScript, Commander, TJaMGraphics = {

count: INTEGER ← 1;

InitToolCommand: Commander.CommandProc --[cmd: Commander.Handle]-- = TRUSTED { OPEN IO;
out: IO.STREAM = cmd.out;
param: Rope.ROPE = cmd.commandLine;
name: Rope.ROPE ← "JaM";
viewer: ViewerClasses.Viewer;
already: BOOLEAN;
frame: JaMInternal.Frame ← JaMOps.defaultFrame;
[viewer,already] ← JaMTypeScript.InitTool[viewerName: name, param: param];
IF already THEN {
h: Handle ← CreateOutputStreamToRope[];
frame ← JaMOps.NewFrame[];
Put[h,text["JaM"],int[count ← count+1]];
name ← GetOutputStreamRope[h];
[viewer,] ← JaMTypeScript.InitTool[name,frame,param,TRUE] };
[] ← TJaMGraphics.Create[frame,viewer];
out.PutF["%g TypeScript and graphics viewer created.\n",rope[name]];
};

Commander.Register["JaMGraphics", InitToolCommand,
"Create a typescript and graphics viewer for JaM"];

}.