13334a7e6SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 33334a7e6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 43334a7e6SAndrew Rist * or more contributor license agreements. See the NOTICE file 53334a7e6SAndrew Rist * distributed with this work for additional information 63334a7e6SAndrew Rist * regarding copyright ownership. The ASF licenses this file 73334a7e6SAndrew Rist * to you under the Apache License, Version 2.0 (the 83334a7e6SAndrew Rist * "License"); you may not use this file except in compliance 93334a7e6SAndrew Rist * with the License. You may obtain a copy of the License at 103334a7e6SAndrew Rist * 113334a7e6SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 123334a7e6SAndrew Rist * 133334a7e6SAndrew Rist * Unless required by applicable law or agreed to in writing, 143334a7e6SAndrew Rist * software distributed under the License is distributed on an 153334a7e6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 163334a7e6SAndrew Rist * KIND, either express or implied. See the License for the 173334a7e6SAndrew Rist * specific language governing permissions and limitations 183334a7e6SAndrew Rist * under the License. 193334a7e6SAndrew Rist * 203334a7e6SAndrew Rist *************************************************************/ 213334a7e6SAndrew Rist 223334a7e6SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef _SVDUNDO_HXX 25cdf0e10cSrcweir #define _SVDUNDO_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #ifndef _SOLAR_HRC 28cdf0e10cSrcweir #include <svl/solar.hrc> 29cdf0e10cSrcweir #endif 30cdf0e10cSrcweir #include <svl/undo.hxx> 31cdf0e10cSrcweir #include <tools/contnr.hxx> 32cdf0e10cSrcweir #include <tools/gen.hxx> 33cdf0e10cSrcweir #include <svx/svdtypes.hxx> // fuer enum RepeatFuncts 34cdf0e10cSrcweir #include <svx/svdsob.hxx> 35cdf0e10cSrcweir #include "svx/svxdllapi.h" 366b46875cSArmin Le Grand #include <svl/style.hxx> 37cdf0e10cSrcweir 38cdf0e10cSrcweir //************************************************************ 39cdf0e10cSrcweir // Vorausdeklarationen 40cdf0e10cSrcweir //************************************************************ 41cdf0e10cSrcweir 42cdf0e10cSrcweir class SfxItemSet; 43cdf0e10cSrcweir class SfxStyleSheet; 44cdf0e10cSrcweir class SdrView; 45cdf0e10cSrcweir class SdrPageView; 46cdf0e10cSrcweir class SdrModel; 47cdf0e10cSrcweir class SdrObject; 48cdf0e10cSrcweir class SdrPage; 49cdf0e10cSrcweir class SdrObjList; 50cdf0e10cSrcweir class SdrLayer; 51cdf0e10cSrcweir class SdrLayerAdmin; 52cdf0e10cSrcweir class SdrObjGeoData; 53cdf0e10cSrcweir class OutlinerParaObject; 54cdf0e10cSrcweir 55cdf0e10cSrcweir //************************************************************ 56cdf0e10cSrcweir // SdrUndoAction 57cdf0e10cSrcweir // 58cdf0e10cSrcweir // Abstrakte Basisklasse fuer alle UndoActions der DrawingEngine 59cdf0e10cSrcweir // 60cdf0e10cSrcweir //************************************************************ 61cdf0e10cSrcweir 62cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoAction : public SfxUndoAction 63cdf0e10cSrcweir { 64cdf0e10cSrcweir protected: 65cdf0e10cSrcweir SdrModel& rMod; 66cdf0e10cSrcweir 67cdf0e10cSrcweir protected: SdrUndoAction(SdrModel & rNewMod)68cdf0e10cSrcweir SdrUndoAction(SdrModel& rNewMod) 69cdf0e10cSrcweir : rMod(rNewMod) 70cdf0e10cSrcweir {} 71cdf0e10cSrcweir 72cdf0e10cSrcweir public: 73cdf0e10cSrcweir TYPEINFO(); ~SdrUndoAction()7434688d8fSHerbert Dürr virtual ~SdrUndoAction() {} 7534688d8fSHerbert Dürr 76cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rView) const; 77cdf0e10cSrcweir virtual void Repeat(SfxRepeatTarget& rView); 78cdf0e10cSrcweir 79cdf0e10cSrcweir virtual String GetRepeatComment(SfxRepeatTarget& rView) const; 80cdf0e10cSrcweir virtual String GetSdrRepeatComment(SdrView& rView) const; 81cdf0e10cSrcweir 82cdf0e10cSrcweir virtual bool CanSdrRepeat(SdrView& rView) const; 83cdf0e10cSrcweir virtual void SdrRepeat(SdrView& rView); 84cdf0e10cSrcweir }; 85cdf0e10cSrcweir 86cdf0e10cSrcweir //************************************************************ 87cdf0e10cSrcweir // SdrUndoGroup 88cdf0e10cSrcweir // 89cdf0e10cSrcweir // Zusammenfassung beliebig vieler einzelner UndoActions zu einer einzigen 90cdf0e10cSrcweir // UndoAction. Beim Undo() werden die Einzelactions rueckwaets aufgerufen 91cdf0e10cSrcweir // (die zuletzt angehaengte zuerst...), beim Redo() dagegen entspricht die 92cdf0e10cSrcweir // Aufrufreihenfolge der Einfuegereihenfolge. 93cdf0e10cSrcweir // 94cdf0e10cSrcweir //************************************************************ 95cdf0e10cSrcweir 96cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoGroup : public SdrUndoAction 97cdf0e10cSrcweir { 98cdf0e10cSrcweir protected: 99cdf0e10cSrcweir Container aBuf; 100cdf0e10cSrcweir 101cdf0e10cSrcweir // Beschreibung der Action, nicht expandiert (beinhaltet %O) 102cdf0e10cSrcweir String aComment; 103cdf0e10cSrcweir String aObjDescription; 104cdf0e10cSrcweir 105cdf0e10cSrcweir SdrRepeatFunc eFunction; 106cdf0e10cSrcweir 107cdf0e10cSrcweir public: 108cdf0e10cSrcweir SdrUndoGroup(SdrModel& rNewMod); 109cdf0e10cSrcweir SdrUndoGroup(SdrModel& rNewMod,const String& rStr); 110cdf0e10cSrcweir virtual ~SdrUndoGroup(); 111cdf0e10cSrcweir 112cdf0e10cSrcweir void Clear(); GetActionCount() const113cdf0e10cSrcweir sal_uIntPtr GetActionCount() const { return aBuf.Count(); } GetAction(sal_uIntPtr nNum) const114cdf0e10cSrcweir SdrUndoAction* GetAction(sal_uIntPtr nNum) const { return (SdrUndoAction*)(aBuf.GetObject(nNum)); } 115cdf0e10cSrcweir void AddAction(SdrUndoAction* pAct); 116cdf0e10cSrcweir void push_front( SdrUndoAction* pAct ); 117cdf0e10cSrcweir SetComment(const String & rStr)118cdf0e10cSrcweir void SetComment(const String& rStr) { aComment=rStr; } SetObjDescription(const String & rStr)119cdf0e10cSrcweir void SetObjDescription(const String& rStr) { aObjDescription=rStr; } 120cdf0e10cSrcweir virtual String GetComment() const; 121cdf0e10cSrcweir virtual String GetSdrRepeatComment(SdrView& rView) const; 122cdf0e10cSrcweir 123cdf0e10cSrcweir virtual void Undo(); 124cdf0e10cSrcweir virtual void Redo(); 125cdf0e10cSrcweir 126cdf0e10cSrcweir virtual bool CanSdrRepeat(SdrView& rView) const; 127cdf0e10cSrcweir virtual void SdrRepeat(SdrView& rView); SetRepeatFunction(SdrRepeatFunc eFunc)128cdf0e10cSrcweir void SetRepeatFunction(SdrRepeatFunc eFunc) { eFunction=eFunc; } GetRepeatFunction() const129cdf0e10cSrcweir SdrRepeatFunc GetRepeatFunction() const { return eFunction; } 130cdf0e10cSrcweir }; 131cdf0e10cSrcweir 132cdf0e10cSrcweir //************************************************************ 133cdf0e10cSrcweir // SdrUndoObj 134cdf0e10cSrcweir // 135cdf0e10cSrcweir // Abstrakte Basisklasse fuer alle UndoActions die mit Objekten zu tun haben. 136cdf0e10cSrcweir // 137cdf0e10cSrcweir //************************************************************ 138cdf0e10cSrcweir 139cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoObj : public SdrUndoAction 140cdf0e10cSrcweir { 141cdf0e10cSrcweir protected: 142cdf0e10cSrcweir SdrObject* pObj; 143cdf0e10cSrcweir 144cdf0e10cSrcweir protected: 145cdf0e10cSrcweir SdrUndoObj(SdrObject& rNewObj); ~SdrUndoObj()14634688d8fSHerbert Dürr virtual ~SdrUndoObj() {} 147cdf0e10cSrcweir 148cdf0e10cSrcweir void ImpTakeDescriptionStr(sal_uInt16 nStrCacheID, String& rStr, FASTBOOL bRepeat=sal_False) const; 149cdf0e10cSrcweir 150cdf0e10cSrcweir static void GetDescriptionStringForObject( const SdrObject& _rForObject, sal_uInt16 nStrCacheID, String& rStr, FASTBOOL bRepeat = sal_False ); 151cdf0e10cSrcweir 152cdf0e10cSrcweir // #94278# new method for evtl. PageChange at UNDO/REDO 153cdf0e10cSrcweir void ImpShowPageOfThisObject(); 154cdf0e10cSrcweir }; 155cdf0e10cSrcweir 156cdf0e10cSrcweir //************************************************************ 157cdf0e10cSrcweir // SdrUndoAttrObj 158cdf0e10cSrcweir // 159cdf0e10cSrcweir // Aenderung der Objektattribute. 160cdf0e10cSrcweir // Action direkt vor dem Setzen der neuen Attribute konstruieren. 161cdf0e10cSrcweir // Auch fuer StyleSheets 162cdf0e10cSrcweir // 163cdf0e10cSrcweir //************************************************************ 164cdf0e10cSrcweir 165cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoAttrObj : public SdrUndoObj 166cdf0e10cSrcweir { 167cdf0e10cSrcweir protected: 168cdf0e10cSrcweir SfxItemSet* pUndoSet; 169cdf0e10cSrcweir SfxItemSet* pRedoSet; 170cdf0e10cSrcweir SfxItemSet* pRepeatSet; 171cdf0e10cSrcweir 172cdf0e10cSrcweir // oder besser den StyleSheetNamen merken? 1736b46875cSArmin Le Grand rtl::Reference< SfxStyleSheetBase > mxUndoStyleSheet; 1746b46875cSArmin Le Grand rtl::Reference< SfxStyleSheetBase > mxRedoStyleSheet; 175cdf0e10cSrcweir FASTBOOL bStyleSheet; 176cdf0e10cSrcweir FASTBOOL bHaveToTakeRedoSet; 177cdf0e10cSrcweir 178cdf0e10cSrcweir // Bei Zuweisung von TextItems auf ein Zeichenobjekt mit Text: 179cdf0e10cSrcweir OutlinerParaObject* pTextUndo; 180cdf0e10cSrcweir // #i8508# 181cdf0e10cSrcweir // The text rescue mechanism needs also to be implemented for redo actions. 182cdf0e10cSrcweir OutlinerParaObject* pTextRedo; 183cdf0e10cSrcweir 184cdf0e10cSrcweir // Wenn sich um ein Gruppenobjekt handelt: 185cdf0e10cSrcweir SdrUndoGroup* pUndoGroup; 186cdf0e10cSrcweir 1876b46875cSArmin Le Grand // helper to ensure StyleSheet is in pool (provided by SdrModel from SdrObject) 1886b46875cSArmin Le Grand void ensureStyleSheetInStyleSheetPool(SfxStyleSheetBasePool& rStyleSheetPool, SfxStyleSheet& rSheet); 1896b46875cSArmin Le Grand 190cdf0e10cSrcweir public: 191cdf0e10cSrcweir SdrUndoAttrObj(SdrObject& rNewObj, FASTBOOL bStyleSheet1=sal_False, FASTBOOL bSaveText=sal_False); 192cdf0e10cSrcweir virtual ~SdrUndoAttrObj(); 19334688d8fSHerbert Dürr 194cdf0e10cSrcweir void SetRepeatAttr(const SfxItemSet& rSet); 195cdf0e10cSrcweir virtual void Undo(); 196cdf0e10cSrcweir virtual void Redo(); 197cdf0e10cSrcweir 198cdf0e10cSrcweir virtual String GetComment() const; 199cdf0e10cSrcweir virtual String GetSdrRepeatComment(SdrView& rView) const; 200cdf0e10cSrcweir 201cdf0e10cSrcweir virtual void SdrRepeat(SdrView& rView); 202cdf0e10cSrcweir virtual bool CanSdrRepeat(SdrView& rView) const; 203cdf0e10cSrcweir }; 204cdf0e10cSrcweir 205cdf0e10cSrcweir //************************************************************ 206cdf0e10cSrcweir // SdrUndoMoveObj 207cdf0e10cSrcweir // 208cdf0e10cSrcweir // Blosses verschieben eines Objektes. 209cdf0e10cSrcweir // Action direkt vor dem Verschieben konstruieren. 210cdf0e10cSrcweir // 211cdf0e10cSrcweir //************************************************************ 212cdf0e10cSrcweir 213cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoMoveObj : public SdrUndoObj 214cdf0e10cSrcweir { 215cdf0e10cSrcweir protected: 216cdf0e10cSrcweir Size aDistance; // Entfernung, um die verschoben wird 217cdf0e10cSrcweir 218cdf0e10cSrcweir public: SdrUndoMoveObj(SdrObject & rNewObj)219cdf0e10cSrcweir SdrUndoMoveObj(SdrObject& rNewObj): SdrUndoObj(rNewObj) {} SdrUndoMoveObj(SdrObject & rNewObj,const Size & rDist)220cdf0e10cSrcweir SdrUndoMoveObj(SdrObject& rNewObj, const Size& rDist): SdrUndoObj(rNewObj),aDistance(rDist) {} ~SdrUndoMoveObj()22134688d8fSHerbert Dürr virtual ~SdrUndoMoveObj() {} 222cdf0e10cSrcweir SetDistance(const Size & rDist)223cdf0e10cSrcweir void SetDistance(const Size& rDist) { aDistance=rDist; } GetDistance() const224cdf0e10cSrcweir const Size& GetDistance() const { return aDistance; } 225cdf0e10cSrcweir 226cdf0e10cSrcweir virtual void Undo(); 227cdf0e10cSrcweir virtual void Redo(); 228cdf0e10cSrcweir 229cdf0e10cSrcweir virtual String GetComment() const; 230cdf0e10cSrcweir virtual String GetSdrRepeatComment(SdrView& rView) const; 231cdf0e10cSrcweir 232cdf0e10cSrcweir virtual void SdrRepeat(SdrView& rView); 233cdf0e10cSrcweir virtual bool CanSdrRepeat(SdrView& rView) const; 234cdf0e10cSrcweir }; 235cdf0e10cSrcweir 236cdf0e10cSrcweir //************************************************************ 237cdf0e10cSrcweir // SdrUndoGeoObj 238cdf0e10cSrcweir // 239cdf0e10cSrcweir // Aenderung der Geometrie eines Objektes. 240cdf0e10cSrcweir // Action direkt vor der geometrischen Transformation konstruieren. 241cdf0e10cSrcweir // 242cdf0e10cSrcweir //************************************************************ 243cdf0e10cSrcweir 244cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoGeoObj : public SdrUndoObj 245cdf0e10cSrcweir { 246cdf0e10cSrcweir protected: 247cdf0e10cSrcweir SdrObjGeoData* pUndoGeo; 248cdf0e10cSrcweir SdrObjGeoData* pRedoGeo; 249cdf0e10cSrcweir // Wenn sich um ein Gruppenobjekt handelt: 250cdf0e10cSrcweir SdrUndoGroup* pUndoGroup; 251cdf0e10cSrcweir 252cdf0e10cSrcweir public: 253cdf0e10cSrcweir SdrUndoGeoObj(SdrObject& rNewObj); 254cdf0e10cSrcweir virtual ~SdrUndoGeoObj(); 255cdf0e10cSrcweir 256cdf0e10cSrcweir virtual void Undo(); 257cdf0e10cSrcweir virtual void Redo(); 258cdf0e10cSrcweir 259cdf0e10cSrcweir virtual String GetComment() const; 260cdf0e10cSrcweir }; 261cdf0e10cSrcweir 262cdf0e10cSrcweir //************************************************************ 263cdf0e10cSrcweir // SdrUndoObjList 264cdf0e10cSrcweir // 265cdf0e10cSrcweir // Manipulationen an einer ObjList: Neues Obj, DeleteObj, SetObjZLevel, Grouping, ... 266cdf0e10cSrcweir // Abstrakte Basisklasse. 267cdf0e10cSrcweir // 268cdf0e10cSrcweir //************************************************************ 269cdf0e10cSrcweir 270cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoObjList : public SdrUndoObj { 271cdf0e10cSrcweir bool bOwner; 272cdf0e10cSrcweir 273cdf0e10cSrcweir protected: 274cdf0e10cSrcweir SdrObjList* pObjList; 275cdf0e10cSrcweir SdrView* pView; // um bei ObjDel, Undo die 276cdf0e10cSrcweir SdrPageView* pPageView; // Selektion widerherstellen zu koennen 277cdf0e10cSrcweir sal_uInt32 nOrdNum; 278cdf0e10cSrcweir // Bei einem Undo/Redo findet moeglicherweise Uebereignung des Objektes 279cdf0e10cSrcweir // statt. Im Dtor wird das Obj deleted, wenn bOwner==TRUE 280cdf0e10cSrcweir 281cdf0e10cSrcweir protected: 282cdf0e10cSrcweir SdrUndoObjList(SdrObject& rNewObj, bool bOrdNumDirect = false); 283cdf0e10cSrcweir virtual ~SdrUndoObjList(); 284cdf0e10cSrcweir SetView(SdrView * pView1,SdrPageView * pPageView1)285cdf0e10cSrcweir void SetView(SdrView* pView1, SdrPageView* pPageView1) { pView=pView1; pPageView=pPageView1; } IsOwner()286cdf0e10cSrcweir bool IsOwner() { return bOwner; } 287cdf0e10cSrcweir void SetOwner(bool bNew); 288cdf0e10cSrcweir }; 289cdf0e10cSrcweir 290cdf0e10cSrcweir //************************************************************ 291cdf0e10cSrcweir // SdrUndoRemoveObj 292cdf0e10cSrcweir // 293cdf0e10cSrcweir // Entfernen Objekts aus einer Objektliste. Innerhalb einer UndoGroup 294cdf0e10cSrcweir // mit korrospondierenden Inserts zu verwenden. 295cdf0e10cSrcweir // Action vor dem entfernen aus der ObjList konstruieren. 296cdf0e10cSrcweir // 297cdf0e10cSrcweir //************************************************************ 298cdf0e10cSrcweir 299cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoRemoveObj : public SdrUndoObjList 300cdf0e10cSrcweir { 301cdf0e10cSrcweir public: SdrUndoRemoveObj(SdrObject & rNewObj,FASTBOOL bOrdNumDirect=sal_False)302cdf0e10cSrcweir SdrUndoRemoveObj(SdrObject& rNewObj, FASTBOOL bOrdNumDirect=sal_False) 303cdf0e10cSrcweir : SdrUndoObjList(rNewObj,bOrdNumDirect) {} 304cdf0e10cSrcweir 305cdf0e10cSrcweir virtual void Undo(); 306cdf0e10cSrcweir virtual void Redo(); 307cdf0e10cSrcweir }; 308cdf0e10cSrcweir 309cdf0e10cSrcweir //************************************************************ 310cdf0e10cSrcweir // SdrUndoInsertObj 311cdf0e10cSrcweir // 312cdf0e10cSrcweir // Einfuegen Objekts in eine Objektliste. Innerhalb einer UndoGroup 313cdf0e10cSrcweir // mit korrospondierenden Removes zu verwenden. 314cdf0e10cSrcweir // Action vor dem entfernen aus der ObjList konstruieren. 315cdf0e10cSrcweir // 316cdf0e10cSrcweir //************************************************************ 317cdf0e10cSrcweir 318cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoInsertObj : public SdrUndoObjList 319cdf0e10cSrcweir { 320cdf0e10cSrcweir public: SdrUndoInsertObj(SdrObject & rNewObj,FASTBOOL bOrdNumDirect=sal_False)321cdf0e10cSrcweir SdrUndoInsertObj(SdrObject& rNewObj, FASTBOOL bOrdNumDirect=sal_False) 322cdf0e10cSrcweir : SdrUndoObjList(rNewObj,bOrdNumDirect) {} 323cdf0e10cSrcweir 324cdf0e10cSrcweir virtual void Undo(); 325cdf0e10cSrcweir virtual void Redo(); 326cdf0e10cSrcweir }; 327cdf0e10cSrcweir 328cdf0e10cSrcweir //************************************************************ 329cdf0e10cSrcweir // SdrUndoDelObj 330cdf0e10cSrcweir // 331cdf0e10cSrcweir // Loeschen eines Objekts. 332cdf0e10cSrcweir // Action vor dem entfernen aus der ObjList konstruieren. 333cdf0e10cSrcweir // 334cdf0e10cSrcweir //************************************************************ 335cdf0e10cSrcweir 336cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoDelObj : public SdrUndoRemoveObj 337cdf0e10cSrcweir { 338*88b53a7cSArmin Le Grand private: 339*88b53a7cSArmin Le Grand void TryToFlushGraphicContent(); 340*88b53a7cSArmin Le Grand 341cdf0e10cSrcweir public: 342*88b53a7cSArmin Le Grand SdrUndoDelObj(SdrObject& rNewObj, FASTBOOL bOrdNumDirect=sal_False); 343*88b53a7cSArmin Le Grand virtual ~SdrUndoDelObj(); 344cdf0e10cSrcweir 345*88b53a7cSArmin Le Grand virtual void Undo(); 346*88b53a7cSArmin Le Grand virtual void Redo(); 347cdf0e10cSrcweir 348*88b53a7cSArmin Le Grand virtual String GetComment() const; 349*88b53a7cSArmin Le Grand virtual String GetSdrRepeatComment(SdrView& rView) const; 350cdf0e10cSrcweir 351*88b53a7cSArmin Le Grand virtual void SdrRepeat(SdrView& rView); 352*88b53a7cSArmin Le Grand virtual bool CanSdrRepeat(SdrView& rView) const; 353cdf0e10cSrcweir }; 354cdf0e10cSrcweir 355cdf0e10cSrcweir //************************************************************ 356cdf0e10cSrcweir // SdrUndoNewObj 357cdf0e10cSrcweir // 358cdf0e10cSrcweir // Einfuegen eines neuen Objektes. 359cdf0e10cSrcweir // Action nach dem einfuegen in die ObjList konstruieren. 360cdf0e10cSrcweir // 361cdf0e10cSrcweir //************************************************************ 362cdf0e10cSrcweir 363cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoNewObj : public SdrUndoInsertObj 364cdf0e10cSrcweir { 365cdf0e10cSrcweir public: SdrUndoNewObj(SdrObject & rNewObj,FASTBOOL bOrdNumDirect=sal_False)366cdf0e10cSrcweir SdrUndoNewObj(SdrObject& rNewObj, FASTBOOL bOrdNumDirect=sal_False) 367cdf0e10cSrcweir : SdrUndoInsertObj(rNewObj,bOrdNumDirect) {} ~SdrUndoNewObj()36834688d8fSHerbert Dürr virtual ~SdrUndoNewObj() {} 369cdf0e10cSrcweir 370cdf0e10cSrcweir virtual void Undo(); 371cdf0e10cSrcweir virtual void Redo(); 372cdf0e10cSrcweir 373cdf0e10cSrcweir virtual String GetComment() const; 374cdf0e10cSrcweir 375cdf0e10cSrcweir static String GetComment( const SdrObject& _rForObject ); 376cdf0e10cSrcweir }; 377cdf0e10cSrcweir 378cdf0e10cSrcweir //************************************************************ 379cdf0e10cSrcweir // SdrUndoReplaceObj 380cdf0e10cSrcweir // 381cdf0e10cSrcweir // Austausch eines Objektes. 382cdf0e10cSrcweir // Action vor dem Replace an der ObjList konstruieren. 383cdf0e10cSrcweir // 384cdf0e10cSrcweir //************************************************************ 385cdf0e10cSrcweir 386cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoReplaceObj : public SdrUndoObj 387cdf0e10cSrcweir { 388cdf0e10cSrcweir bool bOldOwner; 389cdf0e10cSrcweir bool bNewOwner; 390cdf0e10cSrcweir 391cdf0e10cSrcweir protected: 392cdf0e10cSrcweir SdrObjList* pObjList; 393cdf0e10cSrcweir sal_uInt32 nOrdNum; 394cdf0e10cSrcweir SdrObject* pNewObj; 395cdf0e10cSrcweir 396cdf0e10cSrcweir public: 397cdf0e10cSrcweir SdrUndoReplaceObj(SdrObject& rOldObj1, SdrObject& rNewObj1, bool bOrdNumDirect = false); 398cdf0e10cSrcweir virtual ~SdrUndoReplaceObj(); 399cdf0e10cSrcweir 400cdf0e10cSrcweir virtual void Undo(); 401cdf0e10cSrcweir virtual void Redo(); 402cdf0e10cSrcweir IsNewOwner()403cdf0e10cSrcweir bool IsNewOwner() { return bNewOwner; } 404cdf0e10cSrcweir void SetNewOwner(bool bNew); 405cdf0e10cSrcweir IsOldOwner()406cdf0e10cSrcweir bool IsOldOwner() { return bOldOwner; } 407cdf0e10cSrcweir void SetOldOwner(bool bNew); 408cdf0e10cSrcweir }; 409cdf0e10cSrcweir 410cdf0e10cSrcweir //************************************************************ 411cdf0e10cSrcweir // SdrUndoCopyObj 412cdf0e10cSrcweir // 413cdf0e10cSrcweir // Kopieren eines Objekts 414cdf0e10cSrcweir // Action nach dem einfuegen in die ObjList konstruieren. 415cdf0e10cSrcweir // 416cdf0e10cSrcweir //************************************************************ 417cdf0e10cSrcweir 418cdf0e10cSrcweir class SdrUndoCopyObj : public SdrUndoNewObj 419cdf0e10cSrcweir { 420cdf0e10cSrcweir public: SdrUndoCopyObj(SdrObject & rNewObj,FASTBOOL bOrdNumDirect=sal_False)421cdf0e10cSrcweir SdrUndoCopyObj(SdrObject& rNewObj, FASTBOOL bOrdNumDirect=sal_False) 422cdf0e10cSrcweir : SdrUndoNewObj(rNewObj,bOrdNumDirect) {} ~SdrUndoCopyObj()42334688d8fSHerbert Dürr virtual ~SdrUndoCopyObj() {} 424cdf0e10cSrcweir 425cdf0e10cSrcweir virtual String GetComment() const; 426cdf0e10cSrcweir }; 427cdf0e10cSrcweir 428cdf0e10cSrcweir //************************************************************ 429cdf0e10cSrcweir // SdrUndoObjOrdNum 430cdf0e10cSrcweir //************************************************************ 431cdf0e10cSrcweir 432cdf0e10cSrcweir class SdrUndoObjOrdNum : public SdrUndoObj 433cdf0e10cSrcweir { 434cdf0e10cSrcweir protected: 435cdf0e10cSrcweir sal_uInt32 nOldOrdNum; 436cdf0e10cSrcweir sal_uInt32 nNewOrdNum; 437cdf0e10cSrcweir 438cdf0e10cSrcweir public: 439cdf0e10cSrcweir SdrUndoObjOrdNum(SdrObject& rNewObj, sal_uInt32 nOldOrdNum1, sal_uInt32 nNewOrdNum1); ~SdrUndoObjOrdNum()44034688d8fSHerbert Dürr virtual ~SdrUndoObjOrdNum() {} 441cdf0e10cSrcweir 442cdf0e10cSrcweir virtual void Undo(); 443cdf0e10cSrcweir virtual void Redo(); 444cdf0e10cSrcweir 445cdf0e10cSrcweir virtual String GetComment() const; 446cdf0e10cSrcweir }; 447cdf0e10cSrcweir 448cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////// 449cdf0e10cSrcweir // #i11702# 450cdf0e10cSrcweir 451cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoObjectLayerChange : public SdrUndoObj 452cdf0e10cSrcweir { 453cdf0e10cSrcweir protected: 454cdf0e10cSrcweir SdrLayerID maOldLayer; 455cdf0e10cSrcweir SdrLayerID maNewLayer; 456cdf0e10cSrcweir 457cdf0e10cSrcweir public: 458cdf0e10cSrcweir SdrUndoObjectLayerChange(SdrObject& rObj, SdrLayerID aOldLayer, SdrLayerID aNewLayer); ~SdrUndoObjectLayerChange()45934688d8fSHerbert Dürr virtual ~SdrUndoObjectLayerChange() {} 460cdf0e10cSrcweir 461cdf0e10cSrcweir virtual void Undo(); 462cdf0e10cSrcweir virtual void Redo(); 463cdf0e10cSrcweir }; 464cdf0e10cSrcweir 465cdf0e10cSrcweir //************************************************************ 466cdf0e10cSrcweir // SdrUndoObjSetText 467cdf0e10cSrcweir //************************************************************ 468cdf0e10cSrcweir 469cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoObjSetText : public SdrUndoObj 470cdf0e10cSrcweir { 471cdf0e10cSrcweir protected: 472cdf0e10cSrcweir OutlinerParaObject* pOldText; 473cdf0e10cSrcweir OutlinerParaObject* pNewText; 474cdf0e10cSrcweir FASTBOOL bNewTextAvailable; 475cdf0e10cSrcweir sal_Bool bEmptyPresObj; 476cdf0e10cSrcweir sal_Int32 mnText; 477cdf0e10cSrcweir 478cdf0e10cSrcweir public: 479cdf0e10cSrcweir SdrUndoObjSetText(SdrObject& rNewObj, sal_Int32 nText ); 480cdf0e10cSrcweir virtual ~SdrUndoObjSetText(); 481cdf0e10cSrcweir IsDifferent() const482cdf0e10cSrcweir FASTBOOL IsDifferent() const { return pOldText!=pNewText; } 483cdf0e10cSrcweir void AfterSetText(); 484cdf0e10cSrcweir 485cdf0e10cSrcweir virtual void Undo(); 486cdf0e10cSrcweir virtual void Redo(); 487cdf0e10cSrcweir 488cdf0e10cSrcweir virtual String GetComment() const; 489cdf0e10cSrcweir virtual String GetSdrRepeatComment(SdrView& rView) const; 490cdf0e10cSrcweir 491cdf0e10cSrcweir virtual void SdrRepeat(SdrView& rView); 492cdf0e10cSrcweir virtual bool CanSdrRepeat(SdrView& rView) const; 493cdf0e10cSrcweir }; 494cdf0e10cSrcweir 495cdf0e10cSrcweir // --> OD 2009-07-09 #i73249# 496cdf0e10cSrcweir class SdrUndoObjStrAttr : public SdrUndoObj 497cdf0e10cSrcweir { 498cdf0e10cSrcweir public: 499cdf0e10cSrcweir enum ObjStrAttrType 500cdf0e10cSrcweir { 501cdf0e10cSrcweir OBJ_NAME, 502cdf0e10cSrcweir OBJ_TITLE, 503cdf0e10cSrcweir OBJ_DESCRIPTION 504cdf0e10cSrcweir }; 505cdf0e10cSrcweir 506cdf0e10cSrcweir protected: 507cdf0e10cSrcweir const ObjStrAttrType meObjStrAttr; 508cdf0e10cSrcweir const String msOldStr; 509cdf0e10cSrcweir const String msNewStr; 510cdf0e10cSrcweir 511cdf0e10cSrcweir public: 512cdf0e10cSrcweir SdrUndoObjStrAttr( SdrObject& rNewObj, 513cdf0e10cSrcweir const ObjStrAttrType eObjStrAttr, 514cdf0e10cSrcweir const String& sOldStr, 515cdf0e10cSrcweir const String& sNewStr); ~SdrUndoObjStrAttr()51634688d8fSHerbert Dürr virtual ~SdrUndoObjStrAttr() {} 517cdf0e10cSrcweir 518cdf0e10cSrcweir virtual void Undo(); 519cdf0e10cSrcweir virtual void Redo(); 520cdf0e10cSrcweir 521cdf0e10cSrcweir virtual String GetComment() const; 522cdf0e10cSrcweir }; 523cdf0e10cSrcweir // <-- 524cdf0e10cSrcweir 525cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////////////////////////// 526cdf0e10cSrcweir // 527cdf0e10cSrcweir // @@ @@@@ @@ @@ @@@@@ @@@@@ 528cdf0e10cSrcweir // @@ @@ @@ @@ @@ @@ @@ @@ 529cdf0e10cSrcweir // @@ @@ @@ @@ @@ @@ @@ @@ 530cdf0e10cSrcweir // @@ @@@@@@ @@@@ @@@@ @@@@@ 531cdf0e10cSrcweir // @@ @@ @@ @@ @@ @@ @@ 532cdf0e10cSrcweir // @@ @@ @@ @@ @@ @@ @@ 533cdf0e10cSrcweir // @@@@@ @@ @@ @@ @@@@@ @@ @@ 534cdf0e10cSrcweir // 535cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////////////////////////// 536cdf0e10cSrcweir 537cdf0e10cSrcweir //************************************************************ 538cdf0e10cSrcweir // SdrUndoLayer 539cdf0e10cSrcweir // 540cdf0e10cSrcweir // Abstrakte Basisklasse fuer alle UndoActions die mit SdrLayer zu tun haben. 541cdf0e10cSrcweir // 542cdf0e10cSrcweir //************************************************************ 543cdf0e10cSrcweir 544cdf0e10cSrcweir class SdrUndoLayer : public SdrUndoAction 545cdf0e10cSrcweir { 546cdf0e10cSrcweir protected: 547cdf0e10cSrcweir SdrLayer* pLayer; 548cdf0e10cSrcweir SdrLayerAdmin* pLayerAdmin; 549cdf0e10cSrcweir sal_uInt16 nNum; 550cdf0e10cSrcweir FASTBOOL bItsMine; 551cdf0e10cSrcweir 552cdf0e10cSrcweir protected: 553cdf0e10cSrcweir SdrUndoLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel); 55434688d8fSHerbert Dürr public: 555cdf0e10cSrcweir virtual ~SdrUndoLayer(); 556cdf0e10cSrcweir }; 557cdf0e10cSrcweir 558cdf0e10cSrcweir //************************************************************ 559cdf0e10cSrcweir // SdrUndoNewLayer 560cdf0e10cSrcweir // 561cdf0e10cSrcweir // Einfuegen eines neuen Layer. Action nach dem Einfuegen konstruieren. 562cdf0e10cSrcweir // 563cdf0e10cSrcweir //************************************************************ 564cdf0e10cSrcweir 565cdf0e10cSrcweir class SdrUndoNewLayer : public SdrUndoLayer 566cdf0e10cSrcweir { 567cdf0e10cSrcweir public: SdrUndoNewLayer(sal_uInt16 nLayerNum,SdrLayerAdmin & rNewLayerAdmin,SdrModel & rNewModel)568cdf0e10cSrcweir SdrUndoNewLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel) 569cdf0e10cSrcweir : SdrUndoLayer(nLayerNum,rNewLayerAdmin,rNewModel) {} ~SdrUndoNewLayer()57034688d8fSHerbert Dürr virtual ~SdrUndoNewLayer() {} 571cdf0e10cSrcweir 572cdf0e10cSrcweir virtual void Undo(); 573cdf0e10cSrcweir virtual void Redo(); 574cdf0e10cSrcweir 575cdf0e10cSrcweir virtual String GetComment() const; 576cdf0e10cSrcweir }; 577cdf0e10cSrcweir 578cdf0e10cSrcweir //************************************************************ 579cdf0e10cSrcweir // SdrUndoDelLayer 580cdf0e10cSrcweir // 581cdf0e10cSrcweir // Loeschen eines Layer. Action vor dem Remove konstruieren 582cdf0e10cSrcweir // 583cdf0e10cSrcweir //************************************************************ 584cdf0e10cSrcweir 585cdf0e10cSrcweir class SdrUndoDelLayer : public SdrUndoLayer 586cdf0e10cSrcweir { 587cdf0e10cSrcweir public: SdrUndoDelLayer(sal_uInt16 nLayerNum,SdrLayerAdmin & rNewLayerAdmin,SdrModel & rNewModel)588cdf0e10cSrcweir SdrUndoDelLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel) 589cdf0e10cSrcweir : SdrUndoLayer(nLayerNum,rNewLayerAdmin,rNewModel) { bItsMine=sal_True; } ~SdrUndoDelLayer()59034688d8fSHerbert Dürr virtual ~SdrUndoDelLayer() {} 591cdf0e10cSrcweir 592cdf0e10cSrcweir virtual void Undo(); 593cdf0e10cSrcweir virtual void Redo(); 594cdf0e10cSrcweir 595cdf0e10cSrcweir virtual String GetComment() const; 596cdf0e10cSrcweir }; 597cdf0e10cSrcweir 598cdf0e10cSrcweir //************************************************************ 599cdf0e10cSrcweir // SdrUndoMoveLayer 600cdf0e10cSrcweir // 601cdf0e10cSrcweir // Verschieben eines Layer. Action vor dem Verschieben konstruieren. 602cdf0e10cSrcweir // 603cdf0e10cSrcweir //************************************************************ 604cdf0e10cSrcweir 605cdf0e10cSrcweir class SdrUndoMoveLayer : public SdrUndoLayer 606cdf0e10cSrcweir { 607cdf0e10cSrcweir sal_uInt16 nNeuPos; 608cdf0e10cSrcweir 609cdf0e10cSrcweir public: SdrUndoMoveLayer(sal_uInt16 nLayerNum,SdrLayerAdmin & rNewLayerAdmin,SdrModel & rNewModel,sal_uInt16 nNeuPos1)610cdf0e10cSrcweir SdrUndoMoveLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel, sal_uInt16 nNeuPos1) 611cdf0e10cSrcweir : SdrUndoLayer(nLayerNum,rNewLayerAdmin,rNewModel), nNeuPos(nNeuPos1) {} ~SdrUndoMoveLayer()61234688d8fSHerbert Dürr virtual ~SdrUndoMoveLayer() {} 613cdf0e10cSrcweir 614cdf0e10cSrcweir virtual void Undo(); 615cdf0e10cSrcweir virtual void Redo(); 616cdf0e10cSrcweir 617cdf0e10cSrcweir virtual String GetComment() const; 618cdf0e10cSrcweir }; 619cdf0e10cSrcweir 620cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////////////////////////// 621cdf0e10cSrcweir // 622cdf0e10cSrcweir // @@@@@ @@@@ @@@@ @@@@@ @@@@ 623cdf0e10cSrcweir // @@ @@ @@ @@ @@ @@ @@ @@ @@ 624cdf0e10cSrcweir // @@ @@ @@ @@ @@ @@ @@ 625cdf0e10cSrcweir // @@@@@ @@@@@@ @@ @@@ @@@@ @@@@ 626cdf0e10cSrcweir // @@ @@ @@ @@ @@ @@ @@ 627cdf0e10cSrcweir // @@ @@ @@ @@ @@ @@ @@ @@ 628cdf0e10cSrcweir // @@ @@ @@ @@@@@ @@@@@ @@@@ 629cdf0e10cSrcweir // 630cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////////////////////////// 631cdf0e10cSrcweir 632cdf0e10cSrcweir //************************************************************ 633cdf0e10cSrcweir // SdrUndoPage 634cdf0e10cSrcweir // 635cdf0e10cSrcweir // Abstrakte Basisklasse fuer alle UndoActions die mit SdrPages zu tun haben. 636cdf0e10cSrcweir // 637cdf0e10cSrcweir //************************************************************ 638cdf0e10cSrcweir 639cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoPage : public SdrUndoAction 640cdf0e10cSrcweir { 641cdf0e10cSrcweir protected: 642cdf0e10cSrcweir SdrPage& mrPage; 643cdf0e10cSrcweir 644cdf0e10cSrcweir protected: 645cdf0e10cSrcweir void ImpInsertPage(sal_uInt16 nNum); 646cdf0e10cSrcweir void ImpRemovePage(sal_uInt16 nNum); 647cdf0e10cSrcweir void ImpMovePage(sal_uInt16 nOldNum, sal_uInt16 nNewNum); 648cdf0e10cSrcweir 649cdf0e10cSrcweir protected: 650cdf0e10cSrcweir SdrUndoPage(SdrPage& rNewPg); ~SdrUndoPage()65134688d8fSHerbert Dürr virtual ~SdrUndoPage() {} 652cdf0e10cSrcweir 653cdf0e10cSrcweir void ImpTakeDescriptionStr(sal_uInt16 nStrCacheID, String& rStr, sal_uInt16 n=0, FASTBOOL bRepeat=sal_False) const; 654cdf0e10cSrcweir }; 655cdf0e10cSrcweir 656cdf0e10cSrcweir //************************************************************ 657cdf0e10cSrcweir // SdrUndoPageList 658cdf0e10cSrcweir // 659cdf0e10cSrcweir // Manipulationen an einer PageList: Neue Page, DeletePage, MovePage(ChangePageNum) 660cdf0e10cSrcweir // Abstrakte Basisklasse. 661cdf0e10cSrcweir // 662cdf0e10cSrcweir //************************************************************ 663cdf0e10cSrcweir 664cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoPageList : public SdrUndoPage 665cdf0e10cSrcweir { 666cdf0e10cSrcweir protected: 667cdf0e10cSrcweir sal_uInt16 nPageNum; 668cdf0e10cSrcweir 669cdf0e10cSrcweir // Bei einem Undo/Redo findet moeglicherweise Uebereignung der Page 670cdf0e10cSrcweir // statt. Im Dtor wird die Page deleted, wenn bItsMine==TRUE 671cdf0e10cSrcweir FASTBOOL bItsMine; 672cdf0e10cSrcweir 673cdf0e10cSrcweir protected: 674cdf0e10cSrcweir SdrUndoPageList(SdrPage& rNewPg); 675cdf0e10cSrcweir virtual ~SdrUndoPageList(); 676cdf0e10cSrcweir }; 677cdf0e10cSrcweir 678cdf0e10cSrcweir //************************************************************ 679cdf0e10cSrcweir // SdrUndoDelPage 680cdf0e10cSrcweir // 681cdf0e10cSrcweir // Loeschen einer Page. 682cdf0e10cSrcweir // Action vor dem entfernen aus der List konstruieren. 683cdf0e10cSrcweir // 684cdf0e10cSrcweir //************************************************************ 685cdf0e10cSrcweir 686cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoDelPage : public SdrUndoPageList 687cdf0e10cSrcweir { 688cdf0e10cSrcweir // Beim loeschen einer MasterPage merke ich mir in dieser UndoGroup 689cdf0e10cSrcweir // alle Beziehungen der Zeichenseiten zu der geloeschten MasterPage 690cdf0e10cSrcweir SdrUndoGroup* pUndoGroup; 691cdf0e10cSrcweir 692cdf0e10cSrcweir public: 693cdf0e10cSrcweir SdrUndoDelPage(SdrPage& rNewPg); 694cdf0e10cSrcweir virtual ~SdrUndoDelPage(); 695cdf0e10cSrcweir 696cdf0e10cSrcweir virtual void Undo(); 697cdf0e10cSrcweir virtual void Redo(); 698cdf0e10cSrcweir 699cdf0e10cSrcweir virtual String GetComment() const; 700cdf0e10cSrcweir virtual String GetSdrRepeatComment(SdrView& rView) const; 701cdf0e10cSrcweir 702cdf0e10cSrcweir virtual void SdrRepeat(SdrView& rView); 703cdf0e10cSrcweir virtual bool CanSdrRepeat(SdrView& rView) const; 704cdf0e10cSrcweir }; 705cdf0e10cSrcweir 706cdf0e10cSrcweir //************************************************************ 707cdf0e10cSrcweir // SdrUndoNewPage 708cdf0e10cSrcweir // 709cdf0e10cSrcweir // Einfuegen einer neuen Page. 710cdf0e10cSrcweir // Action nach dem einfuegen in die Liste konstruieren. 711cdf0e10cSrcweir // 712cdf0e10cSrcweir //************************************************************ 713cdf0e10cSrcweir 714cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoNewPage : public SdrUndoPageList 715cdf0e10cSrcweir { 716cdf0e10cSrcweir public: SdrUndoNewPage(SdrPage & rNewPg)717cdf0e10cSrcweir SdrUndoNewPage(SdrPage& rNewPg): SdrUndoPageList(rNewPg) {} ~SdrUndoNewPage()71834688d8fSHerbert Dürr virtual ~SdrUndoNewPage() {} 719cdf0e10cSrcweir 720cdf0e10cSrcweir virtual void Undo(); 721cdf0e10cSrcweir virtual void Redo(); 722cdf0e10cSrcweir 723cdf0e10cSrcweir virtual String GetComment() const; 724cdf0e10cSrcweir }; 725cdf0e10cSrcweir 726cdf0e10cSrcweir //************************************************************ 727cdf0e10cSrcweir // SdrUndoCopyPage 728cdf0e10cSrcweir // 729cdf0e10cSrcweir // Kopieren einer Page 730cdf0e10cSrcweir // Action nach dem einfuegen in die Liste konstruieren. 731cdf0e10cSrcweir // 732cdf0e10cSrcweir //************************************************************ 733cdf0e10cSrcweir 734cdf0e10cSrcweir class SdrUndoCopyPage : public SdrUndoNewPage 735cdf0e10cSrcweir { 736cdf0e10cSrcweir public: SdrUndoCopyPage(SdrPage & rNewPg)737cdf0e10cSrcweir SdrUndoCopyPage(SdrPage& rNewPg): SdrUndoNewPage(rNewPg) {} ~SdrUndoCopyPage()73834688d8fSHerbert Dürr virtual ~SdrUndoCopyPage() {} 739cdf0e10cSrcweir 740cdf0e10cSrcweir virtual String GetComment() const; 741cdf0e10cSrcweir virtual String GetSdrRepeatComment(SdrView& rView) const; 742cdf0e10cSrcweir 743cdf0e10cSrcweir virtual void SdrRepeat(SdrView& rView); 744cdf0e10cSrcweir virtual bool CanSdrRepeat(SdrView& rView) const; 745cdf0e10cSrcweir }; 746cdf0e10cSrcweir 747cdf0e10cSrcweir //************************************************************ 748cdf0e10cSrcweir // SdrUndoSetPageNum 749cdf0e10cSrcweir // 750cdf0e10cSrcweir // Verschieben der Page innerhalb der Liste 751cdf0e10cSrcweir // Action vor dem Verschieben der Page konstruieren. 752cdf0e10cSrcweir // 753cdf0e10cSrcweir //************************************************************ 754cdf0e10cSrcweir 755cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoSetPageNum : public SdrUndoPage 756cdf0e10cSrcweir { 757cdf0e10cSrcweir protected: 758cdf0e10cSrcweir sal_uInt16 nOldPageNum; 759cdf0e10cSrcweir sal_uInt16 nNewPageNum; 760cdf0e10cSrcweir 761cdf0e10cSrcweir public: SdrUndoSetPageNum(SdrPage & rNewPg,sal_uInt16 nOldPageNum1,sal_uInt16 nNewPageNum1)762cdf0e10cSrcweir SdrUndoSetPageNum(SdrPage& rNewPg, sal_uInt16 nOldPageNum1, sal_uInt16 nNewPageNum1) 763cdf0e10cSrcweir : SdrUndoPage(rNewPg),nOldPageNum(nOldPageNum1),nNewPageNum(nNewPageNum1) {} ~SdrUndoSetPageNum()76434688d8fSHerbert Dürr virtual ~SdrUndoSetPageNum() {} 765cdf0e10cSrcweir 766cdf0e10cSrcweir virtual void Undo(); 767cdf0e10cSrcweir virtual void Redo(); 768cdf0e10cSrcweir 769cdf0e10cSrcweir virtual String GetComment() const; 770cdf0e10cSrcweir }; 771cdf0e10cSrcweir 772cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////////////////////////// 773cdf0e10cSrcweir // 774cdf0e10cSrcweir // @@ @@ @@@@ @@@@ @@@@@@ @@@@@ @@@@@ @@@@@ @@@@ @@@@ @@@@@ @@@@ 775cdf0e10cSrcweir // @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ 776cdf0e10cSrcweir // @@@@@@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ 777cdf0e10cSrcweir // @@@@@@@ @@@@@@ @@@@ @@ @@@@ @@@@@ @@@@@ @@@@@@ @@ @@@ @@@@ @@@@ 778cdf0e10cSrcweir // @@ @ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ 779cdf0e10cSrcweir // @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ 780cdf0e10cSrcweir // @@ @@ @@ @@ @@@@ @@ @@@@@ @@ @@ @@ @@ @@ @@@@@ @@@@@ @@@@ 781cdf0e10cSrcweir // 782cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////////////////////////// 783cdf0e10cSrcweir 784cdf0e10cSrcweir //************************************************************ 785cdf0e10cSrcweir // SdrUndoPageMasterPage 786cdf0e10cSrcweir // 787cdf0e10cSrcweir // Abstrakte Basisklasse fuer alle UndoActions die mit 788cdf0e10cSrcweir // MasterPage-Beziehungen zu tun haben. 789cdf0e10cSrcweir // 790cdf0e10cSrcweir //************************************************************ 791cdf0e10cSrcweir 792cdf0e10cSrcweir class SdrUndoPageMasterPage : public SdrUndoPage 793cdf0e10cSrcweir { 794cdf0e10cSrcweir protected: 795cdf0e10cSrcweir sal_Bool mbOldHadMasterPage; 796cdf0e10cSrcweir SetOfByte maOldSet; 797cdf0e10cSrcweir sal_uInt16 maOldMasterPageNumber; 798cdf0e10cSrcweir 799cdf0e10cSrcweir protected: 800cdf0e10cSrcweir SdrUndoPageMasterPage(SdrPage& rChangedPage); 801cdf0e10cSrcweir 802cdf0e10cSrcweir public: 803cdf0e10cSrcweir SVX_DLLPUBLIC virtual ~SdrUndoPageMasterPage(); 804cdf0e10cSrcweir }; 805cdf0e10cSrcweir 806cdf0e10cSrcweir //************************************************************ 807cdf0e10cSrcweir // SdrUndoPageRemoveMasterPage 808cdf0e10cSrcweir // 809cdf0e10cSrcweir // Entfernen einer MasterPage von einer Zeichenseite. 810cdf0e10cSrcweir // Action vor dem Entfernen des MasterPageDescriptors erzeugen. 811cdf0e10cSrcweir // 812cdf0e10cSrcweir //************************************************************ 813cdf0e10cSrcweir 814cdf0e10cSrcweir class SdrUndoPageRemoveMasterPage : public SdrUndoPageMasterPage 815cdf0e10cSrcweir { 816cdf0e10cSrcweir public: 817cdf0e10cSrcweir SdrUndoPageRemoveMasterPage(SdrPage& rChangedPage); 818cdf0e10cSrcweir 819cdf0e10cSrcweir virtual void Undo(); 820cdf0e10cSrcweir virtual void Redo(); 821cdf0e10cSrcweir 822cdf0e10cSrcweir virtual String GetComment() const; 823cdf0e10cSrcweir }; 824cdf0e10cSrcweir 825cdf0e10cSrcweir //************************************************************ 826cdf0e10cSrcweir // SdrUndoPageChangeMasterPage 827cdf0e10cSrcweir // 828cdf0e10cSrcweir // Aenderung des MasterPageDescriptors (z.B. Aendern der VisibleLayer). 829cdf0e10cSrcweir // Action vor der Aenderung am MasterPageDescriptor erzeugen. 830cdf0e10cSrcweir // 831cdf0e10cSrcweir //************************************************************ 832cdf0e10cSrcweir 833cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoPageChangeMasterPage : public SdrUndoPageMasterPage 834cdf0e10cSrcweir { 835cdf0e10cSrcweir protected: 836cdf0e10cSrcweir sal_Bool mbNewHadMasterPage; 837cdf0e10cSrcweir SetOfByte maNewSet; 838cdf0e10cSrcweir sal_uInt16 maNewMasterPageNumber; 839cdf0e10cSrcweir 840cdf0e10cSrcweir public: 841cdf0e10cSrcweir SdrUndoPageChangeMasterPage(SdrPage& rChangedPage); ~SdrUndoPageChangeMasterPage()84234688d8fSHerbert Dürr virtual ~SdrUndoPageChangeMasterPage() {} 843cdf0e10cSrcweir 844cdf0e10cSrcweir virtual void Undo(); 845cdf0e10cSrcweir virtual void Redo(); 846cdf0e10cSrcweir 847cdf0e10cSrcweir virtual String GetComment() const; 848cdf0e10cSrcweir }; 849cdf0e10cSrcweir 850cdf0e10cSrcweir /////////////////////////////////////////////////////////////////////// 851cdf0e10cSrcweir 852cdf0e10cSrcweir /** the SdrUndoFactory can be set and retrieved from the SdrModel. 853cdf0e10cSrcweir It is used by the drawing layer implementations to create undo actions. 854cdf0e10cSrcweir It can be used by applications to create application specific undo actions. 855cdf0e10cSrcweir */ 856cdf0e10cSrcweir class SVX_DLLPUBLIC SdrUndoFactory 857cdf0e10cSrcweir { 858cdf0e10cSrcweir public: 859cdf0e10cSrcweir // shapes 860cdf0e10cSrcweir virtual ~SdrUndoFactory(); 861cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoMoveObject( SdrObject& rObject ); 862cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoMoveObject( SdrObject& rObject, const Size& rDist ); 863cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoGeoObject( SdrObject& rObject ); 864cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoAttrObject( SdrObject& rObject, bool bStyleSheet1 = false, bool bSaveText = false ); 865cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoRemoveObject( SdrObject& rObject, bool bOrdNumDirect = false); 866cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoInsertObject( SdrObject& rObject, bool bOrdNumDirect = false); 867cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoDeleteObject( SdrObject& rObject, bool bOrdNumDirect = false); 868cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoNewObject( SdrObject& rObject, bool bOrdNumDirect = false); 869cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoCopyObject( SdrObject& rObject, bool bOrdNumDirect = false); 870cdf0e10cSrcweir 871cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoObjectOrdNum( SdrObject& rObject, sal_uInt32 nOldOrdNum1, sal_uInt32 nNewOrdNum1); 872cdf0e10cSrcweir 873cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoReplaceObject( SdrObject& rOldObject, SdrObject& rNewObject, bool bOrdNumDirect = false ); 874cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoObjectLayerChange( SdrObject& rObject, SdrLayerID aOldLayer, SdrLayerID aNewLayer ); 875cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoObjectSetText( SdrObject& rNewObj, sal_Int32 nText ); 876cdf0e10cSrcweir 877cdf0e10cSrcweir // --> OD 2009-07-09 #i73249# 878cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoObjectStrAttr( SdrObject& rObject, 879cdf0e10cSrcweir SdrUndoObjStrAttr::ObjStrAttrType eObjStrAttrType, 880cdf0e10cSrcweir String sOldStr, 881cdf0e10cSrcweir String sNewStr ); 882cdf0e10cSrcweir // <-- 883cdf0e10cSrcweir 884cdf0e10cSrcweir // layer 885cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoNewLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel); 886cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoDeleteLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel); 887cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoMoveLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel, sal_uInt16 nNeuPos1); 888cdf0e10cSrcweir 889cdf0e10cSrcweir // page 890cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoDeletePage(SdrPage& rPage); 891cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoNewPage(SdrPage& rPage); 892cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoCopyPage(SdrPage& rPage); 893cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoSetPageNum(SdrPage& rNewPg, sal_uInt16 nOldPageNum1, sal_uInt16 nNewPageNum1); 894cdf0e10cSrcweir 895cdf0e10cSrcweir // master page 896cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoPageRemoveMasterPage(SdrPage& rChangedPage); 897cdf0e10cSrcweir virtual SdrUndoAction* CreateUndoPageChangeMasterPage(SdrPage& rChangedPage); 898cdf0e10cSrcweir }; 899cdf0e10cSrcweir 900cdf0e10cSrcweir //////////////////////////////////////////////////////////////////////////////////////////////////// 901cdf0e10cSrcweir 902cdf0e10cSrcweir #endif //_SVDUNDO_HXX 903cdf0e10cSrcweir 904