<<>> <> <> <> <> DIRECTORY IO USING[STREAM], MBQueue USING[Queue], Rope USING[ROPE], StackCirio USING[Stack], ViewerClasses USING[Viewer]; CirioButtons: CEDAR DEFINITIONS = BEGIN Viewer: TYPE ~ ViewerClasses.Viewer; <> <<>> <> <<>> ViewerControl: TYPE = REF ViewerControlBody; ViewerControlBody: TYPE = MONITORED RECORD[ destroyStarted: BOOLEAN, okToDestroy: BOOLEAN, self: Viewer, script: Viewer, in: IO.STREAM, -- viewer typescript out: IO.STREAM, -- writes onto the viewer typescript mbQueue: MBQueue.Queue, nextButtonAction: LIST OF ButtonAction, lastButtonAction: LIST OF ButtonAction, formatPrompt: PROC [counter: INT, clientData: REF ANY] RETURNS [Rope.ROPE], interpretTextLine: PROC[line: Rope.ROPE, reports: IO.STREAM, clientData: REF ANY] RETURNS[Rope.ROPE], shutDown: PROC[clientData: REF ANY, reports: IO.STREAM], clientData: REF ANY ]; ButtonAction: TYPE = REF ButtonActionBody; ButtonActionBody: TYPE = RECORD[ action: PROC[ButtonAction], data: REF ANY, ignoreDestroyStarted: BOOLEAN _ FALSE]; CreateViewer: PROC [ name: Rope.ROPE, scriptY: CARD, formatPrompt: PROC [counter: INT, clientData: REF ANY] RETURNS [Rope.ROPE], interpretTextLine: PROC[line: Rope.ROPE, reports: IO.STREAM, clientData: REF ANY] RETURNS[Rope.ROPE], shutDown: PROC[clientData: REF ANY, reports: IO.STREAM], clientData: REF ANY] RETURNS[ViewerControl]; MainActionProc: PROC[control: ViewerControl]; <> <<>> <> <<>> <<>> InstallWalkStackButton: PROC[bs: ButtonSet, stack: StackCirio.Stack, threadIndexText: Rope.ROPE, frameIndexLabel: Viewer]; <<(threadIndexText will be NIL for a pop up debugger.)>> InstallShowFrameButton: PROC[bs: ButtonSet, stack: StackCirio.Stack]; InstallSourcePositionButton: PROC[bs: ButtonSet, stack: StackCirio.Stack]; InstallSourceLanguageButton: PROC[bs: ButtonSet, stack: StackCirio.Stack]; << >> <