RoseDisplayInsides.Mesa
Last Edited by: Spreitzer, November 28, 1983 2:00 pm
Last Edited by: Barth, June 9, 1983 11:19 am
DIRECTORY
HierarchicalDisplays, OrderedSymbolTableRef, Rope, Rosemary, RoseConditions, Trees, ViewerClasses, ViewRec;
RoseDisplayInsides: DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
Viewer: TYPE = ViewerClasses.Viewer;
Cell: TYPE = Rosemary.Cell;
Node: TYPE = Rosemary.Node;
TreeNode: TYPE = Trees.TreeNode;
Condition: TYPE = RoseConditions.Condition;
SymbolTable: TYPE = OrderedSymbolTableRef.Table;
TreeNodeList: TYPE = LIST OF TreeNode;
Display: TYPE = REF DisplayRep;
DisplayRep: TYPE = RECORD [
rootCell: Cell,
rootDisplay: HierarchicalDisplays.Parent,
rv: ViewRec.RecordViewer,
ctlPanel: ControlPanel,
conditionHandle, conditionsHandle: REF ANYNIL,
notice: CONDITION,
stopResponse: StopResponse ← Abort,
parms: Rosemary.TestParms ← NIL];
DisplayMode: TYPE = {Value, Test};
StopResponse: TYPE = {Resume, Abort};
IncList: TYPE = LIST OF RoseConditions.IncrementalCondition;
ControlPanel: TYPE = REF ControlPanelRep;
ControlPanelRep: TYPE = RECORD [
display: Display,
status: Status ← Normal,
incrementalDisplay: BOOLEANFALSE,
Pack: PROC [display: Display],
NoticeEdits: PROC [display: Display] RETURNS [AOK: BOOLEAN],
NoticeEditsAndRunIfOK: PROC [display: Display] RETURNS [AOK: BOOLEAN],
Run, SingleStep: PROC [display: Display],
Test: PROC [display: Display, cellPathName: ROPE],
ListSchedule: PROC [display: Display] RETURNS [asRope: ROPE],
Interrupt, Proceed, Abort: PROC [display: Display],
ClearStack, ClearCondition, Or, PostCondition, RemoveCondition, PostIncremental, RemoveIncremental: PROC [display: Display],
AddNamedCondition, DeleteNamedCondition: PROC [display: Display, name: ROPE],
Save, Restore: PROC [display: Display, fileName: ROPE] RETURNS [errMsg: ROPE],
mode: DisplayMode ← Value,
conditions: SymbolTable,
conditionStack: TreeNodeList ← NIL,
condition: TreeNode ← NIL
];
Status: TYPE = {Normal, Interrupted};
NodeDisplayList: TYPE = LIST OF NodeDisplay;
NodeDisplay: TYPE = RECORD [
org: NodeOrigin,
dc: HierarchicalDisplays.Child --where this display is
];
NodeOrigin: TYPE = RECORD [
cell: Cell,
display: Display];
CellBrowser: TYPE = REF CellBrowserRep;
CellBrowserRep: TYPE = RECORD [
cell: Cell, display: Display, parent: CellBrowser,
changed: BOOLEANFALSE];
NodeElt: TYPE = REF NodeEltRep;
NodeEltRep: TYPE = RECORD [
name: ROPE,
node: Node,
org: NodeOrigin,
parent: CellBrowser,
interfaceIndex: CARDINAL,
interfaceNode, badString, changed: BOOLEANFALSE,
testData: REF ANYNIL,
testProc: Rosemary.TestProc ← NIL];
CellState: TYPE = REF CellStateRep;
CellStateRep: TYPE = RECORD [cb0: CellBrowser];
InterfaceNodes: TYPE = REF InterfaceNodesRep;
InterfaceNodesRep: TYPE = RECORD [cb1: CellBrowser];
InternalNodes: TYPE = REF InternalNodesRep;
InternalNodesRep: TYPE = RECORD [cb2: CellBrowser];
Components: TYPE = REF ComponentsRep;
ComponentsRep: TYPE = RECORD [cb3: CellBrowser];
nodeDisplaysProp, cellStateDisplayProp: ATOM;
leafProp: ATOM;
nodeClass, cellClass, cellStateClass: HierarchicalDisplays.ChildClass;
NDLSearch: PROC [ndl: NodeDisplayList, org: NodeOrigin, remove: BOOLEAN] RETURNS [newdl: NodeDisplayList, nd: NodeDisplay, found: BOOLEAN];
NotifyNodeView: Rosemary.NodeNotifyProc;
NotifyCellView: Rosemary.CellNotifyProc;
Push: PROC [display: Display, cond: Condition];
Pop: PROC [display: Display] RETURNS [cond: Condition];
END.