diff options
Diffstat (limited to 'sw/source/core/docnode')
-rw-r--r-- | sw/source/core/docnode/ndsect.cxx | 31 | ||||
-rw-r--r-- | sw/source/core/docnode/ndtbl.cxx | 18 | ||||
-rw-r--r-- | sw/source/core/docnode/ndtbl1.cxx | 10 | ||||
-rw-r--r-- | sw/source/core/docnode/node.cxx | 35 | ||||
-rw-r--r-- | sw/source/core/docnode/node2lay.cxx | 8 | ||||
-rw-r--r-- | sw/source/core/docnode/nodes.cxx | 4 |
6 files changed, 51 insertions, 55 deletions
diff --git a/sw/source/core/docnode/ndsect.cxx b/sw/source/core/docnode/ndsect.cxx index 306560272c6f..651533c618ca 100644 --- a/sw/source/core/docnode/ndsect.cxx +++ b/sw/source/core/docnode/ndsect.cxx @@ -802,7 +802,7 @@ void lcl_DeleteFtn( SwSectionNode *pNd, ULONG nStt, ULONG nEnd ) // Werden die Nodes nicht geloescht mussen sie bei den Seiten // abmeldet (Frms loeschen) werden, denn sonst bleiben sie // stehen (Undo loescht sie nicht!) - pSrch->DelFrms(); + pSrch->DelFrms(0); ++nPos; } @@ -812,7 +812,7 @@ void lcl_DeleteFtn( SwSectionNode *pNd, ULONG nStt, ULONG nEnd ) // Werden die Nodes nicht geloescht mussen sie bei den Seiten // abmeldet (Frms loeschen) werden, denn sonst bleiben sie // stehen (Undo loescht sie nicht!) - pSrch->DelFrms(); + pSrch->DelFrms(0); } } } @@ -937,7 +937,7 @@ SwSectionNode* SwNodes::InsertTextSection(SwNodeIndex const& rNdIdx, // Hier bietet sich als Optimierung an, vorhandene Frames nicht zu // zerstoeren und wieder neu anzulegen, sondern nur umzuhaengen. BOOL bInsFrm = bCreateFrms && !pSectNd->GetSection().IsHidden() && - GetDoc()->GetRootFrm(); + GetDoc()->GetCurrentViewShell(); //swmod 071108//swmod 071225 SwNode2Layout *pNode2Layout = NULL; if( bInsFrm ) { @@ -1117,10 +1117,10 @@ SwSectionNode::~SwSectionNode() } -SwFrm *SwSectionNode::MakeFrm() +SwFrm *SwSectionNode::MakeFrm( SwFrm *pSib ) { m_pSection->m_Data.SetHiddenFlag(false); - return new SwSectionFrm( *m_pSection ); + return new SwSectionFrm( *m_pSection, pSib ); } //Methode erzeugt fuer den vorhergehenden Node alle Ansichten vom @@ -1130,7 +1130,7 @@ void SwSectionNode::MakeFrms(const SwNodeIndex & rIdx ) { // also nehme meinen nachfolgenden oder vorhergehenden ContentFrame: SwNodes& rNds = GetNodes(); - if( rNds.IsDocNodes() && rNds.GetDoc()->GetRootFrm() ) + if( rNds.IsDocNodes() && rNds.GetDoc()->GetCurrentViewShell() ) //swmod 071108//swmod 071225 { if( GetSection().IsHidden() || IsCntntHidden() ) { @@ -1152,7 +1152,7 @@ void SwSectionNode::MakeFrms(const SwNodeIndex & rIdx ) while( 0 != (pFrm = aNode2Layout.NextFrm()) ) { ASSERT( pFrm->IsSctFrm(), "Depend von Section keine Section." ); - pNew = rIdx.GetNode().GetCntntNode()->MakeFrm(); + pNew = rIdx.GetNode().GetCntntNode()->MakeFrm( pFrm ); SwSectionNode* pS = rIdx.GetNode().FindSectionNode(); // --> OD 2008-06-23 #156927# @@ -1175,7 +1175,7 @@ void SwSectionNode::MakeFrms(const SwNodeIndex & rIdx ) bool bInitNewSect = false; if( pS ) { - SwSectionFrm *pSct = new SwSectionFrm( pS->GetSection() ); + SwSectionFrm *pSct = new SwSectionFrm( pS->GetSection(), pFrm ); // OD 14.11.2002 #104684# - prepare <Init()> of new section frame. bInitNewSect = true; SwLayoutFrm* pUp = pSct; @@ -1192,7 +1192,7 @@ void SwSectionNode::MakeFrms(const SwNodeIndex & rIdx ) // and relation CONTENT_FLOWS_TO for previous paragraph will change. if ( pNew->IsTxtFrm() ) { - ViewShell* pViewShell( pNew->GetShell() ); + ViewShell* pViewShell( pNew->getRootFrm()->GetCurrShell() ); if ( pViewShell && pViewShell->GetLayout() && pViewShell->GetLayout()->IsAnyShellAccessible() ) { @@ -1219,7 +1219,7 @@ void SwSectionNode::MakeFrms(const SwNodeIndex & rIdx ) // and relation CONTENT_FLOWS_TO for previous paragraph will change. if ( pNew->IsTxtFrm() ) { - ViewShell* pViewShell( pNew->GetShell() ); + ViewShell* pViewShell( pNew->getRootFrm()->GetCurrShell() ); if ( pViewShell && pViewShell->GetLayout() && pViewShell->GetLayout()->IsAnyShellAccessible() ) { @@ -1361,7 +1361,7 @@ SwSectionNode* SwSectionNode::MakeCopy( SwDoc* pDoc, const SwNodeIndex& rIdx ) c // dann kopiere auch noch die Links/Server if( pNewSect->IsLinkType() ) // den Link eintragen - pNewSect->CreateLink( pDoc->GetRootFrm() ? CREATE_CONNECT + pNewSect->CreateLink( pDoc->GetCurrentViewShell() ? CREATE_CONNECT //swmod 071108//swmod 071225 : CREATE_NONE ); // falls als Server aus dem Undo kopiert wird, wieder eintragen @@ -1442,12 +1442,9 @@ void SwSectionNode::NodesArrChgd() { ASSERT( pDoc == GetDoc(), "verschieben in unterschiedliche Documente?" ); - if (m_pSection->IsLinkType()) - { - m_pSection->CreateLink( pDoc->GetRootFrm() ? CREATE_CONNECT - : CREATE_NONE ); - } - + if( m_pSection->IsLinkType() ) // den Link austragen + m_pSection->CreateLink( pDoc->GetCurrentViewShell() ? CREATE_CONNECT //swmod 071108 + : CREATE_NONE );//swmod 071225 if (m_pSection->IsServer()) { pDoc->GetLinkManager().InsertServer( m_pSection->GetObject() ); diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index b213eb1d075d..4d37b66f4f43 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -952,7 +952,7 @@ SwTableNode* SwNodes::TextToTable( const SwNodeRange& rRange, sal_Unicode cCh, // JP 28.10.96: vom 1. Node die Positionen des Trenners besorgen, // damit die Boxen entsprechend eingestellt werden - SwTxtFrmInfo aFInfo( (SwTxtFrm*)pTxtNd->GetFrm() ); + SwTxtFrmInfo aFInfo( (SwTxtFrm*)pTxtNd->getLayoutFrm( pTxtNd->GetDoc()->GetCurrentLayout() ) ); if( aFInfo.IsOneLine() ) // nur dann sinnvoll! { const sal_Unicode* pTxt = pTxtNd->GetTxt().GetBuffer(); @@ -2450,9 +2450,9 @@ SwTableNode::~SwTableNode() delete pTable; } -SwTabFrm *SwTableNode::MakeFrm() +SwTabFrm *SwTableNode::MakeFrm( SwFrm* pSib ) { - return new SwTabFrm( *pTable ); + return new SwTabFrm( *pTable, pSib ); } //Methode erzeugt fuer den vorhergehenden Node alle Ansichten vom @@ -2474,7 +2474,7 @@ void SwTableNode::MakeFrms(const SwNodeIndex & rIdx ) while( 0 != (pFrm = aNode2Layout.NextFrm()) ) { - pNew = pNode->MakeFrm(); + pNew = pNode->MakeFrm( pFrm ); // wird ein Node vorher oder nachher mit Frames versehen if ( bBefore ) // der neue liegt vor mir @@ -2501,7 +2501,7 @@ void SwTableNode::MakeFrms( SwNodeIndex* pIdxBehind ) SwNode2Layout aNode2Layout( *pNd, GetIndex() ); while( 0 != (pUpper = aNode2Layout.UpperFrm( pFrm, *this )) ) { - SwTabFrm* pNew = MakeFrm(); + SwTabFrm* pNew = MakeFrm( pUpper ); pNew->Paste( pUpper, pFrm ); // --> OD 2005-12-01 #i27138# // notify accessibility paragraphs objects about changed @@ -2509,7 +2509,7 @@ void SwTableNode::MakeFrms( SwNodeIndex* pIdxBehind ) // Relation CONTENT_FLOWS_FROM for next paragraph will change // and relation CONTENT_FLOWS_TO for previous paragraph will change. { - ViewShell* pViewShell( pNew->GetShell() ); + ViewShell* pViewShell( pNew->getRootFrm()->GetCurrShell() ); if ( pViewShell && pViewShell->GetLayout() && pViewShell->GetLayout()->IsAnyShellAccessible() ) { @@ -2549,7 +2549,7 @@ void SwTableNode::DelFrms() // Relation CONTENT_FLOWS_FROM for current next paragraph will change // and relation CONTENT_FLOWS_TO for current previous paragraph will change. { - ViewShell* pViewShell( pFrm->GetShell() ); + ViewShell* pViewShell( pFrm->getRootFrm()->GetCurrShell() ); if ( pViewShell && pViewShell->GetLayout() && pViewShell->GetLayout()->IsAnyShellAccessible() ) { @@ -2604,7 +2604,7 @@ void SwDoc::GetTabCols( SwTabCols &rFill, const SwCursor* pCrsr, if( pShCrsr ) aPt = pShCrsr->GetPtPos(); - const SwFrm* pTmpFrm = pCNd->GetFrm( &aPt, 0, FALSE ); + const SwFrm* pTmpFrm = pCNd->getLayoutFrm( pCNd->GetDoc()->GetCurrentLayout(), &aPt, 0, FALSE ); do { pTmpFrm = pTmpFrm->GetUpper(); } while ( !pTmpFrm->IsCellFrm() ); @@ -2829,7 +2829,7 @@ void SwDoc::SetTabCols( const SwTabCols &rNew, BOOL bCurRowOnly, if( pShCrsr ) aPt = pShCrsr->GetPtPos(); - const SwFrm* pTmpFrm = pCNd->GetFrm( &aPt, 0, FALSE ); + const SwFrm* pTmpFrm = pCNd->getLayoutFrm( pCNd->GetDoc()->GetCurrentLayout(), &aPt, 0, FALSE ); do { pTmpFrm = pTmpFrm->GetUpper(); } while ( !pTmpFrm->IsCellFrm() ); diff --git a/sw/source/core/docnode/ndtbl1.cxx b/sw/source/core/docnode/ndtbl1.cxx index c561f10d0a3f..985ef3cdbc57 100644 --- a/sw/source/core/docnode/ndtbl1.cxx +++ b/sw/source/core/docnode/ndtbl1.cxx @@ -125,8 +125,8 @@ void lcl_GetStartEndCell( const SwCursor& rCrsr, SwCntntNode* pPointNd = rCrsr.GetCntntNode(); SwCntntNode* pMarkNd = rCrsr.GetCntntNode(FALSE); - SwFrm* pPointFrm = pPointNd ? pPointNd->GetFrm( &aPtPos ) : 0; - SwFrm* pMarkFrm = pMarkNd ? pMarkNd->GetFrm( &aMkPos ) : 0; + SwFrm* pPointFrm = pPointNd ? pPointNd->getLayoutFrm( pPointNd->GetDoc()->GetCurrentLayout(), &aPtPos ) : 0; + SwFrm* pMarkFrm = pMarkNd ? pMarkNd->getLayoutFrm( pMarkNd->GetDoc()->GetCurrentLayout(), &aMkPos ) : 0; prStart = pPointFrm ? pPointFrm->GetUpper() : 0; prEnd = pMarkFrm ? pMarkFrm->GetUpper() : 0; @@ -801,7 +801,7 @@ void SwDoc::SetTabBorders( const SwCursor& rCursor, const SfxItemSet& rSet ) SwHTMLTableLayout *pTableLayout = rTable.GetHTMLTableLayout(); if( pTableLayout ) { - SwCntntFrm* pFrm = rCursor.GetCntntNode()->GetFrm(); + SwCntntFrm* pFrm = rCursor.GetCntntNode()->getLayoutFrm( rCursor.GetCntntNode()->GetDoc()->GetCurrentLayout() ); SwTabFrm* pTabFrm = pFrm->ImplFindTabFrm(); pTableLayout->BordersChanged( @@ -898,7 +898,7 @@ void SwDoc::SetTabLineStyle( const SwCursor& rCursor, SwHTMLTableLayout *pTableLayout = rTable.GetHTMLTableLayout(); if( pTableLayout ) { - SwCntntFrm* pFrm = rCursor.GetCntntNode()->GetFrm(); + SwCntntFrm* pFrm = rCursor.GetCntntNode()->getLayoutFrm( rCursor.GetCntntNode()->GetDoc()->GetCurrentLayout() ); SwTabFrm* pTabFrm = pFrm->ImplFindTabFrm(); pTableLayout->BordersChanged( @@ -1158,7 +1158,7 @@ void SwDoc::SetBoxAttr( const SwCursor& rCursor, const SfxPoolItem &rNew ) SwHTMLTableLayout *pTableLayout = rTable.GetHTMLTableLayout(); if( pTableLayout ) { - SwCntntFrm* pFrm = rCursor.GetCntntNode()->GetFrm(); + SwCntntFrm* pFrm = rCursor.GetCntntNode()->getLayoutFrm( rCursor.GetCntntNode()->GetDoc()->GetCurrentLayout() ); SwTabFrm* pTabFrm = pFrm->ImplFindTabFrm(); pTableLayout->Resize( diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx index f1ab04ed0c09..4a6b87893474 100644 --- a/sw/source/core/docnode/node.cxx +++ b/sw/source/core/docnode/node.cxx @@ -449,15 +449,15 @@ BOOL SwNode::IsInVisibleArea( ViewShell* pSh ) const else pNd = GetCntntNode(); - const SwFrm* pFrm; - if( pNd && 0 != ( pFrm = pNd->GetFrm( 0, 0, FALSE ) ) ) - { if( !pSh ) // dann die Shell vom Doc besorgen: GetDoc()->GetEditShell( &pSh ); if( pSh ) { + const SwFrm* pFrm; + if( pNd && 0 != ( pFrm = pNd->getLayoutFrm( pSh->GetLayout(), 0, 0, FALSE ) ) ) + { if ( pFrm->IsInTab() ) pFrm = pFrm->FindTabFrm(); @@ -494,7 +494,7 @@ BOOL SwNode::IsProtect() const if( 0 != ( pSttNd = FindTableBoxStartNode() ) ) { SwCntntFrm* pCFrm; - if( IsCntntNode() && 0 != (pCFrm = ((SwCntntNode*)this)->GetFrm() )) + if( IsCntntNode() && 0 != (pCFrm = ((SwCntntNode*)this)->getLayoutFrm( GetDoc()->GetCurrentLayout() ) )) return pCFrm->IsProtected(); const SwTableBox* pBox = pSttNd->FindTableNode()->GetTable(). @@ -563,7 +563,7 @@ const SwPageDesc* SwNode::FindPageDesc( BOOL bCalcLay, { const SwFrm* pFrm; const SwPageFrm* pPage; - if( pNode && 0 != ( pFrm = pNode->GetFrm( 0, 0, bCalcLay ) ) && + if( pNode && 0 != ( pFrm = pNode->getLayoutFrm( pNode->GetDoc()->GetCurrentLayout(), 0, 0, bCalcLay ) ) && 0 != ( pPage = pFrm->FindPageFrm() ) ) { pPgDesc = pPage->GetPageDesc(); @@ -862,8 +862,8 @@ const SwTxtNode* SwNode::FindOutlineNodeOfLevel( BYTE nLvl ) const const SwCntntNode* pCNd = GetCntntNode(); Point aPt( 0, 0 ); - const SwFrm* pFrm = pRet->GetFrm( &aPt, 0, FALSE ), - * pMyFrm = pCNd ? pCNd->GetFrm( &aPt, 0, FALSE ) : 0; + const SwFrm* pFrm = pRet->getLayoutFrm( pRet->GetDoc()->GetCurrentLayout(), &aPt, 0, FALSE ), + * pMyFrm = pCNd ? pCNd->getLayoutFrm( pCNd->GetDoc()->GetCurrentLayout(), &aPt, 0, FALSE ) : 0; const SwPageFrm* pPgFrm = pFrm ? pFrm->FindPageFrm() : 0; if( pPgFrm && pMyFrm && pPgFrm->Frm().Top() > pMyFrm->Frm().Top() ) @@ -1157,20 +1157,19 @@ BOOL SwCntntNode::InvalidateNumRule() return 0 != pRule; } - -SwCntntFrm *SwCntntNode::GetFrm( const Point* pPoint, - const SwPosition *pPos, - const BOOL bCalcFrm ) const +SwCntntFrm *SwCntntNode::getLayoutFrm( const SwRootFrm* _pRoot, + const Point* pPoint, const SwPosition *pPos, const BOOL bCalcFrm ) const { - return (SwCntntFrm*) ::GetFrmOfModify( *(SwModify*)this, FRM_CNTNT, + return (SwCntntFrm*) ::GetFrmOfModify( _pRoot, *(SwModify*)this, FRM_CNTNT, pPoint, pPos, bCalcFrm ); } + SwRect SwCntntNode::FindLayoutRect( const BOOL bPrtArea, const Point* pPoint, const BOOL bCalcFrm ) const { SwRect aRet; - SwCntntFrm* pFrm = (SwCntntFrm*)::GetFrmOfModify( *(SwModify*)this, + SwCntntFrm* pFrm = (SwCntntFrm*)::GetFrmOfModify( 0, *(SwModify*)this, FRM_CNTNT, pPoint, 0, bCalcFrm ); if( pFrm ) aRet = bPrtArea ? pFrm->Prt() : pFrm->Frm(); @@ -1181,7 +1180,7 @@ SwRect SwCntntNode::FindPageFrmRect( const BOOL bPrtArea, const Point* pPoint, const BOOL bCalcFrm ) const { SwRect aRet; - SwFrm* pFrm = ::GetFrmOfModify( *(SwModify*)this, + SwFrm* pFrm = ::GetFrmOfModify( 0, *(SwModify*)this, FRM_CNTNT, pPoint, 0, bCalcFrm ); if( pFrm && 0 != ( pFrm = pFrm->FindPageFrm() )) aRet = bPrtArea ? pFrm->Prt() : pFrm->Frm(); @@ -1353,7 +1352,7 @@ void SwCntntNode::MakeFrms( SwCntntNode& rNode ) while( 0 != (pUpper = aNode2Layout.UpperFrm( pFrm, rNode )) ) { - pNew = rNode.MakeFrm(); + pNew = rNode.MakeFrm( pUpper ); pNew->Paste( pUpper, pFrm ); // --> OD 2005-12-01 #i27138# // notify accessibility paragraphs objects about changed @@ -1362,7 +1361,7 @@ void SwCntntNode::MakeFrms( SwCntntNode& rNode ) // and relation CONTENT_FLOWS_TO for previous paragraph will change. if ( pNew->IsTxtFrm() ) { - ViewShell* pViewShell( pNew->GetShell() ); + ViewShell* pViewShell( pNew->getRootFrm()->GetCurrShell() ); if ( pViewShell && pViewShell->GetLayout() && pViewShell->GetLayout()->IsAnyShellAccessible() ) { @@ -1400,7 +1399,7 @@ void SwCntntNode::DelFrms() // and relation CONTENT_FLOWS_TO for current previous paragraph will change. if ( pFrm->IsTxtFrm() ) { - ViewShell* pViewShell( pFrm->GetShell() ); + ViewShell* pViewShell( pFrm->getRootFrm()->GetCurrShell() ); if ( pViewShell && pViewShell->GetLayout() && pViewShell->GetLayout()->IsAnyShellAccessible() ) { @@ -2049,7 +2048,7 @@ short SwCntntNode::GetTextDirection( const SwPosition& rPos, // --> OD 2007-01-10 #i72024# // No format of the frame, because this can cause recursive layout actions - SwFrm* pFrm = GetFrm( &aPt, &rPos, FALSE ); + SwFrm* pFrm = getLayoutFrm( GetDoc()->GetCurrentLayout(), &aPt, &rPos, FALSE ); // <-- if ( pFrm ) diff --git a/sw/source/core/docnode/node2lay.cxx b/sw/source/core/docnode/node2lay.cxx index cce0919e1e1a..62fa380097d3 100644 --- a/sw/source/core/docnode/node2lay.cxx +++ b/sw/source/core/docnode/node2lay.cxx @@ -255,7 +255,7 @@ SwLayoutFrm* SwNode2LayImpl::UpperFrm( SwFrm* &rpFrm, const SwNode &rNode ) return static_cast<SwLayoutFrm*>(pFrm); } - pUpper = new SwSectionFrm(((SwSectionNode*)pNode)->GetSection()); + pUpper = new SwSectionFrm(((SwSectionNode*)pNode)->GetSection(), rpFrm); pUpper->Paste( rpFrm->GetUpper(), bMaster ? rpFrm : rpFrm->GetNext() ); static_cast<SwSectionFrm*>(pUpper)->Init(); @@ -299,7 +299,7 @@ void SwNode2LayImpl::RestoreUpperFrms( SwNodes& rNds, ULONG nStt, ULONG nEnd ) pNxt = pNxt->GetNext(); else pNxt = pUp->Lower(); - pNew = ((SwCntntNode*)pNd)->MakeFrm(); + pNew = ((SwCntntNode*)pNd)->MakeFrm( pUp ); pNew->Paste( pUp, pNxt ); (*pUpperFrms)[n-2] = pNew; } @@ -314,7 +314,7 @@ void SwNode2LayImpl::RestoreUpperFrms( SwNodes& rNds, ULONG nStt, ULONG nEnd ) pNxt = pNxt->GetNext(); else pNxt = pUp->Lower(); - pNew = ((SwTableNode*)pNd)->MakeFrm(); + pNew = ((SwTableNode*)pNd)->MakeFrm( pUp ); ASSERT( pNew->IsTabFrm(), "Table exspected" ); pNew->Paste( pUp, pNxt ); ((SwTabFrm*)pNew)->RegistFlys(); @@ -358,7 +358,7 @@ SwFrm* SwNode2LayImpl::GetFrm( const Point* pDocPos, const SwPosition *pPos, const BOOL bCalcFrm ) const { - return pIter ? ::GetFrmOfModify( pIter->GetModify(), USHRT_MAX, + return pIter ? ::GetFrmOfModify( 0, pIter->GetModify(), USHRT_MAX, pDocPos, pPos, bCalcFrm ) : 0; } diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx index d2c979535dbb..0a1157ad2274 100644 --- a/sw/source/core/docnode/nodes.cxx +++ b/sw/source/core/docnode/nodes.cxx @@ -395,7 +395,7 @@ void SwNodes::ChgNode( SwNodeIndex& rDelPos, ULONG nSz, if( bNewFrms ) bNewFrms = &GetDoc()->GetNodes() == (const SwNodes*)&rNds && - GetDoc()->GetRootFrm(); + GetDoc()->GetCurrentViewShell(); //swmod 071108//swmod 071225 if( bNewFrms ) { // Frames besorgen: @@ -2398,7 +2398,7 @@ SwNode* SwNodes::FindPrvNxtFrmNode( SwNodeIndex& rFrmIdx, SwNode* pFrmNd = 0; // habe wir gar kein Layout, vergiss es - if( GetDoc()->GetRootFrm() ) + if( GetDoc()->GetCurrentViewShell() ) //swmod 071108//swmod 071225 { SwNode* pSttNd = &rFrmIdx.GetNode(); |