DIRECTORY Rope USING [ROPE], Stretch USING [Direction], CD USING [Design, ApplicationPtr, Position, Level, combined]; StretchLines: CEDAR DEFINITIONS = BEGIN LineData: TYPE = RECORD [ point: CD.Position, -- left (or lower) endpoint of stretch line length: INT _ 1, -- length of line (forced be be equal or greater than some minimum) direction: LineDirections _ up, -- the direction to stretch in type: LineTypes _ pointed, -- type type of object label: Rope.ROPE _ NIL, -- the attached label level: CD.Level _ CD.combined -- the level (or layer) that it is on. Always set to combined for pointed lines ]; LineTypes: TYPE = {pointed, blunt}; LineDirections: TYPE = Stretch.Direction; objAtom: ATOM; -- Contains the atom that stretch marks are tagged with. Place: PROC [into: CD.Design, line: LineData, shift: BOOL _ TRUE]; Fetch: PROC [aptr: CD.ApplicationPtr] RETURNS [LineData]; END. ZFile: StretchLines.mesa Copyright c 1984 by Xerox Corporation. All rights reserved. Created by: Bob Mayo, July 2, 1984 2:53:37 pm PDT Last Edited by: Mayo, July 26, 1984 12:37:25 pm PDT -- StretchLines: Add stretch marks to ChipNDale. Stretch Lines are named line segments and come in two flavors: pointed and blunt. The tiler package interprets the pointed lines as designating that the entire cell should be stretched along that line, while the blunted ones are interpreted as meaning just stretch the goemetry under the mark without moving anything else. -- Place stretch line. If shift = TRUE then shift the object so that the line is at the point specified, if FALSE the lower left corner of the object (not the line) goes at the point specified. -- Given a ChipNDale application that points to a stretch mark, return it's information. ʇ˜šœ™Jšœ Ïmœ1™Jšœ ˜2Jšœ žœžœ ˜/Jšœžœ žœ  P˜nJ˜J˜—JšŸ œžœ˜#JšŸœžœ˜)J˜JšŸœžœ 8˜GJ˜Jš #Ðck ›™ÂJš Ïnœžœžœ žœžœ˜BJ˜JšœZ™ZJš¢œžœžœžœ ˜9J˜—Jšžœ˜J˜J˜J˜—…—’s