<> <> <> <> DIRECTORY AMTypes, CD, CDVPrivate, ViewerClasses; CDViewerBackdoor: CEDAR DEFINITIONS = BEGIN <> <<>> <<>> <> <> <<>> <> <> <<>> <<-- To be used by the implementation of any particular op feature.>> InstallGetProc: PROC [op: ATOM, proc: ViewerClasses.GetProc]; InstallSetProc: PROC [op: ATOM, proc: ViewerClasses.SetProc]; <<-- To be used by the implementation of ChipNDale's viewer class only.>> CallGetProc: PRIVATE ViewerClasses.GetProc; CallSetProc: PRIVATE ViewerClasses.SetProc; <<>> <> <> <<>> <> <> <<>> FurtherPaintProc: TYPE = PROC [me: CDVPrivate.VRef, key: REF]; InstallFurtherPaint: PROC[ keyReferentType: AMTypes.Type _ AMTypes.nullType, <<--default means check value only>> keyValue: REF _ NIL, <<--default means check type only; you can not install a proc for NIL>> proc: FurtherPaintProc ]; <<-- All errors and signals from proc will be catched.>> <<-- Sometimes calls proc with; sometimes without locks, depending on key.>> <<-- It is ok to call the viewers-PaintProc recursively, but please>> <<-- do not cause wedges, there is no protection.>> <<-- May or may not check if keyValue is of type REF keyReferentType, if both non NIL>> <<-- Never use CODE[CDDraw.Comm] as keyReferentType; CDDraw.Comm is specially >> <<-- handled, as on CallFurther its ref field is used as key.>> CallFurtherPaint: PRIVATE PROC[me: CDVPrivate.VRef, key: REF]; <<-- Catches all errors and signals!>> <<-- Called by the viewer paintproc of ChipNDale-design viewers only.>> END.