1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
23 #include <svl/solar.hrc>
24 #include <svl/undo.hxx>
25 #include <svl/style.hxx>
26 #include <tools/gen.hxx>
27 #include <svx/svdtypes.hxx> // for enum RepeatFuncts
28 #include <svx/svdsob.hxx>
29 #include "svx/svxdllapi.h"
31 //************************************************************
32 // Vorausdeklarationen
33 //************************************************************
46 class OutlinerParaObject
;
48 //************************************************************
51 // Abstrakte Basisklasse fuer alle UndoActions der DrawingEngine
53 //************************************************************
55 class SVX_DLLPUBLIC SdrUndoAction
: public SfxUndoAction
61 SdrUndoAction(SdrModel
& rNewMod
)
67 virtual ~SdrUndoAction();
69 virtual sal_Bool
CanRepeat(SfxRepeatTarget
& rView
) const;
70 virtual void Repeat(SfxRepeatTarget
& rView
);
72 virtual OUString
GetRepeatComment(SfxRepeatTarget
& rView
) const;
73 virtual OUString
GetSdrRepeatComment(SdrView
& rView
) const;
75 virtual bool CanSdrRepeat(SdrView
& rView
) const;
76 virtual void SdrRepeat(SdrView
& rView
);
79 //************************************************************
82 // Zusammenfassung beliebig vieler einzelner UndoActions zu einer einzigen
83 // UndoAction. Beim Undo() werden die Einzelactions rueckwaets aufgerufen
84 // (die zuletzt angehaengte zuerst...), beim Redo() dagegen entspricht die
85 // Aufrufreihenfolge der Einfuegereihenfolge.
87 //************************************************************
89 class SVX_DLLPUBLIC SdrUndoGroup
: public SdrUndoAction
92 std::vector
<SdrUndoAction
*> aBuf
;
94 // Beschreibung der Action, nicht expandiert (beinhaltet %O)
96 OUString aObjDescription
;
98 SdrRepeatFunc eFunction
;
101 SdrUndoGroup(SdrModel
& rNewMod
);
102 virtual ~SdrUndoGroup();
105 sal_uIntPtr
GetActionCount() const { return aBuf
.size(); }
106 SdrUndoAction
* GetAction(sal_uIntPtr nNum
) const { return aBuf
[nNum
]; }
107 void AddAction(SdrUndoAction
* pAct
);
109 void SetComment(const OUString
& rStr
) { aComment
=rStr
; }
110 void SetObjDescription(const OUString
& rStr
) { aObjDescription
=rStr
; }
111 virtual OUString
GetComment() const;
112 virtual OUString
GetSdrRepeatComment(SdrView
& rView
) const;
117 virtual bool CanSdrRepeat(SdrView
& rView
) const;
118 virtual void SdrRepeat(SdrView
& rView
);
119 void SetRepeatFunction(SdrRepeatFunc eFunc
) { eFunction
=eFunc
; }
120 SdrRepeatFunc
GetRepeatFunction() const { return eFunction
; }
123 //************************************************************
126 // Abstrakte Basisklasse fuer alle UndoActions die mit Objekten zu tun haben.
128 //************************************************************
130 class SVX_DLLPUBLIC SdrUndoObj
: public SdrUndoAction
136 SdrUndoObj(SdrObject
& rNewObj
);
138 void ImpTakeDescriptionStr(sal_uInt16 nStrCacheID
, String
& rStr
, bool bRepeat
= false) const;
140 static void GetDescriptionStringForObject( const SdrObject
& _rForObject
, sal_uInt16 nStrCacheID
, String
& rStr
, bool bRepeat
= false );
142 // #94278# new method for evtl. PageChange at UNDO/REDO
143 void ImpShowPageOfThisObject();
146 //************************************************************
149 // Aenderung der Objektattribute.
150 // Action direkt vor dem Setzen der neuen Attribute konstruieren.
151 // Auch fuer StyleSheets
153 //************************************************************
155 class SVX_DLLPUBLIC SdrUndoAttrObj
: public SdrUndoObj
158 SfxItemSet
* pUndoSet
;
159 SfxItemSet
* pRedoSet
;
160 SfxItemSet
* pRepeatSet
;
162 // oder besser den StyleSheetNamen merken?
163 rtl::Reference
< SfxStyleSheetBase
> mxUndoStyleSheet
;
164 rtl::Reference
< SfxStyleSheetBase
> mxRedoStyleSheet
;
166 bool bHaveToTakeRedoSet
;
168 // Bei Zuweisung von TextItems auf ein Zeichenobjekt mit Text:
169 OutlinerParaObject
* pTextUndo
;
171 // The text rescue mechanism needs also to be implemented for redo actions.
172 OutlinerParaObject
* pTextRedo
;
174 // Wenn sich um ein Gruppenobjekt handelt:
175 SdrUndoGroup
* pUndoGroup
;
177 // helper to ensure StyleSheet is in pool (provided by SdrModel from SdrObject)
178 void ensureStyleSheetInStyleSheetPool(SfxStyleSheetBasePool
& rStyleSheetPool
, SfxStyleSheet
& rSheet
);
181 SdrUndoAttrObj(SdrObject
& rNewObj
, bool bStyleSheet1
= false, bool bSaveText
= false);
182 virtual ~SdrUndoAttrObj();
186 virtual OUString
GetComment() const;
187 virtual OUString
GetSdrRepeatComment(SdrView
& rView
) const;
189 virtual void SdrRepeat(SdrView
& rView
);
190 virtual bool CanSdrRepeat(SdrView
& rView
) const;
193 //************************************************************
196 // Blosses verschieben eines Objektes.
197 // Action direkt vor dem Verschieben konstruieren.
199 //************************************************************
201 class SVX_DLLPUBLIC SdrUndoMoveObj
: public SdrUndoObj
204 Size aDistance
; // Entfernung, um die verschoben wird
207 SdrUndoMoveObj(SdrObject
& rNewObj
): SdrUndoObj(rNewObj
) {}
208 SdrUndoMoveObj(SdrObject
& rNewObj
, const Size
& rDist
): SdrUndoObj(rNewObj
),aDistance(rDist
) {}
209 virtual ~SdrUndoMoveObj();
211 void SetDistance(const Size
& rDist
) { aDistance
=rDist
; }
212 const Size
& GetDistance() const { return aDistance
; }
217 virtual OUString
GetComment() const;
218 virtual OUString
GetSdrRepeatComment(SdrView
& rView
) const;
220 virtual void SdrRepeat(SdrView
& rView
);
221 virtual bool CanSdrRepeat(SdrView
& rView
) const;
224 //************************************************************
227 // Aenderung der Geometrie eines Objektes.
228 // Action direkt vor der geometrischen Transformation konstruieren.
230 //************************************************************
232 class SVX_DLLPUBLIC SdrUndoGeoObj
: public SdrUndoObj
235 SdrObjGeoData
* pUndoGeo
;
236 SdrObjGeoData
* pRedoGeo
;
237 // Wenn sich um ein Gruppenobjekt handelt:
238 SdrUndoGroup
* pUndoGroup
;
241 SdrUndoGeoObj(SdrObject
& rNewObj
);
242 virtual ~SdrUndoGeoObj();
247 virtual OUString
GetComment() const;
250 //************************************************************
253 // Manipulationen an einer ObjList: Neues Obj, DeleteObj, SetObjZLevel, Grouping, ...
254 // Abstrakte Basisklasse.
256 //************************************************************
258 class SVX_DLLPUBLIC SdrUndoObjList
: public SdrUndoObj
{
259 class ObjListListener
;
260 friend class ObjListListener
;
266 SdrObjList
* pObjList
;
267 SdrView
* pView
; // um bei ObjDel, Undo die
268 SdrPageView
* pPageView
; // Selektion widerherstellen zu koennen
270 // Bei einem Undo/Redo findet moeglicherweise Uebereignung des Objektes
271 // statt. Im Dtor wird das Obj deleted, wenn bOwner==TRUE
272 ObjListListener
* m_pListener
;
275 SdrUndoObjList(SdrObject
& rNewObj
, bool bOrdNumDirect
= false);
276 virtual ~SdrUndoObjList();
278 void SetView(SdrView
* pView1
, SdrPageView
* pPageView1
) { pView
=pView1
; pPageView
=pPageView1
; }
279 bool IsOwner() { return bOwner
; }
280 void SetOwner(bool bNew
);
283 sal_uInt32
GetOrdNum() const;
284 void SetOrdNum(sal_uInt32 nOrdNum_
);
287 //************************************************************
290 // Entfernen Objekts aus einer Objektliste. Innerhalb einer UndoGroup
291 // mit korrospondierenden Inserts zu verwenden.
292 // Action vor dem entfernen aus der ObjList konstruieren.
294 //************************************************************
296 class SVX_DLLPUBLIC SdrUndoRemoveObj
: public SdrUndoObjList
299 SdrUndoRemoveObj(SdrObject
& rNewObj
, bool bOrdNumDirect
= false)
300 : SdrUndoObjList(rNewObj
,bOrdNumDirect
) {}
306 //************************************************************
309 // Einfuegen Objekts in eine Objektliste. Innerhalb einer UndoGroup
310 // mit korrospondierenden Removes zu verwenden.
311 // Action vor dem entfernen aus der ObjList konstruieren.
313 //************************************************************
315 class SVX_DLLPUBLIC SdrUndoInsertObj
: public SdrUndoObjList
318 SdrUndoInsertObj(SdrObject
& rNewObj
, bool bOrdNumDirect
= false)
319 : SdrUndoObjList(rNewObj
,bOrdNumDirect
) {}
325 //************************************************************
328 // Loeschen eines Objekts.
329 // Action vor dem entfernen aus der ObjList konstruieren.
331 //************************************************************
333 class SVX_DLLPUBLIC SdrUndoDelObj
: public SdrUndoRemoveObj
336 SdrUndoDelObj(SdrObject
& rNewObj
, bool bOrdNumDirect
= false)
337 : SdrUndoRemoveObj(rNewObj
,bOrdNumDirect
) { SetOwner(sal_True
); }
342 virtual OUString
GetComment() const;
343 virtual OUString
GetSdrRepeatComment(SdrView
& rView
) const;
345 virtual void SdrRepeat(SdrView
& rView
);
346 virtual bool CanSdrRepeat(SdrView
& rView
) const;
349 //************************************************************
352 // Einfuegen eines neuen Objektes.
353 // Action nach dem einfuegen in die ObjList konstruieren.
355 //************************************************************
357 class SVX_DLLPUBLIC SdrUndoNewObj
: public SdrUndoInsertObj
360 SdrUndoNewObj(SdrObject
& rNewObj
, bool bOrdNumDirect
= false)
361 : SdrUndoInsertObj(rNewObj
,bOrdNumDirect
) {}
366 virtual OUString
GetComment() const;
368 static OUString
GetComment(const SdrObject
& _rForObject
);
371 //************************************************************
374 // Austausch eines Objektes.
375 // Action vor dem Replace an der ObjList konstruieren.
377 //************************************************************
379 class SVX_DLLPUBLIC SdrUndoReplaceObj
: public SdrUndoObj
385 SdrObjList
* pObjList
;
390 SdrUndoReplaceObj(SdrObject
& rOldObj1
, SdrObject
& rNewObj1
, bool bOrdNumDirect
= false);
391 virtual ~SdrUndoReplaceObj();
396 bool IsNewOwner() { return bNewOwner
; }
397 void SetNewOwner(bool bNew
);
399 bool IsOldOwner() { return bOldOwner
; }
400 void SetOldOwner(bool bNew
);
403 //************************************************************
406 // Kopieren eines Objekts
407 // Action nach dem einfuegen in die ObjList konstruieren.
409 //************************************************************
411 class SdrUndoCopyObj
: public SdrUndoNewObj
414 SdrUndoCopyObj(SdrObject
& rNewObj
, bool bOrdNumDirect
= false)
415 : SdrUndoNewObj(rNewObj
,bOrdNumDirect
) {}
417 virtual OUString
GetComment() const;
420 //************************************************************
422 //************************************************************
424 class SdrUndoObjOrdNum
: public SdrUndoObj
427 sal_uInt32 nOldOrdNum
;
428 sal_uInt32 nNewOrdNum
;
431 SdrUndoObjOrdNum(SdrObject
& rNewObj
, sal_uInt32 nOldOrdNum1
, sal_uInt32 nNewOrdNum1
);
436 virtual OUString
GetComment() const;
439 //////////////////////////////////////////////////////////////////////////////
442 class SVX_DLLPUBLIC SdrUndoObjectLayerChange
: public SdrUndoObj
445 SdrLayerID maOldLayer
;
446 SdrLayerID maNewLayer
;
449 SdrUndoObjectLayerChange(SdrObject
& rObj
, SdrLayerID aOldLayer
, SdrLayerID aNewLayer
);
455 //************************************************************
457 //************************************************************
459 class SVX_DLLPUBLIC SdrUndoObjSetText
: public SdrUndoObj
462 OutlinerParaObject
* pOldText
;
463 OutlinerParaObject
* pNewText
;
464 bool bNewTextAvailable
;
465 sal_Bool bEmptyPresObj
;
469 SdrUndoObjSetText(SdrObject
& rNewObj
, sal_Int32 nText
);
470 virtual ~SdrUndoObjSetText();
472 bool IsDifferent() const { return pOldText
!=pNewText
; }
478 virtual OUString
GetComment() const;
479 virtual OUString
GetSdrRepeatComment(SdrView
& rView
) const;
481 virtual void SdrRepeat(SdrView
& rView
);
482 virtual bool CanSdrRepeat(SdrView
& rView
) const;
485 // Implement Title/Description Elements UI for Writer text frames, graphics and embedded objects (#i73249#)
486 class SdrUndoObjStrAttr
: public SdrUndoObj
497 const ObjStrAttrType meObjStrAttr
;
498 const String msOldStr
;
499 const String msNewStr
;
502 SdrUndoObjStrAttr( SdrObject
& rNewObj
,
503 const ObjStrAttrType eObjStrAttr
,
504 const String
& sOldStr
,
505 const String
& sNewStr
);
510 virtual OUString
GetComment() const;
513 ////////////////////////////////////////////////////////////////////////////////////////////////////
515 // @@ @@@@ @@ @@ @@@@@ @@@@@
516 // @@ @@ @@ @@ @@ @@ @@ @@
517 // @@ @@ @@ @@ @@ @@ @@ @@
518 // @@ @@@@@@ @@@@ @@@@ @@@@@
519 // @@ @@ @@ @@ @@ @@ @@
520 // @@ @@ @@ @@ @@ @@ @@
521 // @@@@@ @@ @@ @@ @@@@@ @@ @@
523 ////////////////////////////////////////////////////////////////////////////////////////////////////
525 //************************************************************
528 // Abstrakte Basisklasse fuer alle UndoActions die mit SdrLayer zu tun haben.
530 //************************************************************
532 class SdrUndoLayer
: public SdrUndoAction
536 SdrLayerAdmin
* pLayerAdmin
;
541 SdrUndoLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
);
542 virtual ~SdrUndoLayer();
545 //************************************************************
548 // Einfuegen eines neuen Layer. Action nach dem Einfuegen konstruieren.
550 //************************************************************
552 class SdrUndoNewLayer
: public SdrUndoLayer
555 SdrUndoNewLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
)
556 : SdrUndoLayer(nLayerNum
,rNewLayerAdmin
,rNewModel
) {}
561 virtual OUString
GetComment() const;
564 //************************************************************
567 // Loeschen eines Layer. Action vor dem Remove konstruieren
569 //************************************************************
571 class SdrUndoDelLayer
: public SdrUndoLayer
574 SdrUndoDelLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
)
575 : SdrUndoLayer(nLayerNum
,rNewLayerAdmin
,rNewModel
) { bItsMine
=sal_True
; }
580 virtual OUString
GetComment() const;
583 //************************************************************
586 // Verschieben eines Layer. Action vor dem Verschieben konstruieren.
588 //************************************************************
590 class SdrUndoMoveLayer
: public SdrUndoLayer
595 SdrUndoMoveLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
, sal_uInt16 nNeuPos1
)
596 : SdrUndoLayer(nLayerNum
,rNewLayerAdmin
,rNewModel
), nNeuPos(nNeuPos1
) {}
601 virtual OUString
GetComment() const;
604 ////////////////////////////////////////////////////////////////////////////////////////////////////
606 // @@@@@ @@@@ @@@@ @@@@@ @@@@
607 // @@ @@ @@ @@ @@ @@ @@ @@ @@
608 // @@ @@ @@ @@ @@ @@ @@
609 // @@@@@ @@@@@@ @@ @@@ @@@@ @@@@
610 // @@ @@ @@ @@ @@ @@ @@
611 // @@ @@ @@ @@ @@ @@ @@ @@
612 // @@ @@ @@ @@@@@ @@@@@ @@@@
614 ////////////////////////////////////////////////////////////////////////////////////////////////////
616 //************************************************************
619 // Abstrakte Basisklasse fuer alle UndoActions die mit SdrPages zu tun haben.
621 //************************************************************
623 class SVX_DLLPUBLIC SdrUndoPage
: public SdrUndoAction
629 void ImpInsertPage(sal_uInt16 nNum
);
630 void ImpRemovePage(sal_uInt16 nNum
);
631 void ImpMovePage(sal_uInt16 nOldNum
, sal_uInt16 nNewNum
);
634 SdrUndoPage(SdrPage
& rNewPg
);
636 void ImpTakeDescriptionStr(sal_uInt16 nStrCacheID
, String
& rStr
, sal_uInt16 n
=0, bool bRepeat
= false) const;
639 //************************************************************
642 // Manipulationen an einer PageList: Neue Page, DeletePage, MovePage(ChangePageNum)
643 // Abstrakte Basisklasse.
645 //************************************************************
647 class SVX_DLLPUBLIC SdrUndoPageList
: public SdrUndoPage
652 // Bei einem Undo/Redo findet moeglicherweise Uebereignung der Page
653 // statt. Im Dtor wird die Page deleted, wenn bItsMine==TRUE
657 SdrUndoPageList(SdrPage
& rNewPg
);
658 virtual ~SdrUndoPageList();
661 //************************************************************
664 // Loeschen einer Page.
665 // Action vor dem entfernen aus der List konstruieren.
667 //************************************************************
669 class SVX_DLLPUBLIC SdrUndoDelPage
: public SdrUndoPageList
671 // Beim loeschen einer MasterPage merke ich mir in dieser UndoGroup
672 // alle Beziehungen der Zeichenseiten zu der geloeschten MasterPage
673 SdrUndoGroup
* pUndoGroup
;
676 SdrUndoDelPage(SdrPage
& rNewPg
);
677 virtual ~SdrUndoDelPage();
682 virtual OUString
GetComment() const;
683 virtual OUString
GetSdrRepeatComment(SdrView
& rView
) const;
685 virtual void SdrRepeat(SdrView
& rView
);
686 virtual bool CanSdrRepeat(SdrView
& rView
) const;
689 //************************************************************
692 // Einfuegen einer neuen Page.
693 // Action nach dem einfuegen in die Liste konstruieren.
695 //************************************************************
697 class SVX_DLLPUBLIC SdrUndoNewPage
: public SdrUndoPageList
700 SdrUndoNewPage(SdrPage
& rNewPg
): SdrUndoPageList(rNewPg
) {}
705 virtual OUString
GetComment() const;
708 //************************************************************
711 // Kopieren einer Page
712 // Action nach dem einfuegen in die Liste konstruieren.
714 //************************************************************
716 class SdrUndoCopyPage
: public SdrUndoNewPage
719 SdrUndoCopyPage(SdrPage
& rNewPg
): SdrUndoNewPage(rNewPg
) {}
721 virtual OUString
GetComment() const;
722 virtual OUString
GetSdrRepeatComment(SdrView
& rView
) const;
724 virtual void SdrRepeat(SdrView
& rView
);
725 virtual bool CanSdrRepeat(SdrView
& rView
) const;
728 //************************************************************
731 // Verschieben der Page innerhalb der Liste
732 // Action vor dem Verschieben der Page konstruieren.
734 //************************************************************
736 class SVX_DLLPUBLIC SdrUndoSetPageNum
: public SdrUndoPage
739 sal_uInt16 nOldPageNum
;
740 sal_uInt16 nNewPageNum
;
743 SdrUndoSetPageNum(SdrPage
& rNewPg
, sal_uInt16 nOldPageNum1
, sal_uInt16 nNewPageNum1
)
744 : SdrUndoPage(rNewPg
),nOldPageNum(nOldPageNum1
),nNewPageNum(nNewPageNum1
) {}
749 virtual OUString
GetComment() const;
752 ////////////////////////////////////////////////////////////////////////////////////////////////////
754 // @@ @@ @@@@ @@@@ @@@@@@ @@@@@ @@@@@ @@@@@ @@@@ @@@@ @@@@@ @@@@
755 // @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
756 // @@@@@@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
757 // @@@@@@@ @@@@@@ @@@@ @@ @@@@ @@@@@ @@@@@ @@@@@@ @@ @@@ @@@@ @@@@
758 // @@ @ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
759 // @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
760 // @@ @@ @@ @@ @@@@ @@ @@@@@ @@ @@ @@ @@ @@ @@@@@ @@@@@ @@@@
762 ////////////////////////////////////////////////////////////////////////////////////////////////////
764 //************************************************************
765 // SdrUndoPageMasterPage
767 // Abstrakte Basisklasse fuer alle UndoActions die mit
768 // MasterPage-Beziehungen zu tun haben.
770 //************************************************************
772 class SdrUndoPageMasterPage
: public SdrUndoPage
775 sal_Bool mbOldHadMasterPage
;
777 sal_uInt16 maOldMasterPageNumber
;
780 SdrUndoPageMasterPage(SdrPage
& rChangedPage
);
783 SVX_DLLPUBLIC
virtual ~SdrUndoPageMasterPage();
786 //************************************************************
787 // SdrUndoPageRemoveMasterPage
789 // Entfernen einer MasterPage von einer Zeichenseite.
790 // Action vor dem Entfernen des MasterPageDescriptors erzeugen.
792 //************************************************************
794 class SdrUndoPageRemoveMasterPage
: public SdrUndoPageMasterPage
797 SdrUndoPageRemoveMasterPage(SdrPage
& rChangedPage
);
802 virtual OUString
GetComment() const;
805 //************************************************************
806 // SdrUndoPageChangeMasterPage
808 // Aenderung des MasterPageDescriptors (z.B. Aendern der VisibleLayer).
809 // Action vor der Aenderung am MasterPageDescriptor erzeugen.
811 //************************************************************
813 class SVX_DLLPUBLIC SdrUndoPageChangeMasterPage
: public SdrUndoPageMasterPage
816 sal_Bool mbNewHadMasterPage
;
818 sal_uInt16 maNewMasterPageNumber
;
821 SdrUndoPageChangeMasterPage(SdrPage
& rChangedPage
);
826 virtual OUString
GetComment() const;
829 ///////////////////////////////////////////////////////////////////////
831 /** the SdrUndoFactory can be set and retrieved from the SdrModel.
832 It is used by the drawing layer implementations to create undo actions.
833 It can be used by applications to create application specific undo actions.
835 class SVX_DLLPUBLIC SdrUndoFactory
839 virtual ~SdrUndoFactory();
840 virtual SdrUndoAction
* CreateUndoMoveObject( SdrObject
& rObject
);
841 virtual SdrUndoAction
* CreateUndoMoveObject( SdrObject
& rObject
, const Size
& rDist
);
842 virtual SdrUndoAction
* CreateUndoGeoObject( SdrObject
& rObject
);
843 virtual SdrUndoAction
* CreateUndoAttrObject( SdrObject
& rObject
, bool bStyleSheet1
= false, bool bSaveText
= false );
844 virtual SdrUndoAction
* CreateUndoRemoveObject( SdrObject
& rObject
, bool bOrdNumDirect
= false);
845 virtual SdrUndoAction
* CreateUndoInsertObject( SdrObject
& rObject
, bool bOrdNumDirect
= false);
846 virtual SdrUndoAction
* CreateUndoDeleteObject( SdrObject
& rObject
, bool bOrdNumDirect
= false);
847 virtual SdrUndoAction
* CreateUndoNewObject( SdrObject
& rObject
, bool bOrdNumDirect
= false);
848 virtual SdrUndoAction
* CreateUndoCopyObject( SdrObject
& rObject
, bool bOrdNumDirect
= false);
850 virtual SdrUndoAction
* CreateUndoObjectOrdNum( SdrObject
& rObject
, sal_uInt32 nOldOrdNum1
, sal_uInt32 nNewOrdNum1
);
852 virtual SdrUndoAction
* CreateUndoReplaceObject( SdrObject
& rOldObject
, SdrObject
& rNewObject
, bool bOrdNumDirect
= false );
853 virtual SdrUndoAction
* CreateUndoObjectLayerChange( SdrObject
& rObject
, SdrLayerID aOldLayer
, SdrLayerID aNewLayer
);
854 virtual SdrUndoAction
* CreateUndoObjectSetText( SdrObject
& rNewObj
, sal_Int32 nText
);
856 // Implement Title/Description Elements UI for Writer text frames, graphics and embedded objects (#i73249#)
857 virtual SdrUndoAction
* CreateUndoObjectStrAttr( SdrObject
& rObject
,
858 SdrUndoObjStrAttr::ObjStrAttrType eObjStrAttrType
,
863 virtual SdrUndoAction
* CreateUndoNewLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
);
864 virtual SdrUndoAction
* CreateUndoDeleteLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
);
865 virtual SdrUndoAction
* CreateUndoMoveLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
, sal_uInt16 nNeuPos1
);
868 virtual SdrUndoAction
* CreateUndoDeletePage(SdrPage
& rPage
);
869 virtual SdrUndoAction
* CreateUndoNewPage(SdrPage
& rPage
);
870 virtual SdrUndoAction
* CreateUndoCopyPage(SdrPage
& rPage
);
871 virtual SdrUndoAction
* CreateUndoSetPageNum(SdrPage
& rNewPg
, sal_uInt16 nOldPageNum1
, sal_uInt16 nNewPageNum1
);
874 virtual SdrUndoAction
* CreateUndoPageRemoveMasterPage(SdrPage
& rChangedPage
);
875 virtual SdrUndoAction
* CreateUndoPageChangeMasterPage(SdrPage
& rChangedPage
);
878 ////////////////////////////////////////////////////////////////////////////////////////////////////
880 #endif //_SVDUNDO_HXX
882 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */