LCOV - code coverage report
Current view: top level - libreoffice/solver/unxlngi6.pro/inc/svx - svdundo.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 2 24 8.3 %
Date: 2012-12-27 Functions: 2 25 8.0 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.10