tdf#130857 qt weld: Support mail merge "Server Auth" dialog
[LibreOffice.git] / include / svx / svdundo.hxx
blobd73dbfd728da8e663af09479c7e58ca412c756e4
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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 .
20 #pragma once
22 #include <config_options.h>
23 #include <sal/config.h>
25 #include <memory>
26 #include <vector>
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>
38 class SfxItemSet;
39 class SfxPoolItem;
40 class SfxStyleSheet;
41 class SdrView;
42 class SdrPageView;
43 class SdrModel;
44 class SdrObject;
45 class SdrPage;
46 class SdrObjList;
47 class SdrLayer;
48 class SdrLayerAdmin;
49 class SdrObjGeoData;
50 class OutlinerParaObject;
52 namespace svx { namespace diagram {
53 class DiagramDataState;
56 /**
57 * Abstract base class (ABC) for all UndoActions of DrawingEngine
60 class SVXCORE_DLLPUBLIC SdrUndoAction : public SfxUndoAction
62 protected:
63 SdrModel& m_rMod;
64 ViewShellId m_nViewShellId;
66 protected:
67 SdrUndoAction(SdrModel& rNewMod);
69 public:
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;
85 /**
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
89 * added (FIFO).
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)
97 OUString m_aComment;
98 OUString m_aObjDescription;
100 SdrRepeatFunc m_eFunction;
102 public:
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
129 protected:
130 rtl::Reference<SdrObject> mxObj;
132 protected:
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;
158 bool m_bStyleSheet;
159 bool m_bHaveToTakeRedoSet;
161 // When assigning TextItems to a drawing object with text:
162 std::optional<OutlinerParaObject> m_pTextUndo;
163 // #i8508#
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;
170 protected:
171 // Helper to ensure StyleSheet is in pool (provided by SdrModel from SdrObject)
172 static void ensureStyleSheetInStyleSheetPool(SfxStyleSheetBasePool& rStyleSheetPool, SfxStyleSheet& rSheet);
174 public:
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
193 public:
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;
221 public:
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);
240 public:
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;
259 protected:
260 SdrObjList* pObjList;
261 sal_uInt32 nOrdNum;
263 protected:
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
277 public:
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
295 public:
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
310 public:
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
330 public:
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;
352 public:
353 SdrUndoReplaceObj(SdrObject& rOldObj1, SdrObject& rNewObj1);
354 virtual ~SdrUndoReplaceObj() override;
356 virtual void Undo() override;
357 virtual void Redo() override;
361 * Copying an Object.
362 * Create Action before inserting into the ObjList.
365 class SdrUndoCopyObj final : public SdrUndoNewObj
367 public:
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;
379 public:
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
390 private:
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);
397 public:
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;
407 // #i11702#
409 class SVXCORE_DLLPUBLIC SdrUndoObjectLayerChange final : public SdrUndoObj
411 SdrLayerID maOldLayer;
412 SdrLayerID maNewLayer;
414 public:
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>
424 m_pOldText;
425 std::optional<OutlinerParaObject>
426 m_pNewText;
427 bool m_bNewTextAvailable;
428 bool m_bEmptyPresObj;
429 sal_Int32 mnText;
431 public:
432 SdrUndoObjSetText(SdrObject& rNewObj, sal_Int32 nText );
433 virtual ~SdrUndoObjSetText() override;
435 bool IsDifferent() const;
436 void AfterSetText();
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
454 public:
455 enum class ObjStrAttrType
457 Name,
458 Title,
459 Description
462 SdrUndoObjStrAttr( SdrObject& rNewObj,
463 const ObjStrAttrType eObjStrAttr,
464 OUString sOldStr,
465 OUString sNewStr);
467 virtual void Undo() override;
468 virtual void Redo() override;
470 virtual OUString GetComment() const override;
472 private:
473 const ObjStrAttrType meObjStrAttr;
474 const OUString msOldStr;
475 const OUString msNewStr;
479 class SdrUndoObjDecorative final : public SdrUndoObj
481 private:
482 bool const m_WasDecorative;
484 public:
485 SdrUndoObjDecorative(SdrObject & rObj, bool const WasDecorative);
487 virtual void Undo() override;
488 virtual void Redo() override;
490 virtual OUString GetComment() const override;
495 * Layer
499 * Abstract base class for all UndoActions that have something to do with SdrLayer.
502 class SdrUndoLayer : public SdrUndoAction
504 protected:
505 SdrLayer* pLayer;
506 SdrLayerAdmin* pLayerAdmin;
507 sal_uInt16 nNum;
508 bool bItsMine;
510 protected:
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
522 public:
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;
533 * Deleting a Layer.
534 * Create Action before the Remove.
537 class SdrUndoDelLayer final : public SdrUndoLayer
539 public:
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;
550 * Pages
554 * ABC for all UndoActions that have something to do with SdrPages.
557 class SdrUndoPage : public SdrUndoAction
559 protected:
560 rtl::Reference<SdrPage> mxPage;
562 protected:
563 void ImpInsertPage(sal_uInt16 nNum);
564 void ImpRemovePage(sal_uInt16 nNum);
565 void ImpMovePage(sal_uInt16 nOldNum, sal_uInt16 nNewNum);
567 protected:
568 SdrUndoPage(SdrPage& rNewPg);
569 ~SdrUndoPage();
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
580 protected:
581 sal_uInt16 nPageNum;
583 protected:
584 SdrUndoPageList(SdrPage& rNewPg);
585 virtual ~SdrUndoPageList() override;
589 * Deleting a Page.
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;
601 public:
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;
614 private:
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
627 public:
628 SdrUndoNewPage(SdrPage& rNewPg): SdrUndoPageList(rNewPg) {}
630 virtual void Undo() override;
631 virtual void Redo() override;
633 virtual OUString GetComment() const override;
637 * Copying a Page.
638 * Create Action after inserting into the List.
641 class SdrUndoCopyPage final : public SdrUndoNewPage
643 public:
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;
663 public:
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;
675 * Masterpages
679 * ABC for all UndoActions that have something to do with
680 * MasterPage relationships.
683 class SdrUndoPageMasterPage : public SdrUndoPage
685 protected:
686 bool mbOldHadMasterPage;
687 SdrLayerIDSet maOldSet;
688 sal_uInt16 maOldMasterPageNumber;
690 protected:
691 SdrUndoPageMasterPage(SdrPage& rChangedPage);
693 public:
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
704 public:
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;
724 public:
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
741 public:
742 // Shapes
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 );
770 // Layer
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);
774 // Page
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);
781 // Master page
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: */