summaryrefslogtreecommitdiff
path: root/sw/inc/undobj.hxx
diff options
context:
space:
mode:
authorMichael Stahl <mst@openoffice.org>2011-02-11 15:41:40 +0100
committerMichael Stahl <mst@openoffice.org>2011-02-11 15:41:40 +0100
commit2b9ee96b5d07cff557ea25deb6d6fbd908a08f24 (patch)
tree1c918787691e9d69e1f952768a08406931cd34e9 /sw/inc/undobj.hxx
parenta3c0c3a8762e47be72de05ac3ae1fc5032f2a1a9 (diff)
parentc50e8a2df2e04d9d2c225df0ea648f0501acc250 (diff)
sw34bf03: merge to-be-m100 DEV300_next
Diffstat (limited to 'sw/inc/undobj.hxx')
-rw-r--r--sw/inc/undobj.hxx1754
1 files changed, 85 insertions, 1669 deletions
diff --git a/sw/inc/undobj.hxx b/sw/inc/undobj.hxx
index 7f16e4e4d44c..9d447c18034f 100644
--- a/sw/inc/undobj.hxx
+++ b/sw/inc/undobj.hxx
@@ -28,118 +28,50 @@
#define SW_UNDOBJ_HXX
#include <vector>
-#include <memory>
#include <boost/shared_ptr.hpp>
-#include <com/sun/star/uno/Sequence.h>
+#include <svl/undo.hxx>
-#include <tools/mempool.hxx>
-#ifndef _SVSTDARR_HXX
-#define _SVSTDARR_USHORTS
-#define _SVSTDARR_ULONGS
-#define _SVSTDARR_BOOLS
-#define _SVSTDARR_BYTES
-#define _SVSTDARR_USHORTSSORT
-#include <svl/svstdarr.hxx>
-#endif
-#include <svl/itemset.hxx>
-
-#include <svx/svdundo.hxx> // #111827#
-
-#include <numrule.hxx>
-#include <itabenum.hxx>
-#include <format.hxx>
#include <SwRewriter.hxx>
#include <swundo.hxx>
-#include <IMark.hxx>
-#include <IDocumentContentOperations.hxx>
-class SwUndoIter;
class SwHistory;
class SwIndex;
class SwPaM;
struct SwPosition;
class SwDoc;
-class SwFmt;
-class SwFmtColl;
class SwTxtFmtColl;
-class SwTxtNode;
-class SwTableNode;
-class SwTable;
-class SwTableBox;
-struct SwSortOptions;
class SwFrmFmt;
-class SwHistoryBookmark;
-class SwSectionData;
-class SwSectionFmt;
-class SwTOXBase;
-class SvxTabStopItem;
-class SwDDEFieldType;
-class Graphic;
-class SwGrfNode;
-class SwUndos;
-class SwFtnInfo;
-class SwEndNoteInfo;
class SwNodeIndex;
class SwNodeRange;
-class SwFmtAnchor;
-struct SwUndoGroupObjImpl;
-class SdrMark;
-class SdrMarkList;
-class SdrObject;
-class SdrObjGroup;
-class SdrUndoAction;
-class SwDrawFrmFmt;
-class _SaveTable;
-class SwTableAutoFmt;
-class SwSelBoxes;
-class SwTableSortBoxes;
-class SwUndoSaveSections;
-class SwUndoMoves;
-class SwStartNode;
-class _SaveFlyArr;
-class SwTblToTxtSaves;
class SwRedlineData;
-class SwRedlineSaveData;
-class SwRedline;
-struct SwSaveRowSpan;
-
-namespace sfx2 {
- class MetadatableUndo;
-}
+class SwRedlineSaveDatas;
-namespace utl {
- class TransliterationWrapper;
+namespace sw {
+ class UndoRedoContext;
+ class RepeatContext;
}
-const String UNDO_ARG1("$1", RTL_TEXTENCODING_ASCII_US);
-const String UNDO_ARG2("$2", RTL_TEXTENCODING_ASCII_US);
-const String UNDO_ARG3("$3", RTL_TEXTENCODING_ASCII_US);
-
-typedef SwRedlineSaveData* SwRedlineSaveDataPtr;
-SV_DECL_PTRARR_DEL( SwRedlineSaveDatas, SwRedlineSaveDataPtr, 8, 8 )
-
class SwUndo
+ : public SfxUndoAction
{
- SwUndoId nId;
- USHORT nOrigRedlineMode;
+ SwUndoId const m_nId;
+ sal_uInt16 nOrigRedlineMode;
protected:
bool bCacheComment;
mutable String * pComment;
- void RemoveIdxFromSection( SwDoc&, ULONG nSttIdx, ULONG* pEndIdx = 0 );
- void RemoveIdxFromRange( SwPaM& rPam, BOOL bMoveNext );
- void RemoveIdxRel( ULONG, const SwPosition& );
+ void RemoveIdxFromSection( SwDoc&, sal_uLong nSttIdx, sal_uLong* pEndIdx = 0 );
+ void RemoveIdxFromRange( SwPaM& rPam, sal_Bool bMoveNext );
+ void RemoveIdxRel( sal_uLong, const SwPosition& );
- void SetId( SwUndoId nNew ) { nId = nNew; }
-
- static BOOL CanRedlineGroup( SwRedlineSaveDatas& rCurr,
+ static sal_Bool CanRedlineGroup( SwRedlineSaveDatas& rCurr,
const SwRedlineSaveDatas& rCheck,
- BOOL bCurrIsEnd );
+ sal_Bool bCurrIsEnd );
// #111827#
/**
@@ -148,16 +80,31 @@ protected:
@return the rewriter for this object
*/
virtual SwRewriter GetRewriter() const;
+
+ // return type is sal_uInt16 because this overrides SfxUndoAction::GetId()
+ virtual sal_uInt16 GetId() const { return static_cast<sal_uInt16>(m_nId); }
+
+ // the 4 methods that derived classes have to override
+ // base implementation does nothing
+ virtual void RepeatImpl( ::sw::RepeatContext & );
+ virtual bool CanRepeatImpl( ::sw::RepeatContext & ) const;
+public: // should not be public, but ran into trouble in untbl.cxx
+ virtual void UndoImpl( ::sw::UndoRedoContext & ) = 0;
+ virtual void RedoImpl( ::sw::UndoRedoContext & ) = 0;
+
+private:
+ // SfxUndoAction
+ virtual void Undo();
+ virtual void Redo();
+ virtual void UndoWithContext(SfxUndoContext &);
+ virtual void RedoWithContext(SfxUndoContext &);
+ virtual void Repeat(SfxRepeatTarget &);
+ virtual sal_Bool CanRepeat(SfxRepeatTarget &) const;
+
public:
- SwUndo( SwUndoId nI );
+ SwUndo(SwUndoId const nId);
virtual ~SwUndo();
- SwUndoId GetId() const { return nId; }
- virtual SwUndoId GetEffectiveId() const;
- virtual void Undo( SwUndoIter& ) = 0;
- virtual void Redo( SwUndoIter& ) = 0;
- virtual void Repeat( SwUndoIter& );
-
// #111827#
/**
Returns textual comment for this undo object.
@@ -172,20 +119,20 @@ public:
// das UndoObject merkt sich, welcher Mode eingeschaltet war.
// In Undo/Redo/Repeat wird dann immer auf diesen zurueck geschaltet
- USHORT GetRedlineMode() const { return nOrigRedlineMode; }
- void SetRedlineMode( USHORT eMode ) { nOrigRedlineMode = eMode; }
+ sal_uInt16 GetRedlineMode() const { return nOrigRedlineMode; }
+ void SetRedlineMode( sal_uInt16 eMode ) { nOrigRedlineMode = eMode; }
bool IsDelBox() const;
// sicher und setze die RedlineDaten
- static BOOL FillSaveData( const SwPaM& rRange, SwRedlineSaveDatas& rSData,
- BOOL bDelRange = TRUE, BOOL bCopyNext = TRUE );
- static BOOL FillSaveDataForFmt( const SwPaM& , SwRedlineSaveDatas& );
+ static sal_Bool FillSaveData( const SwPaM& rRange, SwRedlineSaveDatas& rSData,
+ sal_Bool bDelRange = sal_True, sal_Bool bCopyNext = sal_True );
+ static sal_Bool FillSaveDataForFmt( const SwPaM& , SwRedlineSaveDatas& );
static void SetSaveData( SwDoc& rDoc, const SwRedlineSaveDatas& rSData );
- static BOOL HasHiddenRedlines( const SwRedlineSaveDatas& rSData );
+ static sal_Bool HasHiddenRedlines( const SwRedlineSaveDatas& rSData );
};
-typedef USHORT DelCntntType;
+typedef sal_uInt16 DelCntntType;
namespace nsDelCntntType
{
const DelCntntType DELCNT_FTN = 0x01;
@@ -217,17 +164,17 @@ protected:
// MoveFrom.. verschiebt aus dem UndoNodesArray in das NodesArray
void MoveToUndoNds( SwPaM& rPam,
SwNodeIndex* pNodeIdx = 0, SwIndex* pCntIdx = 0,
- ULONG* pEndNdIdx = 0, xub_StrLen * pEndCntIdx = 0 );
- void MoveFromUndoNds( SwDoc& rDoc, ULONG nNodeIdx, xub_StrLen nCntntIdx,
+ sal_uLong* pEndNdIdx = 0, xub_StrLen * pEndCntIdx = 0 );
+ void MoveFromUndoNds( SwDoc& rDoc, sal_uLong nNodeIdx, xub_StrLen nCntntIdx,
SwPosition& rInsPos,
- ULONG* pEndNdIdx = 0, xub_StrLen * pEndCntIdx = 0 );
+ sal_uLong* pEndNdIdx = 0, xub_StrLen * pEndCntIdx = 0 );
// diese beiden Methoden bewegen den SPoint vom Pam zurueck/vor. Damit
// kann fuer ein Undo/Redo ein Bereich aufgespannt werden. (Der
// SPoint liegt dann vor dem manipuliertem Bereich !!)
// Das Flag gibt an, ob noch vorm SPoint Inhalt steht.
- BOOL MovePtBackward( SwPaM& rPam );
- void MovePtForward( SwPaM& rPam, BOOL bMvBkwrd );
+ sal_Bool MovePtBackward( SwPaM& rPam );
+ void MovePtForward( SwPaM& rPam, sal_Bool bMvBkwrd );
// vor dem Move ins UndoNodes-Array muss dafuer gesorgt werden, das
// die Inhaltstragenden Attribute aus dem Nodes-Array entfernt werden.
@@ -245,12 +192,12 @@ class SwUndoSaveSection : private SwUndoSaveCntnt
{
SwNodeIndex *pMvStt;
SwRedlineSaveDatas* pRedlSaveData;
- ULONG nMvLen; // Index ins UndoNodes-Array
- ULONG nStartPos;
+ sal_uLong nMvLen; // Index ins UndoNodes-Array
+ sal_uLong nStartPos;
protected:
SwNodeIndex* GetMvSttIdx() const { return pMvStt; }
- ULONG GetMvNodeCnt() const { return nMvLen; }
+ sal_uLong GetMvNodeCnt() const { return nMvLen; }
public:
SwUndoSaveSection();
@@ -258,7 +205,7 @@ public:
void SaveSection( SwDoc* pDoc, const SwNodeIndex& rSttIdx );
void SaveSection( SwDoc* pDoc, const SwNodeRange& rRange );
- void RestoreSection( SwDoc* pDoc, SwNodeIndex* pIdx, USHORT nSectType );
+ void RestoreSection( SwDoc* pDoc, SwNodeIndex* pIdx, sal_uInt16 nSectType );
void RestoreSection( SwDoc* pDoc, const SwNodeIndex& rInsPos );
const SwHistory* GetHistory() const { return pHistory; }
@@ -266,517 +213,51 @@ public:
};
-// Diese Klasse speichert den Pam als USHORT's und kann diese wieder zu
+// Diese Klasse speichert den Pam als sal_uInt16's und kann diese wieder zu
// einem PaM zusammensetzen
class SwUndRng
{
public:
- ULONG nSttNode, nEndNode;
+ sal_uLong nSttNode, nEndNode;
xub_StrLen nSttCntnt, nEndCntnt;
SwUndRng();
SwUndRng( const SwPaM& );
void SetValues( const SwPaM& rPam );
- void SetPaM( SwPaM&, BOOL bCorrToCntnt = FALSE ) const;
- void SetPaM( SwUndoIter&, BOOL bCorrToCntnt = FALSE ) const;
-};
-
-
-class SwUndoStart: public SwUndo
-{
- // Um innerhalb von Undo zuerkennen, wann ein Start vorliegt, gibt
- // GetId() immer die UNDO_START zurueck. Die UserId kann ueber
- // GetUserId() erfragt werden.
- SwUndoId nUserId;
- // fuer die "Verpointerung" von Start- und End-Undos
- USHORT nEndOffset;
-
- SwRewriter mRewriter;
-
-public:
- SwUndoStart( SwUndoId nId );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- // -> #111827#
- virtual String GetComment() const;
- void SetRewriter(const SwRewriter & rRewriter);
- virtual SwRewriter GetRewriter() const;
- // <- #111827#
-
- virtual SwUndoId GetEffectiveId() const;
- SwUndoId GetUserId() const { return nUserId; }
- // Setzen vom End-Undo-Offset geschieht im Doc::EndUndo
- USHORT GetEndOffset() const { return nEndOffset; }
- void SetEndOffset( USHORT n ) { nEndOffset = n; }
-};
-
-class SwUndoEnd: public SwUndo
-{
- // Um innerhalb von Undo zuerkennen, wann ein Ende vorliegt, gibt
- // GetId() immer die UNDO_END zurueck. Die UserId kann ueber
- // GetUserId() erfragt werden.
- SwUndoId nUserId;
- // fuer die "Verpointerung" von Start- und End-Undos
- USHORT nSttOffset;
-
- SwRewriter mRewriter;
-
-public:
- SwUndoEnd( SwUndoId nId );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- // -> #111827#
- virtual String GetComment() const;
- void SetRewriter(const SwRewriter & rRewriter);
- virtual SwRewriter GetRewriter() const;
- // <- #111827#
-
- virtual SwUndoId GetEffectiveId() const;
- SwUndoId GetUserId() const { return nUserId; }
-
- // Setzen vom Start-Undo-Offset geschieht im Doc::EndUndo
- void SetSttOffset(USHORT _nSttOffSet) { nSttOffset = _nSttOffSet; }
- USHORT GetSttOffset() const { return nSttOffset; }
-};
-
-class SwUndoInsert: public SwUndo, private SwUndoSaveCntnt
-{
- SwPosition *pPos; // Inhalt fuers Redo
- String *pTxt, *pUndoTxt;
- SwRedlineData* pRedlData;
- ULONG nNode;
- xub_StrLen nCntnt, nLen;
- BOOL bIsWordDelim : 1;
- BOOL bIsAppend : 1;
-
- const IDocumentContentOperations::InsertFlags m_nInsertFlags;
-
- friend class SwDoc; // eigentlich nur SwDoc::Insert( String )
- BOOL CanGrouping( sal_Unicode cIns );
- BOOL CanGrouping( const SwPosition& rPos );
-
- SwDoc * pDoc;
-
- void Init(const SwNodeIndex & rNode);
- String * GetTxtFromDoc() const;
-
-public:
- SwUndoInsert( const SwNodeIndex& rNode, xub_StrLen nCntnt, xub_StrLen nLen,
- const IDocumentContentOperations::InsertFlags nInsertFlags,
- BOOL bWDelim = TRUE );
- SwUndoInsert( const SwNodeIndex& rNode );
- virtual ~SwUndoInsert();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- // #111827#
- /**
- Returns rewriter for this undo object.
-
- The returned rewriter has the following rule:
-
- $1 -> '<inserted text>'
-
- <inserted text> is shortened to a length of nUndoStringLength.
-
- @return rewriter for this undo object
- */
- virtual SwRewriter GetRewriter() const;
-
-
- DECL_FIXEDMEMPOOL_NEWDEL(SwUndoInsert)
-};
-
-
-class SwUndoDelete: public SwUndo, private SwUndRng, private SwUndoSaveCntnt
-{
- SwNodeIndex* pMvStt; // Position der Nodes im UndoNodes-Array
- String *pSttStr, *pEndStr;
- SwRedlineData* pRedlData;
- SwRedlineSaveDatas* pRedlSaveData;
- ::boost::shared_ptr< ::sfx2::MetadatableUndo > m_pMetadataUndoStart;
- ::boost::shared_ptr< ::sfx2::MetadatableUndo > m_pMetadataUndoEnd;
-
- String sTableName;
-
- ULONG nNode;
- ULONG nNdDiff; // Differenz von Nodes vor-nach Delete
- ULONG nSectDiff; // Diff. von Nodes vor/nach Move mit SectionNodes
- ULONG nReplaceDummy; // Diff. to a temporary dummy object
- USHORT nSetPos;
-
- BOOL bGroup : 1; // TRUE: ist schon eine Gruppe; wird in CanGrouping() ausgwertet !!
- BOOL bBackSp : 1; // TRUE: wenn Gruppierung und der Inhalt davor geloescht wird
- BOOL bJoinNext: 1; // TRUE: wenn der Bereich von Oben nach unten geht
- BOOL bTblDelLastNd : 1; // TRUE: TextNode hinter der Tabelle einf./loeschen
- BOOL bDelFullPara : 1; // TRUE: gesamte Nodes wurden geloescht
- BOOL bResetPgDesc : 1; // TRUE: am nachfolgenden Node das PgDsc zuruecksetzen
- BOOL bResetPgBrk : 1; // TRUE: am nachfolgenden Node das PgBreak zuruecksetzen
- BOOL bFromTableCopy : 1; // TRUE: called by SwUndoTblCpyTbl
-
- BOOL SaveCntnt( const SwPosition* pStt, const SwPosition* pEnd,
- SwTxtNode* pSttTxtNd, SwTxtNode* pEndTxtNd );
-public:
- SwUndoDelete( SwPaM&, BOOL bFullPara = FALSE, BOOL bCalledByTblCpy = FALSE );
- virtual ~SwUndoDelete();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- // #111827#
- /**
- Returns rewriter for this undo object.
-
- The rewriter consists of the following rule:
-
- $1 -> '<deleted text>'
-
- <deleted text> is shortened to nUndoStringLength characters.
-
- @return rewriter for this undo object
- */
- virtual SwRewriter GetRewriter() const;
-
- BOOL CanGrouping( SwDoc*, const SwPaM& );
-
- void SetTblDelLastNd() { bTblDelLastNd = TRUE; }
-
- // fuer die PageDesc/PageBreak Attribute einer Tabelle
- void SetPgBrkFlags( BOOL bPageBreak, BOOL bPageDesc )
- { bResetPgDesc = bPageDesc; bResetPgBrk = bPageBreak; }
-
- void SetTableName(const String & rName);
-
- // SwUndoTblCpyTbl needs this information:
- long NodeDiff() const { return nSttNode - nEndNode; }
- xub_StrLen ContentStart() const { return nSttCntnt; }
- BOOL IsDelFullPara() const { return bDelFullPara; }
-
- DECL_FIXEDMEMPOOL_NEWDEL(SwUndoDelete)
-};
-
-
-class SwUndoOverwrite: public SwUndo, private SwUndoSaveCntnt
-{
- String aDelStr, aInsStr;
- SwRedlineSaveDatas* pRedlSaveData;
- ULONG nSttNode;
- xub_StrLen nSttCntnt;
- BOOL bInsChar : 1; // kein Overwrite mehr; sondern Insert
- BOOL bGroup : 1; // TRUE: ist schon eine Gruppe; wird in
- // CanGrouping() ausgwertet !!
-public:
- SwUndoOverwrite( SwDoc*, SwPosition&, sal_Unicode cIns );
- virtual ~SwUndoOverwrite();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- // #111827#
- /**
- Returns the rewriter of this undo object.
-
- The rewriter contains the following rule:
-
- $1 -> '<overwritten text>'
-
- <overwritten text> is shortened to nUndoStringLength characters.
-
- @return the rewriter of this undo object
- */
- virtual SwRewriter GetRewriter() const;
-
- BOOL CanGrouping( SwDoc*, SwPosition&, sal_Unicode cIns );
-};
-
-
-class SwUndoSplitNode: public SwUndo
-{
- SwHistory* pHistory;
- SwRedlineData* pRedlData;
- ULONG nNode;
- xub_StrLen nCntnt;
- BOOL bTblFlag : 1;
- BOOL bChkTblStt : 1;
-public:
- SwUndoSplitNode( SwDoc* pDoc, const SwPosition& rPos, BOOL bChkTbl );
- virtual ~SwUndoSplitNode();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
- void SetTblFlag() { bTblFlag = TRUE; }
-};
-
-
-class SwUndoMove : public SwUndo, private SwUndRng, private SwUndoSaveCntnt
-{
- // nDest.. - Bereich, in den verschoben wurde (nach dem Move!)
- // nIns.. - Position, von der verschoben wurde und wieder die neue InsPos. ist
- // nMv.. Position auf die verschoben wird (vor dem Move!) ; fuers REDO
- ULONG nDestSttNode, nDestEndNode, nInsPosNode, nMvDestNode;
- xub_StrLen nDestSttCntnt, nDestEndCntnt, nInsPosCntnt, nMvDestCntnt;
-
- USHORT nFtnStt; // StartPos der Fussnoten in der History
-
- BOOL bJoinNext : 1,
- bJoinPrev : 1,
- bMoveRange : 1;
-
- bool bMoveRedlines; // use DOC_MOVEREDLINES when calling SwDoc::Move
-
- void DelFtn( const SwPaM& );
-public:
- SwUndoMove( const SwPaM&, const SwPosition& );
- SwUndoMove( SwDoc* pDoc, const SwNodeRange&, const SwNodeIndex& );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- // setze den Destination-Bereich nach dem Verschieben.
- void SetDestRange( const SwPaM&, const SwPosition&, BOOL, BOOL );
- void SetDestRange( const SwNodeIndex& rStt, const SwNodeIndex& rEnd,
- const SwNodeIndex& rInsPos );
-
- BOOL IsMoveRange() const { return bMoveRange; }
- ULONG GetEndNode() const { return nEndNode; }
- ULONG GetDestSttNode() const { return nDestSttNode; }
- xub_StrLen GetDestSttCntnt() const { return nDestSttCntnt; }
-
- void SetMoveRedlines( bool b ) { bMoveRedlines = b; }
-
-};
-
-
-class SwUndoAttr : public SwUndo, private SwUndRng
-{
- SfxItemSet m_AttrSet; // attributes for Redo
- const ::std::auto_ptr<SwHistory> m_pHistory; // History for Undo
- ::std::auto_ptr<SwRedlineData> m_pRedlineData; // Redlining
- ::std::auto_ptr<SwRedlineSaveDatas> m_pRedlineSaveData;
- ULONG m_nNodeIndex; // Offset: for Redlining
- const SetAttrMode m_nInsertFlags; // insert flags
-
- void RemoveIdx( SwDoc& rDoc );
-
-public:
- SwUndoAttr( const SwPaM&, const SfxItemSet &, const SetAttrMode nFlags );
- SwUndoAttr( const SwPaM&, const SfxPoolItem&, const SetAttrMode nFlags );
- virtual ~SwUndoAttr();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
- void SaveRedlineData( const SwPaM& rPam, BOOL bInsCntnt );
-
- SwHistory& GetHistory() { return *m_pHistory; }
-
-};
-
-class SwUndoResetAttr : public SwUndo, private SwUndRng
-{
- const ::std::auto_ptr<SwHistory> m_pHistory;
- SvUShortsSort m_Ids;
- const USHORT m_nFormatId; // Format-Id for Redo
-
-public:
- SwUndoResetAttr( const SwPaM&, USHORT nFmtId );
- SwUndoResetAttr( const SwPosition&, USHORT nFmtId );
- virtual ~SwUndoResetAttr();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
- void SetAttrs( const SvUShortsSort& rArr );
-
- SwHistory& GetHistory() { return *m_pHistory; }
-
-};
-
-class SwUndoFmtAttr : public SwUndo
-{
- friend class SwUndoDefaultAttr;
- SwFmt * m_pFmt;
- ::std::auto_ptr<SfxItemSet> m_pOldSet; // old attributes
- ULONG m_nNodeIndex;
- const USHORT m_nFmtWhich;
- const bool m_bSaveDrawPt;
-
- bool IsFmtInDoc( SwDoc* ); //is the attribute format still in the Doc?
- void SaveFlyAnchor( bool bSaveDrawPt = false );
- // --> OD 2004-10-26 #i35443# - Add return value, type <bool>.
- // Return value indicates, if anchor attribute is restored.
- // Notes: - If anchor attribute is restored, all other existing attributes
- // are also restored.
- // - Anchor attribute isn't restored successfully, if it contains
- // an invalid anchor position and all other existing attributes
- // aren't restored.
- // This situation occurs for undo of styles.
- bool RestoreFlyAnchor( SwUndoIter& rIter );
- // <--
- // --> OD 2008-02-27 #refactorlists# - removed <rAffectedItemSet>
- void Init();
- // <--
-
-public:
- // register at the Format and save old attributes
- // --> OD 2008-02-27 #refactorlists# - removed <rNewSet>
- SwUndoFmtAttr( const SfxItemSet& rOldSet,
- SwFmt& rFmt,
- bool bSaveDrawPt = true );
- // <--
- SwUndoFmtAttr( const SfxPoolItem& rItem,
- SwFmt& rFmt,
- bool bSaveDrawPt = true );
- virtual ~SwUndoFmtAttr();
- virtual void Undo( SwUndoIter& );
- // --> OD 2004-10-26 #i35443# - <Redo(..)> calls <Undo(..)> - nothing else
- virtual void Redo( SwUndoIter& );
- // <--
- virtual void Repeat( SwUndoIter& );
- virtual SwRewriter GetRewriter() const;
-
- void PutAttr( const SfxPoolItem& rItem );
- SwFmt* GetFmt( SwDoc& rDoc ); // checks if it is still in the Doc!
-};
-
-// --> OD 2008-02-12 #newlistlevelattrs#
-class SwUndoFmtResetAttr : public SwUndo
-{
- public:
- SwUndoFmtResetAttr( SwFmt& rChangedFormat,
- const USHORT nWhichId );
- ~SwUndoFmtResetAttr();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- private:
- // format at which a certain attribute is reset.
- SwFmt * const m_pChangedFormat;
- // which ID of the reset attribute
- const USHORT m_nWhichId;
- // old attribute which has been reset - needed for undo.
- ::std::auto_ptr<SfxPoolItem> m_pOldItem;
-};
-// <--
-
-class SwUndoDontExpandFmt : public SwUndo
-{
- const ULONG m_nNodeIndex;
- const xub_StrLen m_nContentIndex;
-
-public:
- SwUndoDontExpandFmt( const SwPosition& rPos );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-};
-
-// helper class to receive changed attribute sets
-class SwUndoFmtAttrHelper : public SwClient
-{
- ::std::auto_ptr<SwUndoFmtAttr> m_pUndo;
- const bool m_bSaveDrawPt;
-
-public:
- SwUndoFmtAttrHelper( SwFmt& rFmt, bool bSaveDrawPt = true );
-
- virtual void Modify( SfxPoolItem*, SfxPoolItem* );
-
- SwUndoFmtAttr* GetUndo() const { return m_pUndo.get(); }
- // release the undo object (so it is not deleted here), and return it
- SwUndoFmtAttr* ReleaseUndo() { return m_pUndo.release(); }
-};
-
-
-class SwUndoFmtColl : public SwUndo, private SwUndRng
-{
- String aFmtName;
- SwHistory* pHistory;
- SwFmtColl* pFmtColl;
- // --> OD 2008-04-15 #refactorlists# - for correct <ReDo(..)> and <Repeat(..)>
- // boolean, which indicates that the attributes are reseted at the nodes
- // before the format has been applied.
- const bool mbReset;
- // boolean, which indicates that the list attributes had been reseted at
- // the nodes before the format has been applied.
- const bool mbResetListAttrs;
- // <--
-public:
- // --> OD 2008-04-15 #refactorlists#
-// SwUndoFmtColl( const SwPaM&, SwFmtColl* );
- SwUndoFmtColl( const SwPaM&, SwFmtColl*,
- const bool bReset,
- const bool bResetListAttrs );
- // <--
- virtual ~SwUndoFmtColl();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- // #111827#
- /**
- Returns the rewriter for this undo object.
-
- The rewriter contains one rule:
-
- $1 -> <name of format collection>
-
- <name of format collection> is the name of the format
- collection that is applied by the action recorded by this undo
- object.
-
- @return the rewriter for this undo object
- */
- virtual SwRewriter GetRewriter() const;
-
- SwHistory* GetHistory() { return pHistory; }
-
+ void SetPaM( SwPaM&, sal_Bool bCorrToCntnt = sal_False ) const;
+ SwPaM & AddUndoRedoPaM(
+ ::sw::UndoRedoContext &, bool const bCorrToCntnt = false) const;
};
-class SwUndoMoveLeftMargin : public SwUndo, private SwUndRng
-{
- const ::std::auto_ptr<SwHistory> m_pHistory;
- const bool m_bModulus;
-
-public:
- SwUndoMoveLeftMargin( const SwPaM&, BOOL bRight, BOOL bModulus );
- virtual ~SwUndoMoveLeftMargin();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- SwHistory& GetHistory() { return *m_pHistory; }
-};
+class SwUndoInsLayFmt;
-// Basis-Klasse fuer Insert von Dokument, Glossaries und Kopieren
+// base class for insertion of Document, Glossaries and Copy
class SwUndoInserts : public SwUndo, public SwUndRng, private SwUndoSaveCntnt
{
SwTxtFmtColl *pTxtFmtColl, *pLastNdColl;
SvPtrarr* pFrmFmts;
- SwUndos* pFlyUndos;
+ ::std::vector< ::boost::shared_ptr<SwUndoInsLayFmt> > m_FlyUndos;
SwRedlineData* pRedlData;
- BOOL bSttWasTxtNd;
+ sal_Bool bSttWasTxtNd;
protected:
- ULONG nNdDiff;
+ sal_uLong nNdDiff;
SwPosition *pPos; // Inhalt fuers Redo
- USHORT nSetPos; // Start in der History-Liste
+ sal_uInt16 nSetPos; // Start in der History-Liste
SwUndoInserts( SwUndoId nUndoId, const SwPaM& );
public:
virtual ~SwUndoInserts();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
+ virtual void UndoImpl( ::sw::UndoRedoContext & );
+ virtual void RedoImpl( ::sw::UndoRedoContext & );
+ virtual void RepeatImpl( ::sw::RepeatContext & );
+
// setze den Destination-Bereich nach dem Einlesen.
- void SetInsertRange( const SwPaM&, BOOL bScanFlys = TRUE,
- BOOL bSttWasTxtNd = TRUE );
+ void SetInsertRange( const SwPaM&, sal_Bool bScanFlys = sal_True,
+ sal_Bool bSttWasTxtNd = sal_True );
};
class SwUndoInsDoc : public SwUndoInserts
@@ -791,384 +272,6 @@ public:
SwUndoCpyDoc( const SwPaM& );
};
-class SwUndoInsTbl : public SwUndo
-{
- String sTblNm;
- SwInsertTableOptions aInsTblOpts;
- SwDDEFieldType* pDDEFldType;
- SvUShorts* pColWidth;
- SwRedlineData* pRedlData;
- SwTableAutoFmt* pAutoFmt;
- ULONG nSttNode;
- USHORT nRows, nCols;
- USHORT nAdjust;
-
-public:
- SwUndoInsTbl( const SwPosition&, USHORT nCols, USHORT nRows,
- USHORT eAdjust, const SwInsertTableOptions& rInsTblOpts,
- const SwTableAutoFmt* pTAFmt, const SvUShorts* pColArr,
- const String & rName);
- virtual ~SwUndoInsTbl();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- virtual SwRewriter GetRewriter() const;
-
-};
-
-class SwUndoTxtToTbl : public SwUndo, public SwUndRng
-{
- String sTblNm;
- SwInsertTableOptions aInsTblOpts;
- SvULongs* pDelBoxes;
- SwTableAutoFmt* pAutoFmt;
- SwHistory* pHistory;
- sal_Unicode cTrenner;
- USHORT nAdjust;
- BOOL bSplitEnd : 1;
-
-public:
- SwUndoTxtToTbl( const SwPaM&, const SwInsertTableOptions&, sal_Unicode , USHORT,
- const SwTableAutoFmt* pAFmt );
- virtual ~SwUndoTxtToTbl();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- SwHistory& GetHistory(); // wird ggfs. angelegt
- void AddFillBox( const SwTableBox& rBox );
-};
-
-class SwUndoTblToTxt : public SwUndo
-{
- String sTblNm;
- SwDDEFieldType* pDDEFldType;
- _SaveTable* pTblSave;
- SwTblToTxtSaves* pBoxSaves;
- SwHistory* pHistory;
- ULONG nSttNd, nEndNd;
- USHORT nAdjust;
- sal_Unicode cTrenner;
- USHORT nHdlnRpt;
- BOOL bCheckNumFmt : 1;
-
-public:
- SwUndoTblToTxt( const SwTable& rTbl, sal_Unicode cCh );
- virtual ~SwUndoTblToTxt();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- void SetRange( const SwNodeRange& );
- void AddBoxPos( SwDoc& rDoc, ULONG nNdIdx, ULONG nEndIdx,
- xub_StrLen nCntntIdx = STRING_MAXLEN);
-};
-
-class SwUndoAttrTbl : public SwUndo
-{
- ULONG nSttNode;
- _SaveTable* pSaveTbl;
- BOOL bClearTabCol : 1;
-public:
- SwUndoAttrTbl( const SwTableNode& rTblNd, BOOL bClearTabCols = FALSE );
- virtual ~SwUndoAttrTbl();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-};
-
-class SwUndoTblAutoFmt : public SwUndo
-{
- ULONG nSttNode;
- _SaveTable* pSaveTbl;
- SwUndos* pUndos;
- BOOL bSaveCntntAttr;
-
- void UndoRedo( BOOL bUndo, SwUndoIter& rUndoIter );
-
-public:
- SwUndoTblAutoFmt( const SwTableNode& rTblNd, const SwTableAutoFmt& );
- virtual ~SwUndoTblAutoFmt();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- void SaveBoxCntnt( const SwTableBox& rBox );
-};
-
-class SwUndoTblNdsChg : public SwUndo
-{
- _SaveTable* pSaveTbl;
- SvULongs aBoxes;
-
- union {
- SvULongs* pNewSttNds;
- SwUndoSaveSections* pDelSects;
- } Ptrs;
- SvBools aMvBoxes; // fuers SplitRow (aufgeteilte Nodes einer Box)
- long nMin, nMax; // for redo of delete column
- ULONG nSttNode, nCurrBox;
- USHORT nCount, nRelDiff, nAbsDiff, nSetColType;
- BOOL bFlag;
- BOOL bSameHeight; // only used for SplitRow
-public:
- SwUndoTblNdsChg( SwUndoId UndoId,
- const SwSelBoxes& rBoxes,
- const SwTableNode& rTblNd,
- long nMn, long nMx,
- USHORT nCnt, BOOL bFlg, BOOL bSameHeight );
-
- // fuer SetColWidth
- SwUndoTblNdsChg( SwUndoId UndoId, const SwSelBoxes& rBoxes,
- const SwTableNode& rTblNd );
-
- virtual ~SwUndoTblNdsChg();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- void SaveNewBoxes( const SwTableNode& rTblNd, const SwTableSortBoxes& rOld );
- void SaveNewBoxes( const SwTableNode& rTblNd, const SwTableSortBoxes& rOld,
- const SwSelBoxes& rBoxes, const SvULongs& rNodeCnts );
- void SaveSection( SwStartNode* pSttNd );
- void ReNewBoxes( const SwSelBoxes& rBoxes );
-
-
- void SetColWidthParam( ULONG nBoxIdx, USHORT nMode, USHORT nType,
- SwTwips nAbsDif, SwTwips nRelDif )
- {
- nCurrBox = nBoxIdx;
- nCount = nMode;
- nSetColType = nType;
- nAbsDiff = (USHORT)nAbsDif;
- nRelDiff = (USHORT)nRelDif;
- }
-
-};
-
-class SwUndoTblMerge : public SwUndo, private SwUndRng
-{
- ULONG nTblNode;
- _SaveTable* pSaveTbl;
- SvULongs aBoxes, aNewSttNds;
- SwUndoMoves* pMoves;
- SwHistory* pHistory;
-
-public:
- SwUndoTblMerge( const SwPaM& rTblSel );
- virtual ~SwUndoTblMerge();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- void MoveBoxCntnt( SwDoc* pDoc, SwNodeRange& rRg, SwNodeIndex& rPos );
-
- void SetSelBoxes( const SwSelBoxes& rBoxes );
-
- void AddNewBox( ULONG nSttNdIdx )
- { aNewSttNds.Insert( nSttNdIdx, aNewSttNds.Count() ); }
-
- void SaveCollection( const SwTableBox& rBox );
-
-};
-
-
-class SwUndoTblNumFmt : public SwUndo
-{
- SfxItemSet *pBoxSet;
- SwHistory* pHistory;
- String aStr, aNewFml;
-
- ULONG nFmtIdx, nNewFmtIdx;
- double fNum, fNewNum;
- ULONG nNode;
- ULONG nNdPos;
-
- BOOL bNewFmt : 1;
- BOOL bNewFml : 1;
- BOOL bNewValue : 1;
-
-public:
- SwUndoTblNumFmt( const SwTableBox& rBox, const SfxItemSet* pNewSet = 0 );
- virtual ~SwUndoTblNumFmt();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- void SetNumFmt( ULONG nNewNumFmtIdx, const double& rNewNumber )
- { nFmtIdx = nNewNumFmtIdx; fNum = rNewNumber; }
- void SetBox( const SwTableBox& rBox );
-};
-
-class _UndoTblCpyTbl_Entries;
-
-class SwUndoTblCpyTbl : public SwUndo
-{
- _UndoTblCpyTbl_Entries* pArr;
- SwUndoTblNdsChg* pInsRowUndo;
-
- //b6341295: When redlining is active, PrepareRedline has to create the redlining attributes
- //for the new and the old table cell content
- SwUndo* PrepareRedline( SwDoc* pDoc, const SwTableBox& rBox, const SwPosition& rPos,
- bool& rJoin, bool bRedo );
-public:
- SwUndoTblCpyTbl();
- virtual ~SwUndoTblCpyTbl();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- void AddBoxBefore( const SwTableBox& rBox, BOOL bDelCntnt );
- void AddBoxAfter( const SwTableBox& rBox, const SwNodeIndex& rIdx, BOOL bDelCntnt );
-
- BOOL IsEmpty() const;
- BOOL InsertRow( SwTable& rTbl, const SwSelBoxes& rBoxes, USHORT nCnt );
-};
-
-class SwUndoCpyTbl : public SwUndo
-{
- SwUndoDelete* pDel;
- ULONG nTblNode;
-public:
- SwUndoCpyTbl();
- virtual ~SwUndoCpyTbl();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- void SetTableSttIdx( ULONG nIdx ) { nTblNode = nIdx; }
-};
-
-class SwUndoSplitTbl : public SwUndo
-{
- ULONG nTblNode, nOffset;
- SwSaveRowSpan* mpSaveRowSpan; // stores the row span values at the splitting row
- _SaveTable* pSavTbl;
- SwHistory* pHistory;
- USHORT nMode, nFmlEnd;
- BOOL bCalcNewSize;
-public:
- SwUndoSplitTbl( const SwTableNode& rTblNd, SwSaveRowSpan* pRowSp, USHORT nMode, BOOL bCalcNewSize );
- virtual ~SwUndoSplitTbl();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- void SetTblNodeOffset( ULONG nIdx ) { nOffset = nIdx - nTblNode; }
- SwHistory* GetHistory() { return pHistory; }
- void SaveFormula( SwHistory& rHistory );
-};
-
-class SwUndoMergeTbl : public SwUndo
-{
- String aName;
- ULONG nTblNode;
- _SaveTable* pSavTbl, *pSavHdl;
- SwHistory* pHistory;
- USHORT nMode;
- BOOL bWithPrev;
-public:
- SwUndoMergeTbl( const SwTableNode& rTblNd, const SwTableNode& rDelTblNd,
- BOOL bWithPrev, USHORT nMode );
- virtual ~SwUndoMergeTbl();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- void SaveFormula( SwHistory& rHistory );
-};
-
-
-class SwUndoBookmark : public SwUndo
-{
- const ::std::auto_ptr<SwHistoryBookmark> m_pHistoryBookmark;
-
-protected:
- SwUndoBookmark( SwUndoId nUndoId, const ::sw::mark::IMark& );
-
- void SetInDoc( SwDoc* );
- void ResetInDoc( SwDoc* );
-
-public:
- virtual ~SwUndoBookmark();
-
- // #111827#
- /**
- Returns the rewriter for this undo object.
-
- The rewriter contains the following rule:
-
- $1 -> <name of bookmark>
-
- <name of bookmark> is the name of the bookmark whose
- insertion/deletion is recorded by this undo object.
-
- @return the rewriter for this undo object
- */
- virtual SwRewriter GetRewriter() const;
-};
-
-
-class SwUndoInsBookmark : public SwUndoBookmark
-{
-public:
- SwUndoInsBookmark( const ::sw::mark::IMark& );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-};
-
-
-/*--------------------------------------------------------------------
- Beschreibung: Undo auf Sorting
- --------------------------------------------------------------------*/
-
-struct SwSortUndoElement
-{
- union {
- struct {
- ULONG nKenn;
- ULONG nSource, nTarget;
- } TXT;
- struct {
- String *pSource, *pTarget;
- } TBL;
- } SORT_TXT_TBL;
-
- SwSortUndoElement( const String& aS, const String& aT )
- {
- SORT_TXT_TBL.TBL.pSource = new String( aS );
- SORT_TXT_TBL.TBL.pTarget = new String( aT );
- }
- SwSortUndoElement( ULONG nS, ULONG nT )
- {
- SORT_TXT_TBL.TXT.nSource = nS;
- SORT_TXT_TBL.TXT.nTarget = nT;
- SORT_TXT_TBL.TXT.nKenn = 0xffffffff;
- }
- ~SwSortUndoElement();
-};
-
-SV_DECL_PTRARR_DEL(SwSortList, SwSortUndoElement*, 10,30)
-SV_DECL_PTRARR(SwUndoSortList, SwNodeIndex*, 10,30)
-
-class SwUndoSort : public SwUndo, private SwUndRng
-{
- SwSortOptions* pSortOpt; // die Optionen mit den Sortier-Kriterien
- SwSortList aSortList;
- SwUndoAttrTbl* pUndoTblAttr;
- SwRedlineData* pRedlData;
- ULONG nTblNd;
-
- void RemoveIdx( SwPaM& rPam );
-public:
- SwUndoSort( const SwPaM&, const SwSortOptions& );
- SwUndoSort( ULONG nStt, ULONG nEnd, const SwTableNode&,
- const SwSortOptions&, BOOL bSaveTable );
- virtual ~SwUndoSort();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- void Insert( const String& rOrgPos, const String& rNewPos );
- void Insert( ULONG nOrgPos, ULONG nNewPos );
-
-};
-
//--------------------------------------------------------------------
@@ -1177,38 +280,36 @@ class SwUndoFlyBase : public SwUndo, private SwUndoSaveSection
{
protected:
SwFrmFmt* pFrmFmt; // das gespeicherte FlyFormat
- ULONG nNdPgPos;
+ sal_uLong nNdPgPos;
xub_StrLen nCntPos; // Seite/am Absatz/im Absatz
- USHORT nRndId;
- BOOL bDelFmt; // loesche das gespeicherte Format
+ sal_uInt16 nRndId;
+ sal_Bool bDelFmt; // loesche das gespeicherte Format
- void InsFly( SwUndoIter&, BOOL bShowSel = TRUE );
+ void InsFly(::sw::UndoRedoContext & rContext, bool bShowSel = true);
void DelFly( SwDoc* );
SwUndoFlyBase( SwFrmFmt* pFormat, SwUndoId nUndoId );
SwNodeIndex* GetMvSttIdx() const { return SwUndoSaveSection::GetMvSttIdx(); }
- ULONG GetMvNodeCnt() const { return SwUndoSaveSection::GetMvNodeCnt(); }
+ sal_uLong GetMvNodeCnt() const { return SwUndoSaveSection::GetMvNodeCnt(); }
public:
virtual ~SwUndoFlyBase();
- virtual void Undo( SwUndoIter& ) = 0;
- virtual void Redo( SwUndoIter& ) = 0;
-
};
class SwUndoInsLayFmt : public SwUndoFlyBase
{
- ULONG mnCrsrSaveIndexPara; // Cursor position
+ sal_uLong mnCrsrSaveIndexPara; // Cursor position
xub_StrLen mnCrsrSaveIndexPos; // for undo
public:
- SwUndoInsLayFmt( SwFrmFmt* pFormat, ULONG nNodeIdx, xub_StrLen nCntIdx );
- ~SwUndoInsLayFmt();
+ SwUndoInsLayFmt( SwFrmFmt* pFormat, sal_uLong nNodeIdx, xub_StrLen nCntIdx );
+
+ virtual ~SwUndoInsLayFmt();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
+ virtual void UndoImpl( ::sw::UndoRedoContext & );
+ virtual void RedoImpl( ::sw::UndoRedoContext & );
+ virtual void RepeatImpl( ::sw::RepeatContext & );
String GetComment() const;
@@ -1216,704 +317,19 @@ public:
class SwUndoDelLayFmt : public SwUndoFlyBase
{
- BOOL bShowSelFrm;
+ sal_Bool bShowSelFrm;
public:
SwUndoDelLayFmt( SwFrmFmt* pFormat );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- void Redo(); // Schnittstelle fuers Rollback
-
- void ChgShowSel( BOOL bNew ) { bShowSelFrm = bNew; }
-
- virtual SwRewriter GetRewriter() const;
-
-};
-
-
-class SwUndoSetFlyFmt : public SwUndo, public SwClient
-{
- SwFrmFmt* pFrmFmt; // das gespeicherte FlyFormat
- SwFrmFmt* pOldFmt; // die alte Fly Vorlage
- SwFrmFmt* pNewFmt; // die neue Fly Vorlage
- SfxItemSet* pItemSet; // die zurueck-/ gesetzten Attribute
- ULONG nOldNode, nNewNode;
- xub_StrLen nOldCntnt, nNewCntnt;
- USHORT nOldAnchorTyp, nNewAnchorTyp;
- BOOL bAnchorChgd;
-
- void PutAttr( USHORT nWhich, const SfxPoolItem* pItem );
- void Modify( SfxPoolItem*, SfxPoolItem* );
- void GetAnchor( SwFmtAnchor& rAnhor, ULONG nNode, xub_StrLen nCntnt );
-
-public:
- SwUndoSetFlyFmt( SwFrmFmt& rFlyFmt, SwFrmFmt& rNewFrmFmt );
- virtual ~SwUndoSetFlyFmt();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- virtual SwRewriter GetRewriter() const;
-};
-
-//--------------------------------------------------------------------
-
-class _UnReplaceData;
-SV_DECL_PTRARR_DEL( _UnReplaceDatas, _UnReplaceData*, 10, 25 )
-
-class SwUndoReplace : public SwUndo
-{
- friend class SwDoc;
-
- BOOL bOldIterFlag; // Status vom Undo-Iter vorm 1. Aufruf
- USHORT nAktPos; // fuer GetUndoRange und Undo/Redo
- _UnReplaceDatas aArr;
- SwRedlineData* pRedlData;
-
-public:
- SwUndoReplace();
- virtual ~SwUndoReplace();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- // #111827#
- /**
- Returns the rewriter of this undo object.
-
- If this undo object represents several replacements the
- rewriter contains the following rules:
-
- $1 -> <number of replacements>
- $2 -> occurrences of
- $3 -> <replaced text>
-
- If this undo object represents one replacement the rewriter
- contains these rules:
-
- $1 -> <replaced text>
- $2 -> "->" (STR_YIELDS)
- $3 -> <replacing text>
-
- @return the rewriter of this undo object
- */
- virtual SwRewriter GetRewriter() const;
-
- void AddEntry( const SwPaM& rPam, const String& rInsert, BOOL bRegExp );
- void SetEntryEnd( const SwPaM& rPam );
-
- BOOL IsFull() const
- { return ((USHRT_MAX / sizeof( void* )) - 50 ) < aArr.Count(); }
-
-};
-
-
-//--------------------------------------------------------------------
-
-
-class SwUndoTblHeadline : public SwUndo
-{
- ULONG nTblNd;
- USHORT nOldHeadline;
- USHORT nNewHeadline;
-public:
- SwUndoTblHeadline( const SwTable&, USHORT nOldHdl, USHORT nNewHdl );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-};
-
-
-//------------ Undo von Insert-/Delete-Sections ----------------------
-
-class SwUndoInsSection : public SwUndo, private SwUndRng
-{
-private:
- const ::std::auto_ptr<SwSectionData> m_pSectionData;
- const ::std::auto_ptr<SwTOXBase> m_pTOXBase; /// set iff section is TOX
- const ::std::auto_ptr<SfxItemSet> m_pAttrSet;
- ::std::auto_ptr<SwHistory> m_pHistory;
- ::std::auto_ptr<SwRedlineData> m_pRedlData;
- ULONG m_nSectionNodePos;
- bool m_bSplitAtStart : 1;
- bool m_bSplitAtEnd : 1;
- bool m_bUpdateFtn : 1;
-
- void Join( SwDoc& rDoc, ULONG nNode );
-
-public:
- SwUndoInsSection(SwPaM const&, SwSectionData const&,
- SfxItemSet const*const pSet, SwTOXBase const*const pTOXBase);
- virtual ~SwUndoInsSection();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- void SetSectNdPos(ULONG const nPos) { m_nSectionNodePos = nPos; }
- void SaveSplitNode(SwTxtNode *const pTxtNd, bool const bAtStart);
- void SetUpdtFtnFlag(bool const bFlag) { m_bUpdateFtn = bFlag; }
-};
-
-SW_DLLPRIVATE SwUndo * MakeUndoDelSection(SwSectionFmt const&);
-
-SW_DLLPRIVATE SwUndo * MakeUndoUpdateSection(SwSectionFmt const&, bool const);
-
-
-//------------ Undo von verschieben/stufen von Gliederung ----------------
-
-class SwUndoOutlineLeftRight : public SwUndo, private SwUndRng
-{
- short nOffset;
-public:
- SwUndoOutlineLeftRight( const SwPaM& rPam, short nOffset );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-};
-
-//--------------------------------------------------------------------
-
-class SwUndoDefaultAttr : public SwUndo
-{
- ::std::auto_ptr<SfxItemSet> m_pOldSet; // the old attributes
- ::std::auto_ptr<SvxTabStopItem> m_pTabStop;
+ virtual void UndoImpl( ::sw::UndoRedoContext & );
+ virtual void RedoImpl( ::sw::UndoRedoContext & );
-public:
- // registers at the format and saves old attributes
- SwUndoDefaultAttr( const SfxItemSet& rOldSet );
- virtual ~SwUndoDefaultAttr();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-};
+ void RedoForRollback();
-//--------------------------------------------------------------------
-// ---------- Undo fuer Numerierung ----------------------------------
+ void ChgShowSel( sal_Bool bNew ) { bShowSelFrm = bNew; }
-class SwUndoInsNum : public SwUndo, private SwUndRng
-{
- SwNumRule aNumRule;
- SwHistory* pHistory;
- ULONG nSttSet;
- SwNumRule* pOldNumRule;
- String sReplaceRule;
- USHORT nLRSavePos;
-public:
- SwUndoInsNum( const SwPaM& rPam, const SwNumRule& rRule );
- SwUndoInsNum( const SwNumRule& rOldRule, const SwNumRule& rNewRule,
- SwUndoId nUndoId = UNDO_INSFMTATTR );
- SwUndoInsNum( const SwPosition& rPos, const SwNumRule& rRule,
- const String& rReplaceRule );
- virtual ~SwUndoInsNum();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
virtual SwRewriter GetRewriter() const;
- SwHistory* GetHistory(); // wird ggfs. neu angelegt!
- void SetSttNum( ULONG nNdIdx ) { nSttSet = nNdIdx; }
- void SaveOldNumRule( const SwNumRule& rOld );
-
- void SetLRSpaceEndPos();
-
-};
-
-class SwUndoDelNum : public SwUndo, private SwUndRng
-{
- SvULongs aNodeIdx;
- SvBytes aLevels;
- SvBools aRstLRSpaces;
- SwHistory* pHistory;
-public:
- SwUndoDelNum( const SwPaM& rPam );
- virtual ~SwUndoDelNum();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- void AddNode( const SwTxtNode& rNd, BOOL bResetLRSpace );
- SwHistory* GetHistory() { return pHistory; }
-
-};
-
-class SwUndoMoveNum : public SwUndo, private SwUndRng
-{
- ULONG nNewStt;
- long nOffset;
-public:
- SwUndoMoveNum( const SwPaM& rPam, long nOffset, BOOL bIsOutlMv = FALSE );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
- void SetStartNode( ULONG nValue ) { nNewStt = nValue; }
-};
-
-class SwUndoNumUpDown : public SwUndo, private SwUndRng
-{
- short nOffset;
-public:
- SwUndoNumUpDown( const SwPaM& rPam, short nOffset );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-};
-
-class SwUndoNumOrNoNum : public SwUndo
-{
- ULONG nIdx;
- BOOL mbNewNum, mbOldNum;
-
-public:
- SwUndoNumOrNoNum( const SwNodeIndex& rIdx, BOOL mbOldNum,
- BOOL mbNewNum );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-};
-
-class SwUndoNumRuleStart : public SwUndo
-{
- ULONG nIdx;
- USHORT nOldStt, nNewStt;
- BOOL bSetSttValue : 1;
- BOOL bFlag : 1;
-public:
- SwUndoNumRuleStart( const SwPosition& rPos, BOOL bDelete );
- SwUndoNumRuleStart( const SwPosition& rPos, USHORT nStt );
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-};
-
-//--------------------------------------------------------------------
-// ---------- Undo fuer DrawObjecte ----------------------------------
-
-class SwSdrUndo : public SwUndo
-{
- SdrUndoAction* pSdrUndo;
- SdrMarkList* pMarkList; // MarkList for all selected SdrObjects
-public:
- SwSdrUndo( SdrUndoAction* , const SdrMarkList* pMarkList );
- virtual ~SwSdrUndo();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- String GetComment() const;
};
-class SwUndoDrawGroup : public SwUndo
-{
- SwUndoGroupObjImpl* pObjArr;
- USHORT nSize;
- BOOL bDelFmt;
-
-public:
- SwUndoDrawGroup( USHORT nCnt );
- virtual ~SwUndoDrawGroup();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- void AddObj( USHORT nPos, SwDrawFrmFmt*, SdrObject* );
- void SetGroupFmt( SwDrawFrmFmt* );
-};
-
-// --> OD 2006-11-01 #130889#
-// Action "ungroup drawing object" is now splitted into three parts - see
-// method <SwDoc::UnGroupSelection(..)>:
-// - creation for <SwDrawFrmFmt> instances for the group members of the
-// selected group objects
-// - intrinsic ungroup of the selected group objects
-// - creation of <SwDrawContact> instances for the former group members and
-// connection to the Writer layout.
-// Thus, two undo actions (instances of <SwUndo>) are needed:
-// - Existing class <SwUndoDrawUnGroup> takes over the part for the formats.
-// - New class <SwUndoDrawUnGroupConnectToLayout> takes over the part for
-// contact object.
-class SwUndoDrawUnGroup : public SwUndo
-{
- SwUndoGroupObjImpl* pObjArr;
- USHORT nSize;
- BOOL bDelFmt;
-
-public:
- SwUndoDrawUnGroup( SdrObjGroup* );
- virtual ~SwUndoDrawUnGroup();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- void AddObj( USHORT nPos, SwDrawFrmFmt* );
-};
-
-// --> OD 2006-11-01 #130889#
-class SwUndoDrawUnGroupConnectToLayout : public SwUndo
-{
- private:
- std::vector< std::pair< SwDrawFrmFmt*, SdrObject* > > aDrawFmtsAndObjs;
-
- public:
- SwUndoDrawUnGroupConnectToLayout();
- virtual ~SwUndoDrawUnGroupConnectToLayout();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- void AddFmtAndObj( SwDrawFrmFmt* pDrawFrmFmt,
- SdrObject* pDrawObject );
-};
-// <--
-
-
-class SwUndoDrawDelete : public SwUndo
-{
- SwUndoGroupObjImpl* pObjArr;
- SdrMarkList* pMarkLst; // MarkList for all selected SdrObjects
- USHORT nSize;
- BOOL bDelFmt;
-
-public:
- SwUndoDrawDelete( USHORT nCnt );
- virtual ~SwUndoDrawDelete();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- void AddObj( USHORT nPos, SwDrawFrmFmt*, const SdrMark& );
-};
-
-//--------------------------------------------------------------------
-
-class SwUndoReRead : public SwUndo
-{
- Graphic *pGrf;
- String *pNm, *pFltr;
- ULONG nPos;
- USHORT nMirr;
-
- void SaveGraphicData( const SwGrfNode& );
- void SetAndSave( SwUndoIter& );
-
-public:
- SwUndoReRead( const SwPaM& rPam, const SwGrfNode& pGrfNd );
- virtual ~SwUndoReRead();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-};
-
-//--------------------------------------------------------------------
-
-class SwUndoInsertLabel : public SwUndo
-{
- union {
- struct {
- // fuer NoTxtFrms
- SwUndoInsLayFmt* pUndoFly;
- SwUndoFmtAttr* pUndoAttr;
- } OBJECT;
- struct {
- // fuer Tabelle/TextRahmen
- SwUndoDelete* pUndoInsNd;
- ULONG nNode;
- } NODE;
- };
-
- String sText;
- // --> PB 2005-01-06 #i39983# - the separator will be drawed with a character style
- String sSeparator;
- // <--
- String sNumberSeparator;
- String sCharacterStyle;
- // OD 2004-04-15 #i26791# - re-store of drawing object position no longer needed
- USHORT nFldId;
- SwLabelType eType;
- BYTE nLayerId; // fuer Zeichen-Objekte
- BOOL bBefore :1;
- BOOL bUndoKeep :1;
- BOOL bCpyBrd :1;
-
-public:
- SwUndoInsertLabel( const SwLabelType eTyp, const String &rText,
- // --> PB 2005-01-06 #i39983# - the separator will be drawed with a character style
- const String& rSeparator,
- // <--
- const String& rNumberSeparator, //#i61007# order of captions
- const BOOL bBefore, const USHORT nId,
- const String& rCharacterStyle,
- const BOOL bCpyBrd );
- virtual ~SwUndoInsertLabel();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- // #111827#
- /**
- Returns the rewriter of this undo object.
-
- The rewriter contains this rule:
-
- $1 -> '<text of inserted label>'
-
- <text of inserted label> is shortened to nUndoStringLength
- characters.
-
- @return the rewriter of this undo object
- */
- virtual SwRewriter GetRewriter() const;
-
- void SetNodePos( ULONG nNd )
- { if( LTYPE_OBJECT != eType ) NODE.nNode = nNd; }
-
- void SetUndoKeep() { bUndoKeep = TRUE; }
- void SetFlys( SwFrmFmt& rOldFly, SfxItemSet& rChgSet, SwFrmFmt& rNewFly );
- void SetDrawObj( BYTE nLayerId );
-};
-
-//--------------------------------------------------------------------
-
-class SwUndoChangeFootNote : public SwUndo, private SwUndRng
-{
- const ::std::auto_ptr<SwHistory> m_pHistory;
- const String m_Text;
- const USHORT m_nNumber;
- const bool m_bEndNote;
-
-public:
- SwUndoChangeFootNote( const SwPaM& rRange, const String& rTxt,
- USHORT nNum, bool bIsEndNote );
- virtual ~SwUndoChangeFootNote();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
- virtual void Repeat( SwUndoIter& );
-
- SwHistory& GetHistory() { return *m_pHistory; }
-};
-
-class SwUndoFootNoteInfo : public SwUndo
-{
- ::std::auto_ptr<SwFtnInfo> m_pFootNoteInfo;
-
-public:
- SwUndoFootNoteInfo( const SwFtnInfo &rInfo );
- virtual ~SwUndoFootNoteInfo();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-};
-
-class SwUndoEndNoteInfo : public SwUndo
-{
- ::std::auto_ptr<SwEndNoteInfo> m_pEndNoteInfo;
-
-public:
- SwUndoEndNoteInfo( const SwEndNoteInfo &rInfo );
- virtual ~SwUndoEndNoteInfo();
-
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-};
-
-
-//--------------------------------------------------------------------
-
-struct _UndoTransliterate_Data;
-class SwUndoTransliterate : public SwUndo, public SwUndRng
-{
- std::vector< _UndoTransliterate_Data * > aChanges;
- sal_uInt32 nType;
-
-public:
- SwUndoTransliterate( const SwPaM& rPam,
- const utl::TransliterationWrapper& rTrans );
- virtual ~SwUndoTransliterate();
-
- virtual void Undo( SwUndoIter& rUndoIter );
- virtual void Redo( SwUndoIter& rUndoIter );
- virtual void Repeat( SwUndoIter& rUndoIter );
-
- void AddChanges( SwTxtNode& rTNd, xub_StrLen nStart, xub_StrLen nLen,
- ::com::sun::star::uno::Sequence <sal_Int32>& rOffsets );
- BOOL HasData() const { return aChanges.size() > 0; }
-};
-
-//--------------------------------------------------------------------
-
-class SwUndoRedline : public SwUndo, public SwUndRng
-{
-protected:
- SwRedlineData* pRedlData;
- SwRedlineSaveDatas* pRedlSaveData;
- SwUndoId nUserId;
- BOOL bHiddenRedlines;
-
- virtual void _Undo( SwUndoIter& );
- virtual void _Redo( SwUndoIter& );
-
-public:
- SwUndoRedline( SwUndoId nUserId, const SwPaM& rRange );
- virtual ~SwUndoRedline();
- virtual void Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-
- SwUndoId GetUserId() const { return nUserId; }
- USHORT GetRedlSaveCount() const
- { return pRedlSaveData ? pRedlSaveData->Count() : 0; }
-};
-
-class SwUndoRedlineDelete : public SwUndoRedline
-{
- BOOL bCanGroup : 1;
- BOOL bIsDelim : 1;
- BOOL bIsBackspace : 1;
-
- virtual void _Undo( SwUndoIter& );
- virtual void _Redo( SwUndoIter& );
-
-public:
- SwUndoRedlineDelete( const SwPaM& rRange, SwUndoId nUserId = UNDO_EMPTY );
-
- BOOL CanGrouping( const SwUndoRedlineDelete& rPrev );
-};
-
-class SwUndoRedlineSort : public SwUndoRedline
-{
- SwSortOptions* pOpt;
- ULONG nSaveEndNode, nOffset;
- xub_StrLen nSaveEndCntnt;
-
- virtual void _Undo( SwUndoIter& );
- virtual void _Redo( SwUndoIter& );
-
-public:
- SwUndoRedlineSort( const SwPaM& rRange, const SwSortOptions& rOpt );
- virtual ~SwUndoRedlineSort();
- virtual void Repeat( SwUndoIter& );
-
- void SetSaveRange( const SwPaM& rRange );
- void SetOffset( const SwNodeIndex& rIdx );
-};
-
-class SwUndoAcceptRedline : public SwUndoRedline
-{
- virtual void _Redo( SwUndoIter& );
-public:
- SwUndoAcceptRedline( const SwPaM& rRange );
- virtual void Repeat( SwUndoIter& );
-};
-
-class SwUndoRejectRedline : public SwUndoRedline
-{
- virtual void _Redo( SwUndoIter& );
-public:
- SwUndoRejectRedline( const SwPaM& rRange );
- virtual void Repeat( SwUndoIter& );
-};
-
-//--------------------------------------------------------------------
-
-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 Undo( SwUndoIter& );
- virtual void Redo( SwUndoIter& );
-};
-
-
-//--------------------------------------------------------------------
-
-// Object der als Iterator durch die Undo-Liste laeuft, bis die
-// letze oder die angegebene Klammerung/Id erreicht ist.
-
-class SwUndoIter
-{
- friend class SwDoc; // um im SwDoc::Undo bWeiter zu stezen
- friend void SwUndoEnd::Undo( SwUndoIter& );
- friend void SwUndoStart::Undo( SwUndoIter& );
- friend void SwUndoEnd::Redo( SwUndoIter& );
- friend void SwUndoStart::Redo( SwUndoIter& );
- friend void SwUndoEnd::Repeat( SwUndoIter& );
- friend void SwUndoStart::Repeat( SwUndoIter& );
- friend void SwUndoReplace::Undo( SwUndoIter& );
- friend void SwUndoReplace::Redo( SwUndoIter& );
-
- SwUndoId nUndoId;
- USHORT nEndCnt;
- BOOL bWeiter : 1;
- BOOL bUpdateAttr : 1; // Setze das GCAttr an der CursorShell
-
-public:
- SwPaM * pAktPam; // Member fuer das Undo
- SwUndo* pLastUndoObj; // fuers Redo, das vorherige UndoObj.
- SwFrmFmt* pSelFmt; // ggfs. das Format Rahmen/Object-Selektionen
- SdrMarkList* pMarkList; // MarkList for all selected SdrObjects
-
- SwUndoIter( SwPaM * pPam, SwUndoId nId = UNDO_EMPTY );
-
- BOOL IsNextUndo() const { return bWeiter; }
- BOOL IsUpdateAttr() const { return bUpdateAttr; }
- void SetUpdateAttr( BOOL bNew ) { bUpdateAttr = bNew; }
-
- inline SwDoc& GetDoc() const;
- SwUndoId GetId() const { return nUndoId; }
- SwUndoId GetLastUndoId() const
- { return pLastUndoObj ? pLastUndoObj->GetId() : UNDO_EMPTY ; }
- void ClearSelections() { pSelFmt = 0; pMarkList = 0; }
-};
-
-
-// -> #111827#
-const int nUndoStringLength = 20;
-
-/**
- Shortens a string to a maximum length.
-
- @param rStr the string to be shortened
- @param nLength the maximum length for rStr
- @param rFillStr string to replace cut out characters with
-
- If rStr has less than nLength characters it will be returned unaltered.
-
- If rStr has more than nLength characters the following algorithm
- generates the shortened string:
-
- frontLength = (nLength - length(rFillStr)) / 2
- rearLength = nLength - length(rFillStr) - frontLength
- shortenedString = concat(<first frontLength characters of rStr,
- rFillStr,
- <last rearLength characters of rStr>)
-
- Preconditions:
- - nLength - length(rFillStr) >= 2
-
- @return the shortened string
- */
-String ShortenString(const String & rStr, xub_StrLen nLength, const String & rFillStr);
-// <- #111827#
-
-// #16487#
-/**
- Denotes special characters in a string.
-
- The rStr is split into parts containing special characters and
- parts not containing special characters. In a part containing
- special characters all characters are equal. These parts are
- maximal.
-
- @param rStr the string to denote in
-
- The resulting string is generated by concatenating the found
- parts. The parts without special characters are surrounded by
- "'". The parts containing special characters are denoted as "n x",
- where n is the length of the part and x is the representation of
- the special character (i. e. "tab(s)").
-
- @return the denoted string
-*/
-String DenoteSpecialCharacters(const String & rStr);
-
#endif