2
0

MultiLogger.Mod 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. MODULE MultiLogger; (** AUTHOR "TF"; PURPOSE "Log window with a rich-text enabled TextWriter."; *)
  2. IMPORT
  3. Streams, TextUtilities,
  4. WMComponents, WMEditors, WMGraphics, WMStandardComponents,
  5. WM := WMWindowManager;
  6. TYPE
  7. LogWindow* = OBJECT (WMComponents.FormWindow)
  8. VAR
  9. panel : WMStandardComponents.Panel;
  10. out- : WMEditors.Editor;
  11. tw- : TextUtilities.TextWriter;
  12. open : BOOLEAN;
  13. PROCEDURE &New*(CONST title : ARRAY OF CHAR; VAR stream : Streams.Writer);
  14. BEGIN
  15. NEW(panel); panel.bounds.SetExtents(640, 420); panel.fillColor.Set(WMGraphics.RGBAToColor(255, 255, 255, 255));
  16. NEW(out); out.alignment.Set(WMComponents.AlignClient);
  17. out.tv.showBorder.Set(TRUE);
  18. panel.AddContent(out);
  19. Init(panel.bounds.GetWidth(), panel.bounds.GetHeight(), FALSE);
  20. SetContent(panel);
  21. manager := WM.GetDefaultManager();
  22. SetTitle(WMComponents.NewString(title));
  23. WM.DefaultAddWindow(SELF);
  24. NEW(tw, out.text);
  25. stream := tw;
  26. open := TRUE
  27. END New;
  28. PROCEDURE Close*;
  29. BEGIN
  30. open := FALSE;
  31. Close^
  32. END Close;
  33. END LogWindow;
  34. END MultiLogger.