<> <> <> <> <<>> <> <<>> DIRECTORY CD, CDTexts, CoreGeometry, Rope; IconConstruction: CEDAR DEFINITIONS ~ BEGIN <> <> <<>> Shell: TYPE ~ REF ShellRep; ShellRep: TYPE ~ RECORD [ name: Rope.ROPE _ NIL, -- The short name of the icon, i.e. excluding the ".icon" part pinLayer: CD.Layer, -- the layer on which pins should be drawn boxLayer: CD.Layer, -- the layer on which the box should be drawn boxWidth: CD.Number, -- Width of lines for icon box pinRect: CD.Position, -- Size of pins (vertical pin) guard: CD.Number, -- Spacing between pin and pin name grid: CD.Number, -- The grid on which pins should be aligned font: CDTexts.CDFont, -- ChipNDale font to be used for all texts pins: ARRAY CoreGeometry.Side OF LIST OF Rope.ROPE -- The sorted pin names on all four sides ]; <> NewShell: PROC [name: Rope.ROPE, pins: ARRAY CoreGeometry.Side OF LIST OF Rope.ROPE, design: CD.Design, pinLayer: CD.Layer _ CD.commentLayer, boxLayer: CD.Layer _ CD.commentLayer] RETURNS [shell: Shell]; <> ShellObject: PROC [shell: Shell] RETURNS [obj: CD.Object]; <> <<>> END.