summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-06-29 15:36:40 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-06-30 09:52:30 +0200
commit4a25cccd6419844c38a7a6eebb5cd484a0b48097 (patch)
treeb37f959a2e73a8aee02bac677508fb128ab454bc /sw
parent680514c0f838840077df5bbee4bcbcc107cebb40 (diff)
SwFrm::Calc: use vcl::RenderContext
(cherry picked from commit 8527dfbd4d3f79de8b02c561e5f0fef0d54d3eeb) Conflicts: sw/source/core/layout/sectfrm.cxx sw/source/core/text/frmform.cxx sw/source/core/text/txtfrm.cxx Change-Id: I98de3f5413756c494c677d592ea921155e4c08be
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/crsr/crsrsh.cxx2
-rw-r--r--sw/source/core/crsr/crstrvl.cxx6
-rw-r--r--sw/source/core/crsr/swcrsr.cxx4
-rw-r--r--sw/source/core/crsr/trvlcol.cxx2
-rw-r--r--sw/source/core/doc/notxtfrm.cxx2
-rw-r--r--sw/source/core/edit/autofmt.cxx3
-rw-r--r--sw/source/core/frmedt/fews.cxx4
-rw-r--r--sw/source/core/frmedt/tblsel.cxx4
-rw-r--r--sw/source/core/inc/flyfrm.hxx2
-rw-r--r--sw/source/core/inc/frame.hxx2
-rw-r--r--sw/source/core/layout/anchoreddrawobject.cxx4
-rw-r--r--sw/source/core/layout/calcmove.cxx20
-rw-r--r--sw/source/core/layout/flowfrm.cxx16
-rw-r--r--sw/source/core/layout/fly.cxx17
-rw-r--r--sw/source/core/layout/flyincnt.cxx6
-rw-r--r--sw/source/core/layout/flylay.cxx4
-rw-r--r--sw/source/core/layout/frmtool.cxx2
-rw-r--r--sw/source/core/layout/ftnfrm.cxx40
-rw-r--r--sw/source/core/layout/hffrm.cxx2
-rw-r--r--sw/source/core/layout/layact.cxx25
-rw-r--r--sw/source/core/layout/objectformatter.cxx3
-rw-r--r--sw/source/core/layout/objectformattertxtfrm.cxx11
-rw-r--r--sw/source/core/layout/pagechg.cxx13
-rw-r--r--sw/source/core/layout/paintfrm.cxx10
-rw-r--r--sw/source/core/layout/sectfrm.cxx31
-rw-r--r--sw/source/core/layout/tabfrm.cxx24
-rw-r--r--sw/source/core/layout/trvlfrm.cxx32
-rw-r--r--sw/source/core/layout/wsfrm.cxx7
-rw-r--r--sw/source/core/text/frmform.cxx16
-rw-r--r--sw/source/core/text/txtfrm.cxx3
-rw-r--r--sw/source/core/text/txthyph.cxx3
-rw-r--r--sw/source/core/unocore/unotbl.cxx4
-rw-r--r--sw/source/core/view/pagepreviewlayout.cxx6
-rw-r--r--sw/source/core/view/vprint.cxx2
34 files changed, 185 insertions, 147 deletions
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index 447ad411818e..3a0c6667b2e2 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -1785,7 +1785,7 @@ void SwCrsrShell::UpdateCrsr( sal_uInt16 eFlags, bool bIdleEnd )
if( !(eFlags & SwCrsrShell::UPDOWN )) // delete old Pos. of Up/Down
{
- pFrm->Calc();
+ pFrm->Calc(GetOut());
m_nUpDownX = pFrm->IsVertical() ?
m_aCharRect.Top() - pFrm->Frm().Top() :
m_aCharRect.Left() - pFrm->Frm().Left();
diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx
index 99c8a56ab622..d4190e873bff 100644
--- a/sw/source/core/crsr/crstrvl.cxx
+++ b/sw/source/core/crsr/crstrvl.cxx
@@ -83,7 +83,7 @@ void SwCrsrShell::MoveCrsrToNum()
SwContentFrm * pFrm = m_pCurCrsr->GetContentNode()->getLayoutFrm( GetLayout(), &aPt,
m_pCurCrsr->GetPoint() );
pFrm->GetCharRect( m_aCharRect, *m_pCurCrsr->GetPoint() );
- pFrm->Calc();
+ pFrm->Calc(GetOut());
if( pFrm->IsVertical() )
{
aPt.setX(m_aCharRect.Center().getX());
@@ -138,7 +138,7 @@ bool SwCrsrShell::GotoHeaderText()
SwCallLink aLk( *this ); // watch Crsr-Moves
SwCursor *pTmpCrsr = getShellCrsr( true );
SwCrsrSaveState aSaveState( *pTmpCrsr );
- pFrm->Calc();
+ pFrm->Calc(GetOut());
Point aPt( pFrm->Frm().Pos() + pFrm->Prt().Pos() );
pFrm->GetCrsrOfst( pTmpCrsr->GetPoint(), aPt );
if( !pTmpCrsr->IsSelOvr() )
@@ -170,7 +170,7 @@ bool SwCrsrShell::GotoFooterText()
// get position in footer
SwCallLink aLk( *this ); // watch Crsr-Moves
SwCrsrSaveState aSaveState( *pTmpCrsr );
- pLower->Calc();
+ pLower->Calc(GetOut());
Point aPt( pLower->Frm().Pos() + pLower->Prt().Pos() );
pLower->GetCrsrOfst( pTmpCrsr->GetPoint(), aPt );
if( !pTmpCrsr->IsSelOvr() )
diff --git a/sw/source/core/crsr/swcrsr.cxx b/sw/source/core/crsr/swcrsr.cxx
index 9baa90101297..6140342ec72b 100644
--- a/sw/source/core/crsr/swcrsr.cxx
+++ b/sw/source/core/crsr/swcrsr.cxx
@@ -1857,13 +1857,13 @@ bool SwCursor::UpDown( bool bUp, sal_uInt16 nCnt,
if ( pFrm->IsVertical() )
{
aPt.setX(aTmpRect.Center().getX());
- pFrm->Calc();
+ pFrm->Calc(pFrm->getRootFrm()->GetCurrShell()->GetOut());
aPt.setY(pFrm->Frm().Top() + nUpDownX);
}
else
{
aPt.setY(aTmpRect.Center().getY());
- pFrm->Calc();
+ pFrm->Calc(pFrm->getRootFrm()->GetCurrShell()->GetOut());
aPt.setX(pFrm->Frm().Left() + nUpDownX);
}
pFrm->GetCrsrOfst( GetPoint(), aPt, &eTmpState );
diff --git a/sw/source/core/crsr/trvlcol.cxx b/sw/source/core/crsr/trvlcol.cxx
index e5b5c865fdb5..8d8a12d983c0 100644
--- a/sw/source/core/crsr/trvlcol.cxx
+++ b/sw/source/core/crsr/trvlcol.cxx
@@ -85,7 +85,7 @@ bool SwCrsrShell::MoveColumn( SwWhichColumn fnWhichCol, SwPosColumn fnPosCol )
SwCallLink aLk( *this ); // watch Crsr-Moves; call Link if needed
SwCrsrSaveState aSaveState( *m_pCurCrsr );
- pCnt->Calc();
+ pCnt->Calc(GetOut());
Point aPt( pCnt->Frm().Pos() + pCnt->Prt().Pos() );
if( fnPosCol == GetColumnEnd )
diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx
index 9b0e1c4fd42f..02a815b02304 100644
--- a/sw/source/core/doc/notxtfrm.cxx
+++ b/sw/source/core/doc/notxtfrm.cxx
@@ -506,7 +506,7 @@ bool SwNoTextFrm::GetCharRect( SwRect &rRect, const SwPosition& rPos,
if ( &rPos.nNode.GetNode() != (SwNode*)GetNode() )
return false;
- Calc();
+ Calc(getRootFrm()->GetCurrShell()->GetOut());
SwRect aFrameRect( Frm() );
rRect = aFrameRect;
rRect.Pos( Frm().Pos() + Prt().Pos() );
diff --git a/sw/source/core/edit/autofmt.cxx b/sw/source/core/edit/autofmt.cxx
index af48083d1141..c01199ffb948 100644
--- a/sw/source/core/edit/autofmt.cxx
+++ b/sw/source/core/edit/autofmt.cxx
@@ -51,6 +51,7 @@
#include <swundo.hxx>
#include <poolfmt.hxx>
#include <ndtxt.hxx>
+#include <rootfrm.hxx>
#include <txtfrm.hxx>
#include <frminf.hxx>
#include <pagedesc.hxx>
@@ -246,7 +247,7 @@ SwTextFrm* SwAutoFormat::GetFrm( const SwTextNode& rTextNd ) const
{
SwRect aTmpFrm( pFrm->Frm() );
SwRect aTmpPrt( pFrm->Prt() );
- pFrm->Calc();
+ pFrm->Calc(pFrm->getRootFrm()->GetCurrShell()->GetOut());
if( pFrm->Frm() != aTmpFrm || pFrm->Prt() != aTmpPrt ||
( pFrm->IsTextFrm() && !const_cast<SwTextFrm*>(static_cast<const SwTextFrm*>(pFrm))->Paint().IsEmpty() ) )
pFrm->SetCompletePaint();
diff --git a/sw/source/core/frmedt/fews.cxx b/sw/source/core/frmedt/fews.cxx
index 1a9dfd73e90a..db791c88ae06 100644
--- a/sw/source/core/frmedt/fews.cxx
+++ b/sw/source/core/frmedt/fews.cxx
@@ -113,9 +113,9 @@ const SwRect& SwFEShell::GetAnyCurRect( CurRectType eType, const Point* pPt,
case RECT_PAGE : pFrm = pFrm->FindPageFrm();
break;
- case RECT_PAGE_CALC: pFrm->Calc();
+ case RECT_PAGE_CALC: pFrm->Calc(Imp()->GetShell()->GetOut());
pFrm = pFrm->FindPageFrm();
- pFrm->Calc();
+ pFrm->Calc(Imp()->GetShell()->GetOut());
break;
case RECT_FLY_PRT_EMBEDDED: bFrm = false; /* no break */
diff --git a/sw/source/core/frmedt/tblsel.cxx b/sw/source/core/frmedt/tblsel.cxx
index 17f98776c158..dd997c331169 100644
--- a/sw/source/core/frmedt/tblsel.cxx
+++ b/sw/source/core/frmedt/tblsel.cxx
@@ -392,7 +392,7 @@ void GetTableSel( const SwLayoutFrm* pStart, const SwLayoutFrm* pEnd,
if( pTable->IsValid() )
pTable->InvalidatePos();
pTable->SetONECalcLowers();
- pTable->Calc();
+ pTable->Calc(pTable->getRootFrm()->GetCurrShell()->GetOut());
pTable->SetCompletePaint();
if( 0 == (pTable = pTable->GetFollow()) )
break;
@@ -634,7 +634,7 @@ bool ChkChartSel( const SwNode& rSttNd, const SwNode& rEndNd )
if( pTable->IsValid() )
pTable->InvalidatePos();
pTable->SetONECalcLowers();
- pTable->Calc();
+ pTable->Calc(pTable->getRootFrm()->GetCurrShell()->GetOut());
pTable->SetCompletePaint();
if( 0 == (pTable = pTable->GetFollow()) )
break;
diff --git a/sw/source/core/inc/flyfrm.hxx b/sw/source/core/inc/flyfrm.hxx
index be422b4c2906..5f4dc2f37149 100644
--- a/sw/source/core/inc/flyfrm.hxx
+++ b/sw/source/core/inc/flyfrm.hxx
@@ -278,7 +278,7 @@ public:
virtual void dumpAsXml( xmlTextWriterPtr writer ) const SAL_OVERRIDE { SwLayoutFrm::dumpAsXml( writer ); };
- virtual void Calc() const SAL_OVERRIDE;
+ virtual void Calc(vcl::RenderContext* pRenderContext) const SAL_OVERRIDE;
const Point& ContentPos() const { return m_aContentPos; }
Point& ContentPos() { return m_aContentPos; }
diff --git a/sw/source/core/inc/frame.hxx b/sw/source/core/inc/frame.hxx
index 834b0425cef5..7a17a69de85d 100644
--- a/sw/source/core/inc/frame.hxx
+++ b/sw/source/core/inc/frame.hxx
@@ -652,7 +652,7 @@ public:
inline SwLayoutFrm *GetPrevLayoutLeaf();
inline SwLayoutFrm *GetNextLayoutLeaf();
- virtual void Calc() const; // here might be "formatted"
+ virtual void Calc(vcl::RenderContext* pRenderContext) const; // here might be "formatted"
inline void OptCalc() const; // here we assume (for optimization) that
// the predecessors are already formatted
diff --git a/sw/source/core/layout/anchoreddrawobject.cxx b/sw/source/core/layout/anchoreddrawobject.cxx
index 5a70d5b4cf7e..7051a2a2d965 100644
--- a/sw/source/core/layout/anchoreddrawobject.cxx
+++ b/sw/source/core/layout/anchoreddrawobject.cxx
@@ -396,7 +396,7 @@ void SwAnchoredDrawObject::_MakeObjPosAnchoredAtPara()
if ( bFormatAnchor )
{
// --> #i50356#
- GetAnchorFrmContainingAnchPos()->Calc();
+ GetAnchorFrmContainingAnchPos()->Calc(GetAnchorFrmContainingAnchPos()->getRootFrm()->GetCurrShell()->GetOut());
}
bool bOscillationDetected = false;
@@ -435,7 +435,7 @@ void SwAnchoredDrawObject::_MakeObjPosAnchoredAtPara()
if ( bFormatAnchor )
{
// --> #i50356#
- GetAnchorFrmContainingAnchPos()->Calc();
+ GetAnchorFrmContainingAnchPos()->Calc(GetAnchorFrmContainingAnchPos()->getRootFrm()->GetCurrShell()->GetOut());
}
// --> #i3317#
diff --git a/sw/source/core/layout/calcmove.cxx b/sw/source/core/layout/calcmove.cxx
index be8fbc98a490..6b4d8cb1209b 100644
--- a/sw/source/core/layout/calcmove.cxx
+++ b/sw/source/core/layout/calcmove.cxx
@@ -244,7 +244,7 @@ void SwFrm::PrepareMake(vcl::RenderContext* pRenderContext)
if ( GetUpper() )
{
if ( lcl_IsCalcUpperAllowed( *this ) )
- GetUpper()->Calc();
+ GetUpper()->Calc(pRenderContext);
OSL_ENSURE( GetUpper(), ":-( Layout unstable (Upper gone)." );
if ( !GetUpper() )
return;
@@ -329,7 +329,7 @@ void SwFrm::PrepareMake(vcl::RenderContext* pRenderContext)
return;
if ( lcl_IsCalcUpperAllowed( *this ) )
- GetUpper()->Calc();
+ GetUpper()->Calc(pRenderContext);
OSL_ENSURE( GetUpper(), "Layout unstable (Upper gone III)." );
}
@@ -347,7 +347,7 @@ void SwFrm::OptPrepareMake()
!GetUpper()->IsFlyFrm() )
{
ForbidDelete();
- GetUpper()->Calc();
+ GetUpper()->Calc(getRootFrm()->GetCurrShell() ? getRootFrm()->GetCurrShell()->GetOut() : 0);
AllowDelete();
OSL_ENSURE( GetUpper(), ":-( Layout unstable (Upper gone)." );
if ( !GetUpper() )
@@ -368,7 +368,7 @@ void SwFrm::PrepareCrsr()
if( GetUpper() && !GetUpper()->IsSctFrm() )
{
GetUpper()->PrepareCrsr();
- GetUpper()->Calc();
+ GetUpper()->Calc(getRootFrm()->GetCurrShell() ? getRootFrm()->GetCurrShell()->GetOut() : 0);
OSL_ENSURE( GetUpper(), ":-( Layout unstable (Upper gone)." );
if ( !GetUpper() )
@@ -429,14 +429,14 @@ void SwFrm::PrepareCrsr()
if ( !GetUpper() )
return;
- GetUpper()->Calc();
+ GetUpper()->Calc(getRootFrm()->GetCurrShell()->GetOut());
OSL_ENSURE( GetUpper(), "Layout unstable (Upper gone III)." );
if ( bTab && !bOldTabLock )
::PrepareUnlock( static_cast<SwTabFrm*>(this) );
}
- Calc();
+ Calc(getRootFrm()->GetCurrShell() ? getRootFrm()->GetCurrShell()->GetOut() : 0);
}
// Here we return GetPrev(); however we will ignore empty SectionFrms
@@ -480,7 +480,7 @@ void SwFrm::MakePos()
!pPrv->GetAttrSet()->GetKeep().GetValue()
)
{
- pPrv->Calc(); // This may cause Prev to vanish!
+ pPrv->Calc(getRootFrm()->GetCurrShell() ? getRootFrm()->GetCurrShell()->GetOut() : 0); // This may cause Prev to vanish!
}
else if ( pPrv->Frm().Top() == 0 )
{
@@ -542,7 +542,7 @@ void SwFrm::MakePos()
GetUpper()->IsColLocked() )
)
{
- GetUpper()->Calc();
+ GetUpper()->Calc(getRootFrm()->GetCurrShell()->GetOut());
}
pPrv = lcl_Prev( this, false );
if ( !bUseUpper && pPrv )
@@ -1405,7 +1405,7 @@ void SwContentFrm::MakeAll(vcl::RenderContext* /*pRenderContext*/)
}
if ( pNxt )
{
- pNxt->Calc();
+ pNxt->Calc(getRootFrm()->GetCurrShell()->GetOut());
if( mbValidPos && !GetIndNext() )
{
SwSectionFrm *pSct = FindSctFrm();
@@ -1498,7 +1498,7 @@ void SwContentFrm::MakeAll(vcl::RenderContext* /*pRenderContext*/)
( 0 == (pNxt->Prt().*fnRect->fnGetHeight)() ) &&
(!pNxt->IsTextFrm() ||!static_cast<SwTextFrm*>(pNxt)->IsHiddenNow());
- pNxt->Calc();
+ pNxt->Calc(getRootFrm()->GetCurrShell()->GetOut());
if ( !bMovedBwd &&
((bMoveFwdInvalid && !GetIndNext()) ||
diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx
index 41cac22cbd5f..2a4c1f426e09 100644
--- a/sw/source/core/layout/flowfrm.cxx
+++ b/sw/source/core/layout/flowfrm.cxx
@@ -404,7 +404,7 @@ SwLayoutFrm *SwFlowFrm::CutTree( SwFrm *pStart )
bool bUnlock = !static_cast<SwFootnoteFrm*>(pLay)->IsBackMoveLocked();
static_cast<SwFootnoteFrm*>(pLay)->LockBackMove();
pLay->InvalidateSize();
- pLay->Calc();
+ pLay->Calc(pLay->getRootFrm()->GetCurrShell()->GetOut());
SwContentFrm *pCnt = pLay->ContainsContent();
while ( pCnt && pLay->IsAnLower( pCnt ) )
{
@@ -415,7 +415,7 @@ SwLayoutFrm *SwFlowFrm::CutTree( SwFrm *pStart )
if ( static_cast<SwTextFrm*>(pCnt)->IsLocked() ||
static_cast<SwTextFrm*>(pCnt)->GetFollow() == pStart )
break;
- pCnt->Calc();
+ pCnt->Calc(pCnt->getRootFrm()->GetCurrShell()->GetOut());
pCnt = pCnt->GetNextContentFrm();
}
if( bUnlock )
@@ -602,13 +602,13 @@ void SwFlowFrm::MoveSubTree( SwLayoutFrm* pParent, SwFrm* pSibling )
// If we're in a column section, we'd rather not call Calc "from below"
if( !m_rThis.IsInSct() &&
( !m_rThis.IsInTab() || ( m_rThis.IsTabFrm() && !m_rThis.GetUpper()->IsInTab() ) ) )
- m_rThis.GetUpper()->Calc();
+ m_rThis.GetUpper()->Calc(m_rThis.getRootFrm()->GetCurrShell()->GetOut());
else if( m_rThis.GetUpper()->IsSctFrm() )
{
SwSectionFrm* pTmpSct = static_cast<SwSectionFrm*>(m_rThis.GetUpper());
bool bOld = pTmpSct->IsContentLocked();
pTmpSct->SetContentLock( true );
- pTmpSct->Calc();
+ pTmpSct->Calc(m_rThis.getRootFrm()->GetCurrShell()->GetOut());
if( !bOld )
pTmpSct->SetContentLock( false );
}
@@ -1858,14 +1858,14 @@ bool SwFlowFrm::MoveFwd( bool bMakePage, bool bPageBreak, bool bMoveAlways )
{
bool bUnlock = !pSect->IsColLocked();
pSect->ColLock();
- pNewUpper->Calc();
+ pNewUpper->Calc(m_rThis.getRootFrm()->GetCurrShell()->GetOut());
if( bUnlock )
pSect->ColUnlock();
}
}
// Do not calculate split cell frames.
else if ( !pNewUpper->IsCellFrm() || static_cast<SwLayoutFrm*>(pNewUpper)->Lower() )
- pNewUpper->Calc();
+ pNewUpper->Calc(m_rThis.getRootFrm()->GetCurrShell()->GetOut());
SwFootnoteBossFrm *pNewBoss = pNewUpper->FindFootnoteBossFrm();
bool bBossChg = pNewBoss != pOldBoss;
@@ -2456,7 +2456,7 @@ bool SwFlowFrm::MoveBwd( bool &rbReformat )
pSect->ColLock();
bFollow = pSect->HasFollow();
}
- pNewUpper->Calc();
+ pNewUpper->Calc(m_rThis.getRootFrm()->GetCurrShell()->GetOut());
m_rThis.Cut();
// optimization: format section, if its size is invalidated and if it's
@@ -2477,7 +2477,7 @@ bool SwFlowFrm::MoveBwd( bool &rbReformat )
m_rThis.Paste( pNewUpper );
// - optimization
if ( bFormatSect )
- pSect->Calc();
+ pSect->Calc(m_rThis.getRootFrm()->GetCurrShell()->GetOut());
SwPageFrm *pNewPage = m_rThis.FindPageFrm();
if( pNewPage != pOldPage )
diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx
index c41d4753e4c1..e767ef9ee66b 100644
--- a/sw/source/core/layout/fly.cxx
+++ b/sw/source/core/layout/fly.cxx
@@ -1379,6 +1379,7 @@ void CalcContent( SwLayoutFrm *pLay,
bool bNoColl,
bool bNoCalcFollow )
{
+ vcl::RenderContext* pRenderContext = pLay->getRootFrm()->GetCurrShell()->GetOut();
SwSectionFrm* pSect;
bool bCollect = false;
if( pLay->IsSctFrm() )
@@ -1462,7 +1463,7 @@ void CalcContent( SwLayoutFrm *pLay,
if ( bNoCalcFollow && pFrm->IsTextFrm() )
static_cast<SwTextFrm*>(pFrm)->ForbidFollowFormat();
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
// OD 14.03.2003 #i11760# - reset control flag for follow format.
if ( pFrm->IsTextFrm() )
@@ -1589,7 +1590,7 @@ void CalcContent( SwLayoutFrm *pLay,
// are formatted, if the wrapping style influence has to be considered.
if ( pLay->GetFormat()->getIDocumentSettingAccess()->get(DocumentSettingId::CONSIDER_WRAP_ON_OBJECT_POSITION) )
{
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
}
if ( bAgain )
@@ -1688,10 +1689,11 @@ void SwFlyFrm::MakeObjPos()
{
if ( !mbValidPos )
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
mbValidPos = true;
// OD 29.10.2003 #113049# - use new class to position object
- GetAnchorFrm()->Calc();
+ GetAnchorFrm()->Calc(pRenderContext);
objectpositioning::SwToLayoutAnchoredObjectPosition
aObjPositioning( *GetVirtDrawObj() );
aObjPositioning.CalcPosition();
@@ -2457,6 +2459,7 @@ SwTwips SwFlyFrm::CalcAutoWidth() const
bool SwFlyFrm::GetContour( tools::PolyPolygon& rContour,
const bool _bForPaint ) const
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
bool bRet = false;
if( GetFormat()->GetSurround().IsContour() && Lower() &&
Lower()->IsNoTextFrm() )
@@ -2496,7 +2499,7 @@ bool SwFlyFrm::GetContour( tools::PolyPolygon& rContour,
// We need to include the scaling here
SwRect aClip;
SwRect aOrig;
- Lower()->Calc();
+ Lower()->Calc(pRenderContext);
static_cast<const SwNoTextFrm*>(Lower())->GetGrfArea( aClip, &aOrig, false );
// OD 16.04.2003 #i13147# - copy method code <SvxContourDlg::ScaleContour(..)>
// in order to avoid that graphic has to be loaded for contour scale.
@@ -2654,12 +2657,12 @@ SwFlyFrameFormat * SwFlyFrm::GetFormat()
return static_cast< SwFlyFrameFormat * >( GetDep() );
}
-void SwFlyFrm::Calc() const
+void SwFlyFrm::Calc(vcl::RenderContext* pRenderContext) const
{
if ( !m_bValidContentPos )
- const_cast<SwFlyFrm*>(this)->PrepareMake(getRootFrm()->GetCurrShell() ? getRootFrm()->GetCurrShell()->GetOut() : 0);
+ const_cast<SwFlyFrm*>(this)->PrepareMake(pRenderContext);
else
- SwLayoutFrm::Calc();
+ SwLayoutFrm::Calc(pRenderContext);
}
SwTwips SwFlyFrm::CalcContentHeight(const SwBorderAttrs *pAttrs, const SwTwips nMinHeight, const SwTwips nUL)
diff --git a/sw/source/core/layout/flyincnt.cxx b/sw/source/core/layout/flyincnt.cxx
index 3004cc1ac002..4d813eb3d188 100644
--- a/sw/source/core/layout/flyincnt.cxx
+++ b/sw/source/core/layout/flyincnt.cxx
@@ -82,7 +82,7 @@ void SwFlyInCntFrm::SetRefPoint( const Point& rPoint,
InvalidatePage();
mbValidPos = false;
bInvalid = true;
- Calc();
+ Calc(getRootFrm()->GetCurrShell()->GetOut());
delete pNotify;
}
}
@@ -136,7 +136,7 @@ void SwFlyInCntFrm::Format( vcl::RenderContext* pRenderContext, const SwBorderAt
Lock(); //don't format the anchor on the crook.
SwContentFrm *pContent = ContainsContent();
while ( pContent )
- { pContent->Calc();
+ { pContent->Calc(pRenderContext);
pContent = pContent->GetNextContentFrm();
}
Unlock();
@@ -193,7 +193,7 @@ void SwFlyInCntFrm::NotifyBackground( SwPageFrm *, const SwRect& rRect,
const Point SwFlyInCntFrm::GetRelPos() const
{
- Calc();
+ Calc(getRootFrm()->GetCurrShell()->GetOut());
return GetCurrRelPos();
}
diff --git a/sw/source/core/layout/flylay.cxx b/sw/source/core/layout/flylay.cxx
index 6ba20dd74e00..e493d13f062d 100644
--- a/sw/source/core/layout/flylay.cxx
+++ b/sw/source/core/layout/flylay.cxx
@@ -430,9 +430,9 @@ void SwFlyFreeFrm::CheckClip( const SwFormatFrmSize &rSz )
SwFrm *pLow = Lower();
do
{
- pLow->Calc();
+ pLow->Calc(getRootFrm()->GetCurrShell()->GetOut());
// also calculate the (Column)BodyFrm
- static_cast<SwLayoutFrm*>(pLow)->Lower()->Calc();
+ static_cast<SwLayoutFrm*>(pLow)->Lower()->Calc(getRootFrm()->GetCurrShell()->GetOut());
pLow = pLow->GetNext();
} while ( pLow );
::CalcContent( this );
diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index 3855f33ed544..6cbc38c36b17 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -3317,7 +3317,7 @@ SwFrm* GetFrmOfModify( const SwRootFrm* pLayout, SwModify const& rMod, sal_uInt1
{
SwObjectFormatter::FormatObj( *pFlyFrm );
}
- pTmpFrm->Calc();
+ pTmpFrm->Calc(pLayout->GetCurrShell()->GetOut());
}
// #127369#
diff --git a/sw/source/core/layout/ftnfrm.cxx b/sw/source/core/layout/ftnfrm.cxx
index daa82263bf26..81eacff86cd5 100644
--- a/sw/source/core/layout/ftnfrm.cxx
+++ b/sw/source/core/layout/ftnfrm.cxx
@@ -1574,7 +1574,7 @@ void SwFootnoteBossFrm::AppendFootnote( SwContentFrm *pRef, SwTextFootnote *pAtt
SwContentFrm *pCnt = pNew->ContainsContent();
while ( pCnt && pCnt->FindFootnoteFrm()->GetAttr() == pAttr )
{
- pCnt->Calc();
+ pCnt->Calc(getRootFrm()->GetCurrShell()->GetOut());
// #i49383# - format anchored objects
if ( pCnt->IsTextFrm() && pCnt->IsValid() )
{
@@ -1596,7 +1596,7 @@ void SwFootnoteBossFrm::AppendFootnote( SwContentFrm *pRef, SwTextFootnote *pAtt
// #i57914# - adjust fix #i49383#
// enable lock of lower object position before format of footnote frame.
pNew->UnlockPosOfLowerObjs();
- pNew->Calc();
+ pNew->Calc(getRootFrm()->GetCurrShell()->GetOut());
// #i57914# - adjust fix #i49383#
if ( !bOldFootnoteFrmLocked && !pNew->GetLower() &&
!pNew->IsColLocked() && !pNew->IsBackMoveLocked() )
@@ -1944,8 +1944,8 @@ void SwFootnoteBossFrm::_MoveFootnotes( SwFootnoteFrms &rFootnoteArr, bool bCalc
}
(pFootnote->Frm().*fnRect->fnSetHeight)(0);
(pFootnote->Prt().*fnRect->fnSetHeight)(0);
- pFootnote->Calc();
- pFootnote->GetUpper()->Calc();
+ pFootnote->Calc(getRootFrm()->GetCurrShell()->GetOut());
+ pFootnote->GetUpper()->Calc(getRootFrm()->GetCurrShell()->GetOut());
if( bCalc )
{
@@ -1962,7 +1962,7 @@ void SwFootnoteBossFrm::_MoveFootnotes( SwFootnoteFrms &rFootnoteArr, bool bCalc
while ( pCnt && pCnt->FindFootnoteFrm()->GetAttr() == pAttr )
{
pCnt->_InvalidatePos();
- pCnt->Calc();
+ pCnt->Calc(getRootFrm()->GetCurrShell()->GetOut());
// #i49383# - format anchored objects
if ( pCnt->IsTextFrm() && pCnt->IsValid() )
{
@@ -2003,7 +2003,7 @@ void SwFootnoteBossFrm::_MoveFootnotes( SwFootnoteFrms &rFootnoteArr, bool bCalc
// #i57914# - adjust fix #i49383#
// enable lock of lower object position before format of footnote frame.
pFootnote->UnlockPosOfLowerObjs();
- pFootnote->Calc();
+ pFootnote->Calc(getRootFrm()->GetCurrShell()->GetOut());
}
}
}
@@ -2042,7 +2042,7 @@ void SwFootnoteBossFrm::_MoveFootnotes( SwFootnoteFrms &rFootnoteArr, bool bCalc
while ( pCnt && pCnt->FindFootnoteFrm()->GetAttr() == pAttr )
{
pCnt->_InvalidatePos();
- pCnt->Calc();
+ pCnt->Calc(getRootFrm()->GetCurrShell()->GetOut());
// #i49383# - format anchored objects
if ( pCnt->IsTextFrm() && pCnt->IsValid() )
{
@@ -2074,7 +2074,7 @@ void SwFootnoteBossFrm::_MoveFootnotes( SwFootnoteFrms &rFootnoteArr, bool bCalc
// #i57914# - adjust fix #i49383#
// enable lock of lower object position before format of footnote frame.
pNextFootnote->UnlockPosOfLowerObjs();
- pNextFootnote->Calc();
+ pNextFootnote->Calc(getRootFrm()->GetCurrShell()->GetOut());
}
}
}
@@ -2132,8 +2132,8 @@ void SwFootnoteBossFrm::RearrangeFootnotes( const SwTwips nDeadLine, const bool
{
bool bUnlock = !pFirst->IsBackMoveLocked();
pFirst->LockBackMove();
- pFirst->Calc();
- pContent->Calc();
+ pFirst->Calc(getRootFrm()->GetCurrShell()->GetOut());
+ pContent->Calc(getRootFrm()->GetCurrShell()->GetOut());
// #i49383# - format anchored objects
if ( pContent->IsTextFrm() && pContent->IsValid() )
{
@@ -2180,7 +2180,7 @@ void SwFootnoteBossFrm::RearrangeFootnotes( const SwTwips nDeadLine, const bool
// #i57914# - adjust fix #i49383#
// enable lock of lower object position before format of footnote frame.
pLastFootnoteFrm->UnlockPosOfLowerObjs();
- pLastFootnoteFrm->Calc();
+ pLastFootnoteFrm->Calc(getRootFrm()->GetCurrShell()->GetOut());
if ( !bLock && bUnlockLastFootnoteFrm &&
!pLastFootnoteFrm->GetLower() &&
!pLastFootnoteFrm->IsColLocked() &&
@@ -2215,8 +2215,8 @@ void SwFootnoteBossFrm::RearrangeFootnotes( const SwTwips nDeadLine, const bool
{
bool bUnlock = !pFootnoteFrm->IsBackMoveLocked();
pFootnoteFrm->LockBackMove();
- pFootnoteFrm->Calc();
- pCnt->Calc();
+ pFootnoteFrm->Calc(getRootFrm()->GetCurrShell()->GetOut());
+ pCnt->Calc(getRootFrm()->GetCurrShell()->GetOut());
// #i49383# - format anchored objects
if ( pCnt->IsTextFrm() && pCnt->IsValid() )
{
@@ -2245,8 +2245,8 @@ void SwFootnoteBossFrm::RearrangeFootnotes( const SwTwips nDeadLine, const bool
}
else
{
- pFootnoteFrm->Calc();
- pCnt->Calc();
+ pFootnoteFrm->Calc(getRootFrm()->GetCurrShell()->GetOut());
+ pCnt->Calc(getRootFrm()->GetCurrShell()->GetOut());
// #i49383# - format anchored objects
if ( pCnt->IsTextFrm() && pCnt->IsValid() )
{
@@ -2315,7 +2315,7 @@ void SwFootnoteBossFrm::RearrangeFootnotes( const SwTwips nDeadLine, const bool
// #i57914# - adjust fix #i49383#
// enable lock of lower object position before format of footnote frame.
pLastFootnoteFrm->UnlockPosOfLowerObjs();
- pLastFootnoteFrm->Calc();
+ pLastFootnoteFrm->Calc(getRootFrm()->GetCurrShell()->GetOut());
if ( !bLock && bUnlockLastFootnoteFrm &&
!pLastFootnoteFrm->GetLower() &&
!pLastFootnoteFrm->IsColLocked() &&
@@ -2389,14 +2389,14 @@ void SwPageFrm::UpdateFootnoteNum()
void SwFootnoteBossFrm::SetFootnoteDeadLine( const SwTwips nDeadLine )
{
SwFrm *pBody = FindBodyCont();
- pBody->Calc();
+ pBody->Calc(getRootFrm()->GetCurrShell()->GetOut());
SwFrm *pCont = FindFootnoteCont();
const SwTwips nMax = nMaxFootnoteHeight;// current should exceed MaxHeight
SWRECTFN( this )
if ( pCont )
{
- pCont->Calc();
+ pCont->Calc(getRootFrm()->GetCurrShell()->GetOut());
nMaxFootnoteHeight = -(pCont->Frm().*fnRect->fnBottomDist)( nDeadLine );
}
else
@@ -2680,7 +2680,7 @@ bool SwContentFrm::MoveFootnoteCntFwd( bool bMakePage, SwFootnoteBossFrm *pOldBo
if ( !( bSameBoss = (pNewBoss == pOldBoss) ) )
{
bSamePage = pOldBoss->FindPageFrm() == pNewBoss->FindPageFrm(); // page change?
- pNewUpper->Calc();
+ pNewUpper->Calc(getRootFrm()->GetCurrShell()->GetOut());
}
// The layout leaf of the footnote is either a footnote container or a footnote.
@@ -2712,7 +2712,7 @@ bool SwContentFrm::MoveFootnoteCntFwd( bool bMakePage, SwFootnoteBossFrm *pOldBo
while(pNx && !static_cast<SwFootnoteFrm*>(pNx)->GetAttr()->GetFootnote().IsEndNote())
pNx = pNx->GetNext();
pTmpFootnote->Paste( pCont, pNx );
- pTmpFootnote->Calc();
+ pTmpFootnote->Calc(getRootFrm()->GetCurrShell()->GetOut());
}
OSL_ENSURE( pTmpFootnote->GetAttr() == FindFootnoteFrm()->GetAttr(), "Wrong Footnote!" );
// areas inside of footnotes get a special treatment
diff --git a/sw/source/core/layout/hffrm.cxx b/sw/source/core/layout/hffrm.cxx
index a54fbbdc4357..e12df3e12c35 100644
--- a/sw/source/core/layout/hffrm.cxx
+++ b/sw/source/core/layout/hffrm.cxx
@@ -248,7 +248,7 @@ void SwHeadFootFrm::FormatSize(SwTwips nUL, const SwBorderAttrs * pAttrs)
}
while( pFrm )
{
- pFrm->Calc();
+ pFrm->Calc(getRootFrm()->GetCurrShell()->GetOut());
// #i43771# - format also object anchored
// at the frame
// #i46941# - frame has to be valid.
diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx
index 6a5f78191611..307a038c4252 100644
--- a/sw/source/core/layout/layact.cxx
+++ b/sw/source/core/layout/layact.cxx
@@ -446,7 +446,7 @@ void SwLayAction::InternalAction(OutputDevice* pRenderContext)
{
OSL_ENSURE( pRoot->Lower()->IsPageFrm(), ":-( No page below the root.");
- pRoot->Calc();
+ pRoot->Calc(pRenderContext);
// Figure out the first invalid page or the first one to be formatted,
// respectively. A complete-action means the first invalid page.
@@ -812,7 +812,7 @@ bool SwLayAction::_TurboAction( const SwContentFrm *pCnt )
{
const SwRect aOldRect( pCnt->UnionFrm( true ) );
const long nOldBottom = pCnt->Frm().Top() + pCnt->Prt().Bottom();
- pCnt->Calc();
+ pCnt->Calc(pImp->GetShell()->GetOut());
if ( pCnt->Frm().Bottom() < aOldRect.Bottom() )
pCnt->SetRetouche();
@@ -1002,6 +1002,7 @@ static const SwAnchoredObject* lcl_FindFirstInvaObj( const SwPageFrm* _pPage,
*/
bool SwLayAction::IsShortCut( SwPageFrm *&prPage )
{
+ vcl::RenderContext* pRenderContext = pImp->GetShell()->GetOut();
bool bRet = false;
const SwViewShell *pSh = pRoot->GetCurrShell();
const bool bBrowse = pSh && pSh->GetViewOptions()->getBrowseMode();
@@ -1017,11 +1018,11 @@ bool SwLayAction::IsShortCut( SwPageFrm *&prPage )
// format its first lower.
// NOTE: In online layout (bBrowse == true) a page can contain
// a header frame and/or a footer frame beside the body frame.
- prPage->Calc();
+ prPage->Calc(pRenderContext);
SwFrm* pPageLowerFrm = prPage->Lower();
while ( pPageLowerFrm )
{
- pPageLowerFrm->Calc();
+ pPageLowerFrm->Calc(pRenderContext);
pPageLowerFrm = pPageLowerFrm->GetNext();
}
}
@@ -1097,7 +1098,7 @@ bool SwLayAction::IsShortCut( SwPageFrm *&prPage )
const SwSectionFrm *pSct = ((SwFrm*)pContent)->ImplFindSctFrm();
if ( !pSct->IsValid() )
{
- pSct->Calc();
+ pSct->Calc(pRenderContext);
pSct->SetCompletePaint();
if ( IsAgain() )
return false;
@@ -1109,7 +1110,7 @@ bool SwLayAction::IsShortCut( SwPageFrm *&prPage )
if ( !bPageChg && !pContent->IsValid() )
{
- pContent->Calc();
+ pContent->Calc(pRenderContext);
pContent->SetCompletePaint();
if ( IsAgain() )
return false;
@@ -1123,7 +1124,7 @@ bool SwLayAction::IsShortCut( SwPageFrm *&prPage )
const SwTabFrm *pTab = ((SwFrm*)pContent)->ImplFindTabFrm();
if ( !pTab->IsValid() )
{
- pTab->Calc();
+ pTab->Calc(pRenderContext);
pTab->SetCompletePaint();
if ( IsAgain() )
return false;
@@ -1138,7 +1139,7 @@ bool SwLayAction::IsShortCut( SwPageFrm *&prPage )
const SwSectionFrm *pSct = ((SwFrm*)pContent)->ImplFindSctFrm();
if ( !pSct->IsValid() )
{
- pSct->Calc();
+ pSct->Calc(pRenderContext);
pSct->SetCompletePaint();
if ( IsAgain() )
return false;
@@ -1239,7 +1240,7 @@ bool SwLayAction::FormatLayout( OutputDevice *pRenderContext, SwLayoutFrm *pLay,
aOldRect = static_cast<SwPageFrm*>(pLay)->GetBoundRect(pRenderContext);
}
- pLay->Calc();
+ pLay->Calc(pRenderContext);
if ( aOldFrame != pLay->Frm() )
bChanged = true;
@@ -1427,6 +1428,7 @@ bool SwLayAction::FormatLayout( OutputDevice *pRenderContext, SwLayoutFrm *pLay,
bool SwLayAction::FormatLayoutFly( SwFlyFrm* pFly )
{
+ vcl::RenderContext* pRenderContext = pImp->GetShell()->GetOut();
OSL_ENSURE( !IsAgain(), "Attention to the invalid page." );
if ( IsAgain() )
return false;
@@ -1438,7 +1440,7 @@ bool SwLayAction::FormatLayoutFly( SwFlyFrm* pFly )
{
// The Frame has changed, now it's getting formatted.
const SwRect aOldRect( pFly->Frm() );
- pFly->Calc();
+ pFly->Calc(pRenderContext);
bChanged = aOldRect != pFly->Frm();
if ( IsPaint() && (pFly->IsCompletePaint() || bChanged) &&
@@ -1482,6 +1484,7 @@ bool SwLayAction::FormatLayoutTab( SwTabFrm *pTab, bool bAddRect )
if ( IsAgain() || !pTab->Lower() )
return false;
+ vcl::RenderContext* pRenderContext = pImp->GetShell()->GetOut();
IDocumentTimerAccess *pTimerAccess = pRoot->GetFormat()->getIDocumentTimerAccess();
pTimerAccess->BlockIdling();
@@ -1504,7 +1507,7 @@ bool SwLayAction::FormatLayoutTab( SwTabFrm *pTab, bool bAddRect )
const SwRect aOldRect( pTab->Frm() );
pTab->SetLowersFormatted( false );
- pTab->Calc();
+ pTab->Calc(pRenderContext);
if ( aOldRect != pTab->Frm() )
{
bChanged = true;
diff --git a/sw/source/core/layout/objectformatter.cxx b/sw/source/core/layout/objectformatter.cxx
index 24afe55f9adb..b49f9a72e694 100644
--- a/sw/source/core/layout/objectformatter.cxx
+++ b/sw/source/core/layout/objectformatter.cxx
@@ -21,6 +21,7 @@
#include <objectformatterlayfrm.hxx>
#include <anchoreddrawobject.hxx>
#include <sortedobjs.hxx>
+#include <rootfrm.hxx>
#include <pagefrm.hxx>
#include <flyfrms.hxx>
#include <txtfrm.hxx>
@@ -239,7 +240,7 @@ bool SwObjectFormatter::FormatObj( SwAnchoredObject& _rAnchoredObj,
*/
void SwObjectFormatter::_FormatLayout( SwLayoutFrm& _rLayoutFrm )
{
- _rLayoutFrm.Calc();
+ _rLayoutFrm.Calc(_rLayoutFrm.getRootFrm()->GetCurrShell()->GetOut());
SwFrm* pLowerFrm = _rLayoutFrm.Lower();
while ( pLowerFrm )
diff --git a/sw/source/core/layout/objectformattertxtfrm.cxx b/sw/source/core/layout/objectformattertxtfrm.cxx
index dc6eee0863c4..7e384a6341a0 100644
--- a/sw/source/core/layout/objectformattertxtfrm.cxx
+++ b/sw/source/core/layout/objectformattertxtfrm.cxx
@@ -19,6 +19,7 @@
#include <objectformattertxtfrm.hxx>
#include <sortedobjs.hxx>
+#include <rootfrm.hxx>
#include <flyfrms.hxx>
#include <txtfrm.hxx>
#include <pagefrm.hxx>
@@ -652,7 +653,7 @@ static void lcl_FormatContentOfLayoutFrm( SwLayoutFrm* pLayFrm,
lcl_FormatContentOfLayoutFrm( static_cast<SwLayoutFrm*>(pLowerFrm),
pLastLowerFrm );
else
- pLowerFrm->Calc();
+ pLowerFrm->Calc(pLowerFrm->getRootFrm()->GetCurrShell()->GetOut());
pLowerFrm = pLowerFrm->GetNext();
}
@@ -699,7 +700,7 @@ void SwObjectFormatterTextFrm::FormatAnchorFrmAndItsPrevs( SwTextFrm& _rAnchorTe
if ( pFrm->IsLayoutFrm() )
lcl_FormatContentOfLayoutFrm( static_cast<SwLayoutFrm*>(pFrm) );
else
- pFrm->Calc();
+ pFrm->Calc(pFrm->getRootFrm()->GetCurrShell()->GetOut());
pFrm = pFrm->GetNext();
}
@@ -727,7 +728,7 @@ void SwObjectFormatterTextFrm::FormatAnchorFrmAndItsPrevs( SwTextFrm& _rAnchorTe
if ( pFrm->IsLayoutFrm() )
lcl_FormatContentOfLayoutFrm( static_cast<SwLayoutFrm*>(pFrm) );
else
- pFrm->Calc();
+ pFrm->Calc(pFrm->getRootFrm()->GetCurrShell()->GetOut());
pFrm = pFrm->GetNext();
}
@@ -745,11 +746,11 @@ void SwObjectFormatterTextFrm::FormatAnchorFrmAndItsPrevs( SwTextFrm& _rAnchorTe
if ( _rAnchorTextFrm.IsInTab() )
{
SwForbidFollowFormat aForbidFollowFormat( _rAnchorTextFrm );
- _rAnchorTextFrm.Calc();
+ _rAnchorTextFrm.Calc(_rAnchorTextFrm.getRootFrm()->GetCurrShell()->GetOut());
}
else
{
- _rAnchorTextFrm.Calc();
+ _rAnchorTextFrm.Calc(_rAnchorTextFrm.getRootFrm()->GetCurrShell()->GetOut());
}
}
diff --git a/sw/source/core/layout/pagechg.cxx b/sw/source/core/layout/pagechg.cxx
index 9fe2e66045ae..6e426b44f08f 100644
--- a/sw/source/core/layout/pagechg.cxx
+++ b/sw/source/core/layout/pagechg.cxx
@@ -177,6 +177,7 @@ SwPageFrm::SwPageFrm( SwFrameFormat *pFormat, SwFrm* pSib, SwPageDesc *pPgDsc )
SwViewShell *pSh = getRootFrm()->GetCurrShell();
const bool bBrowseMode = pSh && pSh->GetViewOptions()->getBrowseMode();
+ vcl::RenderContext* pRenderContext = pSh ? pSh->GetOut() : 0;
if ( bBrowseMode )
{
Frm().Height( 0 );
@@ -193,11 +194,11 @@ SwPageFrm::SwPageFrm( SwFrameFormat *pFormat, SwFrm* pSib, SwPageDesc *pPgDsc )
if ( !(bEmptyPage = (pFormat == pDoc->GetEmptyPageFormat())) )
{
bEmptyPage = false;
- Calc(); // so that the PrtArea is correct
+ Calc(pRenderContext); // so that the PrtArea is correct
SwBodyFrm *pBodyFrm = new SwBodyFrm( pDoc->GetDfltFrameFormat(), this );
pBodyFrm->ChgSize( Prt().SSize() );
pBodyFrm->Paste( this );
- pBodyFrm->Calc(); // so that the columns can be inserted correctly
+ pBodyFrm->Calc(pRenderContext); // so that the columns can be inserted correctly
pBodyFrm->InvalidatePos();
if ( bBrowseMode )
@@ -341,6 +342,7 @@ void SwPageFrm::CheckDirection( bool bVert )
/// create specific Flys for this page and format generic content
static void lcl_FormatLay( SwLayoutFrm *pLay )
{
+ vcl::RenderContext* pRenderContext = pLay->getRootFrm()->GetCurrShell()->GetOut();
// format all LayoutFrms - no tables, Flys etc.
SwFrm *pTmp = pLay->Lower();
@@ -351,7 +353,7 @@ static void lcl_FormatLay( SwLayoutFrm *pLay )
::lcl_FormatLay( static_cast<SwLayoutFrm*>(pTmp) );
pTmp = pTmp->GetNext();
}
- pLay->Calc();
+ pLay->Calc(pRenderContext);
}
/// Create Flys or register draw objects
@@ -1861,6 +1863,7 @@ static void lcl_MoveAllLowers( SwFrm* pFrm, const Point& rOffset )
// Calculate how the pages have to be positioned
void SwRootFrm::CheckViewLayout( const SwViewOption* pViewOpt, const SwRect* pVisArea )
{
+ vcl::RenderContext* pRenderContext = GetCurrShell() ? GetCurrShell()->GetOut() : 0;
// #i91432#
// No calculation of page positions, if only an empty page is present.
// This situation occurs when <SwRootFrm> instance is in construction
@@ -1899,7 +1902,7 @@ void SwRootFrm::CheckViewLayout( const SwViewOption* pViewOpt, const SwRect* pVi
mbBookMode = false;
}
- Calc();
+ Calc(pRenderContext);
const bool bOldCallbackActionEnabled = IsCallbackActionEnabled();
SetCallbackActionEnabled( false );
@@ -2166,7 +2169,7 @@ void SwRootFrm::CheckViewLayout( const SwViewOption* pViewOpt, const SwRect* pVi
{
ChgSize( aNewSize );
::AdjustSizeChgNotify( this );
- Calc();
+ Calc(pRenderContext);
SwViewShell* pSh = GetCurrShell();
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index 23b19336cb85..3f681f19ac79 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -3529,11 +3529,13 @@ void SwRootFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect, S
static void lcl_EmergencyFormatFootnoteCont( SwFootnoteContFrm *pCont )
{
+ vcl::RenderContext* pRenderContext = pCont->getRootFrm()->GetCurrShell()->GetOut();
+
//It's possible that the Cont will get destroyed.
SwContentFrm *pCnt = pCont->ContainsContent();
while ( pCnt && pCnt->IsInFootnote() )
{
- pCnt->Calc();
+ pCnt->Calc(pRenderContext);
pCnt = pCnt->GetNextContentFrm();
}
}
@@ -3598,7 +3600,7 @@ void SwLayoutFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect,
SwShortCut aShortCut( *pFrm, rRect );
bool bCnt;
if ( (bCnt = pFrm->IsContentFrm()) )
- pFrm->Calc();
+ pFrm->Calc(&rRenderContext);
if ( pFrm->IsFootnoteContFrm() )
{
@@ -3660,7 +3662,7 @@ void SwLayoutFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect,
gProp.pSGlobalShell->InvalidateWindows( aPaintRect );
pFrm = pFrm->GetNext();
if ( pFrm && (bCnt = pFrm->IsContentFrm()) )
- pFrm->Calc();
+ pFrm->Calc(&rRenderContext);
continue;
}
}
@@ -3692,7 +3694,7 @@ void SwLayoutFrm::Paint(vcl::RenderContext& rRenderContext, SwRect const& rRect,
pFrm = pFrm->GetNext();
if ( pFrm && (bCnt = pFrm->IsContentFrm()) )
- pFrm->Calc();
+ pFrm->Calc(&rRenderContext);
}
}
diff --git a/sw/source/core/layout/sectfrm.cxx b/sw/source/core/layout/sectfrm.cxx
index dcb7fbef4275..bef77ba097e2 100644
--- a/sw/source/core/layout/sectfrm.cxx
+++ b/sw/source/core/layout/sectfrm.cxx
@@ -904,6 +904,7 @@ static SwFootnoteFrm* lcl_FindEndnote( SwSectionFrm* &rpSect, bool &rbEmpty,
static void lcl_ColumnRefresh( SwSectionFrm* pSect, bool bFollow )
{
+ vcl::RenderContext* pRenderContext = pSect->getRootFrm()->GetCurrShell()->GetOut();
while( pSect )
{
bool bOldLock = pSect->IsColLocked();
@@ -915,8 +916,8 @@ static void lcl_ColumnRefresh( SwSectionFrm* pSect, bool bFollow )
{ pCol->_InvalidateSize();
pCol->_InvalidatePos();
((SwLayoutFrm*)pCol)->Lower()->_InvalidateSize();
- pCol->Calc(); // calculation of column and
- ((SwLayoutFrm*)pCol)->Lower()->Calc(); // body
+ pCol->Calc(pRenderContext); // calculation of column and
+ ((SwLayoutFrm*)pCol)->Lower()->Calc(pRenderContext); // body
pCol = static_cast<SwColumnFrm*>(pCol->GetNext());
} while ( pCol );
}
@@ -1139,6 +1140,7 @@ class ExtraFormatToPositionObjs
void FormatSectionToPositionObjs()
{
+ vcl::RenderContext* pRenderContext = mpSectFrm->getRootFrm()->GetCurrShell()->GetOut();
// perform extra format for multi-columned section.
if ( mpSectFrm->Lower() && mpSectFrm->Lower()->IsColumnFrm() &&
mpSectFrm->Lower()->GetNext() )
@@ -1163,11 +1165,11 @@ class ExtraFormatToPositionObjs
SwColumnFrm* pColFrm = static_cast<SwColumnFrm*>(mpSectFrm->Lower());
while ( pColFrm )
{
- pColFrm->Calc();
- pColFrm->Lower()->Calc();
+ pColFrm->Calc(pRenderContext);
+ pColFrm->Lower()->Calc(pRenderContext);
if ( pColFrm->Lower()->GetNext() )
{
- pColFrm->Lower()->GetNext()->Calc();
+ pColFrm->Lower()->GetNext()->Calc(pRenderContext);
}
pColFrm = static_cast<SwColumnFrm*>(pColFrm->GetNext());
@@ -1207,7 +1209,7 @@ class ExtraFormatToPositionObjs
};
/// "formats" the frame; Frm and PrtArea
-void SwSectionFrm::Format( vcl::RenderContext* /*pRenderContext*/, const SwBorderAttrs *pAttr )
+void SwSectionFrm::Format( vcl::RenderContext* pRenderContext, const SwBorderAttrs *pAttr )
{
if( !pSection ) // via DelEmpty
{
@@ -1295,7 +1297,7 @@ void SwSectionFrm::Format( vcl::RenderContext* /*pRenderContext*/, const SwBorde
// Check the width of the columns and adjust if necessary
if ( bHasColumns && ! Lower()->GetNext() && bMaximize )
- static_cast<SwColumnFrm*>(Lower())->Lower()->Calc();
+ static_cast<SwColumnFrm*>(Lower())->Lower()->Calc(pRenderContext);
if ( !bMaximize )
{
@@ -1328,9 +1330,9 @@ void SwSectionFrm::Format( vcl::RenderContext* /*pRenderContext*/, const SwBorde
{
if( pFrm->IsColumnFrm() )
{
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
pFrm = static_cast<SwColumnFrm*>(pFrm)->Lower();
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
pFrm = static_cast<SwLayoutFrm*>(pFrm)->Lower();
CalcFootnoteContent();
}
@@ -1381,9 +1383,9 @@ void SwSectionFrm::Format( vcl::RenderContext* /*pRenderContext*/, const SwBorde
{
pFrm->_InvalidateSize();
pFrm->_InvalidatePos();
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
pFrm = static_cast<SwColumnFrm*>(pFrm)->Lower();
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
pFrm = static_cast<SwLayoutFrm*>(pFrm)->Lower();
CalcFootnoteContent();
}
@@ -2508,18 +2510,19 @@ long SwSectionFrm::Undersize( bool bOverSize )
void SwSectionFrm::CalcFootnoteContent()
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
SwFootnoteContFrm* pCont = ContainsFootnoteCont();
if( pCont )
{
SwFrm* pFrm = pCont->ContainsAny();
if( pFrm )
- pCont->Calc();
+ pCont->Calc(pRenderContext);
while( pFrm && IsAnLower( pFrm ) )
{
SwFootnoteFrm* pFootnote = pFrm->FindFootnoteFrm();
if( pFootnote )
- pFootnote->Calc();
- pFrm->Calc();
+ pFootnote->Calc(pRenderContext);
+ pFrm->Calc(pRenderContext);
if( pFrm->IsSctFrm() )
{
SwFrm *pTmp = static_cast<SwSectionFrm*>(pFrm)->ContainsAny();
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 81af7b4ef419..4f80e080b33c 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -610,6 +610,7 @@ static bool lcl_RecalcSplitLine( SwRowFrm& rLastLine, SwRowFrm& rFollowLine,
{
bool bRet = true;
+ vcl::RenderContext* pRenderContext = rLastLine.getRootFrm()->GetCurrShell()->GetOut();
SwTabFrm& rTab = static_cast<SwTabFrm&>(*rLastLine.GetUpper());
// If there are nested cells in rLastLine, the recalculation of the last
@@ -657,7 +658,7 @@ static bool lcl_RecalcSplitLine( SwRowFrm& rLastLine, SwRowFrm& rFollowLine,
// #115759# - force a format of the last line in order to
// get the correct height.
rLastLine.InvalidateSize();
- rLastLine.Calc();
+ rLastLine.Calc(pRenderContext);
// Unlock this tab frame and its follow
if ( bUnlockFollow )
@@ -1355,6 +1356,7 @@ bool SwContentFrm::CalcLowers( SwLayoutFrm* pLay, const SwLayoutFrm* pDontLeave,
if ( !pLay )
return true;
+ vcl::RenderContext* pRenderContext = pLay->getRootFrm()->GetCurrShell()->GetOut();
// LONG_MAX == nBottom means we have to calculate all
bool bAll = LONG_MAX == nBottom;
bool bRet = false;
@@ -1393,7 +1395,7 @@ bool SwContentFrm::CalcLowers( SwLayoutFrm* pLay, const SwLayoutFrm* pDontLeave,
// #i26945# - no extra invalidation of floating
// screen objects needed.
// Thus, delete call of method <SwFrm::InvalidateObjs( true )>
- pCnt->Calc();
+ pCnt->Calc(pRenderContext);
// OD 2004-05-11 #i28701# - usage of new method <::FormatObjsAtFrm(..)>
// to format the floating screen objects
// #i46941# - frame has to be valid
@@ -1429,7 +1431,7 @@ bool SwContentFrm::CalcLowers( SwLayoutFrm* pLay, const SwLayoutFrm* pDontLeave,
#endif
}
}
- pCnt->GetUpper()->Calc();
+ pCnt->GetUpper()->Calc(pRenderContext);
}
if( ! bAll && (*fnRect->fnYDiff)((pCnt->Frm().*fnRect->fnGetTop)(), nBottom) > 0 )
break;
@@ -1444,6 +1446,7 @@ static bool lcl_InnerCalcLayout( SwFrm *pFrm,
long nBottom,
bool _bOnlyRowsAndCells )
{
+ vcl::RenderContext* pRenderContext = pFrm->getRootFrm()->GetCurrShell() ? pFrm->getRootFrm()->GetCurrShell()->GetOut() : 0;
// LONG_MAX == nBottom means we have to calculate all
bool bAll = LONG_MAX == nBottom;
bool bRet = false;
@@ -1460,7 +1463,7 @@ static bool lcl_InnerCalcLayout( SwFrm *pFrm,
// not be calculated => It will not become valid =>
// Loop in lcl_RecalcRow(). Therefore we do not consider them for bRet.
bRet |= !pFrm->IsValid() && ( !pFrm->IsTabFrm() || !static_cast<SwTabFrm*>(pFrm)->IsJoinLocked() );
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
if( static_cast<SwLayoutFrm*>(pFrm)->Lower() )
bRet |= lcl_InnerCalcLayout( static_cast<SwLayoutFrm*>(pFrm)->Lower(), nBottom);
@@ -1470,7 +1473,7 @@ static bool lcl_InnerCalcLayout( SwFrm *pFrm,
{
SwCellFrm& rToCalc = const_cast<SwCellFrm&>(pThisCell->FindStartEndOfRowSpanCell( true, true ));
bRet |= !rToCalc.IsValid();
- rToCalc.Calc();
+ rToCalc.Calc(pRenderContext);
if ( rToCalc.Lower() )
bRet |= lcl_InnerCalcLayout( rToCalc.Lower(), nBottom);
}
@@ -1643,6 +1646,7 @@ static bool lcl_NoPrev( const SwFrm& rFrm )
// Precondition: The given table frame hasn't a follow and isn't a follow.
SwFrm* sw_FormatNextContentForKeep( SwTabFrm* pTabFrm )
{
+ vcl::RenderContext* pRenderContext = pTabFrm->getRootFrm()->GetCurrShell()->GetOut();
// find next content, table or section
SwFrm* pNxt = pTabFrm->FindNext();
@@ -1667,7 +1671,7 @@ SwFrm* sw_FormatNextContentForKeep( SwTabFrm* pTabFrm )
if ( pTabFrm->GetUpper()->IsInTab() )
pNxt->MakeAll(pNxt->getRootFrm()->GetCurrShell()->GetOut());
else
- pNxt->Calc();
+ pNxt->Calc(pRenderContext);
}
return pNxt;
@@ -2092,7 +2096,7 @@ void SwTabFrm::MakeAll(vcl::RenderContext* pRenderContext)
//Displace the footnotes!
if ( bMoveFootnotes )
if ( static_cast<SwLayoutFrm*>(pRowToMove)->MoveLowerFootnotes( 0, pOldBoss, FindFootnoteBossFrm( true ), true ) )
- GetUpper()->Calc();
+ GetUpper()->Calc(pRenderContext);
pRowToMove = pNextRow;
}
@@ -2413,7 +2417,7 @@ void SwTabFrm::MakeAll(vcl::RenderContext* pRenderContext)
}
if ( bCalcNxt )
{
- pNxt->Calc();
+ pNxt->Calc(pRenderContext);
}
}
}
@@ -2461,8 +2465,8 @@ void SwTabFrm::MakeAll(vcl::RenderContext* pRenderContext)
//To avoid oscillations now invalid master should drop behind.
SwTabFrm *pTab = FindMaster();
if ( pTab->GetUpper() )
- pTab->GetUpper()->Calc();
- pTab->Calc();
+ pTab->GetUpper()->Calc(pRenderContext);
+ pTab->Calc(pRenderContext);
pTab->SetLowersFormatted( false );
}
diff --git a/sw/source/core/layout/trvlfrm.cxx b/sw/source/core/layout/trvlfrm.cxx
index 76fe7043bd75..bbb4e16e0478 100644
--- a/sw/source/core/layout/trvlfrm.cxx
+++ b/sw/source/core/layout/trvlfrm.cxx
@@ -142,11 +142,12 @@ static SwCrsrOszControl aOszCtrl = { 0, 0, 0 };
bool SwLayoutFrm::GetCrsrOfst( SwPosition *pPos, Point &rPoint,
SwCrsrMoveState* pCMS, bool ) const
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
bool bRet = false;
const SwFrm *pFrm = Lower();
while ( !bRet && pFrm )
{
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
// #i43742# New function
const bool bContentCheck = pFrm->IsTextFrm() && pCMS && pCMS->bContentCheck;
@@ -464,6 +465,7 @@ bool SwRootFrm::GetCrsrOfst( SwPosition *pPos, Point &rPoint,
bool SwCellFrm::GetCrsrOfst( SwPosition *pPos, Point &rPoint,
SwCrsrMoveState* pCMS, bool ) const
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
// cell frame does not necessarily have a lower (split table cell)
if ( !Lower() )
return false;
@@ -488,13 +490,13 @@ bool SwCellFrm::GetCrsrOfst( SwPosition *pPos, Point &rPoint,
return SwLayoutFrm::GetCrsrOfst( pPos, rPoint, pCMS );
else
{
- Calc();
+ Calc(pRenderContext);
bool bRet = false;
const SwFrm *pFrm = Lower();
while ( pFrm && !bRet )
{
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
if ( pFrm->Frm().IsInside( rPoint ) )
{
bRet = pFrm->GetCrsrOfst( pPos, rPoint, pCMS );
@@ -531,12 +533,13 @@ bool SwCellFrm::GetCrsrOfst( SwPosition *pPos, Point &rPoint,
bool SwFlyFrm::GetCrsrOfst( SwPosition *pPos, Point &rPoint,
SwCrsrMoveState* pCMS, bool ) const
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
aOszCtrl.Entry( this );
//If the Points lies inside the Fly, we try hard to set the Crsr inside it.
//However if the Point sits inside a Fly which is completely located inside
//the current one, we call GetCrsrOfst for it.
- Calc();
+ Calc(pRenderContext);
bool bInside = Frm().IsInside( rPoint ) && Lower();
bool bRet = false;
@@ -575,7 +578,7 @@ bool SwFlyFrm::GetCrsrOfst( SwPosition *pPos, Point &rPoint,
const SwFrm *pFrm = Lower();
while ( pFrm && !bRet )
{
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
if ( pFrm->Frm().IsInside( rPoint ) )
{
bRet = pFrm->GetCrsrOfst( pPos, rPoint, pCMS );
@@ -975,6 +978,7 @@ sal_uInt16 SwRootFrm::GetCurrPage( const SwPaM *pActualCrsr ) const
*/
sal_uInt16 SwRootFrm::SetCurrPage( SwCursor* pToSet, sal_uInt16 nPageNum )
{
+ vcl::RenderContext* pRenderContext = GetCurrShell() ? GetCurrShell()->GetOut() : 0;
OSL_ENSURE( Lower() && Lower()->IsPageFrm(), "No page available." );
SwPageFrm *pPage = static_cast<SwPageFrm*>(Lower());
@@ -988,7 +992,7 @@ sal_uInt16 SwRootFrm::SetCurrPage( SwCursor* pToSet, sal_uInt16 nPageNum )
const SwContentFrm *pContent = pPage->ContainsContent();
while ( pContent && pPage->IsAnLower( pContent ) )
{
- pContent->Calc();
+ pContent->Calc(pRenderContext);
pContent = pContent->GetNextContentFrm();
}
//Either this is a new page or we found the last page.
@@ -1177,6 +1181,7 @@ const SwContentFrm *SwLayoutFrm::GetContentPos( Point& rPoint,
const SwCrsrMoveState *pCMS,
const bool bDefaultExpand ) const
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
//Determine the first ContentFrm.
const SwLayoutFrm *pStart = (!bDontLeave && bDefaultExpand && GetPrev()) ?
static_cast<const SwLayoutFrm*>(GetPrev()) : this;
@@ -1215,7 +1220,7 @@ const SwContentFrm *SwLayoutFrm::GetContentPos( Point& rPoint,
if ( !pContent->IsTextFrm() || !static_cast<const SwTextFrm*>(pContent)->IsHiddenNow() )
{
if ( bCalc )
- pContent->Calc();
+ pContent->Calc(pRenderContext);
SwRect aCntFrm( pContent->UnionFrm() );
if ( aCntFrm.IsInside( rPoint ) )
@@ -1356,7 +1361,7 @@ const SwContentFrm *SwLayoutFrm::GetContentPos( Point& rPoint,
//Bring the Point in to the PrtArea
if ( bCalc )
- pActual->Calc();
+ pActual->Calc(pRenderContext);
const SwRect aRect( pActual->Frm().Pos() + pActual->Prt().Pos(),
aActualSize );
if ( aPoint.Y() < aRect.Top() )
@@ -1489,6 +1494,7 @@ class DisableCallbackAction
*/
Point SwRootFrm::GetNextPrevContentPos( const Point& rPoint, bool bNext ) const
{
+ vcl::RenderContext* pRenderContext = GetCurrShell() ? GetCurrShell()->GetOut() : 0;
// #123110# - disable creation of an action by a callback
// event during processing of this method. Needed because formatting is
// triggered by this method.
@@ -1508,7 +1514,7 @@ Point SwRootFrm::GetNextPrevContentPos( const Point& rPoint, bool bNext ) const
if ( !pCnt )
return Point( 0, 0 );
- pCnt->Calc();
+ pCnt->Calc(pRenderContext);
if( !bNext )
{
// As long as the point lies before the first ContentFrm and there are
@@ -1525,7 +1531,7 @@ Point SwRootFrm::GetNextPrevContentPos( const Point& rPoint, bool bNext ) const
else
return ContainsContent()->UnionFrm().Pos();
}
- pCnt->Calc();
+ pCnt->Calc(pRenderContext);
}
}
@@ -1561,7 +1567,7 @@ Point SwRootFrm::GetNextPrevContentPos( const Point& rPoint, bool bNext ) const
//If the next ContentFrm lies behind the point then it is the one we
//searched.
const SwTabFrm* pTFrm;
- pNxt->Calc();
+ pNxt->Calc(pRenderContext);
if( pNxt->Frm().Top() > rPoint.Y() &&
!lcl_IsInRepeatedHeadline( pCnt, &pTFrm ) &&
( !pTFrm || pNxt->Frm().Left() > rPoint.X() ))
@@ -1786,10 +1792,10 @@ bool SwFrm::OnFirstPage() const
return bRet;
}
-void SwFrm::Calc() const
+void SwFrm::Calc(vcl::RenderContext* pRenderContext) const
{
if ( !mbValidPos || !mbValidPrtArea || !mbValidSize )
- const_cast<SwFrm*>(this)->PrepareMake(getRootFrm()->GetCurrShell() ? getRootFrm()->GetCurrShell()->GetOut() : 0);
+ const_cast<SwFrm*>(this)->PrepareMake(pRenderContext);
}
Point SwFrm::GetRelPos() const
diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx
index 41d943a4b5cc..e96d33db5710 100644
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@ -3180,6 +3180,7 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
bool bBackLock = false;
SwViewShell *pSh = getRootFrm()->GetCurrShell();
SwViewShellImp *pImp = pSh ? pSh->Imp() : 0;
+ vcl::RenderContext* pRenderContext = pSh ? pSh->GetOut() : 0;
{
// Underlying algorithm
// We try to find the optimal height for the column.
@@ -3296,11 +3297,11 @@ void SwLayoutFrm::FormatWidthCols( const SwBorderAttrs &rAttrs,
for ( sal_uInt16 i = 0; i < nNumCols; ++i )
{
- pCol->Calc();
+ pCol->Calc(pRenderContext);
// ColumnFrms have a BodyFrm now, which needs to be calculated
- pCol->Lower()->Calc();
+ pCol->Lower()->Calc(pRenderContext);
if( pCol->Lower()->GetNext() )
- pCol->Lower()->GetNext()->Calc(); // SwFootnoteCont
+ pCol->Lower()->GetNext()->Calc(pRenderContext); // SwFootnoteCont
pCol = static_cast<SwLayoutFrm*>(pCol->GetNext());
}
diff --git a/sw/source/core/text/frmform.cxx b/sw/source/core/text/frmform.cxx
index dea5367692da..263c05fdcf88 100644
--- a/sw/source/core/text/frmform.cxx
+++ b/sw/source/core/text/frmform.cxx
@@ -78,6 +78,7 @@ void ValidateText( SwFrm *pFrm ) // Friend of frame
void SwTextFrm::ValidateFrm()
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
// Validate surroundings to avoid oscillation
SWAP_IF_SWAPPED( this )
@@ -94,7 +95,7 @@ void SwTextFrm::ValidateFrm()
}
SwFrm *pUp = GetUpper();
- pUp->Calc();
+ pUp->Calc(pRenderContext);
if( pSct )
pSct->ColUnlock();
}
@@ -115,17 +116,18 @@ void SwTextFrm::ValidateFrm()
// First we search outwards, on the way back we calculate everything.
void _ValidateBodyFrm( SwFrm *pFrm )
{
+ vcl::RenderContext* pRenderContext = pFrm ? pFrm->getRootFrm()->GetCurrShell()->GetOut() : 0;
if( pFrm && !pFrm->IsCellFrm() )
{
if( !pFrm->IsBodyFrm() && pFrm->GetUpper() )
_ValidateBodyFrm( pFrm->GetUpper() );
if( !pFrm->IsSctFrm() )
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
else
{
const bool bOld = static_cast<SwSectionFrm*>(pFrm)->IsContentLocked();
static_cast<SwSectionFrm*>(pFrm)->SetContentLock( true );
- pFrm->Calc();
+ pFrm->Calc(pRenderContext);
if( !bOld )
static_cast<SwSectionFrm*>(pFrm)->SetContentLock( false );
}
@@ -186,6 +188,7 @@ const SwBodyFrm *SwTextFrm::FindBodyFrm() const
bool SwTextFrm::CalcFollow( const sal_Int32 nTextOfst )
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
SWAP_IF_SWAPPED( this )
OSL_ENSURE( HasFollow(), "CalcFollow: missing Follow." );
@@ -283,13 +286,13 @@ bool SwTextFrm::CalcFollow( const sal_Int32 nTextOfst )
}
}
- pMyFollow->Calc();
+ pMyFollow->Calc(pRenderContext);
// The Follow can tell from its Frm().Height() that something went wrong
OSL_ENSURE( !pMyFollow->GetPrev(), "SwTextFrm::CalcFollow: cheesy follow" );
if( pMyFollow->GetPrev() )
{
pMyFollow->Prepare( PREP_CLEAR );
- pMyFollow->Calc();
+ pMyFollow->Calc(pRenderContext);
OSL_ENSURE( !pMyFollow->GetPrev(), "SwTextFrm::CalcFollow: very cheesy follow" );
}
@@ -350,6 +353,7 @@ bool SwTextFrm::CalcFollow( const sal_Int32 nTextOfst )
void SwTextFrm::AdjustFrm( const SwTwips nChgHght, bool bHasToFit )
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
if( IsUndersized() )
{
if( GetOfst() && !IsFollow() ) // A scrolled paragraph (undersized)
@@ -404,7 +408,7 @@ void SwTextFrm::AdjustFrm( const SwTwips nChgHght, bool bHasToFit )
{
SwFrm *pPre = GetUpper()->Lower();
do
- { pPre->Calc();
+ { pPre->Calc(pRenderContext);
pPre = pPre->GetNext();
} while ( pPre && pPre != this );
}
diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
index 636c18ce27cb..886cec5d2b00 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -2066,6 +2066,7 @@ sal_uInt16 SwTextFrm::GetParHeight() const
*/
SwTextFrm* SwTextFrm::GetFormatted( bool bForceQuickFormat )
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
SWAP_IF_SWAPPED( this )
// The IdleCollector could've removed my cached information
@@ -2075,7 +2076,7 @@ SwTextFrm* SwTextFrm::GetFormatted( bool bForceQuickFormat )
{
// Calc() must be called, because frame position can be wrong
const bool bFormat = GetValidSizeFlag();
- Calc();
+ Calc(pRenderContext);
// It could be that Calc() did not trigger Format(), because
// we've been asked by the IdleCollector to throw away our
diff --git a/sw/source/core/text/txthyph.cxx b/sw/source/core/text/txthyph.cxx
index 9ae675f1a4a0..7742a3dbec8c 100644
--- a/sw/source/core/text/txthyph.cxx
+++ b/sw/source/core/text/txthyph.cxx
@@ -57,6 +57,7 @@ Reference< XHyphenatedWord > SwTextFormatInfo::HyphWord(
*/
bool SwTextFrm::Hyphenate( SwInterHyphInfo &rHyphInf )
{
+ vcl::RenderContext* pRenderContext = getRootFrm()->GetCurrShell()->GetOut();
OSL_ENSURE( ! IsVertical() || ! IsSwapped(),"swapped frame at SwTextFrm::Hyphenate" );
if( !g_pBreakIt->GetBreakIter().is() )
@@ -66,7 +67,7 @@ bool SwTextFrm::Hyphenate( SwInterHyphInfo &rHyphInf )
OSL_ENSURE( !IsLocked(), "SwTextFrm::Hyphenate: this is locked" );
// The frame::Frame must have a valid SSize!
- Calc();
+ Calc(pRenderContext);
GetFormatted();
bool bRet = false;
diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index 933743fd592f..622d40b351e9 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -52,6 +52,7 @@
#include <fmtpdsc.hxx>
#include <pagedesc.hxx>
#include <viewsh.hxx>
+#include <rootfrm.hxx>
#include <tabfrm.hxx>
#include <redline.hxx>
#include <unoport.hxx>
@@ -591,6 +592,7 @@ static bool lcl_FormatTable(SwFrameFormat* pTableFormat)
SwIterator<SwFrm,SwFormat> aIter( *pTableFormat );
for(SwFrm* pFrm = aIter.First(); pFrm; pFrm = aIter.Next())
{
+ vcl::RenderContext* pRenderContext = pFrm->getRootFrm()->GetCurrShell()->GetOut();
// mba: no TYPEINFO for SwTabFrm
if(!pFrm->IsTabFrm())
continue;
@@ -598,7 +600,7 @@ static bool lcl_FormatTable(SwFrameFormat* pTableFormat)
if(pTabFrm->IsValid())
pTabFrm->InvalidatePos();
pTabFrm->SetONECalcLowers();
- pTabFrm->Calc();
+ pTabFrm->Calc(pRenderContext);
bHasFrames = true;
}
return bHasFrames;
diff --git a/sw/source/core/view/pagepreviewlayout.cxx b/sw/source/core/view/pagepreviewlayout.cxx
index e24f1c01144f..2450450902ef 100644
--- a/sw/source/core/view/pagepreviewlayout.cxx
+++ b/sw/source/core/view/pagepreviewlayout.cxx
@@ -122,6 +122,7 @@ void SwPagePreviewLayout::_ClearPreviewPageData()
*/
void SwPagePreviewLayout::_CalcPreviewLayoutSizes()
{
+ vcl::RenderContext* pRenderContext = mrParentViewShell.GetOut();
// calculate maximal page size; calculate also number of pages
const SwPageFrm* pPage = static_cast<const SwPageFrm*>(mrLayoutRootFrm.Lower());
@@ -134,7 +135,7 @@ void SwPagePreviewLayout::_CalcPreviewLayoutSizes()
}
++mnPages;
- pPage->Calc();
+ pPage->Calc(pRenderContext);
const Size& rPageSize = pPage->Frm().SSize();
if ( rPageSize.Width() > maMaxPageSize.Width() )
maMaxPageSize.Width() = rPageSize.Width();
@@ -547,6 +548,7 @@ void SwPagePreviewLayout::_CalcDocPreviewPaintRect()
*/
void SwPagePreviewLayout::_CalcPreviewPages()
{
+ vcl::RenderContext* pRenderContext = mrParentViewShell.GetOut();
_ClearPreviewPageData();
if ( mbNoPageVisible )
@@ -589,7 +591,7 @@ void SwPagePreviewLayout::_CalcPreviewPages()
continue;
}
- pPage->Calc();
+ pPage->Calc(pRenderContext);
// consider only pages, which have to be painted.
if ( nCurrCol < mnPaintStartCol )
diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx
index c9dd0d413071..0176505779b9 100644
--- a/sw/source/core/view/vprint.cxx
+++ b/sw/source/core/view/vprint.cxx
@@ -303,7 +303,7 @@ void SwViewShell::CalcPagesForPrint( sal_uInt16 nMax )
pMyLayout->StartAllAction();
for ( sal_uInt16 i = 1; pPage && i <= nMax; pPage = pPage->GetNext(), ++i )
{
- pPage->Calc();
+ pPage->Calc(GetOut());
SwRect aOldVis( VisArea() );
maVisArea = pPage->Frm();
Imp()->SetFirstVisPageInvalid();