DIRECTORY CD, CDObjectProcs, CDStretchyExtras; CDStretchyExtrasImpl: CEDAR PROGRAM IMPORTS CDObjectProcs EXPORTS CDStretchyExtras = BEGIN MatchProc: TYPE = CDStretchyExtras.MatchProc; Match: PUBLIC PROC[me: CD.Object, r: CD.Rect, layer: CD.Layer, prim: BOOL, horz: BOOL] RETURNS [BOOL] = BEGIN match: BOOL _ FALSE; refP: REF = CDObjectProcs.FetchFurther[me.class, furtherKey]; IF refP#NIL THEN WITH refP SELECT FROM mp: REF MatchProc => match _ mp^[me, r, layer, prim, horz]; ENDCASE => NULL; RETURN [match] END; HasMatchProc: PUBLIC PROC [me: CD.Object] RETURNS [BOOL] = BEGIN RETURN [CDObjectProcs.FetchFurther[me.class, furtherKey]#NIL]; END; furtherKey: ATOM = $StretchyExtras; InstallMatch: PUBLIC PROC [type: REF CD.ObjectClass, match: MatchProc] = BEGIN CDObjectProcs.StoreFurther[type, furtherKey, NEW[MatchProc_match]]; END; CDObjectProcs.RegisterFurther[furtherKey]; END. LCDStretchyExtrasImpl.mesa (part of ChipNDale) Copyright c 1984 by Xerox Corporation. All rights reserved. by Christian Jacobi, October 22, 1984 10:04:35 am PDT last edited by Christian Jacobi, May 29, 1985 10:28:00 am PDT --PROC [me: CD.Object, r: CD.Rect, layer: CD.Layer, prim: BOOL, horz: BOOL] RETURNS [BOOL]; ĘŮ˜šœ4™4Jšœ Ďmœ1™™>—J™šĎk ˜ Jšž˜Jšœ˜Jšœ˜J˜—šĎbœžœžœ˜$Jšžœ˜Jšžœ˜Jšž˜J˜šœ žœ˜-Jšœ[™[—J˜šĎnœžœžœžœ žœžœžœžœžœžœ˜gJšž˜Jšœžœžœ˜Jšœžœ4˜=šžœžœž˜šžœžœž˜Jšœžœ4˜;Jšžœž˜——Jšžœ˜Jšžœ˜—J˜š   œžœžœžœ žœžœ˜:Jšž˜Jšžœ3žœ˜>Jšžœ˜—J˜Jšœ žœ˜#J˜š   œžœžœžœžœ!˜HJšž˜Jšœ-žœ˜CJšžœ˜—J˜Jšœ*˜*Jšžœ˜—J˜J˜—…—~Ł