<> <> <> <> DIRECTORY Imager USING [Context], CedarProcess USING [Process], ViewerClasses USING [Viewer], ActionQueue USING [Queue], Terminal USING [Virtual], Rope USING [ ROPE ]; QuickViewer: CEDAR DEFINITIONS ~ BEGIN BuildViewer: PROC[ viewerTitle: Rope.ROPE, menuLabels: LIST OF Rope.ROPE, reDrawProc: PROC[imagerCtx: Imager.Context, toDo: REF ANY], buttonProc: PROC[bttn, choice: ATOM, x, y: REAL], quitProc: PROC[] ] RETURNS [ quickView: REF QuickView ]; <> <<>> <<>> DrawInViewer: PUBLIC PROCEDURE [view: REF QuickView, proc: PROC[Imager.Context]]; <> CountedCondition: TYPE ~ RECORD [ count: NAT _ 0, condition: CONDITION ]; QuickView: TYPE = RECORD [ outer: ViewerClasses.Viewer, -- enclosing container viewer: ViewerClasses.Viewer, -- graphics area within terminal: Terminal.Virtual, -- virtual terminal changed: BOOLEAN _ FALSE, -- has viewer size, etc. changed menuQueue: ActionQueue.Queue, -- queued menu clicks newEvent: CountedCondition, -- prevents pile-up of mouse positions eventProcess: CedarProcess.Process, -- event action process inputEvent: ATOM, -- Action from tip table choice: ATOM, -- from pop-up menu or ctrl-shift x, y: REAL _ 0, -- mouse coordinates drawProc: PROC[Imager.Context, REF ANY], -- procedure for redrawing window buttProc: PROC[ATOM, ATOM, REAL, REAL], -- procedure for button actions exitProc: PROC[] -- procedure for cleaning up on exit ]; END.