CDVFurtherPainters.mesa (a ChipNDale module)
Copyright © 1984 by Xerox Corporation. All rights reserved.
by Christian Jacobi, August 28, 1984 4:48:20 pm PDT
last edited by Christian Jacobi, January 2, 1986 10:52:34 am PST
DIRECTORY
AMTypes,
CD,
CDVPrivate;
CDVFurtherPainters: CEDAR DEFINITIONS =
BEGIN
Non public ChipNDale interface to implement further behaviour of the viewer PaintProc.
FurtherPaintProc: TYPE = PROC [me: CDVPrivate.VRef, key: REF];
InstallFurtherPaint:
PROC[
keyReferentType: AMTypes.Type𡤊MTypes.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.
--Manual registration of key is requested.
--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 special handled
--as on Callfurther its ref field is used as key.
CallFurther:
PRIVATE PROC[me: CDVPrivate.VRef, key:
REF];
--Catches all errors and signals!
--Called by the viewer paintproc of ChipNDale-design viewers only.
END.