MODULE Memo; (* This module shows a simple example of a text tool and a point tool created by using the text tool several times. *) IMPORT R2, PS, Geometry, Show; PROC Line(a, b, txt) IS IF VAR c ~ (0.9774, -0.1485) REL (a, b) IN c = Geometry.HorVer(a, b) -> PS.MoveTo(a); Show.L(txt); PS.LineTo(c); PS.Stroke() END FI END; UI TextTool(Line); CONST LineHeight = 30; PRIVATE FUNC b = Below(a) IS b = R2.MinusY(a, LineHeight) END; PROC Memo(a) IS IF VAR b = Below(a), c = (2, 0) REL (a, b), d = (3, 0) REL (a, b), e = (4, 0) REL (a, b), f = (-1, 8) REL (a, b) IN Line(a, f, "To:"); Line(b, f, "From: "); Line(c, f, "Date: "); Line(d, f, "Memo: "); Line(e, f, "") END FI END; UI PointTool(Memo); PROC Cmd0() IS IF VAR a ~ (-110.7, 64.69) IN Memo(a) END FI END;