DIRECTORY CD USING [combined, Position, Rect, highLightError, Layer, ObjectClass, Object, Technology], Rope USING [ROPE]; CDAtomicObjects: CEDAR DEFINITIONS = BEGIN IsAtomicOb: PROC [ob: CD.Object] RETURNS [BOOL] = INLINE { RETURN [ISTYPE[ob.specificRef, AtomicObsPtr]] }; CreateAtomicOb: PROC [classKey: ATOM, size: CD.Position, tech: CD.Technology, lev: CD.Layer_CD.combined] RETURNS [CD.Object]; DrawRec: TYPE = RECORD [r: CD.Rect, lev: CD.Layer _ CD.highLightError]; DrawList: TYPE = LIST OF DrawRec; AtomicObsPtr: TYPE = REF AtomicObsRec; AtomicObsRec: TYPE = RECORD [ --do not change directly rList: DrawList_NIL, ir: CD.Rect ]; FillObjectProc: TYPE = PROC [ob: CD.Object] RETURNS [mustFail: BOOL _ FALSE]; RegisterAtomicObClass: PROC [classKey: ATOM, fillProc: FillObjectProc, description: Rope.ROPE_NIL, tech: CD.Technology_NIL] RETURNS [type: REF CD.ObjectClass]; Incorporate: PROC [ob: CD.Object, r: CD.Rect, lev: CD.Layer, inside: BOOL _ TRUE]; END. CDAtomicObjects.mesa (part of ChipNDale) Copyright c 1985 by Xerox Corporation. All rights reserved. by Christian Jacobi, March 13, 1985 9:49:28 am PST last edited by Christian Jacobi, May 29, 1985 11:38:08 am PDT --This module helps the implementation of a wide class of atomic ChipNDale --objects, which do not have children and are shared between designs. Despite --its name this are not the only atomic object classes. --common proc's --NIL if not done --Reuses objects in cache if possible --class creator's proc's --read (and even rewrite) size, layer --calls IncorporateRect --do not read or write AtomicObsRec directly --rList will be initialized to NIL --drawMe, quickDrawMe are considered variables and should not --be changed by class implementor. ÊP˜šœ/™/Jšœ Ïmœ1™™>—J˜šÏk ˜ JšžœžœT˜\Jšœžœžœ˜J˜—JšÏbœžœž œ˜$Jšž˜J˜J™JJ™NJ™8J˜J™šŸ™J™—š Ïn œžœžœ žœžœ˜2Jšžœ˜Jšžœžœ˜-J˜—J˜š Ðbnœžœ žœžœžœžœžœ žœžœ ˜}Jšœ™J™%—J˜Jš œ žœžœžœ žœ žœ˜GJšœ žœžœžœ ˜!J˜Jšœžœžœ˜&šœžœžœÏc˜7Jšœžœ˜Jšœžœ˜ J˜J˜—J™šŸ™J™—š œžœžœžœ žœ žœžœ˜MJšœ%™%Jšœ™Jšœ,™,Jšœ"™"—J˜š œžœ žœ˜-Jšœ˜Jšœžœžœ˜Jš œžœ žœžœžœžœ˜™>Jšœ"™"—J˜Jš  œžœžœ žœ žœžœžœ˜RJ˜Jšžœ˜J˜—…—Ô 4