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 .
22 #include <config_options.h>
23 #include <sal/config.h>
28 #include <editeng/outlobj.hxx>
29 #include <svl/itemset.hxx>
30 #include <svl/undo.hxx>
31 #include <svl/style.hxx>
32 #include <tools/gen.hxx>
33 #include <svx/svdtypes.hxx>
34 #include <svx/svdsob.hxx>
35 #include <svx/svxdllapi.h>
36 #include <unotools/resmgr.hxx>
50 class OutlinerParaObject
;
52 namespace svx
{ namespace diagram
{
53 class DiagramDataState
;
57 * Abstract base class (ABC) for all UndoActions of DrawingEngine
60 class SVXCORE_DLLPUBLIC SdrUndoAction
: public SfxUndoAction
64 ViewShellId m_nViewShellId
;
67 SdrUndoAction(SdrModel
& rNewMod
);
70 virtual ~SdrUndoAction() override
;
72 virtual bool CanRepeat(SfxRepeatTarget
& rView
) const override
;
73 virtual void Repeat(SfxRepeatTarget
& rView
) override
;
75 virtual OUString
GetRepeatComment(SfxRepeatTarget
& rView
) const override
;
76 virtual OUString
GetSdrRepeatComment() const;
78 virtual bool CanSdrRepeat(SdrView
& rView
) const;
79 virtual void SdrRepeat(SdrView
& rView
);
81 /// See SfxUndoAction::GetViewShellId().
82 ViewShellId
GetViewShellId() const override
;
86 * Aggregation of arbitrarily many UndoActions to a single UndoAction.
87 * Undo() executes the single UndoActions backwards (LIFO, first the last
88 * ones attached), Redo() executes the UndoActions in the order they were
92 class SVXCORE_DLLPUBLIC SdrUndoGroup final
: public SdrUndoAction
94 std::vector
<std::unique_ptr
<SdrUndoAction
>> maActions
;
96 // No expanded description of the Action (contains %O)
98 OUString m_aObjDescription
;
100 SdrRepeatFunc m_eFunction
;
103 SdrUndoGroup(SdrModel
& rNewMod
);
104 virtual ~SdrUndoGroup() override
;
106 sal_Int32
GetActionCount() const { return maActions
.size(); }
107 SdrUndoAction
* GetAction(sal_Int32 nNum
) const { return maActions
[nNum
].get(); }
108 void AddAction(std::unique_ptr
<SdrUndoAction
> pAct
);
110 void SetComment(const OUString
& rStr
) { m_aComment
=rStr
; }
111 void SetObjDescription(const OUString
& rStr
) { m_aObjDescription
=rStr
; }
112 virtual OUString
GetComment() const override
;
113 virtual OUString
GetSdrRepeatComment() const override
;
115 virtual void Undo() override
;
116 virtual void Redo() override
;
118 virtual bool CanSdrRepeat(SdrView
& rView
) const override
;
119 virtual void SdrRepeat(SdrView
& rView
) override
;
120 void SetRepeatFunction(SdrRepeatFunc eFunc
) { m_eFunction
=eFunc
; }
124 * Abstract base class for all UndoActions that handle objects.
127 class SVXCORE_DLLPUBLIC SdrUndoObj
: public SdrUndoAction
130 rtl::Reference
<SdrObject
> mxObj
;
133 SdrUndoObj(SdrObject
& rNewObj
);
134 virtual ~SdrUndoObj() override
;
136 OUString
ImpGetDescriptionStr(TranslateId pStrCacheID
, bool bRepeat
= false) const;
138 [[nodiscard
]] static OUString
GetDescriptionStringForObject( const SdrObject
& _rForObject
, TranslateId pStrCacheID
, bool bRepeat
= false );
140 // #94278# new method for evtl. PageChange at UNDO/REDO
141 void ImpShowPageOfThisObject();
145 * Changing the object attributes.
146 * Create Action right before setting the new attributes.
147 * Also for StyleSheets.
150 class SVXCORE_DLLPUBLIC SdrUndoAttrObj
: public SdrUndoObj
152 std::optional
<SfxItemSet
> moUndoSet
;
153 std::optional
<SfxItemSet
> moRedoSet
;
155 // FIXME: Or should we better remember the StyleSheetNames?
156 rtl::Reference
< SfxStyleSheet
> mxUndoStyleSheet
;
157 rtl::Reference
< SfxStyleSheet
> mxRedoStyleSheet
;
159 bool m_bHaveToTakeRedoSet
;
161 // When assigning TextItems to a drawing object with text:
162 std::optional
<OutlinerParaObject
> m_pTextUndo
;
164 // The text rescue mechanism needs also to be implemented for redo actions.
165 std::optional
<OutlinerParaObject
> m_pTextRedo
;
167 // If we have a group object:
168 std::unique_ptr
<SdrUndoGroup
> m_pUndoGroup
;
171 // Helper to ensure StyleSheet is in pool (provided by SdrModel from SdrObject)
172 static void ensureStyleSheetInStyleSheetPool(SfxStyleSheetBasePool
& rStyleSheetPool
, SfxStyleSheet
& rSheet
);
175 SdrUndoAttrObj(SdrObject
& rNewObj
, bool bStyleSheet1
= false, bool bSaveText
= false);
176 virtual ~SdrUndoAttrObj() override
;
177 virtual void Undo() override
;
178 virtual void Redo() override
;
180 virtual OUString
GetComment() const override
;
181 virtual OUString
GetSdrRepeatComment() const override
;
185 * Only moving of an object.
186 * Create Action right before moving.
189 class SVXCORE_DLLPUBLIC SdrUndoMoveObj final
: public SdrUndoObj
191 Size m_aDistance
; // Distance by which we move
194 SdrUndoMoveObj(SdrObject
& rNewObj
, const Size
& rDist
): SdrUndoObj(rNewObj
),m_aDistance(rDist
) {}
195 virtual ~SdrUndoMoveObj() override
;
197 virtual void Undo() override
;
198 virtual void Redo() override
;
200 virtual OUString
GetComment() const override
;
201 virtual OUString
GetSdrRepeatComment() const override
;
203 virtual void SdrRepeat(SdrView
& rView
) override
;
204 virtual bool CanSdrRepeat(SdrView
& rView
) const override
;
208 * Changing the geometry of an object.
209 * Create Action right before the geometric transformation.
212 class SVXCORE_DLLPUBLIC SdrUndoGeoObj
: public SdrUndoObj
214 std::unique_ptr
<SdrObjGeoData
> m_pUndoGeo
;
215 std::unique_ptr
<SdrObjGeoData
> m_pRedoGeo
;
216 // If we have a group object:
217 std::unique_ptr
<SdrUndoGroup
> m_pUndoGroup
;
218 /// If we have a table object, should its layout change?
219 bool mbSkipChangeLayout
;
222 SdrUndoGeoObj(SdrObject
& rNewObj
);
223 virtual ~SdrUndoGeoObj() override
;
225 virtual void Undo() override
;
226 virtual void Redo() override
;
228 virtual OUString
GetComment() const override
;
229 void SetSkipChangeLayout(bool bOn
) { mbSkipChangeLayout
=bOn
; }
232 // Diagram ModelData changes
233 class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC
) SdrUndoDiagramModelData final
: public SdrUndoObj
235 std::shared_ptr
< svx::diagram::DiagramDataState
> m_aStartState
;
236 std::shared_ptr
< svx::diagram::DiagramDataState
> m_aEndState
;
238 void implUndoRedo(bool bUndo
);
241 SdrUndoDiagramModelData(SdrObject
& rNewObj
, std::shared_ptr
< svx::diagram::DiagramDataState
>& rStartState
);
242 virtual ~SdrUndoDiagramModelData() override
;
244 virtual void Undo() override
;
245 virtual void Redo() override
;
247 virtual OUString
GetComment() const override
;
251 * Manipulation of an ObjList: New Object, DeleteObj, SetObjZLevel, Grouping, ...
252 * Abstract base class.
255 class SVXCORE_DLLPUBLIC SdrUndoObjList
: public SdrUndoObj
{
256 class ObjListListener
;
257 friend class ObjListListener
;
260 SdrObjList
* pObjList
;
264 SdrUndoObjList(SdrObject
& rNewObj
, bool bOrdNumDirect
);
265 virtual ~SdrUndoObjList() override
;
269 * Removing an Object from an ObjectList.
270 * To be used with corresponding Inserts within a UndoGroup.
272 * Create Action before removing from the ObjList.
275 class SVXCORE_DLLPUBLIC SdrUndoRemoveObj
: public SdrUndoObjList
278 SdrUndoRemoveObj(SdrObject
& rNewObj
, bool bOrdNumDirect
= false)
279 : SdrUndoObjList(rNewObj
,bOrdNumDirect
) {}
281 virtual void Undo() override
;
282 virtual void Redo() override
;
284 virtual ~SdrUndoRemoveObj() override
;
288 * Inserting Objects into an ObjectList.
289 * Use with corresponding Removes within an UndoGroup.
290 * Create Action before removal from ObjList.
293 class SVXCORE_DLLPUBLIC SdrUndoInsertObj
: public SdrUndoObjList
296 SdrUndoInsertObj(SdrObject
& rNewObj
, bool bOrdNumDirect
= false)
297 : SdrUndoObjList(rNewObj
,bOrdNumDirect
) {}
299 virtual void Undo() override
;
300 virtual void Redo() override
;
304 * Deleting an Object.
305 * Create Action before removing from ObjList.
308 class SVXCORE_DLLPUBLIC SdrUndoDelObj
: public SdrUndoRemoveObj
311 SdrUndoDelObj(SdrObject
& rNewObj
, bool bOrdNumDirect
= false);
313 virtual void Undo() override
;
314 virtual void Redo() override
;
316 virtual OUString
GetComment() const override
;
317 virtual OUString
GetSdrRepeatComment() const override
;
319 virtual void SdrRepeat(SdrView
& rView
) override
;
320 virtual bool CanSdrRepeat(SdrView
& rView
) const override
;
324 * Inserting a NEW Object.
325 * Create Action after insertion into the ObjList.
328 class SVXCORE_DLLPUBLIC SdrUndoNewObj
: public SdrUndoInsertObj
331 SdrUndoNewObj(SdrObject
& rNewObj
, bool bOrdNumDirect
= false)
332 : SdrUndoInsertObj(rNewObj
,bOrdNumDirect
) {}
334 virtual void Undo() override
;
335 virtual void Redo() override
;
337 virtual OUString
GetComment() const override
;
339 static OUString
GetComment(const SdrObject
& _rForObject
);
343 * Replacing an Object.
344 * Create Action before Replace in ObjList.
347 class SVXCORE_DLLPUBLIC SdrUndoReplaceObj
: public SdrUndoObj
349 SdrObjList
* m_pObjList
;
350 rtl::Reference
<SdrObject
> mxNewObj
;
353 SdrUndoReplaceObj(SdrObject
& rOldObj1
, SdrObject
& rNewObj1
);
354 virtual ~SdrUndoReplaceObj() override
;
356 virtual void Undo() override
;
357 virtual void Redo() override
;
362 * Create Action before inserting into the ObjList.
365 class SdrUndoCopyObj final
: public SdrUndoNewObj
368 SdrUndoCopyObj(SdrObject
& rNewObj
, bool bOrdNumDirect
)
369 : SdrUndoNewObj(rNewObj
,bOrdNumDirect
) {}
371 virtual OUString
GetComment() const override
;
374 class SdrUndoObjOrdNum final
: public SdrUndoObj
376 sal_uInt32 m_nOldOrdNum
;
377 sal_uInt32 m_nNewOrdNum
;
380 SdrUndoObjOrdNum(SdrObject
& rNewObj
, sal_uInt32 nOldOrdNum1
, sal_uInt32 nNewOrdNum1
);
382 virtual void Undo() override
;
383 virtual void Redo() override
;
385 virtual OUString
GetComment() const override
;
388 class SdrUndoSort final
: public SdrUndoAction
391 ::std::vector
<sal_Int32
> m_OldSortOrder
;
392 ::std::vector
<sal_Int32
> m_NewSortOrder
;
393 sal_uInt16
const m_nPage
;
395 void Do(::std::vector
<sal_Int32
> & rSortOrder
);
398 SdrUndoSort(const SdrPage
& rPage
,
399 ::std::vector
<sal_Int32
> const& rSortOrder
);
401 virtual void Undo() override
;
402 virtual void Redo() override
;
404 virtual OUString
GetComment() const override
;
409 class SVXCORE_DLLPUBLIC SdrUndoObjectLayerChange final
: public SdrUndoObj
411 SdrLayerID maOldLayer
;
412 SdrLayerID maNewLayer
;
415 SdrUndoObjectLayerChange(SdrObject
& rObj
, SdrLayerID aOldLayer
, SdrLayerID aNewLayer
);
417 virtual void Undo() override
;
418 virtual void Redo() override
;
421 class SVXCORE_DLLPUBLIC SdrUndoObjSetText
: public SdrUndoObj
423 std::optional
<OutlinerParaObject
>
425 std::optional
<OutlinerParaObject
>
427 bool m_bNewTextAvailable
;
428 bool m_bEmptyPresObj
;
432 SdrUndoObjSetText(SdrObject
& rNewObj
, sal_Int32 nText
);
433 virtual ~SdrUndoObjSetText() override
;
435 bool IsDifferent() const;
438 virtual void Undo() override
;
439 virtual void Redo() override
;
441 virtual OUString
GetComment() const override
;
442 virtual OUString
GetSdrRepeatComment() const override
;
444 virtual void SdrRepeat(SdrView
& rView
) override
;
445 virtual bool CanSdrRepeat(SdrView
& rView
) const override
;
449 * Implement Title/Description Elements UI for Writer
450 * text frames, graphics and embedded objects (#i73249#)
452 class SdrUndoObjStrAttr final
: public SdrUndoObj
455 enum class ObjStrAttrType
462 SdrUndoObjStrAttr( SdrObject
& rNewObj
,
463 const ObjStrAttrType eObjStrAttr
,
467 virtual void Undo() override
;
468 virtual void Redo() override
;
470 virtual OUString
GetComment() const override
;
473 const ObjStrAttrType meObjStrAttr
;
474 const OUString msOldStr
;
475 const OUString msNewStr
;
479 class SdrUndoObjDecorative final
: public SdrUndoObj
482 bool const m_WasDecorative
;
485 SdrUndoObjDecorative(SdrObject
& rObj
, bool const WasDecorative
);
487 virtual void Undo() override
;
488 virtual void Redo() override
;
490 virtual OUString
GetComment() const override
;
499 * Abstract base class for all UndoActions that have something to do with SdrLayer.
502 class SdrUndoLayer
: public SdrUndoAction
506 SdrLayerAdmin
* pLayerAdmin
;
511 SdrUndoLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
);
512 virtual ~SdrUndoLayer() override
;
516 * Inserting a new Layer.
517 * Create Action after Insertion.
520 class SdrUndoNewLayer final
: public SdrUndoLayer
523 SdrUndoNewLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
)
524 : SdrUndoLayer(nLayerNum
,rNewLayerAdmin
,rNewModel
) {}
526 virtual void Undo() override
;
527 virtual void Redo() override
;
529 virtual OUString
GetComment() const override
;
534 * Create Action before the Remove.
537 class SdrUndoDelLayer final
: public SdrUndoLayer
540 SdrUndoDelLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
)
541 : SdrUndoLayer(nLayerNum
,rNewLayerAdmin
,rNewModel
) { bItsMine
=true; }
543 virtual void Undo() override
;
544 virtual void Redo() override
;
546 virtual OUString
GetComment() const override
;
554 * ABC for all UndoActions that have something to do with SdrPages.
557 class SdrUndoPage
: public SdrUndoAction
560 rtl::Reference
<SdrPage
> mxPage
;
563 void ImpInsertPage(sal_uInt16 nNum
);
564 void ImpRemovePage(sal_uInt16 nNum
);
565 void ImpMovePage(sal_uInt16 nOldNum
, sal_uInt16 nNewNum
);
568 SdrUndoPage(SdrPage
& rNewPg
);
571 static OUString
ImpGetDescriptionStr(TranslateId pStrCacheID
);
575 * ABC for manipulation of a PageList: New Page, DeletePage, MovePage (ChangePageNum).
578 class SVXCORE_DLLPUBLIC SdrUndoPageList
: public SdrUndoPage
584 SdrUndoPageList(SdrPage
& rNewPg
);
585 virtual ~SdrUndoPageList() override
;
590 * Create Action before removing from the List.
593 class SVXCORE_DLLPUBLIC SdrUndoDelPage final
: public SdrUndoPageList
595 // When deleting a MasterPage, we remember all relations of the
596 // Character Page with the MasterPage in this UndoGroup.
597 std::unique_ptr
<SdrUndoGroup
> m_pUndoGroup
;
598 std::unique_ptr
<SfxPoolItem
> mpFillBitmapItem
;
599 bool mbHasFillBitmap
;
602 SdrUndoDelPage(SdrPage
& rNewPg
);
603 virtual ~SdrUndoDelPage() override
;
605 virtual void Undo() override
;
606 virtual void Redo() override
;
608 virtual OUString
GetComment() const override
;
609 virtual OUString
GetSdrRepeatComment() const override
;
611 virtual void SdrRepeat(SdrView
& rView
) override
;
612 virtual bool CanSdrRepeat(SdrView
& rView
) const override
;
615 void queryFillBitmap(const SfxItemSet
&rItemSet
);
616 void clearFillBitmap();
617 void restoreFillBitmap();
621 * Inserting a new Page.
622 * Create Action after inserting into the List.
625 class SVXCORE_DLLPUBLIC SdrUndoNewPage
: public SdrUndoPageList
628 SdrUndoNewPage(SdrPage
& rNewPg
): SdrUndoPageList(rNewPg
) {}
630 virtual void Undo() override
;
631 virtual void Redo() override
;
633 virtual OUString
GetComment() const override
;
638 * Create Action after inserting into the List.
641 class SdrUndoCopyPage final
: public SdrUndoNewPage
644 SdrUndoCopyPage(SdrPage
& rNewPg
): SdrUndoNewPage(rNewPg
) {}
646 virtual OUString
GetComment() const override
;
647 virtual OUString
GetSdrRepeatComment() const override
;
649 virtual void SdrRepeat(SdrView
& rView
) override
;
650 virtual bool CanSdrRepeat(SdrView
& rView
) const override
;
654 * Moving a Page within the List.
655 * Create Action before moving the Page.
658 class SdrUndoSetPageNum final
: public SdrUndoPage
660 sal_uInt16 m_nOldPageNum
;
661 sal_uInt16 m_nNewPageNum
;
664 SdrUndoSetPageNum(SdrPage
& rNewPg
, sal_uInt16 nOldPageNum1
, sal_uInt16 nNewPageNum1
)
665 : SdrUndoPage(rNewPg
),m_nOldPageNum(nOldPageNum1
),m_nNewPageNum(nNewPageNum1
) {}
667 virtual void Undo() override
;
668 virtual void Redo() override
;
670 virtual OUString
GetComment() const override
;
679 * ABC for all UndoActions that have something to do with
680 * MasterPage relationships.
683 class SdrUndoPageMasterPage
: public SdrUndoPage
686 bool mbOldHadMasterPage
;
687 SdrLayerIDSet maOldSet
;
688 sal_uInt16 maOldMasterPageNumber
;
691 SdrUndoPageMasterPage(SdrPage
& rChangedPage
);
694 UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC
) virtual ~SdrUndoPageMasterPage() override
;
698 * Removal of a MasterPage from a Character Page.
699 * Create Action before removing the MasterPageDescriptor.
702 class SdrUndoPageRemoveMasterPage final
: public SdrUndoPageMasterPage
705 SdrUndoPageRemoveMasterPage(SdrPage
& rChangedPage
);
707 virtual void Undo() override
;
708 virtual void Redo() override
;
710 virtual OUString
GetComment() const override
;
714 * Changing the MasterPageDescriptor (e.g. change of the VisibleLayer).
715 * Create Action before changing the MasterPageDescriptors.
718 class SdrUndoPageChangeMasterPage final
: public SdrUndoPageMasterPage
720 bool mbNewHadMasterPage
;
721 SdrLayerIDSet maNewSet
;
722 sal_uInt16 maNewMasterPageNumber
;
725 SdrUndoPageChangeMasterPage(SdrPage
& rChangedPage
);
727 virtual void Undo() override
;
728 virtual void Redo() override
;
730 virtual OUString
GetComment() const override
;
735 * The SdrUndoFactory can be set and retrieved from the SdrModel.
736 * It is used by the drawing layer implementations to create undo actions.
737 * It can be used by applications to create application specific undo actions.
739 class SVXCORE_DLLPUBLIC SdrUndoFactory
743 virtual ~SdrUndoFactory();
744 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoMoveObject( SdrObject
& rObject
, const Size
& rDist
);
745 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoGeoObject( SdrObject
& rObject
);
746 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoAttrObject( SdrObject
& rObject
, bool bStyleSheet1
= false, bool bSaveText
= false );
747 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoRemoveObject(SdrObject
& rObject
);
748 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoInsertObject( SdrObject
& rObject
, bool bOrdNumDirect
= false);
749 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoDeleteObject( SdrObject
& rObject
, bool bOrdNumDirect
= false);
750 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoNewObject( SdrObject
& rObject
, bool bOrdNumDirect
= false);
751 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoCopyObject( SdrObject
& rObject
, bool bOrdNumDirect
= false);
753 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoObjectOrdNum( SdrObject
& rObject
, sal_uInt32 nOldOrdNum1
, sal_uInt32 nNewOrdNum1
);
755 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoReplaceObject( SdrObject
& rOldObject
, SdrObject
& rNewObject
);
756 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoObjectLayerChange( SdrObject
& rObject
, SdrLayerID aOldLayer
, SdrLayerID aNewLayer
);
757 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoObjectSetText( SdrObject
& rNewObj
, sal_Int32 nText
);
759 // Implement Title/Description Elements UI for Writer text frames, graphics and embedded objects (#i73249#)
760 static std::unique_ptr
<SdrUndoAction
> CreateUndoObjectStrAttr( SdrObject
& rObject
,
761 SdrUndoObjStrAttr::ObjStrAttrType eObjStrAttrType
,
762 const OUString
& sOldStr
,
763 const OUString
& sNewStr
);
764 static std::unique_ptr
<SdrUndoAction
> CreateUndoObjectDecorative(SdrObject
& rObject
,
765 bool const WasDecorative
);
767 // Diagram ModelData changes
768 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoDiagramModelData( SdrObject
& rObject
, std::shared_ptr
< svx::diagram::DiagramDataState
>& rStartState
);
771 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoNewLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
);
772 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoDeleteLayer(sal_uInt16 nLayerNum
, SdrLayerAdmin
& rNewLayerAdmin
, SdrModel
& rNewModel
);
775 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoDeletePage(SdrPage
& rPage
);
776 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoNewPage(SdrPage
& rPage
);
777 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoCopyPage(SdrPage
& rPage
);
778 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoSetPageNum(SdrPage
& rNewPg
, sal_uInt16 nOldPageNum1
, sal_uInt16 nNewPageNum1
);
779 static std::unique_ptr
<SdrUndoAction
> CreateUndoSort(SdrPage
& rPage
, ::std::vector
<sal_Int32
> const& rSortOrder
);
782 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoPageRemoveMasterPage(SdrPage
& rChangedPage
);
783 virtual std::unique_ptr
<SdrUndoAction
> CreateUndoPageChangeMasterPage(SdrPage
& rChangedPage
);
786 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */