123456789101112131415161718192021222324252627282930313233343536373839404142 |
- MODULE MultiLogger; (** AUTHOR "TF"; PURPOSE "Log window with a rich-text enabled TextWriter."; *)
- 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.
|