1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir #ifndef SC_UNDOBLK_HXX 28*cdf0e10cSrcweir #define SC_UNDOBLK_HXX 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir #include "undobase.hxx" 31*cdf0e10cSrcweir #include "markdata.hxx" 32*cdf0e10cSrcweir #include "viewutil.hxx" 33*cdf0e10cSrcweir #include "spellparam.hxx" 34*cdf0e10cSrcweir 35*cdf0e10cSrcweir class ScDocShell; 36*cdf0e10cSrcweir class ScBaseCell; 37*cdf0e10cSrcweir class ScDocument; 38*cdf0e10cSrcweir class ScOutlineTable; 39*cdf0e10cSrcweir class ScRangeName; 40*cdf0e10cSrcweir class ScRangeList; 41*cdf0e10cSrcweir class ScDBCollection; 42*cdf0e10cSrcweir class ScPatternAttr; 43*cdf0e10cSrcweir class SvxBoxItem; 44*cdf0e10cSrcweir class SvxBoxInfoItem; 45*cdf0e10cSrcweir class SvxSearchItem; 46*cdf0e10cSrcweir class SdrUndoAction; 47*cdf0e10cSrcweir 48*cdf0e10cSrcweir //---------------------------------------------------------------------------- 49*cdf0e10cSrcweir 50*cdf0e10cSrcweir class ScUndoInsertCells: public ScMoveUndo 51*cdf0e10cSrcweir { 52*cdf0e10cSrcweir public: 53*cdf0e10cSrcweir TYPEINFO(); 54*cdf0e10cSrcweir ScUndoInsertCells( ScDocShell* pNewDocShell, 55*cdf0e10cSrcweir const ScRange& rRange, SCTAB nNewCount, SCTAB* pNewTabs, SCTAB* pNewScenarios, 56*cdf0e10cSrcweir InsCellCmd eNewCmd, ScDocument* pUndoDocument, ScRefUndoData* pRefData, 57*cdf0e10cSrcweir sal_Bool bNewPartOfPaste ); 58*cdf0e10cSrcweir virtual ~ScUndoInsertCells(); 59*cdf0e10cSrcweir 60*cdf0e10cSrcweir virtual void Undo(); 61*cdf0e10cSrcweir virtual void Redo(); 62*cdf0e10cSrcweir virtual void Repeat( SfxRepeatTarget& rTarget ); 63*cdf0e10cSrcweir virtual sal_Bool CanRepeat( SfxRepeatTarget& rTarget ) const; 64*cdf0e10cSrcweir 65*cdf0e10cSrcweir virtual String GetComment() const; 66*cdf0e10cSrcweir 67*cdf0e10cSrcweir virtual sal_Bool Merge( SfxUndoAction *pNextAction ); 68*cdf0e10cSrcweir 69*cdf0e10cSrcweir private: 70*cdf0e10cSrcweir ScRange aEffRange; 71*cdf0e10cSrcweir SCTAB nCount; 72*cdf0e10cSrcweir SCTAB* pTabs; 73*cdf0e10cSrcweir SCTAB* pScenarios; 74*cdf0e10cSrcweir sal_uLong nEndChangeAction; 75*cdf0e10cSrcweir InsCellCmd eCmd; 76*cdf0e10cSrcweir sal_Bool bPartOfPaste; 77*cdf0e10cSrcweir SfxUndoAction* pPasteUndo; 78*cdf0e10cSrcweir 79*cdf0e10cSrcweir void DoChange ( const sal_Bool bUndo ); 80*cdf0e10cSrcweir void SetChangeTrack(); 81*cdf0e10cSrcweir }; 82*cdf0e10cSrcweir 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir class ScUndoDeleteCells: public ScMoveUndo 85*cdf0e10cSrcweir { 86*cdf0e10cSrcweir public: 87*cdf0e10cSrcweir TYPEINFO(); 88*cdf0e10cSrcweir ScUndoDeleteCells( ScDocShell* pNewDocShell, 89*cdf0e10cSrcweir const ScRange& rRange, SCTAB nNewCount, SCTAB* pNewTabs, SCTAB* pNewScenarios, 90*cdf0e10cSrcweir DelCellCmd eNewCmd, ScDocument* pUndoDocument, ScRefUndoData* pRefData ); 91*cdf0e10cSrcweir virtual ~ScUndoDeleteCells(); 92*cdf0e10cSrcweir 93*cdf0e10cSrcweir virtual void Undo(); 94*cdf0e10cSrcweir virtual void Redo(); 95*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 96*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 97*cdf0e10cSrcweir 98*cdf0e10cSrcweir virtual String GetComment() const; 99*cdf0e10cSrcweir 100*cdf0e10cSrcweir private: 101*cdf0e10cSrcweir ScRange aEffRange; 102*cdf0e10cSrcweir SCTAB nCount; 103*cdf0e10cSrcweir SCTAB* pTabs; 104*cdf0e10cSrcweir SCTAB* pScenarios; 105*cdf0e10cSrcweir sal_uLong nStartChangeAction; 106*cdf0e10cSrcweir sal_uLong nEndChangeAction; 107*cdf0e10cSrcweir DelCellCmd eCmd; 108*cdf0e10cSrcweir 109*cdf0e10cSrcweir void DoChange ( const sal_Bool bUndo ); 110*cdf0e10cSrcweir void SetChangeTrack(); 111*cdf0e10cSrcweir }; 112*cdf0e10cSrcweir 113*cdf0e10cSrcweir 114*cdf0e10cSrcweir class ScUndoDeleteMulti: public ScMoveUndo 115*cdf0e10cSrcweir { 116*cdf0e10cSrcweir public: 117*cdf0e10cSrcweir TYPEINFO(); 118*cdf0e10cSrcweir ScUndoDeleteMulti( ScDocShell* pNewDocShell, 119*cdf0e10cSrcweir sal_Bool bNewRows, sal_Bool bNeedsRefresh, SCTAB nNewTab, 120*cdf0e10cSrcweir const SCCOLROW* pRng, SCCOLROW nRngCnt, 121*cdf0e10cSrcweir ScDocument* pUndoDocument, ScRefUndoData* pRefData ); 122*cdf0e10cSrcweir virtual ~ScUndoDeleteMulti(); 123*cdf0e10cSrcweir 124*cdf0e10cSrcweir virtual void Undo(); 125*cdf0e10cSrcweir virtual void Redo(); 126*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 127*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 128*cdf0e10cSrcweir 129*cdf0e10cSrcweir virtual String GetComment() const; 130*cdf0e10cSrcweir 131*cdf0e10cSrcweir private: 132*cdf0e10cSrcweir sal_Bool bRows; 133*cdf0e10cSrcweir sal_Bool bRefresh; 134*cdf0e10cSrcweir SCTAB nTab; 135*cdf0e10cSrcweir SCCOLROW* pRanges; 136*cdf0e10cSrcweir SCCOLROW nRangeCnt; 137*cdf0e10cSrcweir sal_uLong nStartChangeAction; 138*cdf0e10cSrcweir sal_uLong nEndChangeAction; 139*cdf0e10cSrcweir 140*cdf0e10cSrcweir void DoChange() const; 141*cdf0e10cSrcweir void SetChangeTrack(); 142*cdf0e10cSrcweir }; 143*cdf0e10cSrcweir 144*cdf0e10cSrcweir 145*cdf0e10cSrcweir class ScUndoCut: public ScBlockUndo 146*cdf0e10cSrcweir { 147*cdf0e10cSrcweir public: 148*cdf0e10cSrcweir TYPEINFO(); 149*cdf0e10cSrcweir ScUndoCut( ScDocShell* pNewDocShell, 150*cdf0e10cSrcweir ScRange aRange, // adjusted for merged cells 151*cdf0e10cSrcweir ScAddress aOldEnd, // end position without adjustment 152*cdf0e10cSrcweir const ScMarkData& rMark, // selected sheets 153*cdf0e10cSrcweir ScDocument* pNewUndoDoc ); 154*cdf0e10cSrcweir virtual ~ScUndoCut(); 155*cdf0e10cSrcweir 156*cdf0e10cSrcweir virtual void Undo(); 157*cdf0e10cSrcweir virtual void Redo(); 158*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 159*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 160*cdf0e10cSrcweir 161*cdf0e10cSrcweir virtual String GetComment() const; 162*cdf0e10cSrcweir 163*cdf0e10cSrcweir private: 164*cdf0e10cSrcweir ScMarkData aMarkData; 165*cdf0e10cSrcweir ScDocument* pUndoDoc; 166*cdf0e10cSrcweir ScRange aExtendedRange; 167*cdf0e10cSrcweir sal_uLong nStartChangeAction; 168*cdf0e10cSrcweir sal_uLong nEndChangeAction; 169*cdf0e10cSrcweir 170*cdf0e10cSrcweir void DoChange( const sal_Bool bUndo ); 171*cdf0e10cSrcweir void SetChangeTrack(); 172*cdf0e10cSrcweir }; 173*cdf0e10cSrcweir 174*cdf0e10cSrcweir 175*cdf0e10cSrcweir struct ScUndoPasteOptions 176*cdf0e10cSrcweir { 177*cdf0e10cSrcweir sal_uInt16 nFunction; 178*cdf0e10cSrcweir sal_Bool bSkipEmpty; 179*cdf0e10cSrcweir sal_Bool bTranspose; 180*cdf0e10cSrcweir sal_Bool bAsLink; 181*cdf0e10cSrcweir InsCellCmd eMoveMode; 182*cdf0e10cSrcweir 183*cdf0e10cSrcweir ScUndoPasteOptions() : 184*cdf0e10cSrcweir nFunction( PASTE_NOFUNC ), 185*cdf0e10cSrcweir bSkipEmpty( sal_False ), 186*cdf0e10cSrcweir bTranspose( sal_False ), 187*cdf0e10cSrcweir bAsLink( sal_False ), 188*cdf0e10cSrcweir eMoveMode( INS_NONE ) 189*cdf0e10cSrcweir {} 190*cdf0e10cSrcweir }; 191*cdf0e10cSrcweir 192*cdf0e10cSrcweir class ScUndoPaste: public ScBlockUndo 193*cdf0e10cSrcweir { 194*cdf0e10cSrcweir public: 195*cdf0e10cSrcweir TYPEINFO(); 196*cdf0e10cSrcweir ScUndoPaste( ScDocShell* pNewDocShell, 197*cdf0e10cSrcweir SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, 198*cdf0e10cSrcweir SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, 199*cdf0e10cSrcweir const ScMarkData& rMark, 200*cdf0e10cSrcweir ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc, 201*cdf0e10cSrcweir sal_uInt16 nNewFlags, 202*cdf0e10cSrcweir ScRefUndoData* pRefData, void* pFill1, void* pFill2, void* pFill3, 203*cdf0e10cSrcweir sal_Bool bRedoIsFilled = sal_True, 204*cdf0e10cSrcweir const ScUndoPasteOptions* pOptions = NULL ); 205*cdf0e10cSrcweir virtual ~ScUndoPaste(); 206*cdf0e10cSrcweir 207*cdf0e10cSrcweir virtual void Undo(); 208*cdf0e10cSrcweir virtual void Redo(); 209*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 210*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 211*cdf0e10cSrcweir 212*cdf0e10cSrcweir virtual String GetComment() const; 213*cdf0e10cSrcweir 214*cdf0e10cSrcweir private: 215*cdf0e10cSrcweir ScMarkData aMarkData; 216*cdf0e10cSrcweir ScDocument* pUndoDoc; 217*cdf0e10cSrcweir ScDocument* pRedoDoc; 218*cdf0e10cSrcweir sal_uInt16 nFlags; 219*cdf0e10cSrcweir ScRefUndoData* pRefUndoData; 220*cdf0e10cSrcweir ScRefUndoData* pRefRedoData; 221*cdf0e10cSrcweir sal_uLong nStartChangeAction; 222*cdf0e10cSrcweir sal_uLong nEndChangeAction; 223*cdf0e10cSrcweir sal_Bool bRedoFilled; 224*cdf0e10cSrcweir ScUndoPasteOptions aPasteOptions; 225*cdf0e10cSrcweir 226*cdf0e10cSrcweir void DoChange( const sal_Bool bUndo ); 227*cdf0e10cSrcweir void SetChangeTrack(); 228*cdf0e10cSrcweir }; 229*cdf0e10cSrcweir 230*cdf0e10cSrcweir 231*cdf0e10cSrcweir class ScUndoDragDrop: public ScMoveUndo 232*cdf0e10cSrcweir { 233*cdf0e10cSrcweir public: 234*cdf0e10cSrcweir TYPEINFO(); 235*cdf0e10cSrcweir ScUndoDragDrop( ScDocShell* pNewDocShell, 236*cdf0e10cSrcweir const ScRange& rRange, ScAddress aNewDestPos, sal_Bool bNewCut, 237*cdf0e10cSrcweir ScDocument* pUndoDocument, ScRefUndoData* pRefData, 238*cdf0e10cSrcweir sal_Bool bScenario ); 239*cdf0e10cSrcweir virtual ~ScUndoDragDrop(); 240*cdf0e10cSrcweir 241*cdf0e10cSrcweir virtual void Undo(); 242*cdf0e10cSrcweir virtual void Redo(); 243*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 244*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 245*cdf0e10cSrcweir 246*cdf0e10cSrcweir virtual String GetComment() const; 247*cdf0e10cSrcweir 248*cdf0e10cSrcweir private: 249*cdf0e10cSrcweir ScRange aSrcRange; 250*cdf0e10cSrcweir ScRange aDestRange; 251*cdf0e10cSrcweir sal_uLong nStartChangeAction; 252*cdf0e10cSrcweir sal_uLong nEndChangeAction; 253*cdf0e10cSrcweir sal_Bool bCut; 254*cdf0e10cSrcweir sal_Bool bKeepScenarioFlags; 255*cdf0e10cSrcweir 256*cdf0e10cSrcweir void PaintArea( ScRange aRange, sal_uInt16 nExtFlags ) const; 257*cdf0e10cSrcweir void DoUndo( ScRange aRange ) const; 258*cdf0e10cSrcweir 259*cdf0e10cSrcweir void SetChangeTrack(); 260*cdf0e10cSrcweir }; 261*cdf0e10cSrcweir 262*cdf0e10cSrcweir 263*cdf0e10cSrcweir class ScUndoDeleteContents: public ScSimpleUndo 264*cdf0e10cSrcweir { 265*cdf0e10cSrcweir public: 266*cdf0e10cSrcweir TYPEINFO(); 267*cdf0e10cSrcweir ScUndoDeleteContents( ScDocShell* pNewDocShell, 268*cdf0e10cSrcweir const ScMarkData& rMark, 269*cdf0e10cSrcweir const ScRange& rRange, 270*cdf0e10cSrcweir ScDocument* pNewUndoDoc, sal_Bool bNewMulti, 271*cdf0e10cSrcweir sal_uInt16 nNewFlags, sal_Bool bObjects ); 272*cdf0e10cSrcweir virtual ~ScUndoDeleteContents(); 273*cdf0e10cSrcweir 274*cdf0e10cSrcweir virtual void Undo(); 275*cdf0e10cSrcweir virtual void Redo(); 276*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 277*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 278*cdf0e10cSrcweir 279*cdf0e10cSrcweir virtual String GetComment() const; 280*cdf0e10cSrcweir 281*cdf0e10cSrcweir private: 282*cdf0e10cSrcweir ScRange aRange; 283*cdf0e10cSrcweir ScMarkData aMarkData; 284*cdf0e10cSrcweir ScDocument* pUndoDoc; // Blockmarkierung und geloeschte Daten 285*cdf0e10cSrcweir SdrUndoAction* pDrawUndo; // geloeschte Objekte 286*cdf0e10cSrcweir sal_uLong nStartChangeAction; 287*cdf0e10cSrcweir sal_uLong nEndChangeAction; 288*cdf0e10cSrcweir sal_uInt16 nFlags; 289*cdf0e10cSrcweir sal_Bool bMulti; // Mehrfachselektion 290*cdf0e10cSrcweir 291*cdf0e10cSrcweir void DoChange( const sal_Bool bUndo ); 292*cdf0e10cSrcweir void SetChangeTrack(); 293*cdf0e10cSrcweir }; 294*cdf0e10cSrcweir 295*cdf0e10cSrcweir 296*cdf0e10cSrcweir class ScUndoFillTable: public ScSimpleUndo 297*cdf0e10cSrcweir { 298*cdf0e10cSrcweir public: 299*cdf0e10cSrcweir TYPEINFO(); 300*cdf0e10cSrcweir ScUndoFillTable( ScDocShell* pNewDocShell, 301*cdf0e10cSrcweir const ScMarkData& rMark, 302*cdf0e10cSrcweir SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, 303*cdf0e10cSrcweir SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, 304*cdf0e10cSrcweir ScDocument* pNewUndoDoc, sal_Bool bNewMulti, SCTAB nSrc, 305*cdf0e10cSrcweir sal_uInt16 nFlg, sal_uInt16 nFunc, sal_Bool bSkip, sal_Bool bLink ); 306*cdf0e10cSrcweir virtual ~ScUndoFillTable(); 307*cdf0e10cSrcweir 308*cdf0e10cSrcweir virtual void Undo(); 309*cdf0e10cSrcweir virtual void Redo(); 310*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 311*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 312*cdf0e10cSrcweir 313*cdf0e10cSrcweir virtual String GetComment() const; 314*cdf0e10cSrcweir 315*cdf0e10cSrcweir private: 316*cdf0e10cSrcweir ScRange aRange; 317*cdf0e10cSrcweir ScMarkData aMarkData; 318*cdf0e10cSrcweir ScDocument* pUndoDoc; // Blockmarkierung und geloeschte Daten 319*cdf0e10cSrcweir sal_uLong nStartChangeAction; 320*cdf0e10cSrcweir sal_uLong nEndChangeAction; 321*cdf0e10cSrcweir sal_uInt16 nFlags; 322*cdf0e10cSrcweir sal_uInt16 nFunction; 323*cdf0e10cSrcweir SCTAB nSrcTab; 324*cdf0e10cSrcweir sal_Bool bMulti; // Mehrfachselektion 325*cdf0e10cSrcweir sal_Bool bSkipEmpty; 326*cdf0e10cSrcweir sal_Bool bAsLink; 327*cdf0e10cSrcweir 328*cdf0e10cSrcweir void DoChange( const sal_Bool bUndo ); 329*cdf0e10cSrcweir void SetChangeTrack(); 330*cdf0e10cSrcweir }; 331*cdf0e10cSrcweir 332*cdf0e10cSrcweir 333*cdf0e10cSrcweir class ScUndoSelectionAttr: public ScSimpleUndo 334*cdf0e10cSrcweir { 335*cdf0e10cSrcweir public: 336*cdf0e10cSrcweir TYPEINFO(); 337*cdf0e10cSrcweir ScUndoSelectionAttr( ScDocShell* pNewDocShell, 338*cdf0e10cSrcweir const ScMarkData& rMark, 339*cdf0e10cSrcweir SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, 340*cdf0e10cSrcweir SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, 341*cdf0e10cSrcweir ScDocument* pNewUndoDoc, sal_Bool bNewMulti, 342*cdf0e10cSrcweir const ScPatternAttr* pNewApply, 343*cdf0e10cSrcweir const SvxBoxItem* pNewOuter = NULL, 344*cdf0e10cSrcweir const SvxBoxInfoItem* pNewInner = NULL ); 345*cdf0e10cSrcweir virtual ~ScUndoSelectionAttr(); 346*cdf0e10cSrcweir 347*cdf0e10cSrcweir virtual void Undo(); 348*cdf0e10cSrcweir virtual void Redo(); 349*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 350*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 351*cdf0e10cSrcweir 352*cdf0e10cSrcweir virtual String GetComment() const; 353*cdf0e10cSrcweir 354*cdf0e10cSrcweir private: 355*cdf0e10cSrcweir ScMarkData aMarkData; 356*cdf0e10cSrcweir ScRange aRange; 357*cdf0e10cSrcweir ScDocument* pUndoDoc; 358*cdf0e10cSrcweir sal_Bool bMulti; 359*cdf0e10cSrcweir ScPatternAttr* pApplyPattern; 360*cdf0e10cSrcweir SvxBoxItem* pLineOuter; 361*cdf0e10cSrcweir SvxBoxInfoItem* pLineInner; 362*cdf0e10cSrcweir 363*cdf0e10cSrcweir void DoChange( const sal_Bool bUndo ); 364*cdf0e10cSrcweir }; 365*cdf0e10cSrcweir 366*cdf0e10cSrcweir 367*cdf0e10cSrcweir class ScUndoWidthOrHeight: public ScSimpleUndo 368*cdf0e10cSrcweir { 369*cdf0e10cSrcweir public: 370*cdf0e10cSrcweir TYPEINFO(); 371*cdf0e10cSrcweir ScUndoWidthOrHeight( ScDocShell* pNewDocShell, 372*cdf0e10cSrcweir const ScMarkData& rMark, 373*cdf0e10cSrcweir SCCOLROW nNewStart, SCTAB nNewStartTab, 374*cdf0e10cSrcweir SCCOLROW nNewEnd, SCTAB nNewEndTab, 375*cdf0e10cSrcweir ScDocument* pNewUndoDoc, 376*cdf0e10cSrcweir SCCOLROW nNewCnt, SCCOLROW* pNewRanges, 377*cdf0e10cSrcweir ScOutlineTable* pNewUndoTab, 378*cdf0e10cSrcweir ScSizeMode eNewMode, sal_uInt16 nNewSizeTwips, 379*cdf0e10cSrcweir sal_Bool bNewWidth ); 380*cdf0e10cSrcweir virtual ~ScUndoWidthOrHeight(); 381*cdf0e10cSrcweir 382*cdf0e10cSrcweir virtual void Undo(); 383*cdf0e10cSrcweir virtual void Redo(); 384*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 385*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 386*cdf0e10cSrcweir 387*cdf0e10cSrcweir virtual String GetComment() const; 388*cdf0e10cSrcweir 389*cdf0e10cSrcweir private: 390*cdf0e10cSrcweir ScMarkData aMarkData; 391*cdf0e10cSrcweir SCCOLROW nStart; 392*cdf0e10cSrcweir SCCOLROW nEnd; 393*cdf0e10cSrcweir SCTAB nStartTab; 394*cdf0e10cSrcweir SCTAB nEndTab; 395*cdf0e10cSrcweir ScDocument* pUndoDoc; 396*cdf0e10cSrcweir ScOutlineTable* pUndoTab; 397*cdf0e10cSrcweir SCCOLROW nRangeCnt; 398*cdf0e10cSrcweir SCCOLROW* pRanges; 399*cdf0e10cSrcweir sal_uInt16 nNewSize; 400*cdf0e10cSrcweir sal_Bool bWidth; 401*cdf0e10cSrcweir ScSizeMode eMode; 402*cdf0e10cSrcweir SdrUndoAction* pDrawUndo; 403*cdf0e10cSrcweir }; 404*cdf0e10cSrcweir 405*cdf0e10cSrcweir 406*cdf0e10cSrcweir class ScUndoAutoFill: public ScBlockUndo 407*cdf0e10cSrcweir { 408*cdf0e10cSrcweir public: 409*cdf0e10cSrcweir TYPEINFO(); 410*cdf0e10cSrcweir ScUndoAutoFill( ScDocShell* pNewDocShell, 411*cdf0e10cSrcweir const ScRange& rRange, const ScRange& rSourceArea, 412*cdf0e10cSrcweir ScDocument* pNewUndoDoc, const ScMarkData& rMark, 413*cdf0e10cSrcweir FillDir eNewFillDir, 414*cdf0e10cSrcweir FillCmd eNewFillCmd, FillDateCmd eNewFillDateCmd, 415*cdf0e10cSrcweir double fNewStartValue, double fNewStepValue, double fNewMaxValue, 416*cdf0e10cSrcweir sal_uInt16 nMaxShIndex ); 417*cdf0e10cSrcweir virtual ~ScUndoAutoFill(); 418*cdf0e10cSrcweir 419*cdf0e10cSrcweir virtual void Undo(); 420*cdf0e10cSrcweir virtual void Redo(); 421*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 422*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 423*cdf0e10cSrcweir 424*cdf0e10cSrcweir virtual String GetComment() const; 425*cdf0e10cSrcweir 426*cdf0e10cSrcweir private: 427*cdf0e10cSrcweir ScRange aSource; 428*cdf0e10cSrcweir ScMarkData aMarkData; 429*cdf0e10cSrcweir ScDocument* pUndoDoc; 430*cdf0e10cSrcweir FillDir eFillDir; 431*cdf0e10cSrcweir FillCmd eFillCmd; 432*cdf0e10cSrcweir FillDateCmd eFillDateCmd; 433*cdf0e10cSrcweir double fStartValue; 434*cdf0e10cSrcweir double fStepValue; 435*cdf0e10cSrcweir double fMaxValue; 436*cdf0e10cSrcweir sal_uLong nStartChangeAction; 437*cdf0e10cSrcweir sal_uLong nEndChangeAction; 438*cdf0e10cSrcweir sal_uInt16 nMaxSharedIndex; 439*cdf0e10cSrcweir 440*cdf0e10cSrcweir void SetChangeTrack(); 441*cdf0e10cSrcweir }; 442*cdf0e10cSrcweir 443*cdf0e10cSrcweir 444*cdf0e10cSrcweir class ScUndoMerge: public ScSimpleUndo 445*cdf0e10cSrcweir { 446*cdf0e10cSrcweir public: 447*cdf0e10cSrcweir TYPEINFO(); 448*cdf0e10cSrcweir ScUndoMerge( ScDocShell* pNewDocShell, 449*cdf0e10cSrcweir SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, 450*cdf0e10cSrcweir SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, 451*cdf0e10cSrcweir bool bMergeContents, ScDocument* pUndoDoc, SdrUndoAction* pDrawUndo ); 452*cdf0e10cSrcweir virtual ~ScUndoMerge(); 453*cdf0e10cSrcweir 454*cdf0e10cSrcweir virtual void Undo(); 455*cdf0e10cSrcweir virtual void Redo(); 456*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 457*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 458*cdf0e10cSrcweir 459*cdf0e10cSrcweir virtual String GetComment() const; 460*cdf0e10cSrcweir 461*cdf0e10cSrcweir private: 462*cdf0e10cSrcweir ScRange maRange; 463*cdf0e10cSrcweir bool mbMergeContents; // Merge contents in Redo(). 464*cdf0e10cSrcweir ScDocument* mpUndoDoc; // wenn Daten zusammengefasst 465*cdf0e10cSrcweir SdrUndoAction* mpDrawUndo; 466*cdf0e10cSrcweir 467*cdf0e10cSrcweir void DoChange( bool bUndo ) const; 468*cdf0e10cSrcweir }; 469*cdf0e10cSrcweir 470*cdf0e10cSrcweir 471*cdf0e10cSrcweir class ScUndoAutoFormat: public ScBlockUndo 472*cdf0e10cSrcweir { 473*cdf0e10cSrcweir public: 474*cdf0e10cSrcweir TYPEINFO(); 475*cdf0e10cSrcweir ScUndoAutoFormat( ScDocShell* pNewDocShell, 476*cdf0e10cSrcweir const ScRange& rRange, ScDocument* pNewUndoDoc, 477*cdf0e10cSrcweir const ScMarkData& rMark, 478*cdf0e10cSrcweir sal_Bool bNewSize, sal_uInt16 nNewFormatNo ); 479*cdf0e10cSrcweir virtual ~ScUndoAutoFormat(); 480*cdf0e10cSrcweir 481*cdf0e10cSrcweir virtual void Undo(); 482*cdf0e10cSrcweir virtual void Redo(); 483*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 484*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 485*cdf0e10cSrcweir 486*cdf0e10cSrcweir virtual String GetComment() const; 487*cdf0e10cSrcweir 488*cdf0e10cSrcweir private: 489*cdf0e10cSrcweir ScDocument* pUndoDoc; // geloeschte Daten 490*cdf0e10cSrcweir ScMarkData aMarkData; 491*cdf0e10cSrcweir sal_Bool bSize; 492*cdf0e10cSrcweir sal_uInt16 nFormatNo; 493*cdf0e10cSrcweir }; 494*cdf0e10cSrcweir 495*cdf0e10cSrcweir 496*cdf0e10cSrcweir class ScUndoReplace: public ScSimpleUndo 497*cdf0e10cSrcweir { 498*cdf0e10cSrcweir public: 499*cdf0e10cSrcweir TYPEINFO(); 500*cdf0e10cSrcweir ScUndoReplace( ScDocShell* pNewDocShell, 501*cdf0e10cSrcweir const ScMarkData& rMark, 502*cdf0e10cSrcweir SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, 503*cdf0e10cSrcweir const String& rNewUndoStr, ScDocument* pNewUndoDoc, 504*cdf0e10cSrcweir const SvxSearchItem* pItem ); 505*cdf0e10cSrcweir virtual ~ScUndoReplace(); 506*cdf0e10cSrcweir 507*cdf0e10cSrcweir virtual void Undo(); 508*cdf0e10cSrcweir virtual void Redo(); 509*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 510*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 511*cdf0e10cSrcweir 512*cdf0e10cSrcweir virtual String GetComment() const; 513*cdf0e10cSrcweir 514*cdf0e10cSrcweir private: 515*cdf0e10cSrcweir ScAddress aCursorPos; 516*cdf0e10cSrcweir ScMarkData aMarkData; 517*cdf0e10cSrcweir String aUndoStr; // Daten bei Einfachmarkierung 518*cdf0e10cSrcweir ScDocument* pUndoDoc; // Blockmarkierung und geloeschte Daten 519*cdf0e10cSrcweir SvxSearchItem* pSearchItem; 520*cdf0e10cSrcweir sal_uLong nStartChangeAction; 521*cdf0e10cSrcweir sal_uLong nEndChangeAction; 522*cdf0e10cSrcweir 523*cdf0e10cSrcweir void SetChangeTrack(); 524*cdf0e10cSrcweir }; 525*cdf0e10cSrcweir 526*cdf0e10cSrcweir 527*cdf0e10cSrcweir class ScUndoTabOp: public ScSimpleUndo 528*cdf0e10cSrcweir { 529*cdf0e10cSrcweir public: 530*cdf0e10cSrcweir TYPEINFO(); 531*cdf0e10cSrcweir ScUndoTabOp( ScDocShell* pNewDocShell, 532*cdf0e10cSrcweir SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, 533*cdf0e10cSrcweir SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, 534*cdf0e10cSrcweir ScDocument* pNewUndoDoc, 535*cdf0e10cSrcweir const ScRefAddress& rFormulaCell, 536*cdf0e10cSrcweir const ScRefAddress& rFormulaEnd, 537*cdf0e10cSrcweir const ScRefAddress& rRowCell, 538*cdf0e10cSrcweir const ScRefAddress& rColCell, 539*cdf0e10cSrcweir sal_uInt8 nMode ); 540*cdf0e10cSrcweir virtual ~ScUndoTabOp(); 541*cdf0e10cSrcweir 542*cdf0e10cSrcweir virtual void Undo(); 543*cdf0e10cSrcweir virtual void Redo(); 544*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 545*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 546*cdf0e10cSrcweir 547*cdf0e10cSrcweir virtual String GetComment() const; 548*cdf0e10cSrcweir 549*cdf0e10cSrcweir private: 550*cdf0e10cSrcweir ScRange aRange; 551*cdf0e10cSrcweir ScDocument* pUndoDoc; // geloeschte Daten 552*cdf0e10cSrcweir ScRefAddress theFormulaCell; 553*cdf0e10cSrcweir ScRefAddress theFormulaEnd; 554*cdf0e10cSrcweir ScRefAddress theRowCell; 555*cdf0e10cSrcweir ScRefAddress theColCell; 556*cdf0e10cSrcweir sal_uInt8 nMode; 557*cdf0e10cSrcweir }; 558*cdf0e10cSrcweir 559*cdf0e10cSrcweir 560*cdf0e10cSrcweir class ScUndoConversion : public ScSimpleUndo 561*cdf0e10cSrcweir { 562*cdf0e10cSrcweir public: 563*cdf0e10cSrcweir TYPEINFO(); 564*cdf0e10cSrcweir 565*cdf0e10cSrcweir ScUndoConversion( 566*cdf0e10cSrcweir ScDocShell* pNewDocShell, const ScMarkData& rMark, 567*cdf0e10cSrcweir SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, ScDocument* pNewUndoDoc, 568*cdf0e10cSrcweir SCCOL nNewX, SCROW nNewY, SCTAB nNewZ, ScDocument* pNewRedoDoc, 569*cdf0e10cSrcweir const ScConversionParam& rConvParam ); 570*cdf0e10cSrcweir virtual ~ScUndoConversion(); 571*cdf0e10cSrcweir 572*cdf0e10cSrcweir virtual void Undo(); 573*cdf0e10cSrcweir virtual void Redo(); 574*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 575*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 576*cdf0e10cSrcweir 577*cdf0e10cSrcweir virtual String GetComment() const; 578*cdf0e10cSrcweir 579*cdf0e10cSrcweir private: 580*cdf0e10cSrcweir ScMarkData aMarkData; 581*cdf0e10cSrcweir ScAddress aCursorPos; 582*cdf0e10cSrcweir ScDocument* pUndoDoc; // Blockmarkierung und geloeschte Daten 583*cdf0e10cSrcweir ScAddress aNewCursorPos; 584*cdf0e10cSrcweir ScDocument* pRedoDoc; // Blockmarkierung und neue Daten 585*cdf0e10cSrcweir sal_uLong nStartChangeAction; 586*cdf0e10cSrcweir sal_uLong nEndChangeAction; 587*cdf0e10cSrcweir ScConversionParam maConvParam; /// Conversion type and parameters. 588*cdf0e10cSrcweir 589*cdf0e10cSrcweir void DoChange( ScDocument* pRefDoc, const ScAddress& rCursorPos ); 590*cdf0e10cSrcweir void SetChangeTrack(); 591*cdf0e10cSrcweir }; 592*cdf0e10cSrcweir 593*cdf0e10cSrcweir class ScUndoRefConversion: public ScSimpleUndo 594*cdf0e10cSrcweir { 595*cdf0e10cSrcweir public: 596*cdf0e10cSrcweir TYPEINFO(); 597*cdf0e10cSrcweir ScUndoRefConversion( ScDocShell* pNewDocShell, 598*cdf0e10cSrcweir const ScRange& aMarkRange, const ScMarkData& rMark, 599*cdf0e10cSrcweir ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc, sal_Bool bNewMulti, sal_uInt16 nNewFlag); 600*cdf0e10cSrcweir virtual ~ScUndoRefConversion(); 601*cdf0e10cSrcweir 602*cdf0e10cSrcweir virtual void Undo(); 603*cdf0e10cSrcweir virtual void Redo(); 604*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 605*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 606*cdf0e10cSrcweir 607*cdf0e10cSrcweir virtual String GetComment() const; 608*cdf0e10cSrcweir 609*cdf0e10cSrcweir private: 610*cdf0e10cSrcweir ScMarkData aMarkData; 611*cdf0e10cSrcweir ScDocument* pUndoDoc; 612*cdf0e10cSrcweir ScDocument* pRedoDoc; 613*cdf0e10cSrcweir ScRange aRange; 614*cdf0e10cSrcweir sal_Bool bMulti; 615*cdf0e10cSrcweir sal_uInt16 nFlags; 616*cdf0e10cSrcweir sal_uLong nStartChangeAction; 617*cdf0e10cSrcweir sal_uLong nEndChangeAction; 618*cdf0e10cSrcweir 619*cdf0e10cSrcweir void DoChange( ScDocument* pRefDoc); 620*cdf0e10cSrcweir void SetChangeTrack(); 621*cdf0e10cSrcweir }; 622*cdf0e10cSrcweir 623*cdf0e10cSrcweir class ScUndoListNames: public ScBlockUndo 624*cdf0e10cSrcweir { 625*cdf0e10cSrcweir public: 626*cdf0e10cSrcweir TYPEINFO(); 627*cdf0e10cSrcweir ScUndoListNames( ScDocShell* pNewDocShell, 628*cdf0e10cSrcweir const ScRange& rRange, 629*cdf0e10cSrcweir ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc ); 630*cdf0e10cSrcweir virtual ~ScUndoListNames(); 631*cdf0e10cSrcweir 632*cdf0e10cSrcweir virtual void Undo(); 633*cdf0e10cSrcweir virtual void Redo(); 634*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 635*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 636*cdf0e10cSrcweir 637*cdf0e10cSrcweir virtual String GetComment() const; 638*cdf0e10cSrcweir 639*cdf0e10cSrcweir private: 640*cdf0e10cSrcweir ScDocument* pUndoDoc; 641*cdf0e10cSrcweir ScDocument* pRedoDoc; 642*cdf0e10cSrcweir 643*cdf0e10cSrcweir void DoChange( ScDocument* pSrcDoc ) const; 644*cdf0e10cSrcweir }; 645*cdf0e10cSrcweir 646*cdf0e10cSrcweir 647*cdf0e10cSrcweir class ScUndoUseScenario: public ScSimpleUndo 648*cdf0e10cSrcweir { 649*cdf0e10cSrcweir public: 650*cdf0e10cSrcweir TYPEINFO(); 651*cdf0e10cSrcweir ScUndoUseScenario( ScDocShell* pNewDocShell, 652*cdf0e10cSrcweir const ScMarkData& rMark, 653*cdf0e10cSrcweir const ScArea& rDestArea, ScDocument* pNewUndoDoc, 654*cdf0e10cSrcweir const String& rNewName ); 655*cdf0e10cSrcweir virtual ~ScUndoUseScenario(); 656*cdf0e10cSrcweir 657*cdf0e10cSrcweir virtual void Undo(); 658*cdf0e10cSrcweir virtual void Redo(); 659*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 660*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 661*cdf0e10cSrcweir 662*cdf0e10cSrcweir virtual String GetComment() const; 663*cdf0e10cSrcweir 664*cdf0e10cSrcweir private: 665*cdf0e10cSrcweir ScDocument* pUndoDoc; 666*cdf0e10cSrcweir ScRange aRange; 667*cdf0e10cSrcweir ScMarkData aMarkData; 668*cdf0e10cSrcweir String aName; 669*cdf0e10cSrcweir }; 670*cdf0e10cSrcweir 671*cdf0e10cSrcweir 672*cdf0e10cSrcweir class ScUndoSelectionStyle: public ScSimpleUndo 673*cdf0e10cSrcweir { 674*cdf0e10cSrcweir public: 675*cdf0e10cSrcweir TYPEINFO(); 676*cdf0e10cSrcweir ScUndoSelectionStyle( ScDocShell* pNewDocShell, 677*cdf0e10cSrcweir const ScMarkData& rMark, 678*cdf0e10cSrcweir const ScRange& rRange, 679*cdf0e10cSrcweir const String& rName, 680*cdf0e10cSrcweir ScDocument* pNewUndoDoc ); 681*cdf0e10cSrcweir virtual ~ScUndoSelectionStyle(); 682*cdf0e10cSrcweir 683*cdf0e10cSrcweir virtual void Undo(); 684*cdf0e10cSrcweir virtual void Redo(); 685*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 686*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 687*cdf0e10cSrcweir 688*cdf0e10cSrcweir virtual String GetComment() const; 689*cdf0e10cSrcweir virtual sal_uInt16 GetId() const; 690*cdf0e10cSrcweir 691*cdf0e10cSrcweir private: 692*cdf0e10cSrcweir ScMarkData aMarkData; 693*cdf0e10cSrcweir ScDocument* pUndoDoc; 694*cdf0e10cSrcweir String aStyleName; 695*cdf0e10cSrcweir ScRange aRange; 696*cdf0e10cSrcweir 697*cdf0e10cSrcweir void DoChange( const sal_Bool bUndo ); 698*cdf0e10cSrcweir }; 699*cdf0e10cSrcweir 700*cdf0e10cSrcweir 701*cdf0e10cSrcweir class ScUndoRefreshLink: public ScSimpleUndo 702*cdf0e10cSrcweir { 703*cdf0e10cSrcweir public: 704*cdf0e10cSrcweir TYPEINFO(); 705*cdf0e10cSrcweir ScUndoRefreshLink( ScDocShell* pNewDocShell, 706*cdf0e10cSrcweir ScDocument* pNewUndoDoc ); 707*cdf0e10cSrcweir virtual ~ScUndoRefreshLink(); 708*cdf0e10cSrcweir 709*cdf0e10cSrcweir virtual void Undo(); 710*cdf0e10cSrcweir virtual void Redo(); 711*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 712*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 713*cdf0e10cSrcweir 714*cdf0e10cSrcweir virtual String GetComment() const; 715*cdf0e10cSrcweir 716*cdf0e10cSrcweir private: 717*cdf0e10cSrcweir ScDocument* pUndoDoc; 718*cdf0e10cSrcweir ScDocument* pRedoDoc; 719*cdf0e10cSrcweir }; 720*cdf0e10cSrcweir 721*cdf0e10cSrcweir 722*cdf0e10cSrcweir class ScUndoEnterMatrix: public ScBlockUndo 723*cdf0e10cSrcweir { 724*cdf0e10cSrcweir public: 725*cdf0e10cSrcweir TYPEINFO(); 726*cdf0e10cSrcweir ScUndoEnterMatrix( ScDocShell* pNewDocShell, 727*cdf0e10cSrcweir const ScRange& rArea, 728*cdf0e10cSrcweir ScDocument* pNewUndoDoc, 729*cdf0e10cSrcweir const String& rForm ); 730*cdf0e10cSrcweir virtual ~ScUndoEnterMatrix(); 731*cdf0e10cSrcweir 732*cdf0e10cSrcweir virtual void Undo(); 733*cdf0e10cSrcweir virtual void Redo(); 734*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 735*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 736*cdf0e10cSrcweir 737*cdf0e10cSrcweir virtual String GetComment() const; 738*cdf0e10cSrcweir 739*cdf0e10cSrcweir private: 740*cdf0e10cSrcweir ScDocument* pUndoDoc; 741*cdf0e10cSrcweir String aFormula; 742*cdf0e10cSrcweir formula::FormulaGrammar::AddressConvention eConv; 743*cdf0e10cSrcweir sal_uLong nStartChangeAction; 744*cdf0e10cSrcweir sal_uLong nEndChangeAction; 745*cdf0e10cSrcweir 746*cdf0e10cSrcweir void SetChangeTrack(); 747*cdf0e10cSrcweir }; 748*cdf0e10cSrcweir 749*cdf0e10cSrcweir 750*cdf0e10cSrcweir class ScUndoInsertAreaLink : public ScSimpleUndo 751*cdf0e10cSrcweir { 752*cdf0e10cSrcweir public: 753*cdf0e10cSrcweir TYPEINFO(); 754*cdf0e10cSrcweir ScUndoInsertAreaLink( ScDocShell* pShell, 755*cdf0e10cSrcweir const String& rDoc, 756*cdf0e10cSrcweir const String& rFlt, const String& rOpt, 757*cdf0e10cSrcweir const String& rArea, const ScRange& rDestRange, 758*cdf0e10cSrcweir sal_uLong nRefreshDelay ); 759*cdf0e10cSrcweir virtual ~ScUndoInsertAreaLink(); 760*cdf0e10cSrcweir 761*cdf0e10cSrcweir virtual void Undo(); 762*cdf0e10cSrcweir virtual void Redo(); 763*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 764*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 765*cdf0e10cSrcweir 766*cdf0e10cSrcweir virtual String GetComment() const; 767*cdf0e10cSrcweir 768*cdf0e10cSrcweir private: 769*cdf0e10cSrcweir String aDocName; 770*cdf0e10cSrcweir String aFltName; 771*cdf0e10cSrcweir String aOptions; 772*cdf0e10cSrcweir String aAreaName; 773*cdf0e10cSrcweir ScRange aRange; 774*cdf0e10cSrcweir sal_uLong nRefreshDelay; 775*cdf0e10cSrcweir }; 776*cdf0e10cSrcweir 777*cdf0e10cSrcweir 778*cdf0e10cSrcweir class ScUndoRemoveAreaLink : public ScSimpleUndo 779*cdf0e10cSrcweir { 780*cdf0e10cSrcweir public: 781*cdf0e10cSrcweir TYPEINFO(); 782*cdf0e10cSrcweir ScUndoRemoveAreaLink( ScDocShell* pShell, 783*cdf0e10cSrcweir const String& rDoc, 784*cdf0e10cSrcweir const String& rFlt, const String& rOpt, 785*cdf0e10cSrcweir const String& rArea, const ScRange& rDestRange, 786*cdf0e10cSrcweir sal_uLong nRefreshDelay ); 787*cdf0e10cSrcweir virtual ~ScUndoRemoveAreaLink(); 788*cdf0e10cSrcweir 789*cdf0e10cSrcweir virtual void Undo(); 790*cdf0e10cSrcweir virtual void Redo(); 791*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 792*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 793*cdf0e10cSrcweir 794*cdf0e10cSrcweir virtual String GetComment() const; 795*cdf0e10cSrcweir 796*cdf0e10cSrcweir private: 797*cdf0e10cSrcweir String aDocName; 798*cdf0e10cSrcweir String aFltName; 799*cdf0e10cSrcweir String aOptions; 800*cdf0e10cSrcweir String aAreaName; 801*cdf0e10cSrcweir ScRange aRange; 802*cdf0e10cSrcweir sal_uLong nRefreshDelay; 803*cdf0e10cSrcweir }; 804*cdf0e10cSrcweir 805*cdf0e10cSrcweir 806*cdf0e10cSrcweir class ScUndoUpdateAreaLink : public ScSimpleUndo //! auch BlockUndo umstellen? 807*cdf0e10cSrcweir { 808*cdf0e10cSrcweir public: 809*cdf0e10cSrcweir TYPEINFO(); 810*cdf0e10cSrcweir ScUndoUpdateAreaLink( ScDocShell* pShell, 811*cdf0e10cSrcweir const String& rOldD, 812*cdf0e10cSrcweir const String& rOldF, const String& rOldO, 813*cdf0e10cSrcweir const String& rOldA, const ScRange& rOldR, 814*cdf0e10cSrcweir sal_uLong nOldRD, 815*cdf0e10cSrcweir const String& rNewD, 816*cdf0e10cSrcweir const String& rNewF, const String& rNewO, 817*cdf0e10cSrcweir const String& rNewA, const ScRange& rNewR, 818*cdf0e10cSrcweir sal_uLong nNewRD, 819*cdf0e10cSrcweir ScDocument* pUndo, ScDocument* pRedo, 820*cdf0e10cSrcweir sal_Bool bDoInsert ); 821*cdf0e10cSrcweir virtual ~ScUndoUpdateAreaLink(); 822*cdf0e10cSrcweir 823*cdf0e10cSrcweir virtual void Undo(); 824*cdf0e10cSrcweir virtual void Redo(); 825*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 826*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 827*cdf0e10cSrcweir 828*cdf0e10cSrcweir virtual String GetComment() const; 829*cdf0e10cSrcweir 830*cdf0e10cSrcweir private: 831*cdf0e10cSrcweir String aOldDoc; 832*cdf0e10cSrcweir String aOldFlt; 833*cdf0e10cSrcweir String aOldOpt; 834*cdf0e10cSrcweir String aOldArea; 835*cdf0e10cSrcweir ScRange aOldRange; 836*cdf0e10cSrcweir String aNewDoc; 837*cdf0e10cSrcweir String aNewFlt; 838*cdf0e10cSrcweir String aNewOpt; 839*cdf0e10cSrcweir String aNewArea; 840*cdf0e10cSrcweir ScRange aNewRange; 841*cdf0e10cSrcweir ScDocument* pUndoDoc; 842*cdf0e10cSrcweir ScDocument* pRedoDoc; 843*cdf0e10cSrcweir sal_uLong nOldRefresh; 844*cdf0e10cSrcweir sal_uLong nNewRefresh; 845*cdf0e10cSrcweir sal_Bool bWithInsert; 846*cdf0e10cSrcweir 847*cdf0e10cSrcweir void DoChange( const sal_Bool bUndo ) const; 848*cdf0e10cSrcweir }; 849*cdf0e10cSrcweir 850*cdf0e10cSrcweir 851*cdf0e10cSrcweir class ScUndoIndent: public ScBlockUndo 852*cdf0e10cSrcweir { 853*cdf0e10cSrcweir public: 854*cdf0e10cSrcweir TYPEINFO(); 855*cdf0e10cSrcweir ScUndoIndent( ScDocShell* pNewDocShell, const ScMarkData& rMark, 856*cdf0e10cSrcweir ScDocument* pNewUndoDoc, sal_Bool bIncrement ); 857*cdf0e10cSrcweir virtual ~ScUndoIndent(); 858*cdf0e10cSrcweir 859*cdf0e10cSrcweir virtual void Undo(); 860*cdf0e10cSrcweir virtual void Redo(); 861*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 862*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 863*cdf0e10cSrcweir 864*cdf0e10cSrcweir virtual String GetComment() const; 865*cdf0e10cSrcweir 866*cdf0e10cSrcweir private: 867*cdf0e10cSrcweir ScMarkData aMarkData; 868*cdf0e10cSrcweir ScDocument* pUndoDoc; 869*cdf0e10cSrcweir sal_Bool bIsIncrement; 870*cdf0e10cSrcweir }; 871*cdf0e10cSrcweir 872*cdf0e10cSrcweir 873*cdf0e10cSrcweir class ScUndoTransliterate: public ScBlockUndo 874*cdf0e10cSrcweir { 875*cdf0e10cSrcweir public: 876*cdf0e10cSrcweir TYPEINFO(); 877*cdf0e10cSrcweir ScUndoTransliterate( ScDocShell* pNewDocShell, const ScMarkData& rMark, 878*cdf0e10cSrcweir ScDocument* pNewUndoDoc, sal_Int32 nType ); 879*cdf0e10cSrcweir virtual ~ScUndoTransliterate(); 880*cdf0e10cSrcweir 881*cdf0e10cSrcweir virtual void Undo(); 882*cdf0e10cSrcweir virtual void Redo(); 883*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 884*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 885*cdf0e10cSrcweir 886*cdf0e10cSrcweir virtual String GetComment() const; 887*cdf0e10cSrcweir 888*cdf0e10cSrcweir private: 889*cdf0e10cSrcweir ScMarkData aMarkData; 890*cdf0e10cSrcweir ScDocument* pUndoDoc; 891*cdf0e10cSrcweir sal_Int32 nTransliterationType; 892*cdf0e10cSrcweir }; 893*cdf0e10cSrcweir 894*cdf0e10cSrcweir 895*cdf0e10cSrcweir class ScUndoClearItems: public ScBlockUndo 896*cdf0e10cSrcweir { 897*cdf0e10cSrcweir public: 898*cdf0e10cSrcweir TYPEINFO(); 899*cdf0e10cSrcweir ScUndoClearItems( ScDocShell* pNewDocShell, const ScMarkData& rMark, 900*cdf0e10cSrcweir ScDocument* pNewUndoDoc, const sal_uInt16* pW ); 901*cdf0e10cSrcweir virtual ~ScUndoClearItems(); 902*cdf0e10cSrcweir 903*cdf0e10cSrcweir virtual void Undo(); 904*cdf0e10cSrcweir virtual void Redo(); 905*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 906*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 907*cdf0e10cSrcweir 908*cdf0e10cSrcweir virtual String GetComment() const; 909*cdf0e10cSrcweir 910*cdf0e10cSrcweir private: 911*cdf0e10cSrcweir ScMarkData aMarkData; 912*cdf0e10cSrcweir ScDocument* pUndoDoc; 913*cdf0e10cSrcweir sal_uInt16* pWhich; 914*cdf0e10cSrcweir }; 915*cdf0e10cSrcweir 916*cdf0e10cSrcweir 917*cdf0e10cSrcweir class ScUndoRemoveBreaks: public ScSimpleUndo 918*cdf0e10cSrcweir { 919*cdf0e10cSrcweir public: 920*cdf0e10cSrcweir TYPEINFO(); 921*cdf0e10cSrcweir ScUndoRemoveBreaks( ScDocShell* pNewDocShell, 922*cdf0e10cSrcweir SCTAB nNewTab, ScDocument* pNewUndoDoc ); 923*cdf0e10cSrcweir virtual ~ScUndoRemoveBreaks(); 924*cdf0e10cSrcweir 925*cdf0e10cSrcweir virtual void Undo(); 926*cdf0e10cSrcweir virtual void Redo(); 927*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 928*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 929*cdf0e10cSrcweir 930*cdf0e10cSrcweir virtual String GetComment() const; 931*cdf0e10cSrcweir 932*cdf0e10cSrcweir private: 933*cdf0e10cSrcweir SCTAB nTab; 934*cdf0e10cSrcweir ScDocument* pUndoDoc; 935*cdf0e10cSrcweir }; 936*cdf0e10cSrcweir 937*cdf0e10cSrcweir 938*cdf0e10cSrcweir class ScUndoRemoveMerge: public ScBlockUndo 939*cdf0e10cSrcweir { 940*cdf0e10cSrcweir public: 941*cdf0e10cSrcweir TYPEINFO(); 942*cdf0e10cSrcweir ScUndoRemoveMerge( ScDocShell* pNewDocShell, 943*cdf0e10cSrcweir const ScRange& rArea, 944*cdf0e10cSrcweir ScDocument* pNewUndoDoc ); 945*cdf0e10cSrcweir virtual ~ScUndoRemoveMerge(); 946*cdf0e10cSrcweir 947*cdf0e10cSrcweir virtual void Undo(); 948*cdf0e10cSrcweir virtual void Redo(); 949*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 950*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 951*cdf0e10cSrcweir 952*cdf0e10cSrcweir virtual String GetComment() const; 953*cdf0e10cSrcweir 954*cdf0e10cSrcweir private: 955*cdf0e10cSrcweir ScDocument* pUndoDoc; 956*cdf0e10cSrcweir }; 957*cdf0e10cSrcweir 958*cdf0e10cSrcweir 959*cdf0e10cSrcweir class ScUndoBorder: public ScBlockUndo 960*cdf0e10cSrcweir { 961*cdf0e10cSrcweir public: 962*cdf0e10cSrcweir TYPEINFO(); 963*cdf0e10cSrcweir ScUndoBorder( ScDocShell* pNewDocShell, 964*cdf0e10cSrcweir const ScRangeList& rRangeList, 965*cdf0e10cSrcweir ScDocument* pNewUndoDoc, 966*cdf0e10cSrcweir const SvxBoxItem& rNewOuter, 967*cdf0e10cSrcweir const SvxBoxInfoItem& rNewInner ); 968*cdf0e10cSrcweir virtual ~ScUndoBorder(); 969*cdf0e10cSrcweir 970*cdf0e10cSrcweir virtual void Undo(); 971*cdf0e10cSrcweir virtual void Redo(); 972*cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rTarget); 973*cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; 974*cdf0e10cSrcweir 975*cdf0e10cSrcweir virtual String GetComment() const; 976*cdf0e10cSrcweir 977*cdf0e10cSrcweir private: 978*cdf0e10cSrcweir ScDocument* pUndoDoc; 979*cdf0e10cSrcweir ScRangeList* pRanges; 980*cdf0e10cSrcweir SvxBoxItem* pOuter; 981*cdf0e10cSrcweir SvxBoxInfoItem* pInner; 982*cdf0e10cSrcweir }; 983*cdf0e10cSrcweir 984*cdf0e10cSrcweir 985*cdf0e10cSrcweir 986*cdf0e10cSrcweir 987*cdf0e10cSrcweir #endif 988*cdf0e10cSrcweir 989