xref: /aoo41x/main/sc/source/ui/inc/undodat.hxx (revision 38d50f7b)
1*38d50f7bSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*38d50f7bSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*38d50f7bSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*38d50f7bSAndrew Rist  * distributed with this work for additional information
6*38d50f7bSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*38d50f7bSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*38d50f7bSAndrew Rist  * "License"); you may not use this file except in compliance
9*38d50f7bSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*38d50f7bSAndrew Rist  *
11*38d50f7bSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*38d50f7bSAndrew Rist  *
13*38d50f7bSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*38d50f7bSAndrew Rist  * software distributed under the License is distributed on an
15*38d50f7bSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*38d50f7bSAndrew Rist  * KIND, either express or implied.  See the License for the
17*38d50f7bSAndrew Rist  * specific language governing permissions and limitations
18*38d50f7bSAndrew Rist  * under the License.
19*38d50f7bSAndrew Rist  *
20*38d50f7bSAndrew Rist  *************************************************************/
21*38d50f7bSAndrew Rist 
22*38d50f7bSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SC_UNDODAT_HXX
25cdf0e10cSrcweir #define SC_UNDODAT_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include "undobase.hxx"
28cdf0e10cSrcweir #include "rangeutl.hxx"		// ScArea
29cdf0e10cSrcweir #include "rangelst.hxx"		// ScRangeListRef
30cdf0e10cSrcweir #include "markdata.hxx"
31cdf0e10cSrcweir #include "sortparam.hxx"
32cdf0e10cSrcweir #include "queryparam.hxx"
33cdf0e10cSrcweir #include "pivot.hxx"
34cdf0e10cSrcweir 
35cdf0e10cSrcweir class ScDocShell;
36cdf0e10cSrcweir class ScDocument;
37cdf0e10cSrcweir class ScOutlineTable;
38cdf0e10cSrcweir class ScRangeName;
39cdf0e10cSrcweir class ScDBData;
40cdf0e10cSrcweir class ScDBCollection;
41cdf0e10cSrcweir class ScDPObject;
42cdf0e10cSrcweir class SdrUndoAction;
43cdf0e10cSrcweir 
44cdf0e10cSrcweir //----------------------------------------------------------------------------
45cdf0e10cSrcweir 
46cdf0e10cSrcweir class ScUndoDoOutline: public ScSimpleUndo
47cdf0e10cSrcweir {
48cdf0e10cSrcweir public:
49cdf0e10cSrcweir 					TYPEINFO();
50cdf0e10cSrcweir 					ScUndoDoOutline( ScDocShell* pNewDocShell,
51cdf0e10cSrcweir 							SCCOLROW nNewStart, SCCOLROW nNewEnd, SCTAB nNewTab,
52cdf0e10cSrcweir 							ScDocument* pNewUndoDoc, sal_Bool bNewColumns,
53cdf0e10cSrcweir 							sal_uInt16 nNewLevel, sal_uInt16 nNewEntry, sal_Bool bNewShow );
54cdf0e10cSrcweir 	virtual 		~ScUndoDoOutline();
55cdf0e10cSrcweir 
56cdf0e10cSrcweir 	virtual void	Undo();
57cdf0e10cSrcweir 	virtual void	Redo();
58cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
59cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
60cdf0e10cSrcweir 
61cdf0e10cSrcweir 	virtual String	GetComment() const;
62cdf0e10cSrcweir 
63cdf0e10cSrcweir private:
64cdf0e10cSrcweir 	SCCOLROW		nStart;
65cdf0e10cSrcweir 	SCCOLROW		nEnd;
66cdf0e10cSrcweir 	SCTAB			nTab;
67cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
68cdf0e10cSrcweir 	sal_Bool			bColumns;
69cdf0e10cSrcweir 	sal_uInt16			nLevel;
70cdf0e10cSrcweir 	sal_uInt16			nEntry;
71cdf0e10cSrcweir 	sal_Bool			bShow;
72cdf0e10cSrcweir };
73cdf0e10cSrcweir 
74cdf0e10cSrcweir 
75cdf0e10cSrcweir class ScUndoMakeOutline: public ScSimpleUndo
76cdf0e10cSrcweir {
77cdf0e10cSrcweir public:
78cdf0e10cSrcweir 					TYPEINFO();
79cdf0e10cSrcweir 					ScUndoMakeOutline( ScDocShell* pNewDocShell,
80cdf0e10cSrcweir 							SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
81cdf0e10cSrcweir 							SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
82cdf0e10cSrcweir 							ScOutlineTable* pNewUndoTab,
83cdf0e10cSrcweir 							sal_Bool bNewColumns, sal_Bool bNewMake );
84cdf0e10cSrcweir 	virtual 		~ScUndoMakeOutline();
85cdf0e10cSrcweir 
86cdf0e10cSrcweir 	virtual void	Undo();
87cdf0e10cSrcweir 	virtual void	Redo();
88cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
89cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
90cdf0e10cSrcweir 
91cdf0e10cSrcweir 	virtual String	GetComment() const;
92cdf0e10cSrcweir 
93cdf0e10cSrcweir private:
94cdf0e10cSrcweir 	ScAddress		aBlockStart;
95cdf0e10cSrcweir 	ScAddress		aBlockEnd;
96cdf0e10cSrcweir 	ScOutlineTable*	pUndoTable;
97cdf0e10cSrcweir 	sal_Bool			bColumns;
98cdf0e10cSrcweir 	sal_Bool			bMake;
99cdf0e10cSrcweir };
100cdf0e10cSrcweir 
101cdf0e10cSrcweir 
102cdf0e10cSrcweir class ScUndoOutlineLevel: public ScSimpleUndo
103cdf0e10cSrcweir {
104cdf0e10cSrcweir public:
105cdf0e10cSrcweir 					TYPEINFO();
106cdf0e10cSrcweir 					ScUndoOutlineLevel( ScDocShell* pNewDocShell,
107cdf0e10cSrcweir                             SCCOLROW nNewStart, SCCOLROW nNewEnd, SCTAB nNewTab,
108cdf0e10cSrcweir 							ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab,
109cdf0e10cSrcweir 							sal_Bool bNewColumns, sal_uInt16 nNewLevel );
110cdf0e10cSrcweir 	virtual 		~ScUndoOutlineLevel();
111cdf0e10cSrcweir 
112cdf0e10cSrcweir 	virtual void	Undo();
113cdf0e10cSrcweir 	virtual void	Redo();
114cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
115cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
116cdf0e10cSrcweir 
117cdf0e10cSrcweir 	virtual String	GetComment() const;
118cdf0e10cSrcweir 
119cdf0e10cSrcweir private:
120cdf0e10cSrcweir 	SCCOLROW		nStart;
121cdf0e10cSrcweir 	SCCOLROW		nEnd;
122cdf0e10cSrcweir 	SCTAB			nTab;
123cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
124cdf0e10cSrcweir 	ScOutlineTable*	pUndoTable;
125cdf0e10cSrcweir 	sal_Bool			bColumns;
126cdf0e10cSrcweir 	sal_uInt16			nLevel;
127cdf0e10cSrcweir };
128cdf0e10cSrcweir 
129cdf0e10cSrcweir 
130cdf0e10cSrcweir class ScUndoOutlineBlock: public ScSimpleUndo
131cdf0e10cSrcweir {
132cdf0e10cSrcweir public:
133cdf0e10cSrcweir 					TYPEINFO();
134cdf0e10cSrcweir 					ScUndoOutlineBlock( ScDocShell* pNewDocShell,
135cdf0e10cSrcweir 							SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
136cdf0e10cSrcweir 							SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
137cdf0e10cSrcweir 							ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab,
138cdf0e10cSrcweir 							sal_Bool bNewShow );
139cdf0e10cSrcweir 	virtual 		~ScUndoOutlineBlock();
140cdf0e10cSrcweir 
141cdf0e10cSrcweir 	virtual void	Undo();
142cdf0e10cSrcweir 	virtual void	Redo();
143cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
144cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
145cdf0e10cSrcweir 
146cdf0e10cSrcweir 	virtual String	GetComment() const;
147cdf0e10cSrcweir 
148cdf0e10cSrcweir private:
149cdf0e10cSrcweir 	ScAddress		aBlockStart;
150cdf0e10cSrcweir 	ScAddress		aBlockEnd;
151cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
152cdf0e10cSrcweir 	ScOutlineTable*	pUndoTable;
153cdf0e10cSrcweir 	sal_Bool			bShow;
154cdf0e10cSrcweir };
155cdf0e10cSrcweir 
156cdf0e10cSrcweir 
157cdf0e10cSrcweir class ScUndoRemoveAllOutlines: public ScSimpleUndo
158cdf0e10cSrcweir {
159cdf0e10cSrcweir public:
160cdf0e10cSrcweir 					TYPEINFO();
161cdf0e10cSrcweir 					ScUndoRemoveAllOutlines( ScDocShell* pNewDocShell,
162cdf0e10cSrcweir 							SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
163cdf0e10cSrcweir 							SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
164cdf0e10cSrcweir 							ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab );
165cdf0e10cSrcweir 	virtual 		~ScUndoRemoveAllOutlines();
166cdf0e10cSrcweir 
167cdf0e10cSrcweir 	virtual void	Undo();
168cdf0e10cSrcweir 	virtual void	Redo();
169cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
170cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
171cdf0e10cSrcweir 
172cdf0e10cSrcweir 	virtual String	GetComment() const;
173cdf0e10cSrcweir 
174cdf0e10cSrcweir private:
175cdf0e10cSrcweir 	ScAddress		aBlockStart;
176cdf0e10cSrcweir 	ScAddress		aBlockEnd;
177cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
178cdf0e10cSrcweir 	ScOutlineTable*	pUndoTable;
179cdf0e10cSrcweir };
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 
182cdf0e10cSrcweir class ScUndoAutoOutline: public ScSimpleUndo
183cdf0e10cSrcweir {
184cdf0e10cSrcweir public:
185cdf0e10cSrcweir 					TYPEINFO();
186cdf0e10cSrcweir 					ScUndoAutoOutline( ScDocShell* pNewDocShell,
187cdf0e10cSrcweir 							SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
188cdf0e10cSrcweir 							SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
189cdf0e10cSrcweir 							ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab );
190cdf0e10cSrcweir 	virtual 		~ScUndoAutoOutline();
191cdf0e10cSrcweir 
192cdf0e10cSrcweir 	virtual void	Undo();
193cdf0e10cSrcweir 	virtual void	Redo();
194cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
195cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
196cdf0e10cSrcweir 
197cdf0e10cSrcweir 	virtual String	GetComment() const;
198cdf0e10cSrcweir 
199cdf0e10cSrcweir private:
200cdf0e10cSrcweir 	ScAddress		aBlockStart;
201cdf0e10cSrcweir 	ScAddress		aBlockEnd;
202cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
203cdf0e10cSrcweir 	ScOutlineTable*	pUndoTable;
204cdf0e10cSrcweir };
205cdf0e10cSrcweir 
206cdf0e10cSrcweir 
207cdf0e10cSrcweir class ScUndoSubTotals: public ScDBFuncUndo
208cdf0e10cSrcweir {
209cdf0e10cSrcweir public:
210cdf0e10cSrcweir 					TYPEINFO();
211cdf0e10cSrcweir 					ScUndoSubTotals( ScDocShell* pNewDocShell, SCTAB nNewTab,
212cdf0e10cSrcweir 							const ScSubTotalParam& rNewParam, SCROW nNewEndY,
213cdf0e10cSrcweir 							ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab,
214cdf0e10cSrcweir //							ScDBData* pNewData,
215cdf0e10cSrcweir 							ScRangeName* pNewUndoRange, ScDBCollection* pNewUndoDB );
216cdf0e10cSrcweir 	virtual 		~ScUndoSubTotals();
217cdf0e10cSrcweir 
218cdf0e10cSrcweir 	virtual void	Undo();
219cdf0e10cSrcweir 	virtual void	Redo();
220cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
221cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
222cdf0e10cSrcweir 
223cdf0e10cSrcweir 	virtual String	GetComment() const;
224cdf0e10cSrcweir 
225cdf0e10cSrcweir private:
226cdf0e10cSrcweir 	SCTAB			nTab;
227cdf0e10cSrcweir 	ScSubTotalParam	aParam;							// Original uebergebener Parameter
228cdf0e10cSrcweir 	SCROW			nNewEndRow;						// Ergebnis-Groesse
229cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
230cdf0e10cSrcweir 	ScOutlineTable*	pUndoTable;
231cdf0e10cSrcweir //	ScDBData*		pUndoDBData;
232cdf0e10cSrcweir 	ScRangeName*	pUndoRange;
233cdf0e10cSrcweir 	ScDBCollection*	pUndoDB;
234cdf0e10cSrcweir };
235cdf0e10cSrcweir 
236cdf0e10cSrcweir 
237cdf0e10cSrcweir class ScUndoSort: public ScDBFuncUndo
238cdf0e10cSrcweir {
239cdf0e10cSrcweir public:
240cdf0e10cSrcweir 					TYPEINFO();
241cdf0e10cSrcweir 					ScUndoSort( ScDocShell* pNewDocShell, SCTAB nNewTab,
242cdf0e10cSrcweir 							const ScSortParam& rParam,
243cdf0e10cSrcweir 							sal_Bool bQuery, ScDocument* pNewUndoDoc,
244cdf0e10cSrcweir 							ScDBCollection* pNewUndoDB, const ScRange* pDest = NULL );
245cdf0e10cSrcweir 	virtual 		~ScUndoSort();
246cdf0e10cSrcweir 
247cdf0e10cSrcweir 	virtual void	Undo();
248cdf0e10cSrcweir 	virtual void	Redo();
249cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
250cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
251cdf0e10cSrcweir 
252cdf0e10cSrcweir 	virtual String	GetComment() const;
253cdf0e10cSrcweir 
254cdf0e10cSrcweir private:
255cdf0e10cSrcweir 	SCTAB			nTab;
256cdf0e10cSrcweir 	ScSortParam		aSortParam;
257cdf0e10cSrcweir 	sal_Bool			bRepeatQuery;
258cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
259cdf0e10cSrcweir 	ScDBCollection*	pUndoDB;				// wegen Quell- und Zielbereich
260cdf0e10cSrcweir 	sal_Bool			bDestArea;
261cdf0e10cSrcweir 	ScRange			aDestRange;
262cdf0e10cSrcweir };
263cdf0e10cSrcweir 
264cdf0e10cSrcweir 
265cdf0e10cSrcweir class ScUndoQuery: public ScDBFuncUndo
266cdf0e10cSrcweir {
267cdf0e10cSrcweir public:
268cdf0e10cSrcweir 					TYPEINFO();
269cdf0e10cSrcweir 					ScUndoQuery( ScDocShell* pNewDocShell, SCTAB nNewTab,
270cdf0e10cSrcweir 							const ScQueryParam& rParam, ScDocument* pNewUndoDoc,
271cdf0e10cSrcweir 							ScDBCollection* pNewUndoDB, const ScRange* pOld,
272cdf0e10cSrcweir 							sal_Bool bSize, const ScRange* pAdvSrc );
273cdf0e10cSrcweir 	virtual 		~ScUndoQuery();
274cdf0e10cSrcweir 
275cdf0e10cSrcweir 	virtual void	Undo();
276cdf0e10cSrcweir 	virtual void	Redo();
277cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
278cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
279cdf0e10cSrcweir 
280cdf0e10cSrcweir 	virtual String	GetComment() const;
281cdf0e10cSrcweir 
282cdf0e10cSrcweir private:
283cdf0e10cSrcweir     SdrUndoAction*  pDrawUndo;
284cdf0e10cSrcweir 	SCTAB			nTab;
285cdf0e10cSrcweir 	ScQueryParam	aQueryParam;
286cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
287cdf0e10cSrcweir 	ScDBCollection*	pUndoDB;				// wegen Quell- und Zielbereich
288cdf0e10cSrcweir 	ScRange			aOldDest;
289cdf0e10cSrcweir 	ScRange			aAdvSource;
290cdf0e10cSrcweir 	sal_Bool			bIsAdvanced;
291cdf0e10cSrcweir 	sal_Bool			bDestArea;
292cdf0e10cSrcweir 	sal_Bool			bDoSize;
293cdf0e10cSrcweir };
294cdf0e10cSrcweir 
295cdf0e10cSrcweir 
296cdf0e10cSrcweir class ScUndoAutoFilter: public ScDBFuncUndo
297cdf0e10cSrcweir {
298cdf0e10cSrcweir private:
299cdf0e10cSrcweir     String          aDBName;
300cdf0e10cSrcweir     sal_Bool            bFilterSet;
301cdf0e10cSrcweir 
302cdf0e10cSrcweir     void            DoChange( sal_Bool bUndo );
303cdf0e10cSrcweir 
304cdf0e10cSrcweir public:
305cdf0e10cSrcweir                     TYPEINFO();
306cdf0e10cSrcweir                     ScUndoAutoFilter( ScDocShell* pNewDocShell, const ScRange& rRange,
307cdf0e10cSrcweir                             const String& rName, sal_Bool bSet );
308cdf0e10cSrcweir     virtual         ~ScUndoAutoFilter();
309cdf0e10cSrcweir 
310cdf0e10cSrcweir     virtual void    Undo();
311cdf0e10cSrcweir     virtual void    Redo();
312cdf0e10cSrcweir     virtual void    Repeat(SfxRepeatTarget& rTarget);
313cdf0e10cSrcweir     virtual sal_Bool    CanRepeat(SfxRepeatTarget& rTarget) const;
314cdf0e10cSrcweir 
315cdf0e10cSrcweir     virtual String  GetComment() const;
316cdf0e10cSrcweir };
317cdf0e10cSrcweir 
318cdf0e10cSrcweir 
319cdf0e10cSrcweir class ScUndoDBData: public ScSimpleUndo
320cdf0e10cSrcweir {
321cdf0e10cSrcweir public:
322cdf0e10cSrcweir 					TYPEINFO();
323cdf0e10cSrcweir 					ScUndoDBData( ScDocShell* pNewDocShell,
324cdf0e10cSrcweir 							ScDBCollection* pNewUndoColl, ScDBCollection* pNewRedoColl );
325cdf0e10cSrcweir 	virtual 		~ScUndoDBData();
326cdf0e10cSrcweir 
327cdf0e10cSrcweir 	virtual void	Undo();
328cdf0e10cSrcweir 	virtual void	Redo();
329cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
330cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
331cdf0e10cSrcweir 
332cdf0e10cSrcweir 	virtual String	GetComment() const;
333cdf0e10cSrcweir 
334cdf0e10cSrcweir private:
335cdf0e10cSrcweir 	ScDBCollection* pUndoColl;
336cdf0e10cSrcweir 	ScDBCollection* pRedoColl;
337cdf0e10cSrcweir };
338cdf0e10cSrcweir 
339cdf0e10cSrcweir 
340cdf0e10cSrcweir class ScUndoImportData: public ScSimpleUndo
341cdf0e10cSrcweir {
342cdf0e10cSrcweir public:
343cdf0e10cSrcweir 					TYPEINFO();
344cdf0e10cSrcweir 					ScUndoImportData( ScDocShell* pNewDocShell, SCTAB nNewTab,
345cdf0e10cSrcweir 							const ScImportParam& rParam, SCCOL nNewEndX, SCROW nNewEndY,
346cdf0e10cSrcweir 							SCCOL nNewFormula,
347cdf0e10cSrcweir 							ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc,
348cdf0e10cSrcweir 							ScDBData* pNewUndoData, ScDBData* pNewRedoData );
349cdf0e10cSrcweir 	virtual 		~ScUndoImportData();
350cdf0e10cSrcweir 
351cdf0e10cSrcweir 	virtual void	Undo();
352cdf0e10cSrcweir 	virtual void	Redo();
353cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
354cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
355cdf0e10cSrcweir 
356cdf0e10cSrcweir 	virtual String	GetComment() const;
357cdf0e10cSrcweir 
358cdf0e10cSrcweir private:
359cdf0e10cSrcweir 	SCTAB			nTab;
360cdf0e10cSrcweir 	ScImportParam	aImportParam;
361cdf0e10cSrcweir 	SCCOL			nEndCol;
362cdf0e10cSrcweir 	SCROW			nEndRow;
363cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
364cdf0e10cSrcweir 	ScDocument*		pRedoDoc;
365cdf0e10cSrcweir 	ScDBData*		pUndoDBData;
366cdf0e10cSrcweir 	ScDBData*		pRedoDBData;
367cdf0e10cSrcweir 	SCCOL			nFormulaCols;
368cdf0e10cSrcweir 	sal_Bool			bRedoFilled;
369cdf0e10cSrcweir };
370cdf0e10cSrcweir 
371cdf0e10cSrcweir 
372cdf0e10cSrcweir class ScUndoRepeatDB: public ScSimpleUndo
373cdf0e10cSrcweir {
374cdf0e10cSrcweir public:
375cdf0e10cSrcweir 					TYPEINFO();
376cdf0e10cSrcweir 					ScUndoRepeatDB( ScDocShell* pNewDocShell, SCTAB nNewTab,
377cdf0e10cSrcweir 							SCCOL nStartX, SCROW nStartY, SCCOL nEndX, SCROW nEndY,
378cdf0e10cSrcweir 							SCROW nResultEndRow, SCCOL nCurX, SCROW nCurY,
379cdf0e10cSrcweir 							ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab,
380cdf0e10cSrcweir 							ScRangeName* pNewUndoRange, ScDBCollection* pNewUndoDB,
381cdf0e10cSrcweir 							const ScRange* pOldQ, const ScRange* pNewQ );
382cdf0e10cSrcweir 	virtual 		~ScUndoRepeatDB();
383cdf0e10cSrcweir 
384cdf0e10cSrcweir 	virtual void	Undo();
385cdf0e10cSrcweir 	virtual void	Redo();
386cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
387cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
388cdf0e10cSrcweir 
389cdf0e10cSrcweir 	virtual String	GetComment() const;
390cdf0e10cSrcweir 
391cdf0e10cSrcweir private:
392cdf0e10cSrcweir 	ScAddress		aBlockStart;
393cdf0e10cSrcweir 	ScAddress		aBlockEnd;
394cdf0e10cSrcweir 	SCROW			nNewEndRow;
395cdf0e10cSrcweir 	ScAddress		aCursorPos;
396cdf0e10cSrcweir 	ScDocument*		pUndoDoc;
397cdf0e10cSrcweir 	ScOutlineTable*	pUndoTable;
398cdf0e10cSrcweir 	ScRangeName*	pUndoRange;
399cdf0e10cSrcweir 	ScDBCollection*	pUndoDB;
400cdf0e10cSrcweir 	ScRange			aOldQuery;
401cdf0e10cSrcweir 	ScRange			aNewQuery;
402cdf0e10cSrcweir 	sal_Bool			bQuerySize;
403cdf0e10cSrcweir };
404cdf0e10cSrcweir 
405cdf0e10cSrcweir //UNUSED2008-05  class ScUndoPivot: public ScSimpleUndo
406cdf0e10cSrcweir //UNUSED2008-05  {
407cdf0e10cSrcweir //UNUSED2008-05  public:
408cdf0e10cSrcweir //UNUSED2008-05                      TYPEINFO();
409cdf0e10cSrcweir //UNUSED2008-05                      ScUndoPivot( ScDocShell* pNewDocShell,
410cdf0e10cSrcweir //UNUSED2008-05                              const ScArea& rOld, const ScArea& rNew,
411cdf0e10cSrcweir //UNUSED2008-05                              ScDocument* pOldDoc, ScDocument* pNewDoc,
412cdf0e10cSrcweir //UNUSED2008-05                              const ScPivot* pOldPivot, const ScPivot* pNewPivot );
413cdf0e10cSrcweir //UNUSED2008-05      virtual         ~ScUndoPivot();
414cdf0e10cSrcweir //UNUSED2008-05
415cdf0e10cSrcweir //UNUSED2008-05      virtual void    Undo();
416cdf0e10cSrcweir //UNUSED2008-05      virtual void    Redo();
417cdf0e10cSrcweir //UNUSED2008-05      virtual void    Repeat(SfxRepeatTarget& rTarget);
418cdf0e10cSrcweir //UNUSED2008-05      virtual sal_Bool    CanRepeat(SfxRepeatTarget& rTarget) const;
419cdf0e10cSrcweir //UNUSED2008-05
420cdf0e10cSrcweir //UNUSED2008-05      virtual String  GetComment() const;
421cdf0e10cSrcweir //UNUSED2008-05
422cdf0e10cSrcweir //UNUSED2008-05  private:
423cdf0e10cSrcweir //UNUSED2008-05      ScArea          aOldArea;
424cdf0e10cSrcweir //UNUSED2008-05      ScArea          aNewArea;
425cdf0e10cSrcweir //UNUSED2008-05      ScDocument*     pOldUndoDoc;
426cdf0e10cSrcweir //UNUSED2008-05      ScDocument*     pNewUndoDoc;
427cdf0e10cSrcweir //UNUSED2008-05      ScPivotParam    aOldParam;              // fuer Redo
428cdf0e10cSrcweir //UNUSED2008-05      ScQueryParam    aOldQuery;
429cdf0e10cSrcweir //UNUSED2008-05      ScArea          aOldSrc;
430cdf0e10cSrcweir //UNUSED2008-05      ScPivotParam    aNewParam;              // fuer Undo in Collection
431cdf0e10cSrcweir //UNUSED2008-05      ScQueryParam    aNewQuery;
432cdf0e10cSrcweir //UNUSED2008-05      ScArea          aNewSrc;
433cdf0e10cSrcweir //UNUSED2008-05      String          aOldName;
434cdf0e10cSrcweir //UNUSED2008-05      String          aOldTag;
435cdf0e10cSrcweir //UNUSED2008-05      String          aNewName;
436cdf0e10cSrcweir //UNUSED2008-05      String          aNewTag;
437cdf0e10cSrcweir //UNUSED2008-05  };
438cdf0e10cSrcweir 
439cdf0e10cSrcweir class ScUndoDataPilot: public ScSimpleUndo
440cdf0e10cSrcweir {
441cdf0e10cSrcweir public:
442cdf0e10cSrcweir 					TYPEINFO();
443cdf0e10cSrcweir 					ScUndoDataPilot( ScDocShell* pNewDocShell,
444cdf0e10cSrcweir 							ScDocument* pOldDoc, ScDocument* pNewDoc,
445cdf0e10cSrcweir 							const ScDPObject* pOldObj, const ScDPObject* pNewObj,
446cdf0e10cSrcweir 							sal_Bool bMove );
447cdf0e10cSrcweir 	virtual 		~ScUndoDataPilot();
448cdf0e10cSrcweir 
449cdf0e10cSrcweir 	virtual void	Undo();
450cdf0e10cSrcweir 	virtual void	Redo();
451cdf0e10cSrcweir 	virtual void	Repeat(SfxRepeatTarget& rTarget);
452cdf0e10cSrcweir 	virtual sal_Bool	CanRepeat(SfxRepeatTarget& rTarget) const;
453cdf0e10cSrcweir 
454cdf0e10cSrcweir 	virtual String	GetComment() const;
455cdf0e10cSrcweir 
456cdf0e10cSrcweir private:
457cdf0e10cSrcweir 	ScDocument*		pOldUndoDoc;
458cdf0e10cSrcweir 	ScDocument*		pNewUndoDoc;
459cdf0e10cSrcweir 	ScDPObject*		pOldDPObject;
460cdf0e10cSrcweir 	ScDPObject*		pNewDPObject;
461cdf0e10cSrcweir 	sal_Bool			bAllowMove;
462cdf0e10cSrcweir };
463cdf0e10cSrcweir 
464cdf0e10cSrcweir 
465cdf0e10cSrcweir class ScUndoConsolidate: public ScSimpleUndo
466cdf0e10cSrcweir {
467cdf0e10cSrcweir public:
468cdf0e10cSrcweir 						TYPEINFO();
469cdf0e10cSrcweir 						ScUndoConsolidate( ScDocShell* pNewDocShell,
470cdf0e10cSrcweir 								const ScArea& rArea, const ScConsolidateParam& rPar,
471cdf0e10cSrcweir 								ScDocument* pNewUndoDoc, sal_Bool bReference,
472cdf0e10cSrcweir 								SCROW nInsCount, ScOutlineTable* pTab,
473cdf0e10cSrcweir 								ScDBData* pData );
474cdf0e10cSrcweir 	virtual 			~ScUndoConsolidate();
475cdf0e10cSrcweir 
476cdf0e10cSrcweir 	virtual void		Undo();
477cdf0e10cSrcweir 	virtual void		Redo();
478cdf0e10cSrcweir 	virtual void		Repeat(SfxRepeatTarget& rTarget);
479cdf0e10cSrcweir 	virtual sal_Bool		CanRepeat(SfxRepeatTarget& rTarget) const;
480cdf0e10cSrcweir 
481cdf0e10cSrcweir 	virtual String		GetComment() const;
482cdf0e10cSrcweir 
483cdf0e10cSrcweir private:
484cdf0e10cSrcweir 	ScArea				aDestArea;
485cdf0e10cSrcweir 	ScDocument*			pUndoDoc;
486cdf0e10cSrcweir 	ScConsolidateParam	aParam;
487cdf0e10cSrcweir 	sal_Bool				bInsRef;
488cdf0e10cSrcweir 	SCSIZE				nInsertCount;
489cdf0e10cSrcweir 	ScOutlineTable*		pUndoTab;
490cdf0e10cSrcweir 	ScDBData*			pUndoData;
491cdf0e10cSrcweir };
492cdf0e10cSrcweir 
493cdf0e10cSrcweir 
494cdf0e10cSrcweir class ScUndoChartData: public ScSimpleUndo
495cdf0e10cSrcweir {
496cdf0e10cSrcweir public:
497cdf0e10cSrcweir 						TYPEINFO();
498cdf0e10cSrcweir 						ScUndoChartData( ScDocShell* pNewDocShell,
499cdf0e10cSrcweir 								const String& rName, const ScRange& rNew,
500cdf0e10cSrcweir 								sal_Bool bColHdr, sal_Bool bRowHdr, sal_Bool bAdd );
501cdf0e10cSrcweir 						ScUndoChartData( ScDocShell* pNewDocShell,
502cdf0e10cSrcweir 								const String& rName, const ScRangeListRef& rNew,
503cdf0e10cSrcweir 								sal_Bool bColHdr, sal_Bool bRowHdr, sal_Bool bAdd );
504cdf0e10cSrcweir 	virtual 			~ScUndoChartData();
505cdf0e10cSrcweir 
506cdf0e10cSrcweir 	virtual void		Undo();
507cdf0e10cSrcweir 	virtual void		Redo();
508cdf0e10cSrcweir 	virtual void		Repeat(SfxRepeatTarget& rTarget);
509cdf0e10cSrcweir 	virtual sal_Bool		CanRepeat(SfxRepeatTarget& rTarget) const;
510cdf0e10cSrcweir 
511cdf0e10cSrcweir 	virtual String		GetComment() const;
512cdf0e10cSrcweir 
513cdf0e10cSrcweir private:
514cdf0e10cSrcweir 	String				aChartName;
515cdf0e10cSrcweir 	ScRangeListRef		aOldRangeListRef;
516cdf0e10cSrcweir 	sal_Bool				bOldColHeaders;
517cdf0e10cSrcweir 	sal_Bool				bOldRowHeaders;
518cdf0e10cSrcweir //	ScRange				aNewRange;
519cdf0e10cSrcweir 	ScRangeListRef		aNewRangeListRef;
520cdf0e10cSrcweir 	sal_Bool				bNewColHeaders;
521cdf0e10cSrcweir 	sal_Bool				bNewRowHeaders;
522cdf0e10cSrcweir 	sal_Bool				bAddRange;
523cdf0e10cSrcweir 
524cdf0e10cSrcweir 	void				Init();
525cdf0e10cSrcweir };
526cdf0e10cSrcweir 
527cdf0e10cSrcweir 
528cdf0e10cSrcweir 
529cdf0e10cSrcweir 
530cdf0e10cSrcweir #endif
531cdf0e10cSrcweir 
532