merge the formfield patch from ooo-build
[ooovba.git] / sd / source / ui / func / sdundogr.cxx
bloba211e46af9f904775a8988cda0288b2b0f3e6c0f
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: sdundogr.cxx,v $
10 * $Revision: 1.8 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_sd.hxx"
35 #include "sdundogr.hxx"
38 TYPEINIT1(SdUndoGroup, SdUndoAction);
40 /*************************************************************************
42 |* Destruktor
44 \************************************************************************/
46 SdUndoGroup::~SdUndoGroup()
48 ULONG nLast = aCtn.Count();
49 for (ULONG nAction = 0; nAction < nLast; nAction++)
51 delete (SdUndoAction*) aCtn.GetObject(nAction);
53 aCtn.Clear();
56 /*************************************************************************
58 |* Merge
60 \************************************************************************/
62 BOOL SdUndoGroup::Merge( SfxUndoAction* pNextAction )
64 BOOL bRet = FALSE;
66 if( pNextAction && pNextAction->ISA( SdUndoAction ) )
68 SdUndoAction* pClone = static_cast< SdUndoAction* >( pNextAction )->Clone();
70 if( pClone )
72 AddAction( pClone );
73 bRet = TRUE;
77 return bRet;
80 /*************************************************************************
82 |* Undo, umgekehrte Reihenfolge der Ausfuehrung
84 \************************************************************************/
86 void SdUndoGroup::Undo()
88 long nLast = aCtn.Count();
89 for (long nAction = nLast - 1; nAction >= 0; nAction--)
91 ((SdUndoAction*)aCtn.GetObject((ULONG)nAction))->Undo();
96 /*************************************************************************
98 |* Redo
100 \************************************************************************/
102 void SdUndoGroup::Redo()
104 ULONG nLast = aCtn.Count();
105 for (ULONG nAction = 0; nAction < nLast; nAction++)
107 ((SdUndoAction*)aCtn.GetObject(nAction))->Redo();
112 /*************************************************************************
114 |* eine Aktion hinzufuegen
116 \************************************************************************/
118 void SdUndoGroup::AddAction(SdUndoAction* pAction)
120 aCtn.Insert(pAction, CONTAINER_APPEND);
123 /*************************************************************************
125 |* Zeiger auf eine Aktion liefern
127 \************************************************************************/
129 SdUndoAction* SdUndoGroup::GetAction(ULONG nAction) const
131 return (SdUndoAction*)aCtn.GetObject(nAction);