(******************************************************************************) (* 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.