diff options
Diffstat (limited to 'sw/source/core/txtnode/SwGrammarContact.cxx')
-rw-r--r-- | sw/source/core/txtnode/SwGrammarContact.cxx | 44 |
1 files changed, 13 insertions, 31 deletions
diff --git a/sw/source/core/txtnode/SwGrammarContact.cxx b/sw/source/core/txtnode/SwGrammarContact.cxx index 5a444161a702..6997474e5128 100644 --- a/sw/source/core/txtnode/SwGrammarContact.cxx +++ b/sw/source/core/txtnode/SwGrammarContact.cxx @@ -38,9 +38,6 @@ #include <rootfrm.hxx> #include <viewsh.hxx> -extern void repaintTextFrames( SwModify& rModify ); - - /* SwGrammarContact This class is responsible for the delayed display of grammar checks when a paragraph is edited It's a client of the paragraph the cursor points to. @@ -58,7 +55,7 @@ class SwGrammarContact : public IGrammarContact, public SwClient Timer aTimer; SwGrammarMarkUp *mpProxyList; bool mbFinished; - SwTxtNode* getMyTxtNode() { return (SwTxtNode*)pRegisteredIn; } + SwTxtNode* getMyTxtNode() { return (SwTxtNode*)GetRegisteredIn(); } DECL_LINK( TimerRepaint, Timer * ); public: @@ -69,9 +66,9 @@ public: virtual void updateCursorPosition( const SwPosition& rNewPos ); virtual SwGrammarMarkUp* getGrammarCheck( SwTxtNode& rTxtNode, bool bCreate ); virtual void finishGrammarCheck( SwTxtNode& rTxtNode ); - +protected: // virtual function of SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); }; SwGrammarContact::SwGrammarContact() : mpProxyList(0), mbFinished( false ) @@ -85,11 +82,11 @@ IMPL_LINK( SwGrammarContact, TimerRepaint, Timer *, pTimer ) if( pTimer ) { pTimer->Stop(); - if( pRegisteredIn ) + if( GetRegisteredIn() ) { //Replace the old wrong list by the proxy list and repaint all frames getMyTxtNode()->SetGrammarCheck( mpProxyList, true ); mpProxyList = 0; - repaintTextFrames( *pRegisteredIn ); + SwTxtFrm::repaintTextFrames( *getMyTxtNode() ); } } return 0; @@ -107,9 +104,9 @@ void SwGrammarContact::updateCursorPosition( const SwPosition& rNewPos ) if( mpProxyList ) { // replace old list by the proxy list and repaint getMyTxtNode()->SetGrammarCheck( mpProxyList, true ); - repaintTextFrames( *pRegisteredIn ); + SwTxtFrm::repaintTextFrames( *getMyTxtNode() ); } - pRegisteredIn->Remove( this ); // good bye old paragraph + GetRegisteredInNonConst()->Remove( this ); // good bye old paragraph mpProxyList = 0; } if( pTxtNode ) @@ -158,16 +155,16 @@ SwGrammarMarkUp* SwGrammarContact::getGrammarCheck( SwTxtNode& rTxtNode, bool bC return pRet; } -void SwGrammarContact::Modify( SfxPoolItem *pOld, SfxPoolItem * ) +void SwGrammarContact::Modify( const SfxPoolItem* pOld, const SfxPoolItem * ) { if( !pOld || pOld->Which() != RES_OBJECTDYING ) return; SwPtrMsgPoolItem *pDead = (SwPtrMsgPoolItem *)pOld; - if( pDead->pObject == pRegisteredIn ) + if( pDead->pObject == GetRegisteredIn() ) { // if my current paragraph dies, I throw the proxy list away aTimer.Stop(); - pRegisteredIn->Remove( this ); + GetRegisteredInNonConst()->Remove( this ); delete mpProxyList; mpProxyList = 0; } @@ -175,8 +172,8 @@ void SwGrammarContact::Modify( SfxPoolItem *pOld, SfxPoolItem * ) void SwGrammarContact::finishGrammarCheck( SwTxtNode& rTxtNode ) { - if( &rTxtNode != pRegisteredIn ) // not my paragraph - repaintTextFrames( rTxtNode ); // can be repainted directly + if( &rTxtNode != GetRegisteredIn() ) // not my paragraph + SwTxtFrm::repaintTextFrames( rTxtNode ); // can be repainted directly else { if( mpProxyList ) @@ -187,7 +184,7 @@ void SwGrammarContact::finishGrammarCheck( SwTxtNode& rTxtNode ) else if( getMyTxtNode()->GetGrammarCheck() ) { // all grammar problems seems to be gone, no delay needed getMyTxtNode()->SetGrammarCheck( 0, true ); - repaintTextFrames( *pRegisteredIn ); + SwTxtFrm::repaintTextFrames( *getMyTxtNode() ); } } } @@ -197,21 +194,6 @@ IGrammarContact* createGrammarContact() return new SwGrammarContact(); } -/* repaint all text frames of the given text node */ -void repaintTextFrames( SwModify& rModify ) -{ - SwClientIter aIter( rModify ); - for( const SwTxtFrm *pFrm = (const SwTxtFrm*)aIter.First( TYPE(SwTxtFrm) ); - pFrm; pFrm = (const SwTxtFrm*)aIter.Next() ) - { - SwRect aRec( pFrm->PaintArea() ); - const SwRootFrm *pRootFrm = pFrm->FindRootFrm(); - ViewShell *pCurShell = pRootFrm ? pRootFrm->GetCurrShell() : NULL; - if( pCurShell ) - pCurShell->InvalidateWindows( aRec ); - } -} - void finishGrammarCheck( SwTxtNode& rTxtNode ) { IGrammarContact* pGrammarContact = getGrammarContact( rTxtNode ); |