-- File: PressUtilities.mesa,  Edit: Johnsson 13-Apr-81  9:06:47

DIRECTORY
  Press USING [FontWeight, Mica, Points, FontSlope],
  Segments USING [FHandle],
  Streams USING [Handle],
  System USING [gmtEpoch, GreenwichMeanTime];

PressUtilities: DEFINITIONS =
  BEGIN
  
  -- User.cm stuff
  
  UserCmMixup: ERROR;
  SetupFontsForBravo: PROCEDURE [landscape: BOOLEAN ← FALSE];
  SetupFontsForNonProgDisk: PROCEDURE [landscape: BOOLEAN ← FALSE];
  SetupHardCopyOptions: PROCEDURE;
  hardcopyUserName: LONG STRING;
  hardcopyHost: LONG STRING;
  hardcopyFont: LONG STRING;
  
  -- file transmission stuff
  
  ServerBusy: SIGNAL;
  ServerTimeout: SIGNAL;
  ServerTrouble: ERROR [message: STRING];
  FileNotPressFormat: ERROR;
  IsPressFile: PROCEDURE [fh: Segments.FHandle]
    RETURNS [isPressFile: BOOLEAN, lastPage: CARDINAL];
  ParameterProc: TYPE = PROCEDURE [POINTER] RETURNS [CARDINAL];
  SendPressFile: PROCEDURE [
    fileName, host: LONG STRING, copies: CARDINAL ← 1,
    parameterProc: ParameterProc ← NIL];
  SendPressStream: PROCEDURE [
    stream: Streams.Handle, nPages: CARDINAL, host: LONG STRING,
    copies: CARDINAL ← 1, parameterProc: ParameterProc ← NIL,
    fileName: LONG STRING ← NIL, date: System.GreenwichMeanTime ← System.gmtEpoch];
  
  -- Fonts.widths stuff
  
  FindFontWidths: PROCEDURE [
    family: LONG STRING, points: Press.Points, weight: Press.FontWeight,
    slope: Press.FontSlope, widths: LONG POINTER TO ARRAY CHARACTER OF Press.Mica]
    RETURNS [fBBox, fBBoy, fBBdx, fBBdy: Press.Mica];

  FontNotInFontsDotWidths: ERROR;
  ErrorReadingFontWidths: ERROR;
  
  END...