HostFonts.txt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. MODULE HostFonts;
  2. (* for Texts *)
  3. IMPORT Fonts;
  4. CONST
  5. defTypeface = "*";
  6. defSize = 12 * Fonts.point;
  7. defW = 161925;
  8. defAsc = 142875;
  9. defDsc = 28575;
  10. TYPE
  11. Font = POINTER TO RECORD (Fonts.Font) END;
  12. Directory = POINTER TO RECORD (Fonts.Directory) END;
  13. VAR
  14. f: Font;
  15. ti: Fonts.TypefaceInfo;
  16. dir: Directory;
  17. PROCEDURE (f: Font) GetBounds (OUT asc, dsc, w: INTEGER);
  18. BEGIN
  19. asc := defAsc;
  20. dsc := defDsc;
  21. w := defW
  22. END GetBounds;
  23. PROCEDURE (f: Font) StringWidth (IN s: ARRAY OF CHAR): INTEGER;
  24. BEGIN
  25. RETURN LEN(s$) * defW
  26. END StringWidth;
  27. PROCEDURE (f: Font) SStringWidth (IN s: ARRAY OF SHORTCHAR): INTEGER;
  28. BEGIN
  29. RETURN LEN(s$) * defW
  30. END SStringWidth;
  31. PROCEDURE (f: Font) IsAlien (): BOOLEAN;
  32. BEGIN
  33. RETURN TRUE
  34. END IsAlien;
  35. PROCEDURE (d: Directory) This (typeface: Fonts.Typeface; size: INTEGER; style: SET; weight: INTEGER): Font;
  36. BEGIN
  37. RETURN f
  38. END This;
  39. PROCEDURE (d: Directory) Default (): Font;
  40. BEGIN
  41. RETURN f
  42. END Default;
  43. PROCEDURE (d: Directory) TypefaceList (): Fonts.TypefaceInfo;
  44. BEGIN
  45. RETURN ti
  46. END TypefaceList;
  47. PROCEDURE Init;
  48. BEGIN
  49. NEW(f);
  50. f.Init(defTypeface, defSize, {}, Fonts.normal);
  51. NEW(ti);
  52. ti.typeface := defTypeface;
  53. NEW(dir); Fonts.SetDir(dir)
  54. END Init;
  55. BEGIN
  56. Init
  57. END HostFonts.