DIRECTORY Graphs, HierarchicalDisplays, IO, PrincOps, RedBlackTree, 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 = RedBlackTree.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, typeDataDisplayProp: 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.EdgeConsumerProc; 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. ΎRoseDisplayInsides.Mesa Last Edited by: Spreitzer, October 25, 1985 6:34:05 pm PDT Last Edited by: Barth, June 9, 1983 11:19 am Last Edited by: Gasbarro, July 17, 1984 3:58:22 pm PDT Κ?˜J™J™:J™,J™6Icode˜KšΟk œœn˜˜K˜KšΠbxœœ œ˜'K˜Kš˜K˜Kšœœœ˜Kšœœ˜$Kšœœ˜Kšœœ˜Kšœœ˜Kšœ œ˜&Kšœ œ˜$Kšœ œ˜ Kšœ œ˜+Kšœ œ˜'Kšœ œ˜$K˜Kšœœœœ ˜&K˜Kšœ œœ ˜šœ œœ˜K˜Kšœ˜Kšœ œ˜$Kšœ)˜)Kšœ˜Kšœ˜Kšœœœ˜Kšœ˜Kšœ#œœœ˜1Kšœ œ˜Kšœ#˜#Kšœ œ˜$Kšœ˜Kšœœ˜Kšœ œ˜—K˜Kšœ œ˜"K˜Kš œ œœ œœœœ˜6Kšœ œ.˜>K˜Kšœœ˜%K˜Kšœ œ˜!K˜Kšœ œœœ%˜