146 lines
4.0 KiB
C++
146 lines
4.0 KiB
C++
![]() |
/*************************************************************************
|
||
|
*
|
||
|
* 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.
|
||
|
*
|
||
|
************************************************************************/
|
||
|
|
||
|
#ifndef SW_UNDO_REDLINE_HXX
|
||
|
#define SW_UNDO_REDLINE_HXX
|
||
|
|
||
|
#include <undobj.hxx>
|
||
|
|
||
|
|
||
|
struct SwSortOptions;
|
||
|
class SwRedline;
|
||
|
class SwRedlineSaveDatas;
|
||
|
class SwUndoDelete;
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------------------
|
||
|
|
||
|
class SwUndoRedline : public SwUndo, public SwUndRng
|
||
|
{
|
||
|
protected:
|
||
|
SwRedlineData* pRedlData;
|
||
|
SwRedlineSaveDatas* pRedlSaveData;
|
||
|
SwUndoId nUserId;
|
||
|
BOOL bHiddenRedlines;
|
||
|
|
||
|
virtual void UndoRedlineImpl(SwDoc & rDoc, SwPaM & rPam);
|
||
|
virtual void RedoRedlineImpl(SwDoc & rDoc, SwPaM & rPam);
|
||
|
|
||
|
public:
|
||
|
SwUndoRedline( SwUndoId nUserId, const SwPaM& rRange );
|
||
|
|
||
|
virtual ~SwUndoRedline();
|
||
|
|
||
|
virtual void UndoImpl( ::sw::UndoRedoContext & );
|
||
|
virtual void RedoImpl( ::sw::UndoRedoContext & );
|
||
|
|
||
|
SwUndoId GetUserId() const { return nUserId; }
|
||
|
USHORT GetRedlSaveCount() const;
|
||
|
};
|
||
|
|
||
|
class SwUndoRedlineDelete : public SwUndoRedline
|
||
|
{
|
||
|
BOOL bCanGroup : 1;
|
||
|
BOOL bIsDelim : 1;
|
||
|
BOOL bIsBackspace : 1;
|
||
|
|
||
|
virtual void UndoRedlineImpl(SwDoc & rDoc, SwPaM & rPam);
|
||
|
virtual void RedoRedlineImpl(SwDoc & rDoc, SwPaM & rPam);
|
||
|
|
||
|
public:
|
||
|
SwUndoRedlineDelete( const SwPaM& rRange, SwUndoId nUserId = UNDO_EMPTY );
|
||
|
|
||
|
BOOL CanGrouping( const SwUndoRedlineDelete& rPrev );
|
||
|
|
||
|
// SwUndoTblCpyTbl needs this information:
|
||
|
long NodeDiff() const { return nSttNode - nEndNode; }
|
||
|
xub_StrLen ContentStart() const { return nSttCntnt; }
|
||
|
};
|
||
|
|
||
|
class SwUndoRedlineSort : public SwUndoRedline
|
||
|
{
|
||
|
SwSortOptions* pOpt;
|
||
|
ULONG nSaveEndNode, nOffset;
|
||
|
xub_StrLen nSaveEndCntnt;
|
||
|
|
||
|
virtual void UndoRedlineImpl(SwDoc & rDoc, SwPaM & rPam);
|
||
|
virtual void RedoRedlineImpl(SwDoc & rDoc, SwPaM & rPam);
|
||
|
|
||
|
public:
|
||
|
SwUndoRedlineSort( const SwPaM& rRange, const SwSortOptions& rOpt );
|
||
|
|
||
|
virtual ~SwUndoRedlineSort();
|
||
|
|
||
|
virtual void RepeatImpl( ::sw::RepeatContext & );
|
||
|
|
||
|
void SetSaveRange( const SwPaM& rRange );
|
||
|
void SetOffset( const SwNodeIndex& rIdx );
|
||
|
};
|
||
|
|
||
|
class SwUndoAcceptRedline : public SwUndoRedline
|
||
|
{
|
||
|
private:
|
||
|
virtual void RedoRedlineImpl(SwDoc & rDoc, SwPaM & rPam);
|
||
|
|
||
|
public:
|
||
|
SwUndoAcceptRedline( const SwPaM& rRange );
|
||
|
|
||
|
virtual void RepeatImpl( ::sw::RepeatContext & );
|
||
|
};
|
||
|
|
||
|
class SwUndoRejectRedline : public SwUndoRedline
|
||
|
{
|
||
|
private:
|
||
|
virtual void RedoRedlineImpl(SwDoc & rDoc, SwPaM & rPam);
|
||
|
|
||
|
public:
|
||
|
SwUndoRejectRedline( const SwPaM& rRange );
|
||
|
|
||
|
virtual void RepeatImpl( ::sw::RepeatContext & );
|
||
|
};
|
||
|
|
||
|
//--------------------------------------------------------------------
|
||
|
|
||
|
class SwUndoCompDoc : public SwUndo, public SwUndRng
|
||
|
{
|
||
|
SwRedlineData* pRedlData;
|
||
|
SwUndoDelete* pUnDel, *pUnDel2;
|
||
|
SwRedlineSaveDatas* pRedlSaveData;
|
||
|
BOOL bInsert;
|
||
|
public:
|
||
|
SwUndoCompDoc( const SwPaM& rRg, BOOL bIns );
|
||
|
SwUndoCompDoc( const SwRedline& rRedl );
|
||
|
|
||
|
virtual ~SwUndoCompDoc();
|
||
|
|
||
|
virtual void UndoImpl( ::sw::UndoRedoContext & );
|
||
|
virtual void RedoImpl( ::sw::UndoRedoContext & );
|
||
|
};
|
||
|
|
||
|
#endif // SW_UNDO_REDLINE_HXX
|
||
|
|