| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- (******************************************************************************)
- (* SAMPLE03.MOD *)
- (* *)
- (* SetFont Example *)
- (* Taken from SAMPLE03.PAS - Metagraphics Software Corporation (c) 1987-1989 *)
- (* *)
- (* PSW 10/31/90 08:20pm *)
- (******************************************************************************)
- MODULE Sample03;
- (*
- * Graphix
- * Release 3.7
- * (c) Copyright 1986-1992 PMI
- * Green Bay, Wisconsin
- * (414) 468-6040
- * All rights reserved
- *
- *)
- IMPORT GrQry;
- IMPORT GrConst;
- IMPORT GrFonts;
- IMPORT GrPorts;
- IMPORT Meta;
- IMPORT IO;
- (* standard memory allocation procedures *)
- FROM Storage IMPORT ALLOCATE, DEALLOCATE, Available;
- VAR
- GrafixCard,
- CommPort: INTEGER;
- i, loadErr: INTEGER;
- font1Ptr,
- font2Ptr,
- font3Ptr,
- original: GrFonts.adsFont;
- filename: ARRAY[0..128] OF CHAR;
- scrnR: GrConst.rect;
- ch: CHAR;
- scrnPort: GrPorts.adsPort;
- BEGIN
- (* init the system *)
- GrQry.GrInit(GrafixCard, CommPort);
- i := Meta.InitGrafix(-GrafixCard);
- IF (i # 0) THEN
- (* Display reason for no go *)
- GrQry.GrInitErr(GrafixCard, CommPort, i);
- END;
- (* get original fonts buffer pointer *)
- Meta.GetPort(scrnPort);
- original := scrnPort^.txFont;
- ALLOCATE(ADDRESS(font1Ptr), 3000);
- loadErr := Meta.FileLoad('SYSTEM08.FNT', ADDRESS(font1Ptr), 3000);
- IF (loadErr < 0) THEN
- GrQry.GrQuit('FileLoad(SYSTEM08.FNT) Error.', 1);
- END;
- ALLOCATE(ADDRESS(font2Ptr), 3000);
- loadErr := Meta.FileLoad('SYSTEM16.FNT', ADDRESS(font2Ptr), 3000);
- IF (loadErr < 0) THEN
- GrQry.GrQuit('FileLoad(SYSTEM16.FNT) Error.', 1);
- END;
- ALLOCATE(ADDRESS(font3Ptr), 4000);
- loadErr := Meta.FileLoad('ROMANSIM.FNT', ADDRESS(font3Ptr), 4000);
- IF (loadErr < 0) THEN
- GrQry.GrQuit('FileLoad(ROMANSIM.FNT) Error.', 1);
- END;
- Meta.ScreenRect(scrnR);
- Meta.SetDisplay(GrConst.GrafPg0);
- Meta.EraseRect(scrnR);
- Meta.TextSize(14, 14); (* Set text size for stroked font, ROMANSIM.FNT *)
- Meta.TextFace(GrConst.cProportional);
- Meta.SetFont(ADDRESS(font1Ptr)); (* Set font 1 active *)
- Meta.MoveTo(10, 130);
- Meta.DrawString('Text output using SYSTEM08.FNT');
- Meta.SetFont(ADDRESS(font2Ptr)); (* Set font 2 active *)
- Meta.MoveTo(10, 150);
- Meta.DrawString('Text output using SYSTEM16.FNT');
- Meta.SetFont(ADDRESS(font3Ptr)); (* Set font 3 active *)
- Meta.MoveTo(10, 170);
- Meta.DrawString('Text output using ROMANSIM.FNT');
- Meta.SetFont(ADDRESS(original)); (* Set original font active *)
- Meta.MoveTo(10, 190);
- Meta.DrawString('Text output using original system font');
- Meta.MoveTo(10, 20);
- Meta.DrawString('Press return to terminate');
- ch := IO.RdChar(); (* Wait for a keypress *)
- GrQry.GrQuit('', 0);
- END Sample03.
|