DruidTool.mesa
Copyright Ó 1990, 1992 by Xerox Corporation. All rights reserved.
Peter B. Kessler, August 6, 1990 5:09 pm PDT
A displayer of Druid counting breaks.
DIRECTORY
Druid,
IO,
BasicTime,
BreakWorldArchitecture,
Rope,
SameBreakWorld,
VTables;
DruidTool: CEDAR DEFINITIONS ~ {
Handle: TYPE ~ REF HandleRep ¬ nullHandle;
HandleRep: TYPE ~ MONITORED RECORD [
vTable: VTables.VTable,
sameBreakWorld: SameBreakWorld.Handle ¬ SameBreakWorld.nullHandle,
feedbackStream: IO.STREAM ¬ NIL,
rows: CARD,
rowData: RowData ¬ nullRowData,
changed: BOOLEAN ¬ FALSE,
timeCondition: CONDITION,
samplePulses: BasicTime.Pulses,
summaryStream: IO.STREAM ¬ NIL,
summaryTime: BasicTime.GMT ¬ BasicTime.nullGMT,
title: Rope.ROPE ¬ NIL
];
nullHandle: Handle ~ NIL;
RowData: TYPE ~ REF RowDataRep ¬ nullRowData;
RowDataRep: TYPE ~ RECORD [
next: RowData ¬ nullRowData,
count: CARD ¬ 0,
text: Rope.ROPE ¬ NIL,
feedbackStream: IO.STREAM ¬ NIL,
details: SELECT kind: RowKind FROM
counter => [
megalith: Druid.Megalith ¬ Druid.nullMegalith,
file: Rope.ROPE ¬ NIL,
label: Rope.ROPE ¬ NIL,
position: CARD ¬ 0,
correspondingPosition: CARD ¬ 0
],
subtotal => [
active: BOOLEAN ¬ TRUE
],
ENDCASE
];
RowKind: TYPE ~ { counter, subtotal };
CounterRow: TYPE ~ REF CounterRowRep ¬ nullCounterRow;
CounterRowRep: TYPE ~ RowDataRep.counter;
nullCounterRow: CounterRow ~ NIL;
SubtotalRow: TYPE ~ REF SubtotalRowRep ¬ nullSubtotalRow;
SubtotalRowRep: TYPE ~ RowDataRep.subtotal;
nullSubtotalRow: SubtotalRow ~ NIL;
nullRowData: RowData ~ NIL;
}.