MODULE Edit EXPORTS Main;
IMPORT Trestle, VBT, TextPort, Axis, Font, PaintOp, HVBar, HVSplit,
RigidVBT;
FROM TextPort IMPORT Model;
IMPORT Wr, Stdio;
FROM Colors IMPORT red, blue;
CONST
vmin = 40.0; (* Size in millimeters *)
vmax = 100.0; (* Size in millimeters *)
hmin = 40.0; (* Size in millimeters *)
hmax = 100.0; (* Size in millimeters *)
times14 = "-*-times-*-r-*-*-14-*-*-*-*-*-*-*";
VAR
font := Font.FromName(ARRAY OF TEXT{times14});
red_sch := PaintOp.MakeColorScheme(bg := PaintOp.Bg, fg := red);
single := NEW(TextPort.T).init(
singleLine := TRUE, colorScheme := red_sch, font := font,
model := Model.Emacs);
blue_sch := PaintOp.MakeColorScheme(bg := PaintOp.Bg, fg := blue);
multi := NEW(TextPort.T).init(
singleLine := FALSE, colorScheme := blue_sch, font := font,
model := Model.Emacs);
split := HVSplit.Cons(Axis.T.Ver, single, HVBar.New(), multi);
main := RigidVBT.FromHV(split, hmin, vmin, hmax, vmax);
BEGIN
TextPort.SetText(single, "Single Line Editor");
TextPort.SetText(multi, "Multi Line Editor");
Trestle.Install(main);
Trestle.AwaitDelete(main);
(* If either text has been modified, then print it out when we're
done. *)
IF TextPort.IsModified(single) THEN
Wr.PutText(Stdio.stdout, TextPort.GetText(single) & "\n");
END;
IF TextPort.IsModified(multi) THEN
Wr.PutText(Stdio.stdout, TextPort.GetText(multi) & "\n");
END;
END Edit.