1*1d2dbeb0SAndrew Rist /************************************************************** 2*1d2dbeb0SAndrew Rist * 3*1d2dbeb0SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*1d2dbeb0SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*1d2dbeb0SAndrew Rist * distributed with this work for additional information 6*1d2dbeb0SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*1d2dbeb0SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*1d2dbeb0SAndrew Rist * "License"); you may not use this file except in compliance 9*1d2dbeb0SAndrew Rist * with the License. You may obtain a copy of the License at 10*1d2dbeb0SAndrew Rist * 11*1d2dbeb0SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*1d2dbeb0SAndrew Rist * 13*1d2dbeb0SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*1d2dbeb0SAndrew Rist * software distributed under the License is distributed on an 15*1d2dbeb0SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*1d2dbeb0SAndrew Rist * KIND, either express or implied. See the License for the 17*1d2dbeb0SAndrew Rist * specific language governing permissions and limitations 18*1d2dbeb0SAndrew Rist * under the License. 19*1d2dbeb0SAndrew Rist * 20*1d2dbeb0SAndrew Rist *************************************************************/ 21*1d2dbeb0SAndrew Rist 22*1d2dbeb0SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef SW_UNDO_MOVE_HXX 25cdf0e10cSrcweir #define SW_UNDO_MOVE_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <undobj.hxx> 28cdf0e10cSrcweir 29cdf0e10cSrcweir 30cdf0e10cSrcweir class SwUndoSplitNode: public SwUndo 31cdf0e10cSrcweir { 32cdf0e10cSrcweir SwHistory* pHistory; 33cdf0e10cSrcweir SwRedlineData* pRedlData; 34cdf0e10cSrcweir sal_uLong nNode; 35cdf0e10cSrcweir xub_StrLen nCntnt; 36cdf0e10cSrcweir sal_Bool bTblFlag : 1; 37cdf0e10cSrcweir sal_Bool bChkTblStt : 1; 38cdf0e10cSrcweir 39cdf0e10cSrcweir public: 40cdf0e10cSrcweir SwUndoSplitNode( SwDoc* pDoc, const SwPosition& rPos, sal_Bool bChkTbl ); 41cdf0e10cSrcweir 42cdf0e10cSrcweir virtual ~SwUndoSplitNode(); 43cdf0e10cSrcweir 44cdf0e10cSrcweir virtual void UndoImpl( ::sw::UndoRedoContext & ); 45cdf0e10cSrcweir virtual void RedoImpl( ::sw::UndoRedoContext & ); 46cdf0e10cSrcweir virtual void RepeatImpl( ::sw::RepeatContext & ); 47cdf0e10cSrcweir SetTblFlag()48cdf0e10cSrcweir void SetTblFlag() { bTblFlag = sal_True; } 49cdf0e10cSrcweir }; 50cdf0e10cSrcweir 51cdf0e10cSrcweir 52cdf0e10cSrcweir class SwUndoMove : public SwUndo, private SwUndRng, private SwUndoSaveCntnt 53cdf0e10cSrcweir { 54cdf0e10cSrcweir // nDest.. - destination range of move (after move!) 55cdf0e10cSrcweir // nIns.. - source Position of move (after move!) 56cdf0e10cSrcweir // nMv.. - destination position of move (before move!); for REDO 57cdf0e10cSrcweir sal_uLong nDestSttNode, nDestEndNode, nInsPosNode, nMvDestNode; 58cdf0e10cSrcweir xub_StrLen nDestSttCntnt, nDestEndCntnt, nInsPosCntnt, nMvDestCntnt; 59cdf0e10cSrcweir 60cdf0e10cSrcweir sal_uInt16 nFtnStt; // StartPos of Footnotes in History 61cdf0e10cSrcweir 62cdf0e10cSrcweir sal_Bool bJoinNext : 1, 63cdf0e10cSrcweir bJoinPrev : 1, 64cdf0e10cSrcweir bMoveRange : 1; 65cdf0e10cSrcweir 66cdf0e10cSrcweir bool bMoveRedlines; // use DOC_MOVEREDLINES when calling SwDoc::Move 67cdf0e10cSrcweir 68cdf0e10cSrcweir void DelFtn( const SwPaM& ); 69cdf0e10cSrcweir 70cdf0e10cSrcweir public: 71cdf0e10cSrcweir SwUndoMove( const SwPaM&, const SwPosition& ); 72cdf0e10cSrcweir SwUndoMove( SwDoc* pDoc, const SwNodeRange&, const SwNodeIndex& ); 73cdf0e10cSrcweir 74cdf0e10cSrcweir virtual void UndoImpl( ::sw::UndoRedoContext & ); 75cdf0e10cSrcweir virtual void RedoImpl( ::sw::UndoRedoContext & ); 76cdf0e10cSrcweir 77cdf0e10cSrcweir /// set the destination range after the move 78cdf0e10cSrcweir void SetDestRange( const SwPaM&, const SwPosition&, sal_Bool, sal_Bool ); 79cdf0e10cSrcweir void SetDestRange( const SwNodeIndex& rStt, const SwNodeIndex& rEnd, 80cdf0e10cSrcweir const SwNodeIndex& rInsPos ); 81cdf0e10cSrcweir IsMoveRange() const82cdf0e10cSrcweir sal_Bool IsMoveRange() const { return bMoveRange; } GetEndNode() const83cdf0e10cSrcweir sal_uLong GetEndNode() const { return nEndNode; } GetDestSttNode() const84cdf0e10cSrcweir sal_uLong GetDestSttNode() const { return nDestSttNode; } GetDestSttCntnt() const85cdf0e10cSrcweir xub_StrLen GetDestSttCntnt() const { return nDestSttCntnt; } 86cdf0e10cSrcweir SetMoveRedlines(bool b)87cdf0e10cSrcweir void SetMoveRedlines( bool b ) { bMoveRedlines = b; } 88cdf0e10cSrcweir 89cdf0e10cSrcweir }; 90cdf0e10cSrcweir 91cdf0e10cSrcweir #endif // SW_UNDO_MOVE_HXX 92cdf0e10cSrcweir 93