IPOutput.mesa
An "operator interface" for writing Interpress masters.
See the Introduction to Interpress, chapter 7.
Last edited by:
Doug Wyatt, March 9, 1984 9:50:37 am PST
DIRECTORY
IO USING [STREAM],
IPBasic USING [ImagerVariable, Op, StrokeEnd],
Imager USING [Context],
Rope USING [ROPE];
IPOutput: CEDAR DEFINITIONS
~ BEGIN
ROPE: TYPE ~ Rope.ROPE;
STREAM: TYPE ~ IO.STREAM;
Master: TYPE ~ REF MasterRep;
MasterRep: TYPE;
Narrow: PROC[REF] RETURNS[Master];
BeginMaster: PROC[fileName: ROPE, encoding: ATOM ← NIL] RETURNS[Master];
BeginMasterFromStream:
PROC[stream:
STREAM, encoding:
ATOM ←
NIL]
RETURNS[Master];
the default encoding is $Xerox; another option is $Written
BeginPreamble: PROC[self: Master];
EndPreamble: PROC[self: Master];
BeginPage: PROC[self: Master];
EndPage: PROC[self: Master];
EndMaster: PROC[self: Master];
Display: PROC[self: Master, action: PROC[Imager.Context]];
PutOp: PROC[self: Master, op: IPBasic.Op];
PutInt: PROC[self: Master, int: INT];
PutReal: PROC[self: Master, real: REAL];
PutIdentifier: PROC[self: Master, identifier: ROPE];
PutName:
PROC[self: Master, name:
ROPE];
name represents a Vector of Identifiers, such as "xerox/pressfonts/timesroman/mrr"
PutString:
PROC[self: Master, string:
ROPE];
string uses the Xerox Character Code Standard: '\377 is treated as an escape code
Get: PROC[self: Master, j: INT];
MakeVecLU: PROC[self: Master, l, u: INT];
MakeVec: PROC[self: Master, n: INT];
Shape: PROC[self: Master];
GetProp: PROC[self: Master, id: ROPE];
GetP: PROC[self: Master, id: ROPE];
MergeProp: PROC[self: Master];
Frame: PROC[self: Master];
FGet: PROC[self: Master, j: INT];
FSet: PROC[self: Master, j: INT];
PoolOp: PROC[self: Master];
Pool: PROC[self: Master];
PGet: PROC[self: Master, j: INT];
PSet: PROC[self: Master, j: INT];
Env: PROC[self: Master];
MakePool: PROC[self: Master];
NoPool: PROC[self: Master];
BeginMakeCO: PROC[self: Master];
EndMakeCO: PROC[self: Master];
BeginMakeSimpleCO: PROC[self: Master];
EndMakeSimpleCO: PROC[self: Master];
Do: PROC[self: Master];
DoSave: PROC[self: Master];
DoSaveAll: PROC[self: Master];
BeginDoBody: PROC[self: Master];
EndDoBody: PROC[self: Master];
BeginDoSaveBody: PROC[self: Master];
EndDoSaveBody: PROC[self: Master];
BeginDoSaveAllBody: PROC[self: Master];
EndDoSaveAllBody: PROC[self: Master];
BeginDoSaveSimpleBody: PROC[self: Master];
EndDoSaveSimpleBody: PROC[self: Master];
Pop: PROC[self: Master];
Copy: PROC[self: Master, depth: INT];
Dup: PROC[self: Master];
Roll: PROC[self: Master, depth, moveFirst: INT];
Exch: PROC[self: Master];
Mark: PROC[self: Master, n: INT];
Unmark: PROC[self: Master, n: INT];
Unmark0: PROC[self: Master];
Count: PROC[self: Master];
BeginIf: PROC[self: Master];
EndIf: PROC[self: Master];
BeginIfElse: PROC[self: Master];
EndIfElse: PROC[self: Master];
BeginIfCopy: PROC[self: Master];
EndIfCopy: PROC[self: Master];
IGet: PROC[self: Master, var: IPBasic.ImagerVariable];
ISet: PROC[self: Master, var: IPBasic.ImagerVariable];
SetPriorityImportant: PROC[self: Master, priorityImportant: BOOL];
SetStrokeWidth: PROC[self: Master, strokeWidth: REAL];
SetStrokeEnd: PROC[self: Master, strokeEnd: IPBasic.StrokeEnd];
SetAmplifySpace: PROC[self: Master, amplifySpace: REAL];
SetCorrectShrink: PROC[self: Master, correctShrink: REAL];
MakeT: PROC[self: Master, a, b, c, d, e, f: REAL];
Translate: PROC[self: Master, x, y: REAL];
Rotate: PROC[self: Master, a: REAL];
Scale: PROC[self: Master, s: REAL];
Scale2: PROC[self: Master, sx, sy: REAL];
Concat: PROC[self: Master];
ConcatT: PROC[self: Master];
TranslateT:
PROC[self: Master, x, y:
REAL];
x y TRANSLATE CONCATT
RotateT:
PROC[self: Master, a:
REAL];
a ROTATE CONCATT
ScaleT:
PROC[self: Master, s:
REAL];
s SCALE CONCATT
Scale2T:
PROC[self: Master, sx, sy:
REAL];
sx sy SCALE2 CONCATT
Move: PROC[self: Master];
Trans: PROC[self: Master];
Show: PROC[self: Master, string: ROPE];
ShowAndXRel: PROC[self: Master, string: ROPE];
SetXY: PROC[self: Master, x, y: REAL];
SetXYRel: PROC[self: Master, x, y: REAL];
SetXRel: PROC[self: Master, x: REAL];
SetYRel: PROC[self: Master, y: REAL];
MakeGray: PROC[self: Master, f: REAL];
FindColor: PROC[self: Master, name: ROPE];
FindColorOperator: PROC[self: Master, name: ROPE];
SetGray: PROC[self: Master, f: REAL];
MoveTo: PROC[self: Master, x, y: REAL];
LineTo: PROC[self: Master, x, y: REAL];
LineToX: PROC[self: Master, x: REAL];
LineToY: PROC[self: Master, y: REAL];
CurveTo: PROC[self: Master, x1, y1, x2, y2, x3, y3: REAL];
ConicTo: PROC[self: Master, x1, y1, x2, y2: REAL, e: REAL];
ArcTo: PROC[self: Master, x1, y1, x2, y2: REAL];
MakeOutline: PROC[self: Master, n: INT];
MaskFill: PROC[self: Master];
MaskFillOutline:
PROC[self: Master, n:
INT ← 1];
n MAKEOUTLINE MASKFILL
MaskStroke: PROC[self: Master];
MaskStrokeClosed: PROC[self: Master];
MaskVector: PROC[self: Master, x1, y1, x2, y2: REAL];
MaskRectangle: PROC[self: Master, x, y, w, h: REAL];
StartUnderline: PROC[self: Master];
MaskUnderline: PROC[self: Master, dy, h: REAL];
FindFont: PROC[self: Master, name: ROPE];
ModifyFont: PROC[self: Master];
SetupFont:
PROC[self: Master, n:
INT, name:
ROPE, scale:
REAL];
[name] FINDFONT scale SCALE MODIFYFONT n FSET
SetFont: PROC[self: Master, n: INT];
CorrectMask: PROC[self: Master];
CorrectSpace: PROC[self: Master, x, y: REAL];
BeginCorrect: PROC[self: Master];
EndCorrect: PROC[self: Master];
SetCorrectMeasure: PROC[self: Master, x, y: REAL];
SetCorrectTolerance: PROC[self: Master, x, y: REAL];
Space: PROC[self: Master, x: REAL];
END.