<> <> DIRECTORY Rope USING [ ROPE ], ViewerClasses USING [ Viewer ], ThreeDBasics USING [ Box, Context, ContextProc, ImagerProcRec ]; ThreeDViewer: CEDAR DEFINITIONS ~ BEGIN <> ROPE: TYPE ~ Rope.ROPE; Context: TYPE ~ ThreeDBasics.Context; ContextProc: TYPE ~ ThreeDBasics.ContextProc; ImagerProcRec: TYPE ~ ThreeDBasics.ImagerProcRec; Box: TYPE ~ ThreeDBasics.Box; Viewer: TYPE ~ ViewerClasses.Viewer; ButtonChoice: TYPE ~ RECORD[key: ATOM, doc: ROPE]; <> <> ButtonDesc: TYPE ~ RECORD[ proc: PROC[context: REF Context, key: ATOM], choices: LIST OF ButtonChoice _ LIST[], label: ROPE _ NIL, -- label to appear on button purpose: ROPE _ NIL -- brief explanation of button displayed when button expanded ]; MouseProc: TYPE ~ PROC[context: REF Context, bttn, ctlShft: ATOM, x, y: REAL]; <> MakeViewer: PROCEDURE [ context: REF Context, displayType: ATOM _ $PseudoColor, bannerName: ROPE, menu: LIST OF ButtonDesc, mouseAction: MouseProc, verticalMenu: BOOLEAN _ FALSE ]; <> SwitchDisplayTo: PROCEDURE [context: REF Context, displayType: ATOM] RETURNS[succeeded: BOOLEAN]; <> ViewerUpdate: ContextProc; <> DrawInViewer: PROCEDURE [ context: REF Context, procRec: REF ImagerProcRec ]; <> <<>> END.