<> <> <> <> DIRECTORY CD, CDSequencer, CDVPrivate, Process, RuntimeError, TIPUser; CDVMarksAndModes: CEDAR PROGRAM IMPORTS CDSequencer, CDVPrivate, Process, RuntimeError, TIPUser = BEGIN SetXModeOn: CDVPrivate.CursorModeProc = BEGIN me.designRec.xMode _ TRUE END; SetXModeOff: CDVPrivate.CursorModeProc = BEGIN me.designRec.xMode _ FALSE END; SetMarkOnStart: CDVPrivate.CursorModeProc = BEGIN me.designRec.mark _ me.designRec.startLC END; SetMarkOnStop: CDVPrivate.CursorModeProc = BEGIN me.designRec.mark _ me.designRec.stopLC END; SetStartOnMark: CDVPrivate.CursorModeProc = BEGIN me.designRec.startLC _ me.designRec.startLC; me.designRec.startLCValid _ TRUE; END; ShowMark: CDVPrivate.CursorModeProc = BEGIN <<--handled specially because we do not call stoptrack>> comm: CDSequencer.Command = NEW[CDSequencer.CommandRec _ CDSequencer.CommandRec[ design: me.actualDesign, a: $ShowMark, pos: me.designRec.mark, sPos: me.designRec.mark, l: me.designRec.currentLayer, ref: me, n: me.defaultWidthVC, b: me.designRec.firstHLC ] ]; TRUSTED {Process.Detach[FORK CDSequencer.ExecuteCommand[design: me.actualDesign, comm: comm] ]} END; CursoredDesignXMode: PROC [] RETURNS [xmode: BOOL_FALSE] = BEGIN ENABLE RuntimeError.UNCAUGHT => {--not yet initialized-- GOTO skip}; IF CDVPrivate.cursoredCDViewer#NIL THEN WITH CDVPrivate.cursoredCDViewer.data SELECT FROM gr: CDVPrivate.MyGraphicRef => xmode _ gr.designRec.xMode ENDCASE => NULL; EXITS skip => NULL END; IsXMode: PROC RETURNS [xMode: BOOL] = {xMode _ CursoredDesignXMode[]}; IsNotXMode: PROC RETURNS [notXMode: BOOL] = {notXMode _ ~ CursoredDesignXMode[]}; CDVPrivate.ImplementACursor[$SetXModeOn, SetXModeOn]; CDVPrivate.ImplementACursor[$SetXModeOff, SetXModeOff]; CDVPrivate.ImplementACursor[$SetMarkOnStart, SetMarkOnStart]; CDVPrivate.ImplementACursor[$SetMarkOnStop, SetMarkOnStop]; CDVPrivate.ImplementACursor[$SetStartOnMark, SetStartOnMark]; CDVPrivate.ImplementACursor[$ShowMark, ShowMark]; TIPUser.RegisterTIPPredicate[key: $ChipndaleXMode, p: IsXMode]; TIPUser.RegisterTIPPredicate[key: $ChipndaleNXMode, p: IsNotXMode]; END.