MODULE Script EXPORTS Main;
IMPORT Trestle, VBT, ButtonVBT, TextVBT, HVSplit, TypescriptVBT;
IMPORT Axis;
IMPORT Wr;
PROCEDURE QuitAction (self: ButtonVBT.T; READONLY cd: VBT.MouseRec) =
BEGIN
Trestle.Delete(main);
END QuitAction;
PROCEDURE DoAction (self: ButtonVBT.T; READONLY cd: VBT.MouseRec) =
BEGIN
Wr.PutText(wr, "More lines.\n");
Wr.PutText(wr, "Some more lines.\n");
END DoAction;
VAR
port := NEW(TypescriptVBT.Port).init(readOnly := TRUE);
scr := NEW(TypescriptVBT.T);
wr: TypescriptVBT.Writer;
do := ButtonVBT.New(TextVBT.New("do"), DoAction);
quit := ButtonVBT.New(TextVBT.New("quit"), QuitAction);
bs := HVSplit.Cons(Axis.T.Hor, do, quit);
main := HVSplit.Cons(Axis.T.Ver, scr, bs);
BEGIN
scr.port := port;
EVAL scr.init();
wr := TypescriptVBT.GetWr(scr);
Wr.PutText(wr, "Line one\n");
Wr.PutText(wr, "Line two\n");
Wr.PutText(wr, "Line one\n");
Wr.PutText(wr, "Line two\n");
Wr.PutText(wr, "Line one\n");
Wr.PutText(wr, "Line two\n");
Wr.PutText(wr, "Line one\n");
Wr.PutText(wr, "Line two\n");
Wr.Flush(wr);
Trestle.Install(main);
Trestle.AwaitDelete(main);
END Script.