DIRECTORY CD USING [Design, DesignPosition, ObPtr, ObjectProcs]; CDDirectoryExtras: CEDAR DEFINITIONS = BEGIN ReplaceObject: PROC [design: CD.Design, old: CD.ObPtr, new: CD.ObPtr, off: CD.DesignPosition_[0, 0] ]; RepositionObject: PROC [design: CD.Design, ob: CD.ObPtr, oldSize: CD.DesignPosition, baseOff: CD.DesignPosition_[0, 0] ]; DoReplaceDirectChild: ReplaceDChildsProc; ReplaceRec: TYPE = RECORD [ old: CD.ObPtr, oldSize: CD.DesignPosition, -- never changed new: CD.ObPtr, newSize: CD.DesignPosition, -- will be computed once before calling client procedures off: CD.DesignPosition ]; ReplaceList: TYPE = LIST OF REF ReplaceRec; ReplaceDChildsProc: TYPE = PROC [ me: CD.ObPtr, design: CD.Design, replace: LIST OF REF ReplaceRec ] RETURNS [changed: BOOL_FALSE]; InstallReplaceDChildProc: PROC [ type: REF CD.ObjectProcs, rdcp: ReplaceDChildsProc]; ReplaceDirectChildForDummyCells: PRIVATE PROC [cellOb: CD.ObPtr, replace: ReplaceList] RETURNS [needReposition: BOOL]; RepositionCell: PRIVATE PROC [cellOb: CD.ObPtr, design: CD.Design] RETURNS [didReposition: BOOLEAN]; END. 8CDDirectoryExtras.mesa (a Chipndale module) Copyright c 1984 by Xerox Corporation. All rights reserved. by Christian Jacobi November 16, 1984 11:38:49 am PST last edited Christian Jacobi November 19, 1984 9:54:01 am PST -- client usage --all over in the design replace old by new --may be delayed --all over in the design tries to reposition ob; --may be delayed -- implementors usage --useful for implementing CDCellsImpl; --is like a real ReplaceDChildsProc, but does not start a recursive repositioning --useful for implementing CDCellsImpl, CDXImpl Ê{˜šœ-™-Jšœ Ïmœ1™