-- Font.mesa
-- Last changed by Doug Wyatt, October 28, 1980 3:45 PM

Font: DEFINITIONS = {

Fam: TYPE = [0..377B];
Face: TYPE = [0..377B];

Id: TYPE = RECORD[fam: Fam, face: Face];
nullId: Id = [0,0];

EncodeFam: PROC[family: STRING] RETURNS[Fam];
DecodeFam: PROC[fam: Fam, family: STRING]; -- appends to string

Weight: TYPE = {light, medium, bold};
Slope: TYPE = {regular, italic};
Expansion: TYPE = {regular, condensed, expanded};

EncodeFace: PROC[w: Weight, s: Slope, e: Expansion ← regular] RETURNS[Face];
EncodeTexFace: PROC[size: [0..100]] RETURNS[Face];
DecodeFace: PROC[Face] RETURNS[w: Weight, s: Slope, e: Expansion];
DecodeTexFace: PROC[Face] RETURNS[size: [0..100]];

CharBox: PROC[id: Id, c: CHARACTER] RETURNS[dx,dy,ox,oy: REAL];
CharWidth: PROC[id: Id, c: CHARACTER] RETURNS[wx,wy: REAL];
FontBox: PROC[id: Id] RETURNS[dx,dy,ox,oy: REAL];

FontImpl: PROGRAM;
}.