1*4c5491eaSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*4c5491eaSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*4c5491eaSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*4c5491eaSAndrew Rist * distributed with this work for additional information 6*4c5491eaSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*4c5491eaSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*4c5491eaSAndrew Rist * "License"); you may not use this file except in compliance 9*4c5491eaSAndrew Rist * with the License. You may obtain a copy of the License at 10*4c5491eaSAndrew Rist * 11*4c5491eaSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*4c5491eaSAndrew Rist * 13*4c5491eaSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*4c5491eaSAndrew Rist * software distributed under the License is distributed on an 15*4c5491eaSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*4c5491eaSAndrew Rist * KIND, either express or implied. See the License for the 17*4c5491eaSAndrew Rist * specific language governing permissions and limitations 18*4c5491eaSAndrew Rist * under the License. 19*4c5491eaSAndrew Rist * 20*4c5491eaSAndrew Rist *************************************************************/ 21*4c5491eaSAndrew Rist 22*4c5491eaSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef _EDITUNDO_HXX 25cdf0e10cSrcweir #define _EDITUNDO_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <editdoc.hxx> 28cdf0e10cSrcweir #include <editeng/editund2.hxx> 29cdf0e10cSrcweir #include <editeng/editdata.hxx> 30cdf0e10cSrcweir 31cdf0e10cSrcweir #define UNDO_NOACTION 0 32cdf0e10cSrcweir #define UNDO_NEWUNDO 1 33cdf0e10cSrcweir #define UNDO_UNDOSDELETED 2 34cdf0e10cSrcweir #define UNDO_EMPTYGROUPDELETED 3 35cdf0e10cSrcweir #define UNDO_INVALIDEND 4 36cdf0e10cSrcweir 37cdf0e10cSrcweir class ImpEditEngine; 38cdf0e10cSrcweir class EditView; 39cdf0e10cSrcweir 40cdf0e10cSrcweir // ----------------------------------------------------------------------- 41cdf0e10cSrcweir // EditUndoDelContent 42cdf0e10cSrcweir // ------------------------------------------------------------------------ 43cdf0e10cSrcweir class EditUndoDelContent : public EditUndo 44cdf0e10cSrcweir { 45cdf0e10cSrcweir private: 46cdf0e10cSrcweir sal_Bool bDelObject; 47cdf0e10cSrcweir sal_uInt16 nNode; 48cdf0e10cSrcweir ContentNode* pContentNode; // Zeigt auf das gueltige, 49cdf0e10cSrcweir // nicht zerstoerte Objekt! 50cdf0e10cSrcweir 51cdf0e10cSrcweir public: 52cdf0e10cSrcweir TYPEINFO(); 53cdf0e10cSrcweir EditUndoDelContent( ImpEditEngine* pImpEE, ContentNode* pNode, sal_uInt16 nPortio ); 54cdf0e10cSrcweir ~EditUndoDelContent(); 55cdf0e10cSrcweir 56cdf0e10cSrcweir virtual void Undo(); 57cdf0e10cSrcweir virtual void Redo(); 58cdf0e10cSrcweir }; 59cdf0e10cSrcweir 60cdf0e10cSrcweir // ----------------------------------------------------------------------- 61cdf0e10cSrcweir // EditUndoConnectParas 62cdf0e10cSrcweir // ------------------------------------------------------------------------ 63cdf0e10cSrcweir class EditUndoConnectParas : public EditUndo 64cdf0e10cSrcweir { 65cdf0e10cSrcweir private: 66cdf0e10cSrcweir sal_uInt16 nNode; 67cdf0e10cSrcweir sal_uInt16 nSepPos; 68cdf0e10cSrcweir SfxItemSet aLeftParaAttribs; 69cdf0e10cSrcweir SfxItemSet aRightParaAttribs; 70cdf0e10cSrcweir 71cdf0e10cSrcweir // 2 Pointer waeren schoener, aber dann muesste es ein SfxListener sein. 72cdf0e10cSrcweir String aLeftStyleName; 73cdf0e10cSrcweir String aRightStyleName; 74cdf0e10cSrcweir SfxStyleFamily eLeftStyleFamily; 75cdf0e10cSrcweir SfxStyleFamily eRightStyleFamily; 76cdf0e10cSrcweir 77cdf0e10cSrcweir sal_Bool bBackward; 78cdf0e10cSrcweir 79cdf0e10cSrcweir public: 80cdf0e10cSrcweir TYPEINFO(); 81cdf0e10cSrcweir EditUndoConnectParas( ImpEditEngine* pImpEE, sal_uInt16 nNode, sal_uInt16 nSepPos, 82cdf0e10cSrcweir const SfxItemSet& rLeftParaAttribs, const SfxItemSet& rRightParaAttribs, 83cdf0e10cSrcweir const SfxStyleSheet* pLeftStyle, const SfxStyleSheet* pRightStyle, sal_Bool bBackward ); 84cdf0e10cSrcweir ~EditUndoConnectParas(); 85cdf0e10cSrcweir 86cdf0e10cSrcweir virtual void Undo(); 87cdf0e10cSrcweir virtual void Redo(); 88cdf0e10cSrcweir }; 89cdf0e10cSrcweir 90cdf0e10cSrcweir // ----------------------------------------------------------------------- 91cdf0e10cSrcweir // EditUndoSplitPara 92cdf0e10cSrcweir // ------------------------------------------------------------------------ 93cdf0e10cSrcweir class EditUndoSplitPara : public EditUndo 94cdf0e10cSrcweir { 95cdf0e10cSrcweir private: 96cdf0e10cSrcweir sal_uInt16 nNode; 97cdf0e10cSrcweir sal_uInt16 nSepPos; 98cdf0e10cSrcweir 99cdf0e10cSrcweir public: 100cdf0e10cSrcweir TYPEINFO(); 101cdf0e10cSrcweir EditUndoSplitPara( ImpEditEngine* pImpEE, sal_uInt16 nNode, sal_uInt16 nSepPos ); 102cdf0e10cSrcweir ~EditUndoSplitPara(); 103cdf0e10cSrcweir 104cdf0e10cSrcweir virtual void Undo(); 105cdf0e10cSrcweir virtual void Redo(); 106cdf0e10cSrcweir }; 107cdf0e10cSrcweir 108cdf0e10cSrcweir // ----------------------------------------------------------------------- 109cdf0e10cSrcweir // EditUndoInsertChars 110cdf0e10cSrcweir // ------------------------------------------------------------------------ 111cdf0e10cSrcweir class EditUndoInsertChars : public EditUndo 112cdf0e10cSrcweir { 113cdf0e10cSrcweir private: 114cdf0e10cSrcweir EPaM aEPaM; 115cdf0e10cSrcweir String aText; 116cdf0e10cSrcweir 117cdf0e10cSrcweir public: 118cdf0e10cSrcweir TYPEINFO(); 119cdf0e10cSrcweir EditUndoInsertChars( ImpEditEngine* pImpEE, const EPaM& rEPaM, const String& rStr ); 120cdf0e10cSrcweir GetEPaM()121cdf0e10cSrcweir const EPaM& GetEPaM() { return aEPaM; } GetStr()122cdf0e10cSrcweir String& GetStr() { return aText; } 123cdf0e10cSrcweir 124cdf0e10cSrcweir virtual void Undo(); 125cdf0e10cSrcweir virtual void Redo(); 126cdf0e10cSrcweir 127cdf0e10cSrcweir virtual sal_Bool Merge( SfxUndoAction *pNextAction ); 128cdf0e10cSrcweir }; 129cdf0e10cSrcweir 130cdf0e10cSrcweir // ----------------------------------------------------------------------- 131cdf0e10cSrcweir // EditUndoRemoveChars 132cdf0e10cSrcweir // ------------------------------------------------------------------------ 133cdf0e10cSrcweir class EditUndoRemoveChars : public EditUndo 134cdf0e10cSrcweir { 135cdf0e10cSrcweir private: 136cdf0e10cSrcweir EPaM aEPaM; 137cdf0e10cSrcweir String aText; 138cdf0e10cSrcweir 139cdf0e10cSrcweir public: 140cdf0e10cSrcweir TYPEINFO(); 141cdf0e10cSrcweir EditUndoRemoveChars( ImpEditEngine* pImpEE, const EPaM& rEPaM, const String& rStr ); 142cdf0e10cSrcweir GetEPaM()143cdf0e10cSrcweir const EPaM& GetEPaM() { return aEPaM; } GetStr()144cdf0e10cSrcweir String& GetStr() { return aText; } 145cdf0e10cSrcweir 146cdf0e10cSrcweir virtual void Undo(); 147cdf0e10cSrcweir virtual void Redo(); 148cdf0e10cSrcweir }; 149cdf0e10cSrcweir 150cdf0e10cSrcweir // ----------------------------------------------------------------------- 151cdf0e10cSrcweir // EditUndoInsertFeature 152cdf0e10cSrcweir // ------------------------------------------------------------------------ 153cdf0e10cSrcweir class EditUndoInsertFeature : public EditUndo 154cdf0e10cSrcweir { 155cdf0e10cSrcweir private: 156cdf0e10cSrcweir EPaM aEPaM; 157cdf0e10cSrcweir SfxPoolItem* pFeature; 158cdf0e10cSrcweir 159cdf0e10cSrcweir public: 160cdf0e10cSrcweir TYPEINFO(); 161cdf0e10cSrcweir EditUndoInsertFeature( ImpEditEngine* pImpEE, const EPaM& rEPaM, 162cdf0e10cSrcweir const SfxPoolItem& rFeature); 163cdf0e10cSrcweir ~EditUndoInsertFeature(); 164cdf0e10cSrcweir 165cdf0e10cSrcweir virtual void Undo(); 166cdf0e10cSrcweir virtual void Redo(); 167cdf0e10cSrcweir }; 168cdf0e10cSrcweir 169cdf0e10cSrcweir // ----------------------------------------------------------------------- 170cdf0e10cSrcweir // EditUndoMoveParagraphs 171cdf0e10cSrcweir // ------------------------------------------------------------------------ 172cdf0e10cSrcweir class EditUndoMoveParagraphs: public EditUndo 173cdf0e10cSrcweir { 174cdf0e10cSrcweir private: 175cdf0e10cSrcweir Range nParagraphs; 176cdf0e10cSrcweir sal_uInt16 nDest; 177cdf0e10cSrcweir 178cdf0e10cSrcweir public: 179cdf0e10cSrcweir TYPEINFO(); 180cdf0e10cSrcweir EditUndoMoveParagraphs( ImpEditEngine* pImpEE, const Range& rParas, sal_uInt16 nDest ); 181cdf0e10cSrcweir ~EditUndoMoveParagraphs(); 182cdf0e10cSrcweir 183cdf0e10cSrcweir virtual void Undo(); 184cdf0e10cSrcweir virtual void Redo(); 185cdf0e10cSrcweir }; 186cdf0e10cSrcweir 187cdf0e10cSrcweir // ----------------------------------------------------------------------- 188cdf0e10cSrcweir // EditUndoSetStyleSheet 189cdf0e10cSrcweir // ------------------------------------------------------------------------ 190cdf0e10cSrcweir class EditUndoSetStyleSheet: public EditUndo 191cdf0e10cSrcweir { 192cdf0e10cSrcweir private: 193cdf0e10cSrcweir sal_uInt16 nPara; 194cdf0e10cSrcweir XubString aPrevName; 195cdf0e10cSrcweir XubString aNewName; 196cdf0e10cSrcweir SfxStyleFamily ePrevFamily; 197cdf0e10cSrcweir SfxStyleFamily eNewFamily; 198cdf0e10cSrcweir SfxItemSet aPrevParaAttribs; 199cdf0e10cSrcweir 200cdf0e10cSrcweir public: 201cdf0e10cSrcweir TYPEINFO(); 202cdf0e10cSrcweir 203cdf0e10cSrcweir EditUndoSetStyleSheet( ImpEditEngine* pImpEE, sal_uInt16 nPara, 204cdf0e10cSrcweir const XubString& rPrevName, SfxStyleFamily ePrevFamily, 205cdf0e10cSrcweir const XubString& rNewName, SfxStyleFamily eNewFamily, 206cdf0e10cSrcweir const SfxItemSet& rPrevParaAttribs ); 207cdf0e10cSrcweir ~EditUndoSetStyleSheet(); 208cdf0e10cSrcweir 209cdf0e10cSrcweir virtual void Undo(); 210cdf0e10cSrcweir virtual void Redo(); 211cdf0e10cSrcweir }; 212cdf0e10cSrcweir 213cdf0e10cSrcweir // ----------------------------------------------------------------------- 214cdf0e10cSrcweir // EditUndoSetParaAttribs 215cdf0e10cSrcweir // ------------------------------------------------------------------------ 216cdf0e10cSrcweir class EditUndoSetParaAttribs: public EditUndo 217cdf0e10cSrcweir { 218cdf0e10cSrcweir private: 219cdf0e10cSrcweir sal_uInt16 nPara; 220cdf0e10cSrcweir SfxItemSet aPrevItems; 221cdf0e10cSrcweir SfxItemSet aNewItems; 222cdf0e10cSrcweir 223cdf0e10cSrcweir public: 224cdf0e10cSrcweir TYPEINFO(); 225cdf0e10cSrcweir EditUndoSetParaAttribs( ImpEditEngine* pImpEE, sal_uInt16 nPara, const SfxItemSet& rPrevItems, const SfxItemSet& rNewItems ); 226cdf0e10cSrcweir ~EditUndoSetParaAttribs(); 227cdf0e10cSrcweir 228cdf0e10cSrcweir virtual void Undo(); 229cdf0e10cSrcweir virtual void Redo(); 230cdf0e10cSrcweir }; 231cdf0e10cSrcweir 232cdf0e10cSrcweir // ----------------------------------------------------------------------- 233cdf0e10cSrcweir // EditUndoSetAttribs 234cdf0e10cSrcweir // ------------------------------------------------------------------------ 235cdf0e10cSrcweir class EditUndoSetAttribs: public EditUndo 236cdf0e10cSrcweir { 237cdf0e10cSrcweir private: 238cdf0e10cSrcweir ESelection aESel; 239cdf0e10cSrcweir SfxItemSet aNewAttribs; 240cdf0e10cSrcweir ContentInfoArray aPrevAttribs; 241cdf0e10cSrcweir 242cdf0e10cSrcweir sal_uInt8 nSpecial; 243cdf0e10cSrcweir sal_Bool bSetIsRemove; 244cdf0e10cSrcweir sal_Bool bRemoveParaAttribs; 245cdf0e10cSrcweir sal_uInt16 nRemoveWhich; 246cdf0e10cSrcweir 247cdf0e10cSrcweir void ImpSetSelection( EditView* pView ); 248cdf0e10cSrcweir 249cdf0e10cSrcweir 250cdf0e10cSrcweir public: 251cdf0e10cSrcweir TYPEINFO(); 252cdf0e10cSrcweir EditUndoSetAttribs( ImpEditEngine* pImpEE, const ESelection& rESel, const SfxItemSet& rNewItems ); 253cdf0e10cSrcweir ~EditUndoSetAttribs(); 254cdf0e10cSrcweir GetContentInfos()255cdf0e10cSrcweir ContentInfoArray& GetContentInfos() { return aPrevAttribs; } GetNewAttribs()256cdf0e10cSrcweir SfxItemSet& GetNewAttribs() { return aNewAttribs; } 257cdf0e10cSrcweir SetSpecial(sal_uInt8 n)258cdf0e10cSrcweir void SetSpecial( sal_uInt8 n ) { nSpecial = n; } SetRemoveAttribs(sal_Bool b)259cdf0e10cSrcweir void SetRemoveAttribs( sal_Bool b ) { bSetIsRemove = b; } SetRemoveParaAttribs(sal_Bool b)260cdf0e10cSrcweir void SetRemoveParaAttribs( sal_Bool b ) { bRemoveParaAttribs = b; } SetRemoveWhich(sal_uInt16 n)261cdf0e10cSrcweir void SetRemoveWhich( sal_uInt16 n ) { nRemoveWhich = n; } 262cdf0e10cSrcweir 263cdf0e10cSrcweir virtual void Undo(); 264cdf0e10cSrcweir virtual void Redo(); 265cdf0e10cSrcweir }; 266cdf0e10cSrcweir 267cdf0e10cSrcweir // ----------------------------------------------------------------------- 268cdf0e10cSrcweir // EditUndoTransliteration 269cdf0e10cSrcweir // ------------------------------------------------------------------------ 270cdf0e10cSrcweir class EditUndoTransliteration: public EditUndo 271cdf0e10cSrcweir { 272cdf0e10cSrcweir private: 273cdf0e10cSrcweir ESelection aOldESel; 274cdf0e10cSrcweir ESelection aNewESel; 275cdf0e10cSrcweir 276cdf0e10cSrcweir sal_Int32 nMode; 277cdf0e10cSrcweir EditTextObject* pTxtObj; 278cdf0e10cSrcweir String aText; 279cdf0e10cSrcweir 280cdf0e10cSrcweir public: 281cdf0e10cSrcweir TYPEINFO(); 282cdf0e10cSrcweir EditUndoTransliteration( ImpEditEngine* pImpEE, const ESelection& rESel, sal_Int32 nMode ); 283cdf0e10cSrcweir ~EditUndoTransliteration(); 284cdf0e10cSrcweir SetText(const String & rText)285cdf0e10cSrcweir void SetText( const String& rText ) { aText = rText; } SetText(EditTextObject * pObj)286cdf0e10cSrcweir void SetText( EditTextObject* pObj ) { pTxtObj = pObj; } SetNewSelection(const ESelection & rSel)287cdf0e10cSrcweir void SetNewSelection( const ESelection& rSel ) { aNewESel = rSel; } 288cdf0e10cSrcweir 289cdf0e10cSrcweir virtual void Undo(); 290cdf0e10cSrcweir virtual void Redo(); 291cdf0e10cSrcweir }; 292cdf0e10cSrcweir 293cdf0e10cSrcweir // ----------------------------------------------------------------------- 294cdf0e10cSrcweir // EditUndoMarkSelection 295cdf0e10cSrcweir // ------------------------------------------------------------------------ 296cdf0e10cSrcweir class EditUndoMarkSelection: public EditUndo 297cdf0e10cSrcweir { 298cdf0e10cSrcweir private: 299cdf0e10cSrcweir ESelection aSelection; 300cdf0e10cSrcweir 301cdf0e10cSrcweir public: 302cdf0e10cSrcweir TYPEINFO(); 303cdf0e10cSrcweir EditUndoMarkSelection( ImpEditEngine* pImpEE, const ESelection& rSel ); 304cdf0e10cSrcweir ~EditUndoMarkSelection(); 305cdf0e10cSrcweir 306cdf0e10cSrcweir virtual void Undo(); 307cdf0e10cSrcweir virtual void Redo(); 308cdf0e10cSrcweir }; 309cdf0e10cSrcweir 310cdf0e10cSrcweir 311cdf0e10cSrcweir #endif // _EDITUNDO_HXX 312