PageRectangle:
TYPE =
MACHINE
DEPENDENT
RECORD [
-- 19 words
startPos: TiogaNode.Location, -- first offset in displayed rectangle
endPos: TiogaNode.Location, -- last offset in displayed rectangle
valid: BOOL ← TRUE, -- metrics valid for this rectangle
topLevelItem: BOOL ← TRUE, -- is this rectangle for a top level item instead of a child?
startOfComp: BOOL ← TRUE, -- is this rectangle the start of a composing stick load?
end: Break ← eon, -- reason for terminating rectangle
selectable: BOOL ← TRUE, -- can this entry be selected
allInclusive: BOOL ← TRUE, -- no data in span [startPos..endPos] outside of PageRectangle
filler: [0..512) ← 0, -- unused bits
yBaseline: INTEGER ← 0, -- baseline displacement from top of parent
xBaseline: INTEGER ← 0, -- baseline displacement from left of parent
topExtent: INTEGER ← 0, -- bounding box extent above yBaseline
bottomExtent: INTEGER ← 0, -- bounding box extent below yBaseline
leftExtent: INTEGER ← 0, -- bounding box extent left of xBaseline
rightExtent: INTEGER ← 0 -- bounding box extent right of xBaseline
];
It may be useful to be able to associate arbitrary data with a PageRectangle, since item nodes may wish to include their children positions. A property list in the PageRectangle would do the trick here, but is probably too expensive. RefTab?