<> <> <> <> DIRECTORY Graphs, HierarchicalDisplays, IO, OrderedSymbolTableRef, PrincOps, Rope, RoseConditions, RoseEvents, RoseRun, RoseTypes, Trees, ViewerClasses, ViewRec; RoseDisplayInsides: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; Viewer: TYPE = ViewerClasses.Viewer; Cell: TYPE = RoseTypes.Cell; Node: TYPE = RoseTypes.Node; Ptr: TYPE = RoseTypes.Ptr; PortIndex: TYPE = RoseTypes.PortIndex; NodeTest: TYPE = RoseTypes.NodeTest; TreeNode: TYPE = Trees.TreeNode; Condition: TYPE = RoseConditions.Condition; SymbolTable: TYPE = OrderedSymbolTableRef.Table; Strength: TYPE = RoseTypes.Strength; TreeNodeList: TYPE = LIST OF TreeNode; Display: TYPE = REF DisplayRep; DisplayRep: TYPE = RECORD [ sim: RoseTypes.Simulation, rootCell: Cell, cth: RoseTypes.CellTestHandle _ NIL, rootDisplay: HierarchicalDisplays.Parent, rv: ViewRec.RecordViewer, ctlPanel: ControlPanel, log: IO.STREAM, logging: Logging, conditionHandle, conditionsHandle: REF ANY _ NIL, notice: CONDITION, stopResponse: StopResponse _ Abort, stopped: PrincOps.FrameHandle _ NIL, type: TopType, parms: RoseRun.TestParms _ NIL, mucking: INTEGER _ 0]; DisplayMode: TYPE = {Value, Test}; Logging: TYPE = ARRAY LogSubject OF BOOL _ ALL[FALSE]; LogSubject: TYPE = {nodeValueChanges, switchComputationSteps}; StopResponse: TYPE = {Resume, Abort}; TopType: TYPE = {Ordinary, Test}; IncList: TYPE = LIST OF RoseConditions.IncrementalCondition; ControlPanel: TYPE = REF ControlPanelRep; ControlPanelRep: TYPE = RECORD [ display: Display, status: Status _ Idle, incrementalDisplay: BOOLEAN _ FALSE, logging: Logging, Pack: PROC [display: Display], NoticeEdits: PROC [display: Display] RETURNS [AOK: BOOLEAN], Run: PROC [display: Display], SingleStep: PROC [display: Display] RETURNS [stepType: RoseRun.StepType], Interrupt: PROC [display: Display], Disable: PROC [display: Display] RETURNS [ok: BOOL], 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 = {Idle, Running, Interrupted}; NodeDisplayList: TYPE = LIST OF NodeDisplay; NodeDisplay: TYPE = RECORD [ org: NodeOrigin, dc: HierarchicalDisplays.Child --where this display is ]; NodeOrigin: TYPE = RECORD [ circ: NodeCircuitOrigin, display: Display]; NodeCircuitOrigin: TYPE = RECORD [ cell: Cell, role: {internal, interface, effectiveInterface}, index: CARDINAL _ LAST[CARDINAL] ]; notFound: CARDINAL = RoseTypes.notFound; notLookedFor: CARDINAL = notFound - 1; CellBrowser: TYPE = REF CellBrowserRep; CellBrowserRep: TYPE = RECORD [ cell: Cell, display: Display, changed: BOOLEAN _ FALSE]; NodeElt: TYPE = REF NodeEltRep; NodeEltRep: TYPE = RECORD [ name: ROPE, node: Node, org: NodeOrigin, parent: CellBrowser, format: RoseTypes.Format, interfaceIndex: PortIndex _ notLookedFor, effectiveInterfaceIndex: RoseTypes.EffectivePortIndex _ notLookedFor, interfaceNode, effectiveInterfaceNode, badString, changed: BOOLEAN _ FALSE, test: NodeTest _ [NIL, 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]; EffectiveInterface: TYPE = REF EffectiveInterfaceRep; EffectiveInterfaceRep: TYPE = RECORD [cb4: 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: RoseEvents.NotifyProc; NotifyCellView: RoseEvents.NotifyProc; NotifyActivity: RoseEvents.NotifyProc; Push: PROC [display: Display, cond: Condition]; Pop: PROC [display: Display] RETURNS [cond: Condition]; FormatNE: PROC [ne: NodeElt] RETURNS [rope: ROPE]; NCOPtr: PROC [n: Node, nco: NodeCircuitOrigin] RETURNS [p: Ptr]; HighlightNode: Graphs.LinkConsumerProc; NewDisplay: PROC [sim: RoseTypes.Simulation, info: ViewerClasses.ViewerRec _ [], paint: BOOLEAN _ TRUE] RETURNS [display: Display]; BrowseDisplay: PROC [display: Display, info: ViewerClasses.ViewerRec _ [], paint: BOOLEAN _ TRUE] RETURNS [v: ViewerClasses.Viewer]; END.