MODULE ExampleTextWriter;
IMPORT
Strings, WMGraphics, WMComponents, WMWindowManager,
WMEditors, TextUtilities, Math;
TYPE
Window* = OBJECT (WMComponents.FormWindow)
VAR editor : WMEditors.Editor;
PROCEDURE &New*;
BEGIN
NEW(editor); editor.bounds.SetExtents(800, 700);
editor.fillColor.Set(WMGraphics.White);
Init(editor.bounds.GetWidth(), editor.bounds.GetHeight(), FALSE);
SetContent(editor);
WMWindowManager.DefaultAddWindow(SELF);
SetTitle(Strings.NewString("TextWriter Example"));
WriteToEditor;
END New;
PROCEDURE WriteToEditor;
VAR
tw : TextUtilities.TextWriter;
i : LONGINT;
buffer : ARRAY 256 OF CHAR;
BEGIN
NEW(tw, editor.text);
tw.SetFontSize(20);
tw.String("This is a simple text. Count from 0 to 10 : "); tw.Ln;
FOR i := 0 TO 10 DO tw.Int(i, 5) END; tw.Ln;
tw.SetFontStyle({WMGraphics.FontBold});
tw.String("This is bold. ");
tw.SetFontStyle({WMGraphics.FontItalic});
tw.String("This is italic.");
tw.SetFontStyle({WMGraphics.FontBold});
tw.SetFontColor(WMGraphics.Red);
tw.String("This is bold red."); tw.Ln;
tw.SetBgColor(WMGraphics.Black);
tw.SetFontColor(WMGraphics.White);
tw.String("This is bold white on black");
tw.Ln;
tw.SetFontStyle({});
tw.SetBgColor(WMGraphics.White);
tw.SetFontColor(WMGraphics.Black);
buffer := "This is a bit fancy! It modulates the vertical offset with a cosine function and fades out.";
i := 0;
tw.SetFontStyle({WMGraphics.FontBold});
WHILE buffer[i] # 0X DO
tw.SetFontColor(WMGraphics.RGBAToColor(i * 2, i * 2, i * 2, 0FFH));
tw.SetVerticalOffset(ENTIER(15 * Math.cos(i/4)));
tw.Char(buffer[i]);
INC(i)
END;
tw.Update;
END WriteToEditor;
END Window;
PROCEDURE Open*;
VAR inst, i2 : Window;
BEGIN
NEW(inst);
NEW(i2);
i2.editor.SetText(inst.editor.text);
END Open;
END ExampleTextWriter.
SystemTools.Free ExampleTextWriter ~
ExampleTextWriter.Open