xref: /trunk/main/sw/source/core/inc/SwUndoPageDesc.hxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef SW_UNDO_PAGE_DESC_HXX
28 #define SW_UNDO_PAGE_DESC_HXX
29 
30 #include <undobj.hxx>
31 #include <pagedesc.hxx>
32 
33 class SwDoc;
34 class SwPageDesc;
35 
36 
37 class SwUndoPageDesc : public SwUndo
38 {
39     SwPageDescExt aOld, aNew;
40     SwDoc * pDoc;
41     bool bExchange;
42 
43     // To avoid duplication of (header/footer)content nodes for simple page desc changes
44     void ExchangeContentNodes( SwPageDesc& rSource, SwPageDesc &rDest );
45 
46 public:
47     SwUndoPageDesc(const SwPageDesc & aOld, const SwPageDesc & aNew,
48                    SwDoc * pDoc);
49     virtual ~SwUndoPageDesc();
50 
51     virtual void UndoImpl( ::sw::UndoRedoContext & );
52     virtual void RedoImpl( ::sw::UndoRedoContext & );
53 
54     virtual SwRewriter GetRewriter() const;
55 };
56 
57 class SwUndoPageDescCreate : public SwUndo
58 {
59     const SwPageDesc * pDesc; // #116530#
60     SwPageDescExt aNew;
61     SwDoc * pDoc;
62 
63     void DoImpl();
64 
65 public:
66     SwUndoPageDescCreate(const SwPageDesc * pNew, SwDoc * pDoc); // #116530#
67     virtual ~SwUndoPageDescCreate();
68 
69     virtual void UndoImpl( ::sw::UndoRedoContext & );
70     virtual void RedoImpl( ::sw::UndoRedoContext & );
71     virtual void RepeatImpl( ::sw::RepeatContext & );
72 
73     virtual SwRewriter GetRewriter() const;
74 };
75 
76 class SwUndoPageDescDelete : public SwUndo
77 {
78     SwPageDescExt aOld;
79     SwDoc * pDoc;
80 
81     void DoImpl();
82 
83 public:
84     SwUndoPageDescDelete(const SwPageDesc & aOld, SwDoc * pDoc);
85     virtual ~SwUndoPageDescDelete();
86 
87     virtual void UndoImpl( ::sw::UndoRedoContext & );
88     virtual void RedoImpl( ::sw::UndoRedoContext & );
89     virtual void RepeatImpl( ::sw::RepeatContext & );
90 
91     virtual SwRewriter GetRewriter() const;
92 };
93 #endif // _SW_UNDO_PAGE_DESC_CHANGE_HXX
94