Text preview for : Rectangles.mesa_Oct77.pdf part of xerox Rectangles.mesa Oct77 xerox mesa 3.0_1977 listing Rectangles.mesa_Oct77.pdf
Back to : Rectangles.mesa_Oct77.pdf | Home
rectang1es,mESA 24-0CT-77 18:38:25 Page 1
-- Rectang1es,Mesa Edited by Sandman on September 27, 1977 11:26 AM
OIRECTORY
AltoDefs: FROM "altodefs",
Contro1Defs: FROM "contro1defs",
ImageDefs: FROM "imagedefs",
In1ineDefs: FROM "in1inedefs",
IODefs: FROM "iodefs",
MiscDefs: FROM "miscdefs",
NovaOps: FROM "novaops",
OsStaticDefs: FROM "osstaticdefs",
SystemDefs: FROM "systemdefs",
SegmentDefs: FROM "segmentdefs",
StreamDefs: FROM "streamdefs",
Rectang1eDefs: FROM "rectang1edefs";
DEFINITIONS FROM In1ineDefs, SystemDefs, SegmentDefs, Stream~efs, Rectang1eDefs:
Rectangles: PROGRAM[pagesformap, mapwordsper1ine: CARDINAL]
IMPORTS ImageDefs, MiscDefs, SystemDefs, SegmentDefs, StreamDefs
EXPORTS RectangleDefs SHARES Rectang1eDefs =
BEGIN
-- CHARACTER constants
CR: CHARACTER = IODefs.CR:
Space: CHARACTER = IODefs.SP:
DEL: CHARACTER = IODefs.DEL:
-- GLOBAL PUBLIC Data (all PUBLIC for initialization guy ?1)
savedfirstDCB: DCBptr ~ NIL:
tempDCB: UNSPECIFIED:
bitmaps: PUBLIC BMHandl e .. NIL:
defaultmapdata: PUBLIC BMHand1e ~ NIL;
defaultfont: PUBLIC Fptr .. NIL; points to start of font
defaultpfont: PUBLIC FAptr ~ NIL: pOints to self relative ptrs
defaultfontsegment: FileSegmentHandle .. NIL;
defaultlineheight: PUBLIC INTEGER; assuming alII ines equal:
defaultcharwidths: STRING ~ [128]: -- should be byte ARRAY (later!!)
-- GLOBAL Data
wordsinpage: INTEGER = AltoOefs.PageSize:
bbtable: ARRAY [0 .. SIZE[BBTable]+l] OF WORD:
bbptr: BBptr ~ LOOPHOLE[@bbtable]:
-- Bitmap Rectangle Routines
CreateRectangle: PUBLIC PROCEDURE
[bitmap: BMHandle, xO, width: xCoord, yO, height: yCoord) RETURNS[Rptr]
BEGIN
-- define locals
rectangle: Rptr;
-- allocate rectangle object and init it
rectangle ~ AllocatefieapNode[SIZE[Rectangle]];
rectangle'!' .. Rectangle[NIL, FALSE" bitmap, xO, width, 0, yO, height, 0]:
rectangle.options .. ROptions[FALSE,FALSE);
-- I ink it into the I istof rectangles and fix it up
rectangle. link .. bitmap. rectangles;
bitmap. rectangles .. rectangle:
rixupRectangle[rectang1e]:
RETURN[rectangle]:
[NO:
DestroyRectangle: PUBLIC PROCroURE [rectangle: Rptr]
B[GTN
-- der ine locals
prey: Rptr:
bitmap: BMHandle .. rectangle.bitmap:
- - del ink i t r r om til eli s tor r e c tan 9 I e s
IF bitmap.rectangles = rectangle THEN
bitmap.rectangles ~ rectangle.link
rl Sf
B[GTN
prey .. bitmap.rectangles:
UNTIL rectangle = pf