-- Compiler PressDefs/n
-- Dawson, July 9, 1979  9:09 AM
--Tiberi November 7, 1979  8:27 PM
-- interface module for press file creation

DIRECTORY
	StyleDefs: FROM "StyleDefs",
	GriffinFontDefs: FROM "GriffinFontDefs";

PressDefs:  DEFINITIONS =

BEGIN

X: CARDINAL = 1;
Y: CARDINAL = 2;
maxPressDistance: CARDINAL = 30000;

PressCoord: TYPE = CARDINAL [0 .. maxPressDistance];
PressCoords: TYPE = ARRAY [X .. Y] OF PressCoord;

ColorDescriptor:  TYPE = RECORD -- defaults to black
	[hue:  [0 .. 255] ← 0, saturation: [0 .. 255] ← 0, brightness: [0 .. 255] ← 0];

PressFloat:  TYPE = LONG CARDINAL; -- see BCPL Float package documentation

PressSpline:  TYPE = RECORD [Ax, Bx, Cx, Ay, By, Cy: PressFloat];

BeginPress: PROCEDURE
	[filestring: STRING ← , overwrite: BOOLEAN ← FALSE, copies: CARDINAL ← 1]
	RETURNS [BOOLEAN];

BeginPage: PROCEDURE [lowerleft: PressCoords ← PressCoords [26,300]];

EndPage: PROCEDURE;

EndPress: PROCEDURE RETURNS [BOOLEAN];

ShowText: PROCEDURE [color: ColorDescriptor, textstring: STRING, presscoords: PressCoords, orientation: StyleDefs.Orientation, anchor: StyleDefs.Anchor,font: GriffinFontDefs.FontDescriptor];

ShowRectangle: PROCEDURE [color: ColorDescriptor, presscoords: PressCoords, width, height: PressCoord];

BeginObject: PROCEDURE [color: ColorDescriptor];

EndObject: PROCEDURE;

MoveTo, DrawTo: PROCEDURE [presscoords: PressCoords];

DrawCurve: PROCEDURE [spline: PressSpline];

PressError: SIGNAL;

END.