| /************************************************************** |
| * |
| * 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_UNDODAT_HXX |
| #define SC_UNDODAT_HXX |
| |
| #include "undobase.hxx" |
| #include "rangeutl.hxx" // ScArea |
| #include "rangelst.hxx" // ScRangeListRef |
| #include "markdata.hxx" |
| #include "sortparam.hxx" |
| #include "queryparam.hxx" |
| #include "pivot.hxx" |
| |
| class ScDocShell; |
| class ScDocument; |
| class ScOutlineTable; |
| class ScRangeName; |
| class ScDBData; |
| class ScDBCollection; |
| class ScDPObject; |
| class SdrUndoAction; |
| |
| //---------------------------------------------------------------------------- |
| |
| class ScUndoDoOutline: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoDoOutline( ScDocShell* pNewDocShell, |
| SCCOLROW nNewStart, SCCOLROW nNewEnd, SCTAB nNewTab, |
| ScDocument* pNewUndoDoc, sal_Bool bNewColumns, |
| sal_uInt16 nNewLevel, sal_uInt16 nNewEntry, sal_Bool bNewShow ); |
| virtual ~ScUndoDoOutline(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| SCCOLROW nStart; |
| SCCOLROW nEnd; |
| SCTAB nTab; |
| ScDocument* pUndoDoc; |
| sal_Bool bColumns; |
| sal_uInt16 nLevel; |
| sal_uInt16 nEntry; |
| sal_Bool bShow; |
| }; |
| |
| |
| class ScUndoMakeOutline: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoMakeOutline( ScDocShell* pNewDocShell, |
| SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, |
| SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, |
| ScOutlineTable* pNewUndoTab, |
| sal_Bool bNewColumns, sal_Bool bNewMake ); |
| virtual ~ScUndoMakeOutline(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScAddress aBlockStart; |
| ScAddress aBlockEnd; |
| ScOutlineTable* pUndoTable; |
| sal_Bool bColumns; |
| sal_Bool bMake; |
| }; |
| |
| |
| class ScUndoOutlineLevel: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoOutlineLevel( ScDocShell* pNewDocShell, |
| SCCOLROW nNewStart, SCCOLROW nNewEnd, SCTAB nNewTab, |
| ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab, |
| sal_Bool bNewColumns, sal_uInt16 nNewLevel ); |
| virtual ~ScUndoOutlineLevel(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| SCCOLROW nStart; |
| SCCOLROW nEnd; |
| SCTAB nTab; |
| ScDocument* pUndoDoc; |
| ScOutlineTable* pUndoTable; |
| sal_Bool bColumns; |
| sal_uInt16 nLevel; |
| }; |
| |
| |
| class ScUndoOutlineBlock: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoOutlineBlock( ScDocShell* pNewDocShell, |
| SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, |
| SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, |
| ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab, |
| sal_Bool bNewShow ); |
| virtual ~ScUndoOutlineBlock(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScAddress aBlockStart; |
| ScAddress aBlockEnd; |
| ScDocument* pUndoDoc; |
| ScOutlineTable* pUndoTable; |
| sal_Bool bShow; |
| }; |
| |
| |
| class ScUndoRemoveAllOutlines: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoRemoveAllOutlines( ScDocShell* pNewDocShell, |
| SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, |
| SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, |
| ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab ); |
| virtual ~ScUndoRemoveAllOutlines(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScAddress aBlockStart; |
| ScAddress aBlockEnd; |
| ScDocument* pUndoDoc; |
| ScOutlineTable* pUndoTable; |
| }; |
| |
| |
| class ScUndoAutoOutline: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoAutoOutline( ScDocShell* pNewDocShell, |
| SCCOL nStartX, SCROW nStartY, SCTAB nStartZ, |
| SCCOL nEndX, SCROW nEndY, SCTAB nEndZ, |
| ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab ); |
| virtual ~ScUndoAutoOutline(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScAddress aBlockStart; |
| ScAddress aBlockEnd; |
| ScDocument* pUndoDoc; |
| ScOutlineTable* pUndoTable; |
| }; |
| |
| |
| class ScUndoSubTotals: public ScDBFuncUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoSubTotals( ScDocShell* pNewDocShell, SCTAB nNewTab, |
| const ScSubTotalParam& rNewParam, SCROW nNewEndY, |
| ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab, |
| // ScDBData* pNewData, |
| ScRangeName* pNewUndoRange, ScDBCollection* pNewUndoDB ); |
| virtual ~ScUndoSubTotals(); |
| |
| 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; |
| ScSubTotalParam aParam; // Original uebergebener Parameter |
| SCROW nNewEndRow; // Ergebnis-Groesse |
| ScDocument* pUndoDoc; |
| ScOutlineTable* pUndoTable; |
| // ScDBData* pUndoDBData; |
| ScRangeName* pUndoRange; |
| ScDBCollection* pUndoDB; |
| }; |
| |
| |
| class ScUndoSort: public ScDBFuncUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoSort( ScDocShell* pNewDocShell, SCTAB nNewTab, |
| const ScSortParam& rParam, |
| sal_Bool bQuery, ScDocument* pNewUndoDoc, |
| ScDBCollection* pNewUndoDB, const ScRange* pDest = NULL ); |
| virtual ~ScUndoSort(); |
| |
| 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; |
| ScSortParam aSortParam; |
| sal_Bool bRepeatQuery; |
| ScDocument* pUndoDoc; |
| ScDBCollection* pUndoDB; // wegen Quell- und Zielbereich |
| sal_Bool bDestArea; |
| ScRange aDestRange; |
| }; |
| |
| |
| class ScUndoQuery: public ScDBFuncUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoQuery( ScDocShell* pNewDocShell, SCTAB nNewTab, |
| const ScQueryParam& rParam, ScDocument* pNewUndoDoc, |
| ScDBCollection* pNewUndoDB, const ScRange* pOld, |
| sal_Bool bSize, const ScRange* pAdvSrc ); |
| virtual ~ScUndoQuery(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| SdrUndoAction* pDrawUndo; |
| SCTAB nTab; |
| ScQueryParam aQueryParam; |
| ScDocument* pUndoDoc; |
| ScDBCollection* pUndoDB; // wegen Quell- und Zielbereich |
| ScRange aOldDest; |
| ScRange aAdvSource; |
| sal_Bool bIsAdvanced; |
| sal_Bool bDestArea; |
| sal_Bool bDoSize; |
| }; |
| |
| |
| class ScUndoAutoFilter: public ScDBFuncUndo |
| { |
| private: |
| String aDBName; |
| sal_Bool bFilterSet; |
| |
| void DoChange( sal_Bool bUndo ); |
| |
| public: |
| TYPEINFO(); |
| ScUndoAutoFilter( ScDocShell* pNewDocShell, const ScRange& rRange, |
| const String& rName, sal_Bool bSet ); |
| virtual ~ScUndoAutoFilter(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| }; |
| |
| |
| class ScUndoDBData: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoDBData( ScDocShell* pNewDocShell, |
| ScDBCollection* pNewUndoColl, ScDBCollection* pNewRedoColl ); |
| virtual ~ScUndoDBData(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScDBCollection* pUndoColl; |
| ScDBCollection* pRedoColl; |
| }; |
| |
| |
| class ScUndoImportData: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoImportData( ScDocShell* pNewDocShell, SCTAB nNewTab, |
| const ScImportParam& rParam, SCCOL nNewEndX, SCROW nNewEndY, |
| SCCOL nNewFormula, |
| ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc, |
| ScDBData* pNewUndoData, ScDBData* pNewRedoData ); |
| virtual ~ScUndoImportData(); |
| |
| 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; |
| ScImportParam aImportParam; |
| SCCOL nEndCol; |
| SCROW nEndRow; |
| ScDocument* pUndoDoc; |
| ScDocument* pRedoDoc; |
| ScDBData* pUndoDBData; |
| ScDBData* pRedoDBData; |
| SCCOL nFormulaCols; |
| sal_Bool bRedoFilled; |
| }; |
| |
| |
| class ScUndoRepeatDB: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoRepeatDB( ScDocShell* pNewDocShell, SCTAB nNewTab, |
| SCCOL nStartX, SCROW nStartY, SCCOL nEndX, SCROW nEndY, |
| SCROW nResultEndRow, SCCOL nCurX, SCROW nCurY, |
| ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab, |
| ScRangeName* pNewUndoRange, ScDBCollection* pNewUndoDB, |
| const ScRange* pOldQ, const ScRange* pNewQ ); |
| virtual ~ScUndoRepeatDB(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScAddress aBlockStart; |
| ScAddress aBlockEnd; |
| SCROW nNewEndRow; |
| ScAddress aCursorPos; |
| ScDocument* pUndoDoc; |
| ScOutlineTable* pUndoTable; |
| ScRangeName* pUndoRange; |
| ScDBCollection* pUndoDB; |
| ScRange aOldQuery; |
| ScRange aNewQuery; |
| sal_Bool bQuerySize; |
| }; |
| |
| //UNUSED2008-05 class ScUndoPivot: public ScSimpleUndo |
| //UNUSED2008-05 { |
| //UNUSED2008-05 public: |
| //UNUSED2008-05 TYPEINFO(); |
| //UNUSED2008-05 ScUndoPivot( ScDocShell* pNewDocShell, |
| //UNUSED2008-05 const ScArea& rOld, const ScArea& rNew, |
| //UNUSED2008-05 ScDocument* pOldDoc, ScDocument* pNewDoc, |
| //UNUSED2008-05 const ScPivot* pOldPivot, const ScPivot* pNewPivot ); |
| //UNUSED2008-05 virtual ~ScUndoPivot(); |
| //UNUSED2008-05 |
| //UNUSED2008-05 virtual void Undo(); |
| //UNUSED2008-05 virtual void Redo(); |
| //UNUSED2008-05 virtual void Repeat(SfxRepeatTarget& rTarget); |
| //UNUSED2008-05 virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| //UNUSED2008-05 |
| //UNUSED2008-05 virtual String GetComment() const; |
| //UNUSED2008-05 |
| //UNUSED2008-05 private: |
| //UNUSED2008-05 ScArea aOldArea; |
| //UNUSED2008-05 ScArea aNewArea; |
| //UNUSED2008-05 ScDocument* pOldUndoDoc; |
| //UNUSED2008-05 ScDocument* pNewUndoDoc; |
| //UNUSED2008-05 ScPivotParam aOldParam; // fuer Redo |
| //UNUSED2008-05 ScQueryParam aOldQuery; |
| //UNUSED2008-05 ScArea aOldSrc; |
| //UNUSED2008-05 ScPivotParam aNewParam; // fuer Undo in Collection |
| //UNUSED2008-05 ScQueryParam aNewQuery; |
| //UNUSED2008-05 ScArea aNewSrc; |
| //UNUSED2008-05 String aOldName; |
| //UNUSED2008-05 String aOldTag; |
| //UNUSED2008-05 String aNewName; |
| //UNUSED2008-05 String aNewTag; |
| //UNUSED2008-05 }; |
| |
| class ScUndoDataPilot: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoDataPilot( ScDocShell* pNewDocShell, |
| ScDocument* pOldDoc, ScDocument* pNewDoc, |
| const ScDPObject* pOldObj, const ScDPObject* pNewObj, |
| sal_Bool bMove ); |
| virtual ~ScUndoDataPilot(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScDocument* pOldUndoDoc; |
| ScDocument* pNewUndoDoc; |
| ScDPObject* pOldDPObject; |
| ScDPObject* pNewDPObject; |
| sal_Bool bAllowMove; |
| }; |
| |
| |
| class ScUndoConsolidate: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoConsolidate( ScDocShell* pNewDocShell, |
| const ScArea& rArea, const ScConsolidateParam& rPar, |
| ScDocument* pNewUndoDoc, sal_Bool bReference, |
| SCROW nInsCount, ScOutlineTable* pTab, |
| ScDBData* pData ); |
| virtual ~ScUndoConsolidate(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| ScArea aDestArea; |
| ScDocument* pUndoDoc; |
| ScConsolidateParam aParam; |
| sal_Bool bInsRef; |
| SCSIZE nInsertCount; |
| ScOutlineTable* pUndoTab; |
| ScDBData* pUndoData; |
| }; |
| |
| |
| class ScUndoChartData: public ScSimpleUndo |
| { |
| public: |
| TYPEINFO(); |
| ScUndoChartData( ScDocShell* pNewDocShell, |
| const String& rName, const ScRange& rNew, |
| sal_Bool bColHdr, sal_Bool bRowHdr, sal_Bool bAdd ); |
| ScUndoChartData( ScDocShell* pNewDocShell, |
| const String& rName, const ScRangeListRef& rNew, |
| sal_Bool bColHdr, sal_Bool bRowHdr, sal_Bool bAdd ); |
| virtual ~ScUndoChartData(); |
| |
| virtual void Undo(); |
| virtual void Redo(); |
| virtual void Repeat(SfxRepeatTarget& rTarget); |
| virtual sal_Bool CanRepeat(SfxRepeatTarget& rTarget) const; |
| |
| virtual String GetComment() const; |
| |
| private: |
| String aChartName; |
| ScRangeListRef aOldRangeListRef; |
| sal_Bool bOldColHeaders; |
| sal_Bool bOldRowHeaders; |
| // ScRange aNewRange; |
| ScRangeListRef aNewRangeListRef; |
| sal_Bool bNewColHeaders; |
| sal_Bool bNewRowHeaders; |
| sal_Bool bAddRange; |
| |
| void Init(); |
| }; |
| |
| |
| |
| |
| #endif |
| |