<<>> <> <> <> <> <> <> DIRECTORY IO USING [STREAM], Rope USING [ROPE], ViewerClasses USING [Viewer]; ViewerIO: CEDAR DEFINITIONS = BEGIN STREAM: TYPE ~ IO.STREAM; ROPE: TYPE ~ Rope.ROPE; Viewer: TYPE ~ ViewerClasses.Viewer; CreateViewerStreams: PROC [name: ROPE, viewer: Viewer ¬ NIL, backingFile: ROPE ¬ NIL, editedStream: BOOL ¬ TRUE, iconic: BOOL ¬ FALSE] RETURNS [in: STREAM, out: STREAM]; <<>> <> <> <> <> <> <, echoTo: out]. Otherwise, out is established as an echo stream for in via EditedStream.SetEcho[in, out].>> <<>> GetViewerFromStream: PROC [stream: STREAM] RETURNS [Viewer]; <> <<>> CreateMessageWindowStream: PROC RETURNS [STREAM]; <> <<>> GetBuffer: PROC [editedViewerStream: STREAM] RETURNS [REF TEXT]; <> <<>> TypeChars: PROC [editedViewerStream: STREAM, chars: ROPE]; <> <<>> END.