<> <> <> <> DIRECTORY CD, Rope USING [ROPE]; CDOps: CEDAR DEFINITIONS = BEGIN CreateDesign: PROC [technology: CD.Technology] RETURNS [design: CD.Design]; <<--does not open a viewer>> ResetDesign: PROC [design: CD.Design]; IncludeInstance: PROC [design: CD.Design, inst: CD.Instance, draw: BOOL_TRUE]; IncludeInstanceList: PROC [design: CD.Design, il: CD.InstanceList, draw: BOOL_TRUE]; RemoveInstance: PROC [design: CD.Design, inst: CD.Instance, draw: BOOL_TRUE]; ReOrderInstance: PROC [design: CD.Design, inst: CD.Instance]; AddAnObject: PROC[design: CD.Design, ob: CD.Object, location: CD.Position, orientation: CD.Orientation_CD.original]; <<--conveniant procedure; sets selection according to internal mode>> QuickDrawDesign: PROC [design: CD.Design, pr: CD.DrawRef]; <<--inclusive selection>> DrawDesign: PROC [design: CD.Design, pr: CD.DrawRef]; <<--ommit selection>> Redraw: PROC [design: CD.Design, r: CD.Rect_all, eraseFirst: BOOL_TRUE]; DelayedRedraw: PROC [design: CD.Design, r: CD.Rect_all, eraseFirst: BOOL_TRUE]; <<--efficiency hint: if a lot of small rectangles need to be redrawn, it can be more efficiant >> <<-- to call a redraw of a big rectangle first.>> DoTheDelayedRedraws: PROC [design: CD.Design]; <<--does the DelayedRedraw'swhich have not yet been done>> all: PRIVATE CD.Rect = [FIRST[CD.Number], FIRST[CD.Number], LAST[CD.Number], LAST[CD.Number]]; SetInstList: PROC [design: CD.Design, appList: CD.InstanceList _ NIL] = INLINE {design^.actual.first.specific.contents _ appList}; InstList: PROC [design: CD.Design] RETURNS [CD.InstanceList] = INLINE {RETURN[design^.actual.first.specific.contents]}; PointedInstance: PROC [design: CD.Design, pos: CD.Position] RETURNS [CD.Instance]; SelectedInstance: PROC [design: CD.Design] RETURNS [first: CD.Instance, multiple: BOOL]; <<--first: returns ref to any selected application if there is one or more, otherwise nil.>> <<--multiple: more than one application is selected>> Info: PROC[ob: CD.Object] RETURNS [Rope.ROPE]; LayerName: PROC[lev: CD.Layer] RETURNS [Rope.ROPE]; END. <<--Remark>> <<--All procedures do not queue; proper synchronization by the caller is assumed.>> <<>>