Fonts.txt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. MODULE Fonts;
  2. (* THIS IS TEXT COPY OF BlackBox 1.6-rc6 System/Mod/Fonts.odc *)
  3. (* DO NOT EDIT *)
  4. CONST
  5. (** universal units **)
  6. mm* = 36000;
  7. point* = 12700; (** 1/72 inch **)
  8. italic* = 0; underline* = 1; strikeout* = 2; (** style elements **)
  9. normal* = 400; bold* = 700;
  10. default* = "*";
  11. TYPE
  12. Typeface* = ARRAY 64 OF CHAR;
  13. Font* = POINTER TO ABSTRACT RECORD
  14. typeface-: Typeface;
  15. size-: INTEGER;
  16. style-: SET;
  17. weight-: INTEGER
  18. END;
  19. TypefaceInfo* = POINTER TO RECORD
  20. next*: TypefaceInfo;
  21. typeface*: Typeface
  22. END;
  23. Directory* = POINTER TO ABSTRACT RECORD
  24. END;
  25. VAR dir-: Directory;
  26. PROCEDURE (f: Font) Init* (typeface: Typeface; size: INTEGER; style: SET; weight: INTEGER), NEW;
  27. BEGIN
  28. ASSERT(f.size = 0, 20); ASSERT(size # 0, 21);
  29. f.typeface := typeface$; f.size := size; f.style := style; f.weight := weight
  30. END Init;
  31. PROCEDURE (f: Font) GetBounds* (OUT asc, dsc, w: INTEGER), NEW, ABSTRACT;
  32. PROCEDURE (f: Font) StringWidth* (IN s: ARRAY OF CHAR): INTEGER, NEW, ABSTRACT;
  33. PROCEDURE (f: Font) SStringWidth* (IN s: ARRAY OF SHORTCHAR): INTEGER, NEW, ABSTRACT;
  34. PROCEDURE (f: Font) IsAlien* (): BOOLEAN, NEW, ABSTRACT;
  35. PROCEDURE (d: Directory) This* (typeface: Typeface; size: INTEGER; style: SET; weight: INTEGER): Font, NEW, ABSTRACT;
  36. PROCEDURE (d: Directory) Default* (): Font, NEW, ABSTRACT;
  37. PROCEDURE (d: Directory) TypefaceList* (): TypefaceInfo, NEW, ABSTRACT;
  38. PROCEDURE SetDir* (d: Directory);
  39. BEGIN
  40. ASSERT(d # NIL, 20);
  41. dir := d
  42. END SetDir;
  43. END Fonts.