GriffinDisplay.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Maureen Stone July 20, 1985 3:10:00 pm PDT
DIRECTORY
Rope USING [ROPE],
PointDefs USING [ScrPt, ScrRealPt],
StyleDefs USING [StyleHandle],
GriffinEncoding USING [EdgeEncoding],
Imager USING [Context, ConstantColor];
GriffinDisplay: CEDAR DEFINITIONS
~ BEGIN
Context: TYPE = Imager.Context;
ROPE: TYPE = Rope.ROPE;
ScrPt: TYPE = PointDefs.ScrPt;
ScrRealPt: TYPE = PointDefs.ScrRealPt;
StyleHandle: TYPE = StyleDefs.StyleHandle;
EdgeEncoding: TYPE = GriffinEncoding.EdgeEncoding;
The following are in floating point "Screen Points" (points)
We want screen dimensions but floating point precision
DrawFastStroke: PROC[edge: EdgeEncoding, dc: Context];
DrawStroke: PROC[edge: EdgeEncoding, style: StyleHandle, dc: Context];
DrawArea: PROC[edge: EdgeEncoding, style: StyleHandle, dc: Context];
DrawCaption: PROC[anchor: ScrRealPt, rope: ROPE, style: StyleHandle, dc: Context];
ClearScreen: PROC[dc: Context];
The following work in Screen Points. Partial pixels would only be a nuisance for us.
SetClipEdges: PROC[tl,br: ScrPt];
ResetClipEdges: PROC;
IsCull: PROC[tl, br: ScrPt, dc: Context] RETURNS [cull: BOOLEAN];
EraseBox: PROC[tl,br: ScrPt, dc: Context];
TokenType: TYPE = {cp, open};
DrawToken: PROC[pt: ScrPt, type: TokenType, dc: Context];
DrawHGrid: PROC[pt: ScrPt, dc: Context];
DrawVGrid: PROC[pt: ScrPt, dc: Context];
DrawSelection: PROC[pt: ScrPt, covered, clustered: BOOLEAN, dc: Context];
Only for the menus
BoxFill: PROC[tl,br: ScrPt, color: Imager.ConstantColor, dc: Context];
InvertBox: PROC[tl,br: ScrPt, dc: Context];
END.