20#include <config_wasm_strip.h>
23#include <osl/diagnose.h>
73: mbFrameAreaPositionValid(false),
74 mbFrameAreaSizeValid(false),
75 mbFramePrintAreaValid(false),
118 if(mrTarget.maFramePrintArea != *
this)
120 mrTarget.maFramePrintArea = *
this;
132 rFrameArea.
Left(), rFrameArea.
Top());
144 rFramePrintArea.
Left() + rFrameArea.
Left(),
145 rFramePrintArea.
Top() + rFrameArea.
Top());
156 aFrm.
Pos().AdjustX(rOffset.X() );
161 aFrm.
Pos().AdjustY(rOffset.Y() );
171 return mrSwFrameAreaDefinition.getFrameArea();
176 double fRotate, fShearX;
177 rSource.
decompose(aScale, aTranslate, fRotate, fShearX);
195 return mrSwFrameAreaDefinition.getFramePrintArea();
200 double fRotate, fShearX;
201 rSource.
decompose(aScale, aTranslate, fRotate, fShearX);
204 const SwRect aUntransformedFrameArea(getUntransformedFrameArea());
223 const SwRect& rFrameArea(mrSwFrameAreaDefinition.getFrameArea());
224 const SwRect& rFramePrintArea(mrSwFrameAreaDefinition.getFramePrintArea());
228 rFrameArea.
Left(), rFrameArea.
Top());
231 rFramePrintArea.
Left() + rFrameArea.
Left(), rFramePrintArea.
Top() + rFrameArea.
Top());
236 if(!getLocalFrameAreaTransformation().isIdentity())
239 aRangeFrameArea.
transform(getLocalFrameAreaTransformation());
244 if(aNewFrm != mrSwFrameAreaDefinition.getFrameArea())
251 if(getLocalFramePrintAreaTransformation().isIdentity())
255 aRangeFramePrintArea.
transform(getLocalFramePrintAreaTransformation());
262 if(aNewPrt != mrSwFrameAreaDefinition.getFramePrintArea())
273 if(!getLocalFrameAreaTransformation().isIdentity())
276 aFrm.
setSwRect(getUntransformedFrameArea());
279 if(!getLocalFramePrintAreaTransformation().isIdentity())
282 aPrt.
setSwRect(getUntransformedFramePrintArea());
289 maFrameAreaTransformation *= aTransform;
290 maFramePrintAreaTransformation *= aTransform;
295 mpRoot( pSib ? pSib->getRootFrame() : nullptr ),
303 mbRightToLeft(false),
305 mbDerivedVert(false),
309 mbValidLineNum(false),
311 mbCompletePaint(true),
317 mbInfFootnote ( false ),
320 m_isInDestroy(false),
323 OSL_ENSURE( pMod,
"No frame format given." );
343 if( SvxFrameDirection::Environment == nDir || ( bVert && bOnlyBiDi ) )
346 if( SvxFrameDirection::Environment == nDir )
353 if( SvxFrameDirection::Horizontal_LR_TB == nDir || SvxFrameDirection::Horizontal_RL_TB == nDir
363 if(SvxFrameDirection::Vertical_RL_TB == nDir)
368 else if(SvxFrameDirection::Vertical_LR_TB==nDir)
373 else if (nDir == SvxFrameDirection::Vertical_LR_BT)
383 if( SvxFrameDirection::Horizontal_RL_TB == nDir )
415 bVert,
true, bBrowseMode );
429 bVert,
false, bBrowseMode );
443 bVert,
true, bBrowseMode );
460 CheckDir( pFrameDirItem->GetValue(), bVert,
false, bBrowseMode );
471 bVert,
true, bBrowseMode);
476 if (rHint.
GetId() != SfxHintId::SwLegacyModify)
481 if(pLegacy->m_pOld && pLegacy->m_pNew &&
RES_ATTRSET_CHG == pLegacy->m_pNew->Which())
516 &&
nullptr != (pNxt =
GetNext()))
529 sal_uInt16 nWhich = pOld ? pOld->
Which() : pNew ? pNew->
Which() : 0;
575 if ( bInFollowFlowRow )
583 OSL_FAIL(
"Columns for new FrameType?" );
624 const_cast<SwFlyFrame*
>(pFlyFrame)->FindPageFrameOfAnchor();
625 if ( pPageFrameOfAnchor && pPageFrameOfAnchor != pPage )
633 if ( !(pPage && pPage->
GetUpper()) )
709 for (
auto const& e : pMergedPara->extents)
711 if (e.pNode != pNode)
735 if ( aNewSize == aOldSize )
765 if ( nReal != nDiff )
768 (aFrm.*fnRect->
fnSetHeight)( nNew - nDiff + nReal );
799 aFrm.
SSize( aNewSize );
832 OSL_ENSURE( pParent,
"No parent for insert." );
833 OSL_ENSURE( (!pBehind || pParent == pBehind->
GetUpper()),
834 "Frame tree is inconsistent." );
868 OSL_ENSURE( pParent,
"No Parent for Insert." );
869 OSL_ENSURE( (!pBefore || pParent == pBefore->
GetUpper()),
870 "Frame tree is inconsistent." );
886 if ( pParent->
Lower() )
907 OSL_ENSURE( pParent,
"No parent for insert." );
908 OSL_ENSURE( (!pBehind || ( (pBehind && (pParent == pBehind->
GetUpper()))
910 "Frame tree inconsistent." );
947 pBehind->
mpPrev =
nullptr;
953 OSL_ENSURE( pTmp,
"InsertGrp: Missing ColBody" );
966 OSL_ENSURE( pSct->
IsSctFrame(),
"InsertGroup: For SectionFrames only" );
1009 OSL_ENSURE(
mpUpper,
"Remove without upper?" );
1029 OSL_ENSURE( pParent,
"No parent for pasting." );
1030 OSL_ENSURE( pParent->
IsLayoutFrame(),
"Parent is ContentFrame." );
1031 OSL_ENSURE( pParent !=
this,
"I'm the parent." );
1032 OSL_ENSURE( pSibling !=
this,
"I'm my own neighbour." );
1034 "I'm still registered somewhere" );
1036 "<SwContentFrame::Paste(..)> - sibling not of expected type." );
1106 if( pFrame &&
nullptr != (pFrame=
static_cast<SwLayoutFrame*
>(pFrame)->ContainsAny()) )
1116 while ( pNxt && pNxt->
IsInTab() )
1119 if(
nullptr != pNxt )
1132 OSL_ENSURE(
GetUpper(),
"Cut without Upper()." );
1158 while ( pNxt && pNxt->
IsInTab() )
1161 if(
nullptr != pNxt )
1208 if (
nullptr != pFrame )
1253 if (pThisTab && pThisTab->
IsFollow())
1265 assert(!pMasterTab);
1277 if ( !pUp->
Lower() &&
1333 pUp->
Shrink( nFrameHeight );
1339 OSL_ENSURE( pParent,
"No parent for pasting." );
1340 OSL_ENSURE( pParent->
IsLayoutFrame(),
"Parent is ContentFrame." );
1341 OSL_ENSURE( pParent !=
this,
"I'm the parent oneself." );
1342 OSL_ENSURE( pSibling !=
this,
"I'm my own neighbour." );
1344 "I'm still registered somewhere." );
1391 if(
nullptr != pFrame )
1428 nReal += pParent->
Grow( nGrow - nReal );
1451 if ( pUp && nShrink )
1463 if( nReal < nShrink )
1474 nReal += pUp->
Shrink( nShrink - nReal );
1478 aRectFnSet.
SetHeight( aFrm, nOldHeight );
1496 if( pUp && !pUp->
Lower() )
1505 OSL_ENSURE( nDist >= 0,
"Negative growth?" );
1514 if( nPrtHeight > 0 && nDist > (
LONG_MAX - nPrtHeight) )
1518 return static_cast<SwFlyFrame*
>(
this)->Grow_( nDist, bTst );
1549 OSL_ENSURE( nDist >= 0,
"Negative reduction?" );
1556 return static_cast<SwFlyFrame*
>(
this)->Shrink_( nDist, bTst );
1666 nChg = nTmp <= 0 ? 0 : nTmp;
1672 aInva.
Height( nChg + nTmp );
1680 if ( pViewShell && !pUp->
GetPrev() &&
1685 nInvaAdd = -(nDiff - nChg);
1709 if ( !bTst && nChg )
1749 aPrt.
Height( nOldFrameHeight );
1758 aFrm.
Height( nOldFrameHeight );
1761 aPrt.
Height( nOldPrtHeight );
1822 const bool bFootnotePage = pBoss->
IsPageFrame() &&
static_cast<const SwPageFrame*
>(pBoss)->IsFootnotePage();
1835 if( !bFootnotePage )
1852 nAdd = nDiff - nReal;
1853 if ( nAdd > nAddMax )
1859 aRectFnSet.
SetHeight(aFrm, nAddMax-nAdd);
1863 aFrm.
Pos().AdjustX(nAdd );
1878 if ( !bTst && nReal )
1884 aRectFnSet.
SetHeight( aFrm, nTmp - nReal );
1888 aFrm.
Pos().AdjustX(nReal );
1897 if( nReal < 0 && pFrame->
IsInSct() )
1907 OSL_ENSURE( pBoss->
IsPageFrame(),
"Header/Footer out of page?" );
1910 if (
auto pFly = pAnchoredObj->DynCastFlyFrame() )
1912 OSL_ENSURE( !pFly->IsFlyInContentFrame(),
"FlyInCnt at Page?" );
1927 pFly->InvalidatePos_();
1928 pFly->Invalidate_();
1934 return (nBrowseAdd + nReal + nAdd);
1957 static_cast<SwFlyFrame*
>(
this)->Invalidate_();
1973 static_cast<SwFlyFrame*
>(
this)->Invalidate_();
1991 static_cast<SwFlyFrame*
>(
this)->Invalidate_();
2007 OSL_ENSURE(
IsTextFrame(),
"line numbers are implemented for text only" );
2060 const bool bOnlyObject = 1 == nStage;
2061 const bool bIncludeObjects = 1 <= nStage;
2070 if ( bIncludeObjects )
2075 const size_t nCnt = pObjs->
size();
2076 for (
size_t i = 0;
i < nCnt; ++
i )
2080 pFlyFrame->ValidateThisAndAllLowers( 2 );
2082 pAnchoredDrawObj->ValidateThis();
2103 if( nFrameHeight > 0 &&
2104 nDist > (
LONG_MAX - nFrameHeight ) )
2118 aRectFnSet.
SetHeight( aFrm, nFrameHeight + nDist );
2122 aFrm.
Pos().AdjustX( -nDist );
2145 while( pFrame && nReal > 0 )
2158 aRectFnSet.
SetHeight( aFrm, nOld + nDist );
2162 aFrm.
Pos().AdjustX( -nDist );
2180 if ( nReal < nDist )
2185 nReal =
GetUpper()->
Grow( nDist - std::max<tools::Long>(nReal, 0),
2222 OSL_ENSURE( nDist >= 0,
"nDist < 0" );
2224 "nDist > than current size." );
2233 if( nRstHeight < 0 )
2245 nRstHeight = nDist + nRstHeight - nNextHeight;
2258 aFrm.
Pos().AdjustX(nDist );
2292 bool bInvalidate =
true;
2300 const SwRect aBound( pAnchoredObj->GetObjRectWithSpaces() );
2307 const SwFrameFormat& rFormat = pAnchoredObj->GetFrameFormat();
2310 const SwFrame* pAnchor = pAnchoredObj->GetAnchorFrame();
2313 bInvalidate =
false;
2342 if (rHint.
GetId() != SfxHintId::SwLegacyModify)
2346 if(pLegacy->m_pNew &&
RES_ATTRSET_CHG == pLegacy->m_pNew->Which() && pLegacy->m_pOld)
2348 auto& rOldSetChg = *
static_cast<const SwAttrSetChg*
>(pLegacy->m_pOld);
2349 auto& rNewSetChg = *
static_cast<const SwAttrSetChg*
>(pLegacy->m_pNew);
2358 UpdateAttr_(pOItem, pNItem, eInvFlags, &aOldSet, &aNewSet);
2366 UpdateAttr_(pLegacy->m_pOld, pLegacy->m_pNew, eInvFlags);
2420 sal_uInt16 nWhich = pOld ? pOld->
Which() : pNew ? pNew->
Which() : 0;
2562 if ( pOldSet || pNewSet )
2640 if ( nFrameHeight > 0 && nDist > (
LONG_MAX - nFrameHeight) )
2657 bool bMoveAccFrame =
false;
2663 aRectFnSet.
SetHeight( aFrm, nFrameHeight + nDist );
2667 aFrm.
Pos().AdjustX( -nDist );
2670 bMoveAccFrame =
true;
2708 nGrow = pToGrow ? pToGrow->
Grow( nReal, bTst, bInfo ) : 0;
2717 SwTwips nSpace = bTst ? 0 : -nDist;
2722 }
while ( pFrame !=
GetNext() );
2727 if ( nReal > nSpace )
2729 if ( nReal && !bTst )
2746 if( nReal != nDist &&
2751 aRectFnSet.
SetHeight( aFrm, nFrameHeight + nReal );
2758 bMoveAccFrame =
true;
2785 std::unique_ptr<SvxBrushItem> aBack(
GetFormat()->makeBackgroundBrushItem());
2792#if !ENABLE_WASM_STRIP_ACCESSIBILITY
2803 (void)bMoveAccFrame;
2835 OSL_ENSURE( nDist >= 0,
"nDist < 0" );
2838 if ( nDist > nFrameHeight )
2839 nDist = nFrameHeight;
2848 while( pFrame && nMin < nTmp )
2856 if( nReal > nMinDiff )
2862 bool bMoveAccFrame =
false;
2868 aRectFnSet.
SetHeight( aFrm, nFrameHeight - nReal );
2872 aFrm.
Pos().AdjustX(nReal );
2875 bMoveAccFrame =
true;
2890 if ( !bTst &&
IsBodyFrame() && nReal < nRealDist )
2897 aFrm.
Pos().AdjustX(nRealDist - nReal );
2907 if ( nTmp != nReal )
2914 aFrm.
Pos().AdjustX(nTmp - nReal );
2936 nReal = pToShrink ? pToShrink->
Shrink( nShrink, bTst, bInfo ) : 0;
2938 && nReal < nShrink )
2942#if !ENABLE_WASM_STRIP_ACCESSIBILITY
2954 (void)bMoveAccFrame;
2966 static_cast<SwTabFrame*
>(
this)->SetComplete();
2973 static_cast<SwTabFrame*
>(
this)->SetComplete();
2982 bool bCompletePaint =
true;
2989 bCompletePaint =
false;
3005 nullptr != (pCnt =
static_cast<SwFootnoteFrame*
>(
this)->GetRefFromAttr() ) )
3023 SAL_WARN(
"sw.layout",
"footnote frame on different page than ref frame?");
3055 if ( !( aRectFnSet.
IsVert() ? bHeightChgd : bWidthChgd ) &&
3076 pLowerFrame = pLowerFrame->
GetNext();
3085 pLowerFrame = pLowerFrame->
GetPrev();
3091 pLowerFrame =
static_cast<SwSectionFrame*
>(pLowerFrame)->GetSection() &&
3092 !
static_cast<SwSectionFrame*
>(pLowerFrame)->ToMaximize(
false ) ?
3093 static_cast<SwSectionFrame*
>(pLowerFrame)->FindLastContent() :
nullptr;
3109 pLowerFrame = pTableFrame;
3132 if( aRectFnSet.
IsVert() )
3139 pLowerFrame = pLowerFrame->
GetPrev();
3149 pLowerFrame = pLowerFrame->
GetPrev();
3168 if( pSectFrame !=
this &&
IsAnLower( pSectFrame ) )
3180 bool bInvaPageForContent =
true;
3184 bool bFixChgd, bVarChgd;
3187 bFixChgd = bWidthChgd;
3188 bVarChgd = bHeightChgd;
3192 bFixChgd = bHeightChgd;
3193 bVarChgd = bWidthChgd;
3213 while ( pLowerFrame )
3232 if( nLowerType & nFixWidth )
3259 double nNewWidthTmp =
3262 /
double(rOldSize.
Width());
3263 nNewWidth =
SwTwips(nNewWidthTmp);
3272 aFrm.
Width( nNewWidth );
3277 if( nLowerType & nFixHeight )
3292 else if ( rOldSize.
Height() &&
3324 "ChgLowersProp - only for body or foot note container" );
3332 if ( nNewHeight < 0)
3338 "ChgLowersProg - negative height for lower.");
3343 aFrm.
Height( nNewHeight );
3356 double nNewHeightTmp =
3359 /
double(rOldSize.
Height());
3360 nNewHeight =
SwTwips(nNewHeightTmp);
3377 if( nSum - nNewHeight == 1 &&
3383 aFrm.
Height( nNewHeight );
3394 bInvaPageForContent =
false;
3405 pLowerFrame = pLowerFrame->
GetNext();
3411 if ( !(( (aRectFnSet.
IsVert() && bHeightChgd) || (! aRectFnSet.
IsVert() && bWidthChgd) ) &&
3438 OSL_ENSURE( pAttrs,
"LayoutFrame::Format, pAttrs is 0." );
3443 bool bHideWhitespace =
false;
3453 bHideWhitespace =
true;
3457 const sal_uInt16 nLeft = o3tl::narrowing<sal_uInt16>(pAttrs->
CalcLeft(
this));
3458 const sal_uInt16 nUpper = bHideWhitespace ? 0 : pAttrs->
CalcTop();
3460 const sal_uInt16 nRight = o3tl::narrowing<sal_uInt16>(pAttrs->
CalcRight(
this));
3461 const sal_uInt16 nLower = bHideWhitespace ? 0 : pAttrs->
CalcBottom();
3499 nRemaining = std::max( nRemaining, nMinHeight );
3554 OSL_ENSURE( pFrame->
GetDrawObjs(),
"Can't find any Objects" );
3557 if (
auto pFly = pAnchoredObj->DynCastFlyFrame() )
3562 bool bNotify =
true;
3567 const SwFrame *pRel = pFly->IsFlyLayFrame() ? pFly->GetAnchorFrame():
3568 pFly->GetAnchorFrame()->
GetUpper();
3573 if( pFly->getFrameArea().Height()*10 >
3575 pFly->GetFormat()->GetSurround().GetSurround() !=
3576 css::text::WrapTextMode_THROUGH )
3600 OSL_ENSURE( pTmp,
"Where's my TabFrame?" );
3614 }
while ( pFrame &&
IsAnLower( pFrame ) ) ;
3636 nRet = nRel * nPercent / 100;
3647 OSL_ENSURE( pCol,
"Where's the columnframe?" );
3656 if ( nTmp != USHRT_MAX )
3658 if ( pCol == pLayFrame->
Lower() )
3661 nDiff = nDiff ?
std::min( nDiff, nTmp ) : nTmp;
3666 while ( pCol &&
nullptr == (pFrame = pCol->
Lower()) )
3669 }
while ( pFrame && pCol );
3671 return nDiff ? nDiff : nFirstDiff ? nFirstDiff : 240;
3685 for (
size_t i = 0;
i < nCnt; ++
i )
3690 if ( pFly->IsHeightClipped() &&
3691 ( !pFly->IsFlyFreeFrame() || pFly->GetPageFrame() ) )
3716 const sal_uInt16 nNumCols = rCol.
GetNumCols();
3719 bool bBackLock =
false;
3754 bool bNoBalance =
false;
3761 if( nMaximum < nMinimum )
3764 nMinimum = nMaximum = 0;
3766 nMinimum = nMaximum;
3772 GetBalancedColumns().GetValue();
3785 if( nTop > nMaximum )
3789 if( !pAny && !
static_cast<SwSectionFrame*
>(
this)->IsFootnoteLock() )
3814 if (
IsAnLower( pAnchoredObj->GetAnchorFrame() ) )
3816 pAnchoredObj->SetTmpConsiderWrapInfluence(
false );
3837 for ( sal_uInt16
i = 0;
i < nNumCols; ++
i )
3839 pCol->
Calc(pRenderContext);
3850 OSL_ENSURE( pCol && pCol->
GetNext(),
":-( column making holidays?");
3852 bool bMinDiff =
true;
3854 while ( bMinDiff && pCol )
3865 bool bFoundLower =
false;
3876 else if( nInnerHeight < 0 )
3889 if( nInnerHeight > nDiff )
3891 nDiff = nInnerHeight;
3896 if( nMaxFree < -nInnerHeight )
3897 nMaxFree = -nInnerHeight;
3898 if( nAllFree > -nInnerHeight )
3899 nAllFree = -nInnerHeight;
3917 if( nMinimum < nPrtHeight )
3918 nMinimum = nPrtHeight;
3921 if( nMaximum < nPrtHeight )
3922 nMaximum = nPrtHeight;
3927 if (
std::abs(nDiff - nMinDiff) > nNumCols && nDiff >
static_cast<tools::Long>(nNumCols) )
3937 if ( nFrameHeight > nMinHeight || nPrtHeight >= nMinDiff )
3938 nDiff = std::max( nDiff, nMinDiff );
3939 else if( nDiff < nMinDiff )
3940 nDiff = nMinDiff - nPrtHeight + 1;
3945 if( nDiff + nPrtHeight > nMaximum )
3946 nDiff = nMaximum - nPrtHeight;
3948 else if( nMaximum > nMinimum )
3951 if ( nMaximum < nPrtHeight )
3952 nDiff = nMaximum - nPrtHeight;
3957 nMaximum = nPrtHeight;
3968 nMinimum < nPrtHeight - nMinDiff ) )
3970 nMaxFree /= nNumCols;
3971 nDiff = nMaxFree < nMinDiff ? -nMinDiff : -nMaxFree;
3972 if( nPrtHeight + nDiff <= nMinimum )
3973 nDiff = ( nMinimum - nMaximum ) / 2;
3978 if( nPrtHeight + nDiff <= nMinimum )
3979 nDiff = ( nMinimum - nMaximum ) / 2;
4012 if (
IsAnLower( pAnchoredObj->GetAnchorFrame() ) )
4014 pAnchoredObj->SetTmpConsiderWrapInfluence(
false );
4111 if( pLastSctCnt == pCnt )
4112 pLastSctCnt =
nullptr;
4114#if OSL_DEBUG_LEVEL > 0
4116 OSL_ENSURE( !pLastSctCnt,
"Where's the last SctContent?" );
4133 pLastSctCnt =
nullptr;
4135 if( pLastTabCnt == pCnt )
4137 pLastTabCnt =
nullptr;
4138 pLastSctCnt =
nullptr;
4141#if OSL_DEBUG_LEVEL > 0
4143 OSL_ENSURE( !pLastTabCnt,
"Where's the last TabContent?" );
4166 if (
auto pFly = pAnchoredObj->DynCastFlyFrame() )
4168 if ( pFly->IsFlyInContentFrame() )
4172 pFly->CheckDirChange();
4196 if (
auto pFly = pAnchoredObj->DynCastFlyFrame() )
4200 pFly->CheckDirChange();
4236 const SwFormatAnchor& rAnch = pAnchoredObj->GetFrameFormat().GetAnchor();
4237 if ((rAnch.
GetAnchorId() != RndStdIds::FLY_AT_PARA) &&
4245 if ( pAnchoredObj->ConsiderObjWrapInfluenceOnObjPos() )
4246 pAnchoredObj->InvalidateObjPosForConsiderWrapInfluence();
4248 pAnchoredObj->InvalidateObjPos();
4258 std::set<SwNodeOffset> *
const pSkipped,
4262 std::vector<sw::Extent>::const_iterator
const& rIterFirst,
4263 std::vector<sw::Extent>::const_iterator
const& rIterEnd,
4266 if (pNode == &rTextNode)
4275 &rIterFirst, &rIterEnd, pFirstNode, pLastNode);
4283 pSkipped->insert(pFly->GetContent().GetContentIdx()->GetIndex());
4297 std::set<SwNodeOffset> *
const pSkipped)
4306 assert(pMerged->pFirstNode->GetIndex() <= rTextNode.
GetIndex()
4307 && rTextNode.
GetIndex() <= pMerged->pLastNode->GetIndex());
4312 std::vector<sw::Extent>::const_iterator iterFirst(pMerged->extents.begin());
4313 std::vector<sw::Extent>::const_iterator iter(iterFirst);
4314 SwTextNode const* pNode(pMerged->pFirstNode);
4317 if (iter == pMerged->extents.end()
4318 || iter->pNode != pNode)
4321 pNode, iterFirst, iter,
4322 pMerged->pFirstNode, pMerged->pLastNode);
4323 SwNodeOffset const until = iter == pMerged->extents.end()
4324 ? pMerged->pLastNode->GetIndex() + 1
4325 : iter->pNode->GetIndex();
4335 pMerged->pFirstNode, pMerged->pLastNode);
4338 if (iter == pMerged->extents.end())
4342 pNode = iter->pNode;
4352 std::set<SwNodeOffset> *
const pSkipped)
4364 std::vector<SwTextFrame*> frames;
4367 if (pFrame->getRootFrame() == &rLayout)
4369 if (pFrame->IsFollow())
4371 frames.push_back(pFrame);
4376 frames.insert(frames.begin(), pFrame);
4386 assert(!pFrame->GetMergedPara() ||
4395 pFrame->SetMergedPara(std::move(pMerged));
4397 auto const pMerged(pFrame->GetMergedPara());
4402 pFrame->InvalidatePage();
4403 if (
auto const pObjs = pFrame->GetDrawObjs())
4406 for (
auto const pObject : *pObjs)
4419 if (
auto const& pMergedPara = pFrame->GetMergedPara())
4423 pFrame->InvalidatePage();
4424 if (
auto const pObjs = pFrame->GetDrawObjs())
4426 for (
auto const pObject : *pObjs)
4434 if (!pFrame->IsFollow())
4439 assert(&rTextNode == pMergedPara->pFirstNode);
4444 j <= pMergedPara->pLastNode->GetIndex(); ++j)
4458 pFormat->DelFrames();
4465 pFrame->SetMergedPara(
nullptr);
4485 && pRedline->
GetType() == RedlineType::Delete
4521 auto const pFrame(
static_cast<SwContentNode&
>(rNode).getLayoutFrame(&rLayout));
4522 assert(!pFrame ||
static_cast<SwTextFrame*
>(pFrame)->GetMergedPara()->pFirstNode != &rNode);
4532 for ( ; j < rEndOfSectionNode.
GetIndex(); ++j)
4534 if (rNodes[j]->IsCreateFrameWhenHidingRedlines())
4555 std::set<SwNodeOffset> *
const pSkipped)
4557 assert(rEndOfExtraSectionNode.
IsEndNode());
4559 + 1;
i < rEndOfExtraSectionNode.
GetIndex(); ++
i)
4561 SwNode const& rStartNode(*rNodes[
i]);
4565 bool bSkip(pSkipped && pSkipped->find(
i) != pSkipped->end());
4571 SwNode const& rNode(*rNodes[j]);
4627 std::set<SwNodeOffset> skippedFlys;
4652 if (bIsShowChangesInMargin || pRedline->GetType() != RedlineType::Delete)
4671 pFootnote->InvalidateNumberInLayout();
4681 pAuthType->UpdateFields();
css::chart::ChartAxisLabelPosition ePos
@ CONSIDER_WRAP_ON_OBJECT_POSITION
@ PARA_SPACE_MAX_AT_PAGES
static sal_uInt8 nFramePos
Document fields related interfaces.
virtual SwFieldType * GetSysFieldType(const SwFieldIds eWhich) const =0
virtual SwFieldType * GetFieldType(SwFieldIds nResId, const OUString &rName, bool bDbFieldMatching) const =0
virtual void UpdateRefFields()=0
virtual void UpdatePageFields(SfxPoolItem *)=0
virtual void UpdateExpFields(SwTextField *pField, bool bUpdateRefFields)=0
virtual const SwRedlineTable & GetRedlineTable() const =0
virtual const SwRangeRedline * GetRedline(const SwPosition &rPos, SwRedlineTable::size_type *pFndPos) const =0
Provides access to settings of a document.
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
const SfxPoolItem * GetCurItem() const
const SfxPoolItem * NextItem()
constexpr tools::Long Height() const
constexpr tools::Long Width() const
tools::Long GetHeight() const
tools::Long GetWidth() const
class for the positioning of drawing objects
wrapper class for the positioning of Writer fly frames and drawing objects
const SwFrame * GetAnchorFrame() const
virtual const SwFlyFrame * DynCastFlyFrame() const
void InvalidateObjRectWithSpaces() const
void ClearItem(sal_uInt16 nWhichL)
const SwAttrSet * GetChgSet() const
What has changed.
const SwFormatCol & GetCol(bool=true) const
const SwFormatFrameSize & GetFrameSize(bool=true) const
Container of body content (i.e.
const Size & GetSize() const
tools::Long CalcLeft(const SwFrame *pCaller) const
sal_uInt16 CalcTop() const
const SwAttrSet & GetAttrSet() const
tools::Long CalcRight(const SwFrame *pCaller) const
sal_uInt16 CalcBottom() const
SwCellFrame is one table cell in the document layout.
virtual void CheckDirection(bool bVert) override
const SwCellFrame & FindStartEndOfRowSpanCell(bool bStart) const
tools::Long GetLayoutRowSpan() const
const SwTableBox * GetTabBox() const
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
virtual void Cut() override
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr) override
SwContentFrame * GetNextContentFrame() const
SwTextFrame * FindMaster() const
void UpdateAttr_(const SfxPoolItem *, const SfxPoolItem *, SwContentFrameInvFlags &, SwAttrSetChg *pa=nullptr, SwAttrSetChg *pb=nullptr)
virtual void SwClientNotify(const SwModify &, const SfxHint &) override
virtual SwTwips ShrinkFrame(SwTwips, bool bTst=false, bool bInfo=false) override
virtual SwTwips GrowFrame(SwTwips, bool bTst=false, bool bInfo=false) override
SwContentFrame * getLayoutFrame(const SwRootFrame *, const SwPosition *pPos=nullptr, std::pair< Point, bool > const *pViewPosAndCalcFrame=nullptr) const
SwDocPosUpdate is sent to signal that only the frames from or to a specified document-global position...
const SwFootnoteInfo & GetFootnoteInfo() const
IDocumentFieldsAccess const & getIDocumentFieldsAccess() const
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
SwFootnoteIdxs & GetFootnoteIdxs()
const SwFrameFormats * GetSpzFrameFormats() const
SwDocShell * GetDocShell()
virtual void UpdateFields()
Base class that provides the general functionalities for frames that are allowed at page breaks (flow...
bool IsJoinLocked() const
void SetFollow(SwFlowFrame *const pFollow)
static SwFlowFrame * CastFlowFrame(SwFrame *pFrame)
const SwFrame & GetFrame() const
general base class for all free-flowing frames
virtual const SwFlyFrameFormat * GetFormat() const override
bool IsFlyInContentFrame() const
virtual void CheckDirection(bool bVert) override
SwFrameAreaDefinition & mrTarget
void setSwRect(const SwRect &rNew)
void setSwRect(const SwRect &rNew)
~FramePrintAreaWriteAccess()
Helper class to isolate geometry-defining members of SwFrame and to control their accesses.
const SwRect & getFrameArea() const
bool isFrameAreaDefinitionValid() const
virtual basegfx::B2DHomMatrix getFrameAreaTransformation() const
const SwRect & getFramePrintArea() const
void setFramePrintAreaValid(bool bNew)
bool mbFrameAreaSizeValid
void setFrameAreaPositionValid(bool bNew)
bool mbFrameAreaPositionValid
virtual void transform_translate(const Point &rOffset)
bool isFramePrintAreaValid() const
virtual ~SwFrameAreaDefinition()
bool isFrameAreaSizeValid() const
bool mbFramePrintAreaValid
virtual basegfx::B2DHomMatrix getFramePrintAreaTransformation() const
void setFrameAreaSizeValid(bool bNew)
Base class of the Writer layout elements.
SwTwips Grow(SwTwips, bool bTst=false, bool bInfo=false)
const SwModify * GetRegisteredIn() const
bool IsFootnoteContFrame() const
void InsertBehind(SwLayoutFrame *pParent, SwFrame *pBefore)
Insert SwFrame into existing structure.
void ValidateThisAndAllLowers(const sal_uInt16 nStage)
void InvalidateLineNum_()
virtual bool Prepare(const PrepareHint ePrep=PrepareHint::Clear, const void *pVoid=nullptr, bool bNotify=true)
void RegisterToFormat(SwFormat &rFormat)
SwFrame * GetIndPrev() const