MODULE MultiLogger;
IMPORT
Streams, TextUtilities,
WMComponents, WMEditors, WMGraphics, WMStandardComponents,
WM := WMWindowManager;
TYPE
LogWindow* = OBJECT (WMComponents.FormWindow)
VAR
panel : WMStandardComponents.Panel;
out- : WMEditors.Editor;
tw- : TextUtilities.TextWriter;
open : BOOLEAN;
PROCEDURE &New*(CONST title : ARRAY OF CHAR; VAR stream : Streams.Writer);
BEGIN
NEW(panel); panel.bounds.SetExtents(640, 420); panel.fillColor.Set(WMGraphics.RGBAToColor(255, 255, 255, 255));
NEW(out); out.alignment.Set(WMComponents.AlignClient);
out.tv.showBorder.Set(TRUE);
panel.AddContent(out);
Init(panel.bounds.GetWidth(), panel.bounds.GetHeight(), FALSE);
SetContent(panel);
manager := WM.GetDefaultManager();
SetTitle(WMComponents.NewString(title));
WM.DefaultAddWindow(SELF);
NEW(tw, out.text);
stream := tw;
open := TRUE
END New;
PROCEDURE Close;
BEGIN
open := FALSE;
Close^
END Close;
END LogWindow;
END MultiLogger.