DIRECTORY Rope, IPCoTab USING [Component, CornerTypes, CornerSpace], IPCTG USING[Channel, ChType, Side], IP USING [Orientation, OrientationTypes, IntVector, ShapeRep]; IPTopOpRecs: CEDAR DEFINITIONS = BEGIN IRFormCross: TYPE = REF IRFormCrossRec; IRFormCrossRec: TYPE = RECORD[refCh, negCh, posCh: IPCTG.Channel]; IRBreakCross: TYPE = REF IRBreakCrossRec; IRBreakCrossRec: TYPE = RECORD[refCh, chToBreak, newCh1: IPCTG.Channel]; IRRemoveCo1: TYPE = REF IRRemoveCo1Rec; IRRemoveCo1Rec: TYPE = RECORD[co: IPCoTab.Component, shrinkDirectn: IPCTG.ChType, sideToClHint: IPCTG.Side]; IRInsertCo1: TYPE = REF IRInsertCo1Rec; IRInsertCo1Rec: TYPE = RECORD[co: IPCoTab.Component, chToSplit, negBnd, posBnd: IPCTG.Channel, sideToOpHint: IPCTG.Side, newCh1: IPCTG.Channel]; IRRemoveCo2: TYPE = REF IRRemoveCo2Rec; IRRemoveCo2Rec: TYPE = RECORD[co: IPCoTab.Component, shrinkDirectn: IPCTG.ChType, sideToClHint: IPCTG.Side]; IRInsertCo2: TYPE = REF IRInsertCo2Rec; IRInsertCo2Rec: TYPE = RECORD[co: IPCoTab.Component, chToSplit, negBnd, posBnd: IPCTG.Channel, sideToOpHint: IPCTG.Side, newCh1: IPCTG.Channel]; IRRemoveZ: TYPE = REF IRRemoveZRec; IRRemoveZRec: TYPE = RECORD[zSpine: IPCTG.Channel]; IRFormZ: TYPE = REF IRFormZRec; IRFormZRec: TYPE = RECORD[refCh: IPCTG.Channel, negComp, posComp: IPCoTab.Component, zType: IPCTG.Side, newCh1, newCh2: IPCTG.Channel]; IRTtoL: TYPE = REF IRTtoLRec; IRTtoLRec: TYPE = RECORD[refCh: IPCTG.Channel, whichEnd, lType: IPCTG.Side, endCo: IPCoTab.Component, newCh1: IPCTG.Channel]; IRLtoT: TYPE = REF IRLtoTRec; IRLtoTRec: TYPE = RECORD[refCh: IPCTG.Channel, whichEnd: IPCTG.Side]; IRExtendKnee: TYPE = REF IRExtendKneeRec; IRExtendKneeRec: TYPE = RECORD[shin: IPCTG.Channel]; IRFlexKnee: TYPE = REF IRFlexKneeRec; IRFlexKneeRec: TYPE = RECORD[leg, floor: IPCTG.Channel, whichEnd, whichDirection: IPCTG.Side, newCh1: IPCTG.Channel]; IRRemoveCoAtCorner: TYPE = REF IRRemoveCoAtCornerRec; IRRemoveCoAtCornerRec: TYPE = RECORD[host: IPCoTab.Component, corner: IPCoTab.CornerTypes]; IRInsertCoAtCorner: TYPE = REF IRInsertCoAtCornerRec; IRInsertCoAtCornerRec: TYPE = RECORD[host, co: IPCoTab.Component, corner: IPCoTab.CornerTypes, newHCh1, newVCh1: IPCTG.Channel]; IRDestroyComp2: TYPE = REF IRDestroyComp2Rep; IRDestroyComp2Rep: TYPE = RECORD[comp: IPCoTab.Component]; IRCreateComp2: TYPE = REF IRCreateComp2Rep; IRCreateComp2Rep: TYPE = RECORD[comp: IPCoTab.Component]; IRSetCoCornerSpRec: TYPE = RECORD[co: IPCoTab.Component, corner: IPCoTab.CornerTypes, cornerSpace: IPCoTab.CornerSpace]; FRBreakCross: TYPE = REF FRBreakCrossRec; FRBreakCrossRec: TYPE = RECORD[refCh, chToBreak: IPCTG.Channel]; FRFormCross: TYPE = REF FRFormCrossRec; FRFormCrossRec: TYPE = RECORD[ch1, ch2: IPCTG.Channel]; FRFormZ: TYPE = REF FRFormZRec; FRFormZRec: TYPE = RECORD[comp1, comp2: IPCoTab.Component, zType: IPCTG.Side]; FRRemoveZ: TYPE = REF FRRemoveZRec; FRRemoveZRec: TYPE = RECORD[zSpine: IPCTG.Channel]; FRLtoT: TYPE = REF FRLtoTRec; FRLtoTRec: TYPE = RECORD[ch: IPCTG.Channel, whichEnd: IPCTG.Side]; FRTtoL: TYPE = REF FRTtoLRec; FRTtoLRec: TYPE = RECORD[co: IPCoTab.Component, ch: IPCTG.Channel, lType: IPCTG.Side]; FRFlexKnee: TYPE = REF FRFlexKneeRec; FRFlexKneeRec: TYPE = RECORD[leg, floor: IPCTG.Channel, whichEnd: IPCTG.Side]; FRExtendKnee: TYPE = REF FRExtendKneeRec; FRExtendKneeRec: TYPE = RECORD[shin: IPCTG.Channel]; FRGrow1: TYPE = REF FRGrow1Rec; FRGrow1Rec: TYPE = RECORD[co, host: IPCoTab.Component, hostCorner: IPCoTab.CornerTypes]; FRShrink1: TYPE = REF FRShrink1Rec; FRShrink1Rec: TYPE = RECORD[co: IPCoTab.Component]; FRInsertCo: TYPE = REF FRInsertCoRec; FRInsertCoRec: TYPE = RECORD[co: IPCoTab.Component, chToSplit, negBnd, posBnd: IPCTG.Channel, sideHint: IPCTG.Side, whichFirstHint: [1..2]]; FRRemoveCo: TYPE = REF FRRemoveCoRec; FRRemoveCoRec: TYPE = RECORD[co: IPCoTab.Component, shrinkDirectn: IP.OrientationTypes]; FRFlipT: TYPE = REF FRFlipTRec; FRFlipTRec: TYPE = RECORD[chToBend, attachTo: IPCTG.Channel, whichEnd: IPCTG.Side]; FRSpawnComps: TYPE = REF FRSpawnCompsRep; FRSpawnCompsRep: TYPE = RECORD[comp: IPCoTab.Component, splitDirection: IP.OrientationTypes, chkArgs: BOOL, negChild, posChild: IPCoTab.Component]; RSetCompShape: TYPE = REF RSetCompShapeRep; RSetCompShapeRep: TYPE = RECORD[comp: IPCoTab.Component, shape: IP.ShapeRep, chkArgs: BOOL]; RSwapComponents: TYPE = REF RSwapComponentsRep; RSwapComponentsRep: TYPE = RECORD[comp1, comp2: IPCoTab.Component]; ROrient: TYPE = REF ROrientRec; ROrientRec: TYPE = RECORD[co: IPCoTab.Component, operation: IP.Orientation]; RSetComponent: TYPE = REF RSetComponentRec; RSetComponentRec: TYPE = RECORD[co: IPCoTab.Component, active: BOOL, atPosition: IP.IntVector]; RMoveComponent: TYPE = REF RMoveComponentRec; RMoveComponentRec: TYPE = RECORD[co: IPCoTab.Component, by: IP.IntVector]; RAny: TYPE = REF; RComposite: TYPE = LIST OF REF; END. |--File: IPTopOpRecs.mesa Last Edited by: CSChow, February 2, 1985 2:04:47 am PST -- Intro: This interface defines all the records used by the undo and redo facility -- NB: Any records whose names begin with FR means that the record is a Forward (ie. -- redo) record, begins with IR (ie. undo) record, and begins with R (ie. used by both -- undo and redo.) -- IR = InverseRecord-- --This is used for doing the trick in IPTopEditOpsExtraImpl.FlipT -- FR = ForwardRecord -- --Shared by both-- --NB: (i) This is shared by by both because it is a functional operation. --(ii) orient is the operation to perform not the final state ʘJšœ™J™7J™J˜šÏk ˜ J™SJ™TJ™VJ™J™J˜Jšœœ'˜4Jšœœ˜#Jšœœ6˜>—J˜šœ œ œ˜&J™J™Jšœ œœ˜'Jšœœœœ ˜CJšœœœ˜)Jšœœœœ ˜HJ˜Jšœ œœ˜'Jš œœœ'œœ˜lJšœ œœ˜'Jš œœœ3œœœ ˜‘J˜Jšœ œœ˜'Jš œœœ'œœ˜lJšœ œœ˜'Jš œœœ3œœœ ˜‘J˜Jšœ œœ˜#Jšœœœ œ ˜3Jšœ œœ ˜Jš œ œœœ6œœ ˜‡J˜Jšœœœ ˜Jš œ œœœœ)œ ˜}Jšœœœ ˜Jš œ œœœœ˜EJ˜Jšœœœ˜*Jšœœœœ ˜4Jšœ œœ˜%J•StartOfExpansion[]š œœœ œ$œœ ˜uJ˜Jšœœœ˜5Jšœœœ7˜[Jšœœœ˜5JšœœœMœ ˜€J˜Jšœœœ˜-Jšœœœ˜:Jšœœœ˜+Jšœœœ˜9J˜šœœœW˜xJ™A—J˜J™Jšœœœ˜)Jšœœœœ ˜@Jšœ œœ˜'Jšœœœ œ ˜8J˜Jšœ œœ ˜Jšœ œœ)œ˜NJšœ œœ˜#Jšœœœ œ ˜3J˜Jšœœœ ˜Jš œ œœœœ˜BJšœœœ ˜Jš œ œœœœ˜VJ˜Jšœ œœ˜%Jš œœœ œœ˜NJšœœœ˜)Jšœœœœ ˜4J˜Jšœ œœ ˜Jšœ œœ?˜XJšœ œœ˜#Jšœœœ˜3J˜Jšœ œœ˜%Jš œœœ3œœ˜ŒJšœ œœ˜%Jšœœœ<˜XJ˜Jšœ œœ ˜Jš œ œœœœ˜SJ˜Jšœœœ˜)Jš œœœ*œœ)˜“J˜J™Jšœœœ˜+Jš œœœ!œœ˜\J˜Jšœœœ˜/Jšœœœ"˜CJ˜Jšœ œœ ˜šœ œœ#œ˜LJ™IJ™>—J˜Jšœœœ˜+Jš œœœ œœ ˜_J˜Jšœœœ˜-Jšœœœœ ˜JJ˜Jšœœœ˜Jš œ œœœœ˜J˜Jšœ˜——…— ™