SAMPLE03.MOD 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. (******************************************************************************)
  2. (* SAMPLE03.MOD *)
  3. (* *)
  4. (* SetFont Example *)
  5. (* Taken from SAMPLE03.PAS - Metagraphics Software Corporation (c) 1987-1989 *)
  6. (* *)
  7. (* PSW 10/31/90 08:20pm *)
  8. (******************************************************************************)
  9. MODULE Sample03;
  10. (*
  11. * Graphix
  12. * Release 3.7
  13. * (c) Copyright 1986-1992 PMI
  14. * Green Bay, Wisconsin
  15. * (414) 468-6040
  16. * All rights reserved
  17. *
  18. *)
  19. IMPORT GrQry;
  20. IMPORT GrConst;
  21. IMPORT GrFonts;
  22. IMPORT GrPorts;
  23. IMPORT Meta;
  24. IMPORT IO;
  25. (* standard memory allocation procedures *)
  26. FROM Storage IMPORT ALLOCATE, DEALLOCATE, Available;
  27. VAR
  28. GrafixCard,
  29. CommPort: INTEGER;
  30. i, loadErr: INTEGER;
  31. font1Ptr,
  32. font2Ptr,
  33. font3Ptr,
  34. original: GrFonts.adsFont;
  35. filename: ARRAY[0..128] OF CHAR;
  36. scrnR: GrConst.rect;
  37. ch: CHAR;
  38. scrnPort: GrPorts.adsPort;
  39. BEGIN
  40. (* init the system *)
  41. GrQry.GrInit(GrafixCard, CommPort);
  42. i := Meta.InitGrafix(-GrafixCard);
  43. IF (i # 0) THEN
  44. (* Display reason for no go *)
  45. GrQry.GrInitErr(GrafixCard, CommPort, i);
  46. END;
  47. (* get original fonts buffer pointer *)
  48. Meta.GetPort(scrnPort);
  49. original := scrnPort^.txFont;
  50. ALLOCATE(ADDRESS(font1Ptr), 3000);
  51. loadErr := Meta.FileLoad('SYSTEM08.FNT', ADDRESS(font1Ptr), 3000);
  52. IF (loadErr < 0) THEN
  53. GrQry.GrQuit('FileLoad(SYSTEM08.FNT) Error.', 1);
  54. END;
  55. ALLOCATE(ADDRESS(font2Ptr), 3000);
  56. loadErr := Meta.FileLoad('SYSTEM16.FNT', ADDRESS(font2Ptr), 3000);
  57. IF (loadErr < 0) THEN
  58. GrQry.GrQuit('FileLoad(SYSTEM16.FNT) Error.', 1);
  59. END;
  60. ALLOCATE(ADDRESS(font3Ptr), 4000);
  61. loadErr := Meta.FileLoad('ROMANSIM.FNT', ADDRESS(font3Ptr), 4000);
  62. IF (loadErr < 0) THEN
  63. GrQry.GrQuit('FileLoad(ROMANSIM.FNT) Error.', 1);
  64. END;
  65. Meta.ScreenRect(scrnR);
  66. Meta.SetDisplay(GrConst.GrafPg0);
  67. Meta.EraseRect(scrnR);
  68. Meta.TextSize(14, 14); (* Set text size for stroked font, ROMANSIM.FNT *)
  69. Meta.TextFace(GrConst.cProportional);
  70. Meta.SetFont(ADDRESS(font1Ptr)); (* Set font 1 active *)
  71. Meta.MoveTo(10, 130);
  72. Meta.DrawString('Text output using SYSTEM08.FNT');
  73. Meta.SetFont(ADDRESS(font2Ptr)); (* Set font 2 active *)
  74. Meta.MoveTo(10, 150);
  75. Meta.DrawString('Text output using SYSTEM16.FNT');
  76. Meta.SetFont(ADDRESS(font3Ptr)); (* Set font 3 active *)
  77. Meta.MoveTo(10, 170);
  78. Meta.DrawString('Text output using ROMANSIM.FNT');
  79. Meta.SetFont(ADDRESS(original)); (* Set original font active *)
  80. Meta.MoveTo(10, 190);
  81. Meta.DrawString('Text output using original system font');
  82. Meta.MoveTo(10, 20);
  83. Meta.DrawString('Press return to terminate');
  84. ch := IO.RdChar(); (* Wait for a keypress *)
  85. GrQry.GrQuit('', 0);
  86. END Sample03.