1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: unbkmk.cxx,v $
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_sw.hxx"
37 #include "swundo.hxx" // fuer die UndoIds
44 #include "SwRewriter.hxx"
47 inline SwDoc
& SwUndoIter::GetDoc() const { return *pAktPam
->GetDoc(); }
50 SwUndoBookmark::SwUndoBookmark( SwUndoId nUndoId
,
51 const ::sw::mark::IMark
& rBkmk
)
53 , m_pHistoryBookmark(new SwHistoryBookmark(rBkmk
, true, rBkmk
.IsExpanded()))
57 SwUndoBookmark::~SwUndoBookmark()
61 void SwUndoBookmark::SetInDoc( SwDoc
* pDoc
)
63 m_pHistoryBookmark
->SetInDoc( pDoc
, false );
67 void SwUndoBookmark::ResetInDoc( SwDoc
* pDoc
)
69 IDocumentMarkAccess
* const pMarkAccess
= pDoc
->getIDocumentMarkAccess();
70 for (IDocumentMarkAccess::const_iterator_t ppBkmk
=
71 pMarkAccess
->getMarksBegin();
72 ppBkmk
!= pMarkAccess
->getMarksEnd();
75 if ( m_pHistoryBookmark
->IsEqualBookmark( **ppBkmk
) )
77 pMarkAccess
->deleteMark( ppBkmk
);
83 SwRewriter
SwUndoBookmark::GetRewriter() const
87 aResult
.AddRule(UNDO_ARG1
, m_pHistoryBookmark
->GetName());
92 //----------------------------------------------------------------------
94 SwUndoDelBookmark::SwUndoDelBookmark( const ::sw::mark::IMark
& rBkmk
)
95 : SwUndoBookmark( UNDO_DELBOOKMARK
, rBkmk
)
100 void SwUndoDelBookmark::Undo( SwUndoIter
& rUndoIter
)
102 SetInDoc( &rUndoIter
.GetDoc() );
106 void SwUndoDelBookmark::Redo( SwUndoIter
& rUndoIter
)
108 ResetInDoc( &rUndoIter
.GetDoc() );
112 SwUndoInsBookmark::SwUndoInsBookmark( const ::sw::mark::IMark
& rBkmk
)
113 : SwUndoBookmark( UNDO_INSBOOKMARK
, rBkmk
)
118 void SwUndoInsBookmark::Undo( SwUndoIter
& rUndoIter
)
120 ResetInDoc( &rUndoIter
.GetDoc() );
124 void SwUndoInsBookmark::Redo( SwUndoIter
& rUndoIter
)
126 SetInDoc( &rUndoIter
.GetDoc() );