<> <> <> <> <<>> DIRECTORY CD, Pipal, PipalInt, PipalOps, ViewerClasses; PipalUI: CEDAR DEFINITIONS = BEGIN <> Design: TYPE = REF DesignRec; DesignRec: PRIVATE TYPE = CD.DesignRec; DesignRoot: PROC [design: Design] RETURNS [root: Pipal.Object]; <> HighlightDesign: PROC [design: Design, transformation: PipalInt.Transformation _ [], object: Pipal.Object _ NIL, viewer: ViewerClasses.Viewer _ NIL, label: Pipal.ROPE _ NIL, rescale: BOOL _ TRUE]; <> <> <> FindViewer: PROC [design: Design, label: Pipal.ROPE _ NIL] RETURNS [viewer: ViewerClasses.Viewer _ NIL]; <> <> EachSelectedProc: TYPE = PROC [path: PipalOps.Path, trans: PipalInt.Transformation, child: Pipal.Object] RETURNS [quit: BOOL _ FALSE]; EnumerateSelectedObjects: PROC [design: Design, each: EachSelectedProc] RETURNS [quit: BOOL _ FALSE]; <> <> <<>> TheSelectedObject: PROC [design: Design] RETURNS [thePath: PipalOps.Path, theTrans: PipalInt.Transformation, theChild: Pipal.Object _ NIL]; <> <<>> SelectInstance: PROC [design: Design, path: PipalOps.Path] RETURNS [done: BOOL]; <> <> PushInstance: PROC [design: Design, path: PipalOps.Path] RETURNS [done: BOOL]; <> ReplaceMethod: TYPE = {interactive, all, alongPath}; ReplaceInDesign: PROC [design: Design, path: PipalOps.Path, oldChild, newChild: Pipal.Object, replaceMethod: ReplaceMethod]; <> CommandProc: TYPE = PROC [design: Design, pos, spos: PipalInt.Position, data, issuer: REF]; <> <> <> <> RegisterCommand: PROC [key: ATOM, proc: CommandProc, queue, markChanged: BOOL _ TRUE, data: REF _ NIL]; <> <> <> Contains: PROC [object: Pipal.Object, candidateTrans: PipalInt.Transformation, candidateObject: Pipal.Object] RETURNS [BOOL]; <> <<>> SameInstances: PROC [trans1: PipalInt.Transformation, object1: Pipal.Object, trans2: PipalInt.Transformation, object2: Pipal.Object] RETURNS [BOOL]; <> <> TopInstanceLists: TYPE = LIST OF RECORD [design: Design, tops: Pipal.Object]; GetTopInstances: PROC [design: Design] RETURNS [topInstances: TopInstanceLists _ NIL]; <> <> schematicLambda: INT; schematicFudge: INT; <> <<>> FetchKeyLine: PROC [fileName, key: Pipal.ROPE] RETURNS [entry: Pipal.ROPE _ NIL]; <> ExecuteInTerminal: PROC [entry: Pipal.ROPE]; <> Draw: PROC [object: Pipal.Object] RETURNS [design: Design]; <> END.