<> <> <> DIRECTORY Rope, SC, SCPrivate; SCRowUtil: CEDAR DEFINITIONS = BEGIN sideName: ARRAY SC.SideOrNone OF Rope.ROPE; <> FindMaxRow: PROCEDURE [handle: SC.Handle] RETURNS [maxRowWidth: SC.Number, numMaxRows: SCPrivate.ZMaxRowSr]; <> AuditRowLengths: PROCEDURE[handle: SC.Handle]; <> ComputeRowHeight: PROCEDURE[handle: SC.Handle, row: SCPrivate.MaxRowSr]; <> ComputeSideHeight: PROCEDURE[handle: SC.Handle, side: SC.Side]; <> <> RowsForInsts: PROCEDURE[insts: SCPrivate.InstanceList] RETURNS [onSide: SCPrivate.SideSet, onRow: SCPrivate.RowSet]; EnumerateRows: PROC [handle: SC.Handle, eachRow: EachRowProc] RETURNS [quit: BOOL]; EachRowProc: TYPE = PROC [row: SCPrivate.MaxRowSr, lgRow: SCPrivate.LgRow] RETURNS [quit: BOOL _ FALSE]; EnumerateSides: PROC [handle: SC.Handle, eachSide: EachSideProc] RETURNS [quit: BOOL]; EachSideProc: TYPE = PROC [side: SC.Side, bpRow: SCPrivate.BpRow] RETURNS [quit: BOOL _ FALSE]; EnumerateAllInstsOnRow: PROC [handle: SC.Handle, row: SCPrivate.MaxRowSr, eachInstance: EachInstProc] RETURNS [quit: BOOL]; EnumerateInstsOnRow: PROC [handle: SC.Handle, row: SCPrivate.MaxRowSr, startPos, endPos: SCPrivate.ZMaxPosSr, eachInstance: EachInstProc] RETURNS [quit: BOOL]; EnumerateInstsOnRowDecreasing: PROC [handle: SC.Handle, row: SCPrivate.MaxRowSr, startPos, endPos: SCPrivate.ZMaxPosSr, eachInstance: EachInstProc] RETURNS [quit: BOOL]; EachInstProc: TYPE = PROC [pos: NAT, instance: SCPrivate.Instance] RETURNS [quit: BOOL _ FALSE]; EnumerateAllInstsOnSide: PROC [handle: SC.Handle, side: SC.Side, eachInstance: EachInstProc] RETURNS [quit: BOOL]; EnumerateInstsOnSide: PROC [handle: SC.Handle, side: SC.Side, startPos, endPos: SCPrivate.ZMaxPosSr, eachInstance: EachInstProc] RETURNS [quit: BOOL]; EnumerateInstsOnSideDecreasing: PROC [handle: SC.Handle, side: SC.Side, startPos, endPos: SCPrivate.ZMaxPosSr, eachInstance: EachInstProc] RETURNS [quit: BOOL]; END.