DIRECTORY CD, Rope; CDPinObjects: CEDAR DEFINITIONS = BEGIN pinLayer: READONLY CD.Layer; CreatePinOb: PROC [size: CD.Position] RETURNS [CD.Object]; IsPinOb: PROC [ob: CD.Object] RETURNS [BOOL]; CreatePinInstance: PROC [name: Rope.ROPE, rect: CD.Rect, lev: CD.Layer_CD.combined, owner: ATOM_NIL] RETURNS [CD.Instance]; IsPinApp: PROC [inst: CD.Instance] RETURNS [BOOL] = INLINE { RETURN [IsPinOb[inst.ob]] }; SetOwner: PROC [pinInstance: CD.Instance, owner: ATOM_NIL]; GetOwner: PROC [pinInstance: CD.Instance] RETURNS [ATOM]; SetName: PROC [pinInstance: CD.Instance, name: Rope.ROPE]; GetName: PROC [pinInstance: CD.Instance] RETURNS [Rope.ROPE]; SetLayer: PROC [pinInstance: CD.Instance, lev: CD.Layer]; GetLayer: PROC [pinInstance: CD.Instance] RETURNS [CD.Layer]; InstanceEnumerator: TYPE = PROC [inst: CD.Instance] RETURNS [quit: BOOL_FALSE]; EnumeratePins: PROC [ob: CD.Object_NIL, eachPin: InstanceEnumerator] RETURNS [quit: BOOL]; FindPins: PROC [ob: CD.Object_NIL, pinName: Rope.ROPE] RETURNS [CD.InstanceList]; END. ˆCDPinObjects.mesa (part of ChipNDale) Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. by Christian Jacobi, August 8, 1984 12:41:50 pm PDT last edited Christian Jacobi, May 28, 1985 2:24:21 pm PDT --Pins are objects to associate names and properties to rectangular areas. --All the actual pins properties like name, layer, propertylist --and its semantics are bound to the InstanceRep. --In general, the meaning of a pin is not known, but it is assumed some --client program knows it. NIL owner means: -- At this area, connection in the particaular layer can be made. --Pin objects will NOT have an special interrest-rect specified, their interrest --area is the real rect. It is common to have several pins with the same name. --if owner is not NIL it must be registered with CDProperties --if layer=CD.combined means: not yet determined, or either: pin has more complex functionality --Random order; changes on pins while the enumeration may or may not be seen. --Returns all pins with name "name" --For rect: use CDInstances.ARectO or ARectI --For size: use object size -- (Interestrects for pins must not be set). ʘšœ&™&Jšœ Ïmœ7™BJšœ5™5Jšœ:™:—J˜šÏk ˜ Jšžœ˜ —JšÏb œžœž œ˜$Jšž˜J˜JšœJ™JJ™Jšœ@™@Jšœ1™1J™JšœG™GJšœ-™-JšœB™BJšœQ™QJšœO™OJ˜Jšœ žœžœ˜J˜Jš Ïn œžœžœ žœžœ ˜:Jš  œžœžœ žœžœ˜-J˜J˜Jš œžœ žœžœ žœžœžœžœžœžœ ˜{š  œžœžœ žœžœžœ˜