<> <> <> <> <> DIRECTORY Pipal, PipalInt, PipalOps, PipalPaint, PipalReal; PipalOverlayMutant: CEDAR DEFINITIONS = BEGIN <> <> <> overlayMutantClass: Pipal.Class; OverlayMutant: TYPE = REF OverlayMutantRec; OverlayMutantRec: TYPE = RECORD [ overlay: Pipal.Overlay, selected: Pipal.Objects _ NIL, undoRedo: PipalOps.UndoRedo _ [] ]; <> Create: PROC [overlay: Pipal.Overlay] RETURNS [om: OverlayMutant]; <> <> InsertInt: PROC [om: OverlayMutant, child: Pipal.Object, position: PipalInt.Position, selectNew: BOOL _ TRUE] RETURNS [new: OverlayMutant]; InsertReal: PROC [om: OverlayMutant, child: Pipal.Object, position: PipalReal.Position, selectNew: BOOL _ TRUE] RETURNS [new: OverlayMutant]; <> Delete: PROC [om: OverlayMutant] RETURNS [changedArea: PipalPaint.Area, new: OverlayMutant]; <> <> Select: PROC [om: OverlayMutant, exclusive: BOOL _ TRUE, remove: BOOL _ FALSE, style: ATOM, pos1: PipalReal.Position, pos2: PipalReal.Position] RETURNS [changedArea: PipalPaint.Area, new: OverlayMutant]; <<>> <> < $Select>> < ({$Add, $Exclusive}, {$Select, $Deselect}, {$Point, $Area, $Touch, $Close}, Position, Size)>> <> <<>> < $SelectedOutlines>> <> <> Push: PROC [mutant: OverlayMutant] RETURNS [mutants: Pipal.Objects, new: OverlayMutant]; <> <> <> <<>> END.