-- File: PressUtilities.mesa,  Edit: Johnsson October 1, 1980  10:03 AM

DIRECTORY
  Press USING [FontWeight, Mica, Points, FontSlope],
  SegmentDefs USING [FileHandle],
  StreamDefs USING [StreamHandle];

PressUtilities: DEFINITIONS =
  BEGIN
  
  -- User.cm stuff
  
  UserCmMixup: ERROR;
  SetupFontsForBravo: PROCEDURE;
  SetupFontsForNonProgDisk: PROCEDURE;
  SetupHardCopyOptions: PROCEDURE;
  hardcopyUserName: STRING;
  hardcopyHost: STRING;
  
  -- file transmission stuff
  
  ServerBusy: SIGNAL;
  ServerTimeout: SIGNAL;
  ServerTrouble: ERROR [message: STRING];
  FileNotPressFormat: ERROR;
  IsPressFile: PROCEDURE [fh: SegmentDefs.FileHandle]
    RETURNS [isPressFile: BOOLEAN, lastPage: CARDINAL];
  ParameterProc: TYPE = PROCEDURE [POINTER] RETURNS [CARDINAL];
  SendPressFile: PROCEDURE [
    fileName, host: STRING, copies: CARDINAL ← 1,
    parameterProc: ParameterProc ← NIL];
  SendPressStream: PROCEDURE [
    stream: StreamDefs.StreamHandle, nPages: CARDINAL, host: STRING,
    copies: CARDINAL ← 1, parameterProc: ParameterProc ← NIL];
  
  -- Fonts.widths stuff
  
  FindFontWidths: PROCEDURE [
    family: STRING, points: Press.Points, weight: Press.FontWeight,
    slope: Press.FontSlope, widths: POINTER TO ARRAY CHARACTER OF Press.Mica]
    RETURNS [fBBox, fBBoy, fBBdx, fBBdy: Press.Mica];
  FontNotInFontsDotWidths: ERROR;
  ErrorReadingFontWidths: ERROR;
  
  END...