DIRECTORY Font USING [Key], ImagerBasic USING [PathMapType], Rope USING [ROPE]; UFPressFontReader: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; FontKey: TYPE = RECORD [fileKey: Font.Key, fontIndex: NAT _ 0]; CharShapeRepresentation: TYPE = {raster, outline, widthsOnly}; Error: SIGNAL[errorCode: ErrorCode, fontFileWordOffset: INT]; ErrorCode: TYPE = {fileNotFound, fontIndexTooLong, cantHappen, dataSegmentTooLong, invalidPointerInFile, consistencyCheck, fileHasBeenClosed, wrongFontFormatForThisOperation, invalidCodeInFile}; NumberOfFontsInFile: PROCEDURE [fileKey: Font.Key] RETURNS [NAT]; Family: PROCEDURE [fontKey: FontKey] RETURNS [family: ROPE]; Face: PROCEDURE [fontKey: FontKey] RETURNS [face: [0..256)]; Range: PROCEDURE [fontKey: FontKey] RETURNS [bc, ec: CHAR]; Size: PROCEDURE [fontKey: FontKey] RETURNS [size: REAL]; Rotation: PROCEDURE [fontKey: FontKey] RETURNS [degrees: REAL]; Representation: PROCEDURE [fontKey: FontKey] RETURNS [representation: CharShapeRepresentation]; Resolution: PROCEDURE [fontKey: FontKey] RETURNS [xRes, yRes: REAL]; GetCharInfo: PROCEDURE [fontKey: FontKey, char: CHAR] RETURNS [info: CharInfo]; CharInfo: TYPE = RECORD [ widthX, widthY: REAL, -- the width vector minX, minY: REAL, -- the lower left corner of the bounding box maxX, maxY: REAL -- the upper right corner of the bounding box ]; MoveToProc: TYPE = PROCEDURE [x, y: REAL]; LineToProc: TYPE = PROCEDURE [x, y: REAL]; CurveToProc: TYPE = PROCEDURE [x1, y1, x2, y2, x3, y3: REAL]; DrawAreaProc: TYPE = PROCEDURE; GetCharOutline: PROCEDURE [ fontKey: FontKey, char: CHAR, moveToProc: MoveToProc, lineToProc: LineToProc, curveToProc: CurveToProc, drawAreaProc: DrawAreaProc ]; GetCharPath: PROCEDURE [ fontKey: FontKey, char: CHAR ] RETURNS [pathMap: ImagerBasic.PathMapType, pathData: REF]; END. ξUFPressFontReader.mesa Created January 17, 1983 2:07 pm Last edit by Michael Plass on October 27, 1983 10:29 am Last edit by Doug Wyatt on September 30, 1983 6:17 pm in meters, or 0 for a scalable font in bits per inch; only useful for raster fonts All of the above dimensions are relative to the point size of the character, and are measured from the reference point of the character, with y increasing upwards and x increasing to the right. ERROR if Representation[fontKey] # outline. Κ—˜Jšœ™Jšœ ™ Jšœ7™7Jšœ5™5J˜šΟk ˜ Jšœœ˜Jšœ œ˜ Jšœœœ˜—Iunitšœœ œ˜&Jš˜Kšœœœ˜Kšœ œœ œ˜?Kšœœ!˜>Kšœœ+œ˜=Kšœ œ³˜ΒKšΟnœ œœœ˜AKšžœ œœ œ˜