xref: /AOO42X/main/reportdesign/source/core/inc/ReportUndoFactory.hxx (revision 213ed6ee2ff775389784f4f3269d81154cf5c872)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 #ifndef REPORT_UNDOFACTORY_HXX_INCLUDED
23 #define REPORT_UNDOFACTORY_HXX_INCLUDED
24 
25 #include <svx/svdundo.hxx>
26 #include <memory>
27 #include "ModuleHelper.hxx"
28 
29 namespace rptui
30 {
31     class OReportUndoFactory : public SdrUndoFactory
32     {
33         OModuleClient       m_aModuleClient;
34         ::std::auto_ptr<SdrUndoFactory> m_pUndoFactory;
35 
36         OReportUndoFactory(const OReportUndoFactory&);
37         OReportUndoFactory& operator=(const OReportUndoFactory&);
38     public:
39         OReportUndoFactory();
40         virtual ~OReportUndoFactory();
41 
42         // shapes
43         virtual SdrUndoAction* CreateUndoMoveObject( SdrObject& rObject );
44         virtual SdrUndoAction* CreateUndoMoveObject( SdrObject& rObject, const Size& rDist );
45         virtual SdrUndoAction* CreateUndoGeoObject( SdrObject& rObject );
46         virtual SdrUndoAction* CreateUndoAttrObject( SdrObject& rObject, bool bStyleSheet1 = false, bool bSaveText = false );
47         virtual SdrUndoAction* CreateUndoRemoveObject( SdrObject& rObject, bool bOrdNumDirect = false);
48         virtual SdrUndoAction* CreateUndoInsertObject( SdrObject& rObject, bool bOrdNumDirect = false);
49         virtual SdrUndoAction* CreateUndoDeleteObject( SdrObject& rObject, bool bOrdNumDirect = false);
50         virtual SdrUndoAction* CreateUndoNewObject( SdrObject& rObject, bool bOrdNumDirect = false);
51         virtual SdrUndoAction* CreateUndoCopyObject( SdrObject& rObject, bool bOrdNumDirect = false);
52 
53         virtual SdrUndoAction* CreateUndoObjectOrdNum( SdrObject& rObject, sal_uInt32 nOldOrdNum1, sal_uInt32 nNewOrdNum1);
54 
55         virtual SdrUndoAction* CreateUndoReplaceObject( SdrObject& rOldObject, SdrObject& rNewObject, bool bOrdNumDirect = false );
56         virtual SdrUndoAction* CreateUndoObjectLayerChange( SdrObject& rObject, SdrLayerID aOldLayer, SdrLayerID aNewLayer );
57         virtual SdrUndoAction* CreateUndoObjectSetText( SdrObject& rNewObj, sal_Int32 nText );
58 
59         // layer
60         virtual SdrUndoAction* CreateUndoNewLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel);
61         virtual SdrUndoAction* CreateUndoDeleteLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel);
62         virtual SdrUndoAction* CreateUndoMoveLayer(sal_uInt16 nLayerNum, SdrLayerAdmin& rNewLayerAdmin, SdrModel& rNewModel, sal_uInt16 nNewPos1);
63 
64         // page
65         virtual SdrUndoAction*  CreateUndoDeletePage(SdrPage& rPage);
66         virtual SdrUndoAction* CreateUndoNewPage(SdrPage& rPage);
67         virtual SdrUndoAction* CreateUndoCopyPage(SdrPage& rPage);
68         virtual SdrUndoAction* CreateUndoSetPageNum(SdrPage& rNewPg, sal_uInt16 nOldPageNum1, sal_uInt16 nNewPageNum1);
69 
70         // master page
71         virtual SdrUndoAction* CreateUndoPageRemoveMasterPage(SdrPage& rChangedPage);
72         virtual SdrUndoAction* CreateUndoPageChangeMasterPage(SdrPage& rChangedPage);
73 
74     };
75 //==============================================================================
76 } // rptui
77 //==============================================================================
78 
79 #endif // REPORT_UNDOFACTORY_HXX_INCLUDED
80 
81 /* vim: set noet sw=4 ts=4: */
82