summaryrefslogtreecommitdiff
path: root/svtools/source/edit/textundo.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/edit/textundo.cxx')
-rw-r--r--svtools/source/edit/textundo.cxx298
1 files changed, 0 insertions, 298 deletions
diff --git a/svtools/source/edit/textundo.cxx b/svtools/source/edit/textundo.cxx
deleted file mode 100644
index 7c6e9c89fb..0000000000
--- a/svtools/source/edit/textundo.cxx
+++ /dev/null
@@ -1,298 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/texteng.hxx>
-#include <svtools/textview.hxx>
-#include <textundo.hxx>
-#include <textund2.hxx>
-#include <svtools/textdata.hxx>
-#include <textdoc.hxx>
-#include <textdat2.hxx>
-
-TYPEINIT1( TextUndo, SfxUndoAction );
-TYPEINIT1( TextUndoDelPara, TextUndo );
-TYPEINIT1( TextUndoConnectParas, TextUndo );
-TYPEINIT1( TextUndoSplitPara, TextUndo );
-TYPEINIT1( TextUndoInsertChars, TextUndo );
-TYPEINIT1( TextUndoRemoveChars, TextUndo );
-
-
-TextUndoManager::TextUndoManager( TextEngine* p )
-{
- mpTextEngine = p;
-}
-
-TextUndoManager::~TextUndoManager()
-{
-}
-
-sal_Bool TextUndoManager::Undo()
-{
- if ( GetUndoActionCount() == 0 )
- return sal_False;
-
- UndoRedoStart();
-
- mpTextEngine->SetIsInUndo( sal_True );
- sal_Bool bDone = SfxUndoManager::Undo();
- mpTextEngine->SetIsInUndo( sal_False );
-
- UndoRedoEnd();
-
- return bDone;
-}
-
-sal_Bool TextUndoManager::Redo()
-{
- if ( GetRedoActionCount() == 0 )
- return sal_False;
-
-
- UndoRedoStart();
-
- mpTextEngine->SetIsInUndo( sal_True );
- sal_Bool bDone = SfxUndoManager::Redo();
- mpTextEngine->SetIsInUndo( sal_False );
-
- UndoRedoEnd();
-
- return bDone;
-}
-
-void TextUndoManager::UndoRedoStart()
-{
- DBG_ASSERT( GetView(), "Undo/Redo: Active View?" );
-
-// if ( GetView() )
-// GetView()->HideSelection();
-}
-
-void TextUndoManager::UndoRedoEnd()
-{
- if ( GetView() )
- {
- TextSelection aNewSel( GetView()->GetSelection() );
- aNewSel.GetStart() = aNewSel.GetEnd();
- GetView()->ImpSetSelection( aNewSel );
- }
-
- mpTextEngine->UpdateSelections();
-
- mpTextEngine->FormatAndUpdate( GetView() );
-}
-
-
-TextUndo::TextUndo( TextEngine* p )
-{
- mpTextEngine = p;
-}
-
-TextUndo::~TextUndo()
-{
-}
-
-XubString TextUndo::GetComment() const
-{
-// return mpTextEngine->GetUndoComment( this );
- return String();
-}
-
-void TextUndo::SetSelection( const TextSelection& rSel )
-{
- if ( GetView() )
- GetView()->ImpSetSelection( rSel );
-}
-
-
-TextUndoDelPara::TextUndoDelPara( TextEngine* pTextEngine, TextNode* pNode, sal_uLong nPara )
- : TextUndo( pTextEngine )
-{
- mpNode = pNode;
- mnPara = nPara;
- mbDelObject = sal_True;
-}
-
-TextUndoDelPara::~TextUndoDelPara()
-{
- if ( mbDelObject )
- delete mpNode;
-}
-
-void TextUndoDelPara::Undo()
-{
- GetTextEngine()->InsertContent( mpNode, mnPara );
- mbDelObject = sal_False; // gehoert wieder der Engine
-
- if ( GetView() )
- {
- TextSelection aSel( TextPaM( mnPara, 0 ), TextPaM( mnPara, mpNode->GetText().Len() ) );
- SetSelection( aSel );
- }
-}
-
-void TextUndoDelPara::Redo()
-{
- // pNode stimmt nicht mehr, falls zwischendurch Undos, in denen
- // Absaetze verschmolzen sind.
- mpNode = GetDoc()->GetNodes().GetObject( mnPara );
-
- delete GetTEParaPortions()->GetObject( mnPara );
- GetTEParaPortions()->Remove( mnPara );
-
- // Node nicht loeschen, haengt im Undo!
- GetDoc()->GetNodes().Remove( mnPara );
- GetTextEngine()->ImpParagraphRemoved( mnPara );
-
- mbDelObject = sal_True; // gehoert wieder dem Undo
-
- sal_uLong nParas = GetDoc()->GetNodes().Count();
- sal_uLong n = mnPara < nParas ? mnPara : (nParas-1);
- TextNode* pN = GetDoc()->GetNodes().GetObject( n );
- TextPaM aPaM( n, pN->GetText().Len() );
- SetSelection( aPaM );
-}
-
- // -----------------------------------------------------------------------
-// TextUndoConnectParas
-// ------------------------------------------------------------------------
-TextUndoConnectParas::TextUndoConnectParas( TextEngine* pTextEngine, sal_uLong nPara, sal_uInt16 nPos )
- : TextUndo( pTextEngine )
-{
- mnPara = nPara;
- mnSepPos = nPos;
-}
-
-TextUndoConnectParas::~TextUndoConnectParas()
-{
-}
-
-void TextUndoConnectParas::Undo()
-{
- TextPaM aPaM = GetTextEngine()->SplitContent( mnPara, mnSepPos );
- SetSelection( aPaM );
-}
-
-void TextUndoConnectParas::Redo()
-{
- TextPaM aPaM = GetTextEngine()->ConnectContents( mnPara );
- SetSelection( aPaM );
-}
-
-
-TextUndoSplitPara::TextUndoSplitPara( TextEngine* pTextEngine, sal_uLong nPara, sal_uInt16 nPos )
- : TextUndo( pTextEngine )
-{
- mnPara = nPara;
- mnSepPos = nPos;
-}
-
-TextUndoSplitPara::~TextUndoSplitPara()
-{
-}
-
-void TextUndoSplitPara::Undo()
-{
- TextPaM aPaM = GetTextEngine()->ConnectContents( mnPara );
- SetSelection( aPaM );
-}
-
-void TextUndoSplitPara::Redo()
-{
- TextPaM aPaM = GetTextEngine()->SplitContent( mnPara, mnSepPos );
- SetSelection( aPaM );
-}
-
-
-TextUndoInsertChars::TextUndoInsertChars( TextEngine* pTextEngine, const TextPaM& rTextPaM, const XubString& rStr )
- : TextUndo( pTextEngine ),
- maTextPaM( rTextPaM ), maText( rStr )
-{
-}
-
-void TextUndoInsertChars::Undo()
-{
- TextSelection aSel( maTextPaM, maTextPaM );
- aSel.GetEnd().GetIndex() = aSel.GetEnd().GetIndex() + maText.Len();
- TextPaM aPaM = GetTextEngine()->ImpDeleteText( aSel );
- SetSelection( aPaM );
-}
-
-void TextUndoInsertChars::Redo()
-{
- TextSelection aSel( maTextPaM, maTextPaM );
- GetTextEngine()->ImpInsertText( aSel, maText );
- TextPaM aNewPaM( maTextPaM );
- aNewPaM.GetIndex() = aNewPaM.GetIndex() + maText.Len();
- SetSelection( TextSelection( aSel.GetStart(), aNewPaM ) );
-}
-
-sal_Bool TextUndoInsertChars::Merge( SfxUndoAction* pNextAction )
-{
- if ( !pNextAction->ISA( TextUndoInsertChars ) )
- return sal_False;
-
- TextUndoInsertChars* pNext = (TextUndoInsertChars*)pNextAction;
-
- if ( maTextPaM.GetPara() != pNext->maTextPaM.GetPara() )
- return sal_False;
-
- if ( ( maTextPaM.GetIndex() + maText.Len() ) == pNext->maTextPaM.GetIndex() )
- {
- maText += pNext->maText;
- return sal_True;
- }
- return sal_False;
-}
-
-
-TextUndoRemoveChars::TextUndoRemoveChars( TextEngine* pTextEngine, const TextPaM& rTextPaM, const XubString& rStr )
- : TextUndo( pTextEngine ),
- maTextPaM( rTextPaM ), maText( rStr )
-{
-}
-
-void TextUndoRemoveChars::Undo()
-{
- TextSelection aSel( maTextPaM, maTextPaM );
- GetTextEngine()->ImpInsertText( aSel, maText );
- aSel.GetEnd().GetIndex() = aSel.GetEnd().GetIndex() + maText.Len();
- SetSelection( aSel );
-}
-
-void TextUndoRemoveChars::Redo()
-{
- TextSelection aSel( maTextPaM, maTextPaM );
- aSel.GetEnd().GetIndex() = aSel.GetEnd().GetIndex() + maText.Len();
- TextPaM aPaM = GetTextEngine()->ImpDeleteText( aSel );
- SetSelection( aPaM );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */