<<>> <> <> <> <> <<>> DIRECTORY CtBasic, Commander, Imager, ImagerSample, Rope, SF, ViewerClasses; <<>> CtDispatch: CEDAR DEFINITIONS ~ BEGIN <> CmdHandle: TYPE ~ Commander.Handle; SampleMaps: TYPE ~ CtBasic.SampleMaps; Context: TYPE ~ Imager.Context; Box: TYPE ~ ImagerSample.Box; ROPE: TYPE ~ Rope.ROPE; Viewer: TYPE ~ ViewerClasses.Viewer; CtProc: TYPE ~ PROC [ -- Must not be nested viewer: Viewer ¬ NIL, maps: SampleMaps ¬ NIL, context: Context ¬ NIL, cmd: CmdHandle ¬ NIL, wDir: ROPE ¬ NIL] RETURNS [ error: ROPE ¬ NIL, affect: Box ¬ ImagerSample.maxBox]; -- region affected by CtProc OpType: TYPE ~ {ct, cm}; Op: TYPE ~ RECORD [ name: ROPE ¬ NIL, type: OpType ¬ ct, proc: CtProc ¬ NIL, usage: ROPE ¬ NIL, needViewer: BOOL ¬ TRUE, makeViewer: BOOL ¬ TRUE]; Ops: TYPE ~ REF OpsSequence; OpsSequence: TYPE ~ RECORD [length: NAT ¬ 0, s: SEQUENCE maxLength: NAT OF Op]; <> <> <<>> RegisterCmOp: PROC [name: ROPE, proc: CtProc, usage: ROPE]; <> <> RegisterCtOp: PROC [ name: ROPE, proc: CtProc, usage: ROPE, needViewer: BOOL ¬ TRUE, makeViewer: BOOL ¬ TRUE]; <> <> <> <> <> <> <> <<>> GetCmOp: PROC [name: ROPE] RETURNS [Op]; <> <<>> GetCtOp: PROC [name: ROPE] RETURNS [Op]; <> <<>> UnregisterAll: PROC; <> <> Dispatch: Commander.CommandProc; <> <> GetBox: PROC [viewer: Viewer, cmd: CmdHandle, clip: Box ¬ SF.maxBox] RETURNS [Box]; <> END.