DIRECTORY
TiogaDisplayTable,
TiogaNode USING [Location, Ref, RefBranchNode, Span],
TiogaNodeOps USING [LastLocWithin];
***** Partial invalidation of display tables *****
StorePageRectangle:
PUBLIC
PROC [dt: DisplayTable, index:
INTEGER, pr: PageRectangle] =
BEGIN
IF index>dt.objects.maxRectangle THEN SetSize[dt, MIN[1, dt.objects.maxRectangle]*2];
dt.objects[index] ← pr;
dt.lastY ← MAX[dt.lastY, pr.yOffset+pr.height];
dt.lastIndexUsed ← MAX[dt.lastIndexUsed, index];
END;
***** Partial invalidation of display tables *****
InvalidateSpan:
PUBLIC
PROC [dt: DisplayTable, span: TiogaNode.Span] =
BEGIN
ERROR; -- Not Yet Implemented
END;
InvalidateChildren:
PUBLIC
PROC [dt: DisplayTable, parent: TiogaNode.Ref] =
BEGIN
-- invalidate lines for children of node
child: TiogaNode.Ref;
span: TiogaNode.Span;
IF (child ← TiogaNode.FirstChild[node])=NIL THEN RETURN;
span ← [[child,0],TiogaNodeOps.LastLocWithin[parent]];
InvalidateSpan[dt, span];
END;
InvalidateBranch:
PUBLIC
PROC [dt: DisplayTable, node: TiogaNode.RefBranchNode] =
BEGIN
-- invalidate lines for children of node
span: TiogaNode.Span ← [[node,0],TiogaNodeOps.LastLocWithin[node]];
InvalidateSpan[dt, span];
END;
VerticalScroll:
PUBLIC
PROC [dt: DisplayTable, upLines:
INTEGER] =
BEGIN
ERROR; -- Not Yet Implemented
END;
***** Table size management *****
New:
PUBLIC
PROC [nEntries:
INTEGER]
RETURNS [dt: DisplayTable] =
BEGIN
ERROR; -- Not Yet Implemented
END;
SetSize:
PUBLIC
PROC [dt: DisplayTable, nEntries:
INTEGER] =
BEGIN
ERROR; -- Not Yet Implemented
END;