| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef SC_UNDOBLK_HXX |
| #define SC_UNDOBLK_HXX |
| |
| #include "undobase.hxx" |
| #include "markdata.hxx" |
| #include "viewutil.hxx" |
| #include "spellparam.hxx" |
| |
| class ScDocShell; |
| class ScBaseCell; |
| class ScDocument; |
| class ScOutlineTable; |
| class ScRangeName; |
| class ScRangeList; |
| class ScDBCollection; |
| class ScPatternAttr; |
| class SvxBoxItem; |
| class SvxBoxInfoItem; |
| class SvxSearchItem; |
| class SdrUndoAction; |
| |
| //---------------------------------------------------------------------------- |
| |
| class ScUndoInsertCells: public ScMoveUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoInsertCells( ScDocShell* pNewDocShell, |
| const ScRange& rRange, SCTAB nNewCount, SCTAB* pNewTabs, SCTAB* pNewScenarios, |
| InsCellCmd eNewCmd, ScDocument* pUndoDocument, ScRefUndoData* pRefData, |
| sal_Bool bNewPartOfPaste ); |
| virtual ~ScUndoInsertCells(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat( SfxRepeatTarget& rTarget ); |
| virtual sal_Bool CanRepeat( SfxRepeatTarget& rTarget ) const; |
| |
| virtual String GetComment() const; |
| |
| virtual sal_Bool Merge( SfxUndoAction *pNextAction ); |
| |
| private: |
| ScRange aEffRange; |
| SCTAB nCount; |
| SCTAB* pTabs; |
| SCTAB* pScenarios; |
| sal_uLong nEndChangeAction; |
| InsCellCmd eCmd; |
| sal_Bool bPartOfPaste; |
| SfxUndoAction* pPasteUndo; |
| |
| void DoChange ( const sal_Bool bUndo ); |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoDeleteCells: public ScMoveUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoDeleteCells( ScDocShell* pNewDocShell, |
| const ScRange& rRange, SCTAB nNewCount, SCTAB* pNewTabs, SCTAB* pNewScenarios, |
| DelCellCmd eNewCmd, ScDocument* pUndoDocument, ScRefUndoData* pRefData ); |
| virtual ~ScUndoDeleteCells(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScRange aEffRange; |
| SCTAB nCount; |
| SCTAB* pTabs; |
| SCTAB* pScenarios; |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| DelCellCmd eCmd; |
| |
| void DoChange ( const sal_Bool bUndo ); |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoDeleteMulti: public ScMoveUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoDeleteMulti( ScDocShell* pNewDocShell, |
| sal_Bool bNewRows, sal_Bool bNeedsRefresh, SCTAB nNewTab, |
| const SCCOLROW* pRng, SCCOLROW nRngCnt, |
| ScDocument* pUndoDocument, ScRefUndoData* pRefData ); |
| virtual ~ScUndoDeleteMulti(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| sal_Bool bRows; |
| sal_Bool bRefresh; |
| SCTAB nTab; |
| SCCOLROW* pRanges; |
| SCCOLROW nRangeCnt; |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| |
| void DoChange() const; |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoCut: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoCut( ScDocShell* pNewDocShell, |
| ScRange aRange, // adjusted for merged cells |
| ScAddress aOldEnd, // end position without adjustment |
| const ScMarkData& rMark, // selected sheets |
| ScDocument* pNewUndoDoc ); |
| virtual ~ScUndoCut(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; |
| ScRange aExtendedRange; |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| |
| void DoChange( const sal_Bool bUndo ); |
| void SetChangeTrack(); |
| }; |
| |
| |
| struct ScUndoPasteOptions |
| { |
| sal_uInt16 nFunction; |
| sal_Bool bSkipEmpty; |
| sal_Bool bTranspose; |
| sal_Bool bAsLink; |
| InsCellCmd eMoveMode; |
| |
| ScUndoPasteOptions() : |
| nFunction( PASTE_NOFUNC ), |
| bSkipEmpty( sal_False ), |
| bTranspose( sal_False ), |
| bAsLink( sal_False ), |
| eMoveMode( INS_NONE ) |
| {} |
| }; |
| |
| class ScUndoPaste: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoPaste( ScDocShell* pNewDocShell, |
| SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, |
| SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, |
| const ScMarkData& rMark, |
| ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc, |
| sal_uInt16 nNewFlags, |
| ScRefUndoData* pRefData, void* pFill1, void* pFill2, void* pFill3, |
| sal_Bool bRedoIsFilled = sal_True, |
| const ScUndoPasteOptions* pOptions = NULL ); |
| virtual ~ScUndoPaste(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; |
| ScDocument* pRedoDoc; |
| sal_uInt16 nFlags; |
| ScRefUndoData* pRefUndoData; |
| ScRefUndoData* pRefRedoData; |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| sal_Bool bRedoFilled; |
| ScUndoPasteOptions aPasteOptions; |
| |
| void DoChange( const sal_Bool bUndo ); |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoDragDrop: public ScMoveUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoDragDrop( ScDocShell* pNewDocShell, |
| const ScRange& rRange, ScAddress aNewDestPos, sal_Bool bNewCut, |
| ScDocument* pUndoDocument, ScRefUndoData* pRefData, |
| sal_Bool bScenario ); |
| virtual ~ScUndoDragDrop(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScRange aSrcRange; |
| ScRange aDestRange; |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| sal_Bool bCut; |
| sal_Bool bKeepScenarioFlags; |
| |
| void PaintArea( ScRange aRange, sal_uInt16 nExtFlags ) const; |
| void DoUndo( ScRange aRange ) const; |
| |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoDeleteContents: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoDeleteContents( ScDocShell* pNewDocShell, |
| const ScMarkData& rMark, |
| const ScRange& rRange, |
| ScDocument* pNewUndoDoc, sal_Bool bNewMulti, |
| sal_uInt16 nNewFlags, sal_Bool bObjects ); |
| virtual ~ScUndoDeleteContents(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScRange aRange; |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; // Blockmarkierung und geloeschte Daten |
| SdrUndoAction* pDrawUndo; // geloeschte Objekte |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| sal_uInt16 nFlags; |
| sal_Bool bMulti; // Mehrfachselektion |
| |
| void DoChange( const sal_Bool bUndo ); |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoFillTable: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoFillTable( ScDocShell* pNewDocShell, |
| const ScMarkData& rMark, |
| SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, |
| SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, |
| ScDocument* pNewUndoDoc, sal_Bool bNewMulti, SCTAB nSrc, |
| sal_uInt16 nFlg, sal_uInt16 nFunc, sal_Bool bSkip, sal_Bool bLink ); |
| virtual ~ScUndoFillTable(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScRange aRange; |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; // Blockmarkierung und geloeschte Daten |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| sal_uInt16 nFlags; |
| sal_uInt16 nFunction; |
| SCTAB nSrcTab; |
| sal_Bool bMulti; // Mehrfachselektion |
| sal_Bool bSkipEmpty; |
| sal_Bool bAsLink; |
| |
| void DoChange( const sal_Bool bUndo ); |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoSelectionAttr: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoSelectionAttr( ScDocShell* pNewDocShell, |
| const ScMarkData& rMark, |
| SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, |
| SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, |
| ScDocument* pNewUndoDoc, sal_Bool bNewMulti, |
| const ScPatternAttr* pNewApply, |
| const SvxBoxItem* pNewOuter = NULL, |
| const SvxBoxInfoItem* pNewInner = NULL ); |
| virtual ~ScUndoSelectionAttr(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScMarkData aMarkData; |
| ScRange aRange; |
| ScDocument* pUndoDoc; |
| sal_Bool bMulti; |
| ScPatternAttr* pApplyPattern; |
| SvxBoxItem* pLineOuter; |
| SvxBoxInfoItem* pLineInner; |
| |
| void DoChange( const sal_Bool bUndo ); |
| }; |
| |
| |
| class ScUndoWidthOrHeight: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoWidthOrHeight( ScDocShell* pNewDocShell, |
| const ScMarkData& rMark, |
| SCCOLROW nNewStart, SCTAB nNewStartTab, |
| SCCOLROW nNewEnd, SCTAB nNewEndTab, |
| ScDocument* pNewUndoDoc, |
| SCCOLROW nNewCnt, SCCOLROW* pNewRanges, |
| ScOutlineTable* pNewUndoTab, |
| ScSizeMode eNewMode, sal_uInt16 nNewSizeTwips, |
| sal_Bool bNewWidth ); |
| virtual ~ScUndoWidthOrHeight(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScMarkData aMarkData; |
| SCCOLROW nStart; |
| SCCOLROW nEnd; |
| SCTAB nStartTab; |
| SCTAB nEndTab; |
| ScDocument* pUndoDoc; |
| ScOutlineTable* pUndoTab; |
| SCCOLROW nRangeCnt; |
| SCCOLROW* pRanges; |
| sal_uInt16 nNewSize; |
| sal_Bool bWidth; |
| ScSizeMode eMode; |
| SdrUndoAction* pDrawUndo; |
| }; |
| |
| |
| class ScUndoAutoFill: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoAutoFill( ScDocShell* pNewDocShell, |
| const ScRange& rRange, const ScRange& rSourceArea, |
| ScDocument* pNewUndoDoc, const ScMarkData& rMark, |
| FillDir eNewFillDir, |
| FillCmd eNewFillCmd, FillDateCmd eNewFillDateCmd, |
| double fNewStartValue, double fNewStepValue, double fNewMaxValue, |
| sal_uInt16 nMaxShIndex ); |
| virtual ~ScUndoAutoFill(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScRange aSource; |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; |
| FillDir eFillDir; |
| FillCmd eFillCmd; |
| FillDateCmd eFillDateCmd; |
| double fStartValue; |
| double fStepValue; |
| double fMaxValue; |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| sal_uInt16 nMaxSharedIndex; |
| |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoMerge: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoMerge( ScDocShell* pNewDocShell, |
| SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, |
| SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, |
| bool bMergeContents, ScDocument* pUndoDoc, SdrUndoAction* pDrawUndo ); |
| virtual ~ScUndoMerge(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScRange maRange; |
| bool mbMergeContents; // Merge contents in Redo(). |
| ScDocument* mpUndoDoc; // wenn Daten zusammengefasst |
| SdrUndoAction* mpDrawUndo; |
| |
| void DoChange( bool bUndo ) const; |
| }; |
| |
| |
| class ScUndoAutoFormat: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoAutoFormat( ScDocShell* pNewDocShell, |
| const ScRange& rRange, ScDocument* pNewUndoDoc, |
| const ScMarkData& rMark, |
| sal_Bool bNewSize, sal_uInt16 nNewFormatNo ); |
| virtual ~ScUndoAutoFormat(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScDocument* pUndoDoc; // geloeschte Daten |
| ScMarkData aMarkData; |
| sal_Bool bSize; |
| sal_uInt16 nFormatNo; |
| }; |
| |
| |
| class ScUndoReplace: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoReplace( ScDocShell* pNewDocShell, |
| const ScMarkData& rMark, |
| SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, |
| const String& rNewUndoStr, ScDocument* pNewUndoDoc, |
| const SvxSearchItem* pItem ); |
| virtual ~ScUndoReplace(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScAddress aCursorPos; |
| ScMarkData aMarkData; |
| String aUndoStr; // Daten bei Einfachmarkierung |
| ScDocument* pUndoDoc; // Blockmarkierung und geloeschte Daten |
| SvxSearchItem* pSearchItem; |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoTabOp: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoTabOp( ScDocShell* pNewDocShell, |
| SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, |
| SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, |
| ScDocument* pNewUndoDoc, |
| const ScRefAddress& rFormulaCell, |
| const ScRefAddress& rFormulaEnd, |
| const ScRefAddress& rRowCell, |
| const ScRefAddress& rColCell, |
| sal_uInt8 nMode ); |
| virtual ~ScUndoTabOp(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScRange aRange; |
| ScDocument* pUndoDoc; // geloeschte Daten |
| ScRefAddress theFormulaCell; |
| ScRefAddress theFormulaEnd; |
| ScRefAddress theRowCell; |
| ScRefAddress theColCell; |
| sal_uInt8 nMode; |
| }; |
| |
| |
| class ScUndoConversion : public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| |
| ScUndoConversion( |
| ScDocShell* pNewDocShell, const ScMarkData& rMark, |
| SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, ScDocument* pNewUndoDoc, |
| SCCOL nNewX, SCROW nNewY, SCTAB nNewZ, ScDocument* pNewRedoDoc, |
| const ScConversionParam& rConvParam ); |
| virtual ~ScUndoConversion(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScMarkData aMarkData; |
| ScAddress aCursorPos; |
| ScDocument* pUndoDoc; // Blockmarkierung und geloeschte Daten |
| ScAddress aNewCursorPos; |
| ScDocument* pRedoDoc; // Blockmarkierung und neue Daten |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| ScConversionParam maConvParam; /// Conversion type and parameters. |
| |
| void DoChange( ScDocument* pRefDoc, const ScAddress& rCursorPos ); |
| void SetChangeTrack(); |
| }; |
| |
| class ScUndoRefConversion: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoRefConversion( ScDocShell* pNewDocShell, |
| const ScRange& aMarkRange, const ScMarkData& rMark, |
| ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc, sal_Bool bNewMulti, sal_uInt16 nNewFlag); |
| virtual ~ScUndoRefConversion(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; |
| ScDocument* pRedoDoc; |
| ScRange aRange; |
| sal_Bool bMulti; |
| sal_uInt16 nFlags; |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| |
| void DoChange( ScDocument* pRefDoc); |
| void SetChangeTrack(); |
| }; |
| |
| class ScUndoListNames: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoListNames( ScDocShell* pNewDocShell, |
| const ScRange& rRange, |
| ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc ); |
| virtual ~ScUndoListNames(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScDocument* pUndoDoc; |
| ScDocument* pRedoDoc; |
| |
| void DoChange( ScDocument* pSrcDoc ) const; |
| }; |
| |
| |
| class ScUndoUseScenario: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoUseScenario( ScDocShell* pNewDocShell, |
| const ScMarkData& rMark, |
| const ScArea& rDestArea, ScDocument* pNewUndoDoc, |
| const String& rNewName ); |
| virtual ~ScUndoUseScenario(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScDocument* pUndoDoc; |
| ScRange aRange; |
| ScMarkData aMarkData; |
| String aName; |
| }; |
| |
| |
| class ScUndoSelectionStyle: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoSelectionStyle( ScDocShell* pNewDocShell, |
| const ScMarkData& rMark, |
| const ScRange& rRange, |
| const String& rName, |
| ScDocument* pNewUndoDoc ); |
| virtual ~ScUndoSelectionStyle(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| virtual sal_uInt16 GetId() const; |
| |
| private: |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; |
| String aStyleName; |
| ScRange aRange; |
| |
| void DoChange( const sal_Bool bUndo ); |
| }; |
| |
| |
| class ScUndoRefreshLink: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoRefreshLink( ScDocShell* pNewDocShell, |
| ScDocument* pNewUndoDoc ); |
| virtual ~ScUndoRefreshLink(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScDocument* pUndoDoc; |
| ScDocument* pRedoDoc; |
| }; |
| |
| |
| class ScUndoEnterMatrix: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoEnterMatrix( ScDocShell* pNewDocShell, |
| const ScRange& rArea, |
| ScDocument* pNewUndoDoc, |
| const String& rForm ); |
| virtual ~ScUndoEnterMatrix(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScDocument* pUndoDoc; |
| String aFormula; |
| formula::FormulaGrammar::AddressConvention eConv; |
| sal_uLong nStartChangeAction; |
| sal_uLong nEndChangeAction; |
| |
| void SetChangeTrack(); |
| }; |
| |
| |
| class ScUndoInsertAreaLink : public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoInsertAreaLink( ScDocShell* pShell, |
| const String& rDoc, |
| const String& rFlt, const String& rOpt, |
| const String& rArea, const ScRange& rDestRange, |
| sal_uLong nRefreshDelay ); |
| virtual ~ScUndoInsertAreaLink(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| String aDocName; |
| String aFltName; |
| String aOptions; |
| String aAreaName; |
| ScRange aRange; |
| sal_uLong nRefreshDelay; |
| }; |
| |
| |
| class ScUndoRemoveAreaLink : public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoRemoveAreaLink( ScDocShell* pShell, |
| const String& rDoc, |
| const String& rFlt, const String& rOpt, |
| const String& rArea, const ScRange& rDestRange, |
| sal_uLong nRefreshDelay ); |
| virtual ~ScUndoRemoveAreaLink(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| String aDocName; |
| String aFltName; |
| String aOptions; |
| String aAreaName; |
| ScRange aRange; |
| sal_uLong nRefreshDelay; |
| }; |
| |
| |
| class ScUndoUpdateAreaLink : public ScSimpleUndo //! auch BlockUndo umstellen? |
| { |
| public: |
| TYPEINFO(); |
| ScUndoUpdateAreaLink( ScDocShell* pShell, |
| const String& rOldD, |
| const String& rOldF, const String& rOldO, |
| const String& rOldA, const ScRange& rOldR, |
| sal_uLong nOldRD, |
| const String& rNewD, |
| const String& rNewF, const String& rNewO, |
| const String& rNewA, const ScRange& rNewR, |
| sal_uLong nNewRD, |
| ScDocument* pUndo, ScDocument* pRedo, |
| sal_Bool bDoInsert ); |
| virtual ~ScUndoUpdateAreaLink(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| String aOldDoc; |
| String aOldFlt; |
| String aOldOpt; |
| String aOldArea; |
| ScRange aOldRange; |
| String aNewDoc; |
| String aNewFlt; |
| String aNewOpt; |
| String aNewArea; |
| ScRange aNewRange; |
| ScDocument* pUndoDoc; |
| ScDocument* pRedoDoc; |
| sal_uLong nOldRefresh; |
| sal_uLong nNewRefresh; |
| sal_Bool bWithInsert; |
| |
| void DoChange( const sal_Bool bUndo ) const; |
| }; |
| |
| |
| class ScUndoIndent: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoIndent( ScDocShell* pNewDocShell, const ScMarkData& rMark, |
| ScDocument* pNewUndoDoc, sal_Bool bIncrement ); |
| virtual ~ScUndoIndent(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; |
| sal_Bool bIsIncrement; |
| }; |
| |
| |
| class ScUndoTransliterate: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoTransliterate( ScDocShell* pNewDocShell, const ScMarkData& rMark, |
| ScDocument* pNewUndoDoc, sal_Int32 nType ); |
| virtual ~ScUndoTransliterate(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; |
| sal_Int32 nTransliterationType; |
| }; |
| |
| |
| class ScUndoClearItems: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoClearItems( ScDocShell* pNewDocShell, const ScMarkData& rMark, |
| ScDocument* pNewUndoDoc, const sal_uInt16* pW ); |
| virtual ~ScUndoClearItems(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScMarkData aMarkData; |
| ScDocument* pUndoDoc; |
| sal_uInt16* pWhich; |
| }; |
| |
| |
| class ScUndoRemoveBreaks: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoRemoveBreaks( ScDocShell* pNewDocShell, |
| SCTAB nNewTab, ScDocument* pNewUndoDoc ); |
| virtual ~ScUndoRemoveBreaks(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| SCTAB nTab; |
| ScDocument* pUndoDoc; |
| }; |
| |
| |
| class ScUndoRemoveMerge: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoRemoveMerge( ScDocShell* pNewDocShell, |
| const ScRange& rArea, |
| ScDocument* pNewUndoDoc ); |
| virtual ~ScUndoRemoveMerge(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScDocument* pUndoDoc; |
| }; |
| |
| |
| class ScUndoBorder: public ScBlockUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoBorder( ScDocShell* pNewDocShell, |
| const ScRangeList& rRangeList, |
| ScDocument* pNewUndoDoc, |
| const SvxBoxItem& rNewOuter, |
| const SvxBoxInfoItem& rNewInner ); |
| virtual ~ScUndoBorder(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScDocument* pUndoDoc; |
| ScRangeList* pRanges; |
| SvxBoxItem* pOuter; |
| SvxBoxInfoItem* pInner; |
| }; |
| |
| |
| |
| |
| #endif |
| |