DIRECTORY CD; CDPrivate: CEDAR DEFINITIONS = BEGIN LayerRef: TYPE = REF LayerRec; LayerRec: TYPE = RECORD [ technology: CD.Technology _ NIL, uniqueKey: ATOM _ NIL, -- unique per technology properties: CD.PropRef, globalUniqueKey: REF _ NIL, --use as CDValue key reserved by CDDefaults number: CD.Layer ]; layers: READONLY REF ARRAY CD.Layer OF LayerRef; ConvertLayer: PROC [technology: CD.Technology, uniqueKey: ATOM, into: CD.Layer]; ConvertTechnologyKey: PROC [technology: CD.Technology, oldKey: ATOM]; DesignEnumerator: TYPE = PROC [design: CD.Design] RETURNS [quit: BOOL_FALSE]; EnumDesigns: PROC [p: DesignEnumerator] RETURNS [BOOL]; InstallDesignEnumerator: PRIVATE PROC [PROC [p: DesignEnumerator] RETURNS [BOOL]]; GetGrid: PROC [design: CD.Design, hint: REF_NIL] RETURNS [CD.Number]; InstallGetGrid: PRIVATE PROC [PROC [design: CD.Design, hint: REF_NIL] RETURNS [CD.Number]]; Hash: PROC [x: REF] RETURNS [h: CARDINAL]; Equal: PROC [x, y: REF] RETURNS [BOOL]; MinBBox: PROC [s: CD.Position] RETURNS [CD.Rect] = INLINE { RETURN [[x1: 0, y1: 0, x2: MAX[s.x, 1], y2: MAX[s.y, 1]]] }; END. ¦CDPrivate.mesa (part of ChipNDale) Copyright c 1983, 1987 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, November 21, 1983 4:02 pm Last Edited by: Christian Jacobi, February 26, 1987 1:17:47 pm PST -- Layers and technologies --To enable input of no more supported layers --To be used by technology implementors only --To register an alternative key for a technology --To be used by technology implementors only -- Designs --only subset of designs will be enumerated --Enumerator does NOT have a lock on design: design is readonly unless locked explicitely --Designs are also used for private purposes, therefore, enumeration must only return those --designs which are protected with the mutability flag or where public access is intended, --e.g. designs with viewers or control panels. -- Grid --Returns a grid number --Interesting, because it returns a grid without explicitely importing viewer modules --Used by viewer modules to set up GetGrid -- Handy procedures for object generators... --assumes x of type CD.Object --generates hash code using size, layer and class --assumes x, y of type CD.Object --checks class, layer, bbox and ir ΚΆ˜šœ)™)Jšœ Οmœ7™BJšœ7™7Icode™B—J™šΟk ˜ Jšžœ˜J˜—JšΟn œžœž œ˜Jšž˜J˜Jšœ™J˜Jšœ žœžœ ˜šœ žœžœ˜Jšœ žœžœ˜ Jšœ žœžœΟc˜/Jšœ žœ ˜Jšœžœžœ +˜GJšœžœ˜J˜J˜—Jšœž œžœ žœ ˜1J˜š Ÿ œžœžœžœžœ˜PJ™-J™,—J˜šŸœžœžœžœ˜EJ™1J™,—J™J™Jšœ ™ J˜Jš œžœžœ žœ žœžœžœ˜NJ˜šŸ œžœžœžœ˜7J™+J™Y—J˜š Ÿœž œžœžœžœ˜RJ™[J™ZJ™.—J˜J™Jšœ™J˜šŸœžœ žœžœžœžœžœ ˜EJ™JšœV™V—J™šŸœž œžœ žœžœžœžœžœ ˜[Jšœ*™*—J™J™Jšœ,™,J˜š Ÿœžœžœžœžœ˜*J™J™1—J˜š Ÿœžœžœžœžœ˜'J™ J™"—J™š Ÿœžœžœ žœžœ žœ˜;Jšžœžœžœ ˜9J˜—J˜Jšžœ˜J˜J˜—…—X ΄