RegisterJaMGraphics.mesa
Last Edited by: Stone, January 31, 1984 3:09:13 pm PST
DIRECTORY
Commander USING [Register, CommandProc],
JaM USING [State],
JaMTS USING [GetLastHandle, JaMData, CreateJaMTS],
ReadEvalPrint USING [Handle],
List USING [Assoc, CopyTopList],
Rope USING [Cat, ROPE],
Convert USING [RopeFromInt],
TJaMGraphics USING [Create];
RegisterJaMGraphics: CEDAR PROGRAM
IMPORTS Commander, Convert, TJaMGraphics, Rope, List, JaMTS = {
called: INT ← 0;
NewJaMGraphics: Commander.CommandProc --[cmd: Commander.Handle]-- = {
data: JaMTS.JaMData;
rep: ReadEvalPrint.Handle ← JaMTS.GetLastHandle[];
IF rep=NIL THEN {
name: Rope.ROPE ← "JaM";
rules: LIST OF REF ANY ← List.CopyTopList[NARROW[List.Assoc[key: $SearchRules, aList: cmd.propertyList]]];
IF called#0 THEN name ← Rope.Cat[name,Convert.RopeFromInt[from: called, showRadix: FALSE]];
rep ← JaMTS.CreateJaMTS[name, cmd.commandLine, rules];
called ← called+1;
};
data ← NARROW[rep.clientData];
result ← TJaMGraphics.Create[frame: data.state, typescript: rep.viewer];
};
Commander.Register[key: "JaMGraphics", proc: NewJaMGraphics, doc: "Start JaM, its typescript and its Graphics viewer"];
}.