-- Compiler GriffinFontDefs
-- Stone, February 18, 1980 5:02 PM
-- Tiberi January 24, 1980 4:58 PM
-- interface module for griffin fonts
DIRECTORY
StyleDefs: FROM "StyleDefs",
PointDefs: FROM "PointDefs";
-- ---------------------------------------------------------------------------------
-- ---------------------------------------------------------------------------------
GriffinFontDefs: DEFINITIONS =
BEGIN
-- rotation in minutes, face as in Fonts.Widths
FontDescriptor: TYPE = RECORD [name: STRING, rotation, face, points: CARDINAL];
Rot0Degrees: CARDINAL = 0;
Rot90Degrees: CARDINAL = 5400;
Rot180Degrees: CARDINAL = 10800;
Rot270Degrees: CARDINAL = 16200;
Regular: CARDINAL = 0;
Italic: CARDINAL = 1;
Bold: CARDINAL = 2;
BoldItalic: CARDINAL = Bold + Italic;
FontDescriptorHandle: TYPE = POINTER TO FontDescriptor;
ForAllFonts: PROCEDURE[do: PROCEDURE[font: FontDescriptorHandle]];
DisplayString: PROCEDURE [string: STRING,
screenpt: PointDefs.ScrPt,
anchor: StyleDefs.Anchor,
orientation: StyleDefs.Orientation,
fd: FontDescriptorHandle];
Width, Height: PROCEDURE [c: CHARACTER, fd: FontDescriptorHandle]
RETURNS [CARDINAL];
StringWidth, StringHeight: PROCEDURE [string: STRING, fd: FontDescriptorHandle, orientation: StyleDefs.Orientation]
RETURNS [CARDINAL];
MaxWidth, MaxHeight, BaseLine: PROCEDURE [fd: FontDescriptorHandle]
RETURNS [CARDINAL];
TopLeft: PROCEDURE [anchorPt: PointDefs.ObjPt,
height, width: CARDINAL,
anchor: StyleDefs.Anchor,
orientation: StyleDefs.Orientation,
rotation: CARDINAL]
RETURNS [tl: PointDefs.ObjPt];
BltChar: PROCEDURE [char: CHARACTER, tl: PointDefs.ScrPt,
fd: FontDescriptorHandle];
ReadStrike: PROCEDURE[fp:POINTER, s: STRING] RETURNS[BOOLEAN];
FontError: SIGNAL;
ErrorType: TYPE = {nofonts, nowidths};
StartupFontError: SIGNAL[type: ErrorType];
END.