20#include <config_wasm_strip.h>
23#include <osl/diagnose.h>
75: mbFrameAreaPositionValid(false),
76 mbFrameAreaSizeValid(false),
77 mbFramePrintAreaValid(false),
120 if(mrTarget.maFramePrintArea != *
this)
122 mrTarget.maFramePrintArea = *
this;
134 rFrameArea.
Left(), rFrameArea.
Top());
146 rFramePrintArea.
Left() + rFrameArea.
Left(),
147 rFramePrintArea.
Top() + rFrameArea.
Top());
158 aFrm.
Pos().AdjustX(rOffset.
X() );
163 aFrm.
Pos().AdjustY(rOffset.
Y() );
173 return mrSwFrameAreaDefinition.getFrameArea();
178 double fRotate, fShearX;
179 rSource.
decompose(aScale, aTranslate, fRotate, fShearX);
197 return mrSwFrameAreaDefinition.getFramePrintArea();
202 double fRotate, fShearX;
203 rSource.
decompose(aScale, aTranslate, fRotate, fShearX);
206 const SwRect aUntransformedFrameArea(getUntransformedFrameArea());
225 const SwRect& rFrameArea(mrSwFrameAreaDefinition.getFrameArea());
226 const SwRect& rFramePrintArea(mrSwFrameAreaDefinition.getFramePrintArea());
230 rFrameArea.
Left(), rFrameArea.
Top());
233 rFramePrintArea.
Left() + rFrameArea.
Left(), rFramePrintArea.
Top() + rFrameArea.
Top());
238 if(!getLocalFrameAreaTransformation().isIdentity())
241 aRangeFrameArea.
transform(getLocalFrameAreaTransformation());
246 if(aNewFrm != mrSwFrameAreaDefinition.getFrameArea())
253 if(getLocalFramePrintAreaTransformation().isIdentity())
257 aRangeFramePrintArea.
transform(getLocalFramePrintAreaTransformation());
264 if(aNewPrt != mrSwFrameAreaDefinition.getFramePrintArea())
275 if(!getLocalFrameAreaTransformation().isIdentity())
278 aFrm.
setSwRect(getUntransformedFrameArea());
281 if(!getLocalFramePrintAreaTransformation().isIdentity())
284 aPrt.
setSwRect(getUntransformedFramePrintArea());
291 maFrameAreaTransformation *= aTransform;
292 maFramePrintAreaTransformation *= aTransform;
297 mpRoot( pSib ? pSib->getRootFrame() : nullptr ),
305 mbRightToLeft(false),
307 mbDerivedVert(false),
311 mbValidLineNum(false),
313 mbCompletePaint(true),
319 mbInfFootnote ( false ),
322 m_isInDestroy(false),
325 OSL_ENSURE( pMod,
"No frame format given." );
345 if( SvxFrameDirection::Environment == nDir || ( bVert && bOnlyBiDi ) )
348 if( SvxFrameDirection::Environment == nDir )
355 if( SvxFrameDirection::Horizontal_LR_TB == nDir || SvxFrameDirection::Horizontal_RL_TB == nDir
365 if(SvxFrameDirection::Vertical_RL_TB == nDir)
370 else if(SvxFrameDirection::Vertical_LR_TB==nDir)
375 else if (nDir == SvxFrameDirection::Vertical_LR_BT)
380 else if (nDir == SvxFrameDirection::Vertical_RL_TB90)
391 if( SvxFrameDirection::Horizontal_RL_TB == nDir )
423 bVert,
true, bBrowseMode );
437 bVert,
false, bBrowseMode );
451 bVert,
true, bBrowseMode );
468 CheckDir( pFrameDirItem->GetValue(), bVert,
false, bBrowseMode );
479 bVert,
true, bBrowseMode);
484 if (rHint.
GetId() != SfxHintId::SwLegacyModify)
489 if(pLegacy->m_pOld && pLegacy->m_pNew &&
RES_ATTRSET_CHG == pLegacy->m_pNew->Which())
524 &&
nullptr != (pNxt =
GetNext()))
537 sal_uInt16 nWhich = pOld ? pOld->
Which() : pNew ? pNew->
Which() : 0;
586 if ( bInFollowFlowRow )
594 OSL_FAIL(
"Columns for new FrameType?" );
635 const_cast<SwFlyFrame*
>(pFlyFrame)->FindPageFrameOfAnchor();
636 if ( pPageFrameOfAnchor && pPageFrameOfAnchor != pPage )
644 if ( !(pPage && pPage->
GetUpper()) )
720 for (
auto const& e : pMergedPara->extents)
722 if (e.pNode != pNode)
746 if ( aNewSize == aOldSize )
776 if ( nReal != nDiff )
779 (aFrm.*fnRect->
fnSetHeight)( nNew - nDiff + nReal );
810 aFrm.
SSize( aNewSize );
843 OSL_ENSURE( pParent,
"No parent for insert." );
844 OSL_ENSURE( (!pBehind || pParent == pBehind->
GetUpper()),
845 "Frame tree is inconsistent." );
879 OSL_ENSURE( pParent,
"No Parent for Insert." );
880 OSL_ENSURE( (!pBefore || pParent == pBefore->
GetUpper()),
881 "Frame tree is inconsistent." );
897 if ( pParent->
Lower() )
918 OSL_ENSURE( pParent,
"No parent for insert." );
919 OSL_ENSURE( (!pBehind || ( (pBehind && (pParent == pBehind->
GetUpper()))
921 "Frame tree inconsistent." );
958 pBehind->
mpPrev =
nullptr;
964 OSL_ENSURE( pTmp,
"InsertGrp: Missing ColBody" );
977 OSL_ENSURE( pSct->
IsSctFrame(),
"InsertGroup: For SectionFrames only" );
1020 OSL_ENSURE(
mpUpper,
"Remove without upper?" );
1040 OSL_ENSURE( pParent,
"No parent for pasting." );
1041 OSL_ENSURE( pParent->
IsLayoutFrame(),
"Parent is ContentFrame." );
1042 OSL_ENSURE( pParent !=
this,
"I'm the parent." );
1043 OSL_ENSURE( pSibling !=
this,
"I'm my own neighbour." );
1045 "I'm still registered somewhere" );
1047 "<SwContentFrame::Paste(..)> - sibling not of expected type." );
1117 if( pFrame &&
nullptr != (pFrame=
static_cast<SwLayoutFrame*
>(pFrame)->ContainsAny()) )
1127 while ( pNxt && pNxt->
IsInTab() )
1130 if(
nullptr != pNxt )
1143 OSL_ENSURE(
GetUpper(),
"Cut without Upper()." );
1169 while ( pNxt && pNxt->
IsInTab() )
1172 if(
nullptr != pNxt )
1207 if( !pSct->IsFollow() )
1219 if (
nullptr != pFrame )
1255 if( !pSct->IsFollow() )
1266 if (pThisTab && pThisTab->IsFollow())
1278 assert(!pMasterTab);
1290 if ( !pUp->
Lower() &&
1346 pUp->
Shrink( nFrameHeight );
1352 OSL_ENSURE( pParent,
"No parent for pasting." );
1353 OSL_ENSURE( pParent->
IsLayoutFrame(),
"Parent is ContentFrame." );
1354 OSL_ENSURE( pParent !=
this,
"I'm the parent oneself." );
1355 OSL_ENSURE( pSibling !=
this,
"I'm my own neighbour." );
1357 "I'm still registered somewhere." );
1404 if(
nullptr != pFrame )
1441 nReal += pParent->
Grow( nGrow - nReal );
1464 if ( pUp && nShrink )
1476 if( nReal < nShrink )
1487 nReal += pUp->
Shrink( nShrink - nReal );
1491 aRectFnSet.
SetHeight( aFrm, nOldHeight );
1509 if( pUp && !pUp->
Lower() )
1518 OSL_ENSURE( nDist >= 0,
"Negative growth?" );
1527 if( nPrtHeight > 0 && nDist > (
LONG_MAX - nPrtHeight) )
1531 return static_cast<SwFlyFrame*
>(
this)->Grow_( nDist, bTst );
1562 OSL_ENSURE( nDist >= 0,
"Negative reduction?" );
1569 return static_cast<SwFlyFrame*
>(
this)->Shrink_( nDist, bTst );
1679 nChg = nTmp <= 0 ? 0 : nTmp;
1685 aInva.
Height( nChg + nTmp );
1693 if ( pViewShell && !pUp->
GetPrev() &&
1698 nInvaAdd = -(nDiff - nChg);
1722 if ( !bTst && nChg )
1762 aPrt.
Height( nOldFrameHeight );
1771 aFrm.
Height( nOldFrameHeight );
1774 aPrt.
Height( nOldPrtHeight );
1835 const bool bFootnotePage = pBoss->
IsPageFrame() &&
static_cast<const SwPageFrame*
>(pBoss)->IsFootnotePage();
1848 if( !bFootnotePage )
1865 nAdd = nDiff - nReal;
1866 if ( nAdd > nAddMax )
1872 aRectFnSet.
SetHeight(aFrm, nAddMax-nAdd);
1876 aFrm.
Pos().AdjustX(nAdd );
1891 if ( !bTst && nReal )
1897 aRectFnSet.
SetHeight( aFrm, nTmp - nReal );
1901 aFrm.
Pos().AdjustX(nReal );
1910 if( nReal < 0 && pFrame->
IsInSct() )
1920 OSL_ENSURE( pBoss->
IsPageFrame(),
"Header/Footer out of page?" );
1923 if (
auto pFly = pAnchoredObj->DynCastFlyFrame() )
1925 OSL_ENSURE( !pFly->IsFlyInContentFrame(),
"FlyInCnt at Page?" );
1940 pFly->InvalidatePos_();
1941 pFly->Invalidate_();
1947 return (nBrowseAdd + nReal + nAdd);
1970 static_cast<SwFlyFrame*
>(
this)->Invalidate_();
1986 static_cast<SwFlyFrame*
>(
this)->Invalidate_();
2004 static_cast<SwFlyFrame*
>(
this)->Invalidate_();
2020 OSL_ENSURE(
IsTextFrame(),
"line numbers are implemented for text only" );
2073 const bool bOnlyObject = 1 == nStage;
2074 const bool bIncludeObjects = 1 <= nStage;
2083 if ( bIncludeObjects )
2088 const size_t nCnt = pObjs->
size();
2089 for (
size_t i = 0;
i < nCnt; ++
i )
2093 pFlyFrame->ValidateThisAndAllLowers( 2 );
2095 pAnchoredDrawObj->ValidateThis();
2116 if( nFrameHeight > 0 &&
2117 nDist > (
LONG_MAX - nFrameHeight ) )
2131 aRectFnSet.
SetHeight( aFrm, nFrameHeight + nDist );
2135 aFrm.
Pos().AdjustX( -nDist );
2158 while( pFrame && nReal > 0 )
2171 aRectFnSet.
SetHeight( aFrm, nOld + nDist );
2175 aFrm.
Pos().AdjustX( -nDist );
2183 !pTab->IsJoinLocked() &&
2193 if ( nReal < nDist )
2198 nReal =
GetUpper()->
Grow( nDist - std::max<tools::Long>(nReal, 0),
2235 OSL_ENSURE( nDist >= 0,
"nDist < 0" );
2237 "nDist > than current size." );
2246 if( nRstHeight < 0 )
2258 nRstHeight = nDist + nRstHeight - nNextHeight;
2271 aFrm.
Pos().AdjustX(nDist );
2280 !pTab->IsJoinLocked() &&
2305 bool bInvalidate =
true;
2313 const SwRect aBound( pAnchoredObj->GetObjRectWithSpaces() );
2320 const SwFrameFormat& rFormat = pAnchoredObj->GetFrameFormat();
2323 const SwFrame* pAnchor = pAnchoredObj->GetAnchorFrame();
2326 bInvalidate =
false;
2355 if (rHint.
GetId() != SfxHintId::SwLegacyModify)
2359 if(pLegacy->m_pNew &&
RES_ATTRSET_CHG == pLegacy->m_pNew->Which() && pLegacy->m_pOld)
2361 auto& rOldSetChg = *
static_cast<const SwAttrSetChg*
>(pLegacy->m_pOld);
2362 auto& rNewSetChg = *
static_cast<const SwAttrSetChg*
>(pLegacy->m_pNew);
2371 UpdateAttr_(pOItem, pNItem, eInvFlags, &aOldSet, &aNewSet);
2379 UpdateAttr_(pLegacy->m_pOld, pLegacy->m_pNew, eInvFlags);
2433 sal_uInt16 nWhich = pOld ? pOld->
Which() : pNew ? pNew->
Which() : 0;
2577 if ( pOldSet || pNewSet )
2655 if ( nFrameHeight > 0 && nDist > (
LONG_MAX - nFrameHeight) )
2672 bool bMoveAccFrame =
false;
2678 aRectFnSet.
SetHeight( aFrm, nFrameHeight + nDist );
2682 aFrm.
Pos().AdjustX( -nDist );
2685 bMoveAccFrame =
true;
2723 nGrow = pToGrow ? pToGrow->
Grow( nReal, bTst, bInfo ) : 0;
2732 SwTwips nSpace = bTst ? 0 : -nDist;
2737 }
while ( pFrame !=
GetNext() );
2742 if ( nReal > nSpace )
2744 if ( nReal && !bTst )
2761 if( nReal != nDist &&
2766 aRectFnSet.
SetHeight( aFrm, nFrameHeight + nReal );
2773 bMoveAccFrame =
true;
2815 std::unique_ptr<SvxBrushItem> aBack(
GetFormat()->makeBackgroundBrushItem());
2822#if !ENABLE_WASM_STRIP_ACCESSIBILITY
2833 (void)bMoveAccFrame;
2865 OSL_ENSURE( nDist >= 0,
"nDist < 0" );
2868 if ( nDist > nFrameHeight )
2869 nDist = nFrameHeight;
2878 while( pFrame && nMin < nTmp )
2886 if( nReal > nMinDiff )
2892 bool bMoveAccFrame =
false;
2898 aRectFnSet.
SetHeight( aFrm, nFrameHeight - nReal );
2902 aFrm.
Pos().AdjustX(nReal );
2905 bMoveAccFrame =
true;
2920 if ( !bTst &&
IsBodyFrame() && nReal < nRealDist )
2927 aFrm.
Pos().AdjustX(nRealDist - nReal );
2937 if ( nTmp != nReal )
2944 aFrm.
Pos().AdjustX(nTmp - nReal );
2966 nReal = pToShrink ? pToShrink->
Shrink( nShrink, bTst, bInfo ) : 0;
2968 && nReal < nShrink )
2972#if !ENABLE_WASM_STRIP_ACCESSIBILITY
2984 (void)bMoveAccFrame;
2996 static_cast<SwTabFrame*
>(
this)->SetComplete();
3003 static_cast<SwTabFrame*
>(
this)->SetComplete();
3012 bool bCompletePaint =
true;
3019 bCompletePaint =
false;
3035 nullptr != (pCnt =
static_cast<SwFootnoteFrame*
>(
this)->GetRefFromAttr() ) )
3037 if ( pCnt->IsFollow() )
3053 SAL_WARN(
"sw.layout",
"footnote frame on different page than ref frame?");
3085 if ( !( aRectFnSet.
IsVert() ? bHeightChgd : bWidthChgd ) &&
3106 pLowerFrame = pLowerFrame->
GetNext();
3115 pLowerFrame = pLowerFrame->
GetPrev();
3121 pLowerFrame =
static_cast<SwSectionFrame*
>(pLowerFrame)->GetSection() &&
3122 !
static_cast<SwSectionFrame*
>(pLowerFrame)->ToMaximize(
false ) ?
3123 static_cast<SwSectionFrame*
>(pLowerFrame)->FindLastContent() :
nullptr;
3139 pLowerFrame = pTableFrame;
3152 !SwFlowFrame::CastFlowFrame( pLowerFrame )->HasFollow() )
3162 if( aRectFnSet.
IsVert() )
3169 pLowerFrame = pLowerFrame->
GetPrev();
3179 pLowerFrame = pLowerFrame->
GetPrev();
3198 if( pSectFrame !=
this &&
IsAnLower( pSectFrame ) )
3210 bool bInvaPageForContent =
true;
3214 bool bFixChgd, bVarChgd;
3217 bFixChgd = bWidthChgd;
3218 bVarChgd = bHeightChgd;
3222 bFixChgd = bHeightChgd;
3223 bVarChgd = bWidthChgd;
3243 while ( pLowerFrame )
3262 if( nLowerType & nFixWidth )
3289 double nNewWidthTmp =
3292 /
double(rOldSize.
Width());
3293 nNewWidth =
SwTwips(nNewWidthTmp);
3302 aFrm.
Width( nNewWidth );
3307 if( nLowerType & nFixHeight )
3322 else if ( rOldSize.
Height() &&
3354 "ChgLowersProp - only for body or foot note container" );
3362 if ( nNewHeight < 0)
3368 "ChgLowersProg - negative height for lower.");
3373 aFrm.
Height( nNewHeight );
3386 double nNewHeightTmp =
3389 /
double(rOldSize.
Height());
3390 nNewHeight =
SwTwips(nNewHeightTmp);
3407 if( nSum - nNewHeight == 1 &&
3413 aFrm.
Height( nNewHeight );
3424 bInvaPageForContent =
false;
3435 pLowerFrame = pLowerFrame->
GetNext();
3441 if ( !(( (aRectFnSet.
IsVert() && bHeightChgd) || (! aRectFnSet.
IsVert() && bWidthChgd) ) &&
3468 OSL_ENSURE( pAttrs,
"LayoutFrame::Format, pAttrs is 0." );
3473 bool bHideWhitespace =
false;
3483 bHideWhitespace =
true;
3487 const sal_uInt16 nLeft = o3tl::narrowing<sal_uInt16>(pAttrs->
CalcLeft(
this));
3488 const sal_uInt16 nUpper = bHideWhitespace ? 0 : pAttrs->
CalcTop();
3490 const sal_uInt16 nRight = o3tl::narrowing<sal_uInt16>(pAttrs->
CalcRight(
this));
3491 const sal_uInt16 nLower = bHideWhitespace ? 0 : pAttrs->
CalcBottom();
3529 nRemaining = std::max( nRemaining, nMinHeight );
3584 OSL_ENSURE( pFrame->
GetDrawObjs(),
"Can't find any Objects" );
3587 if (
auto pFly = pAnchoredObj->DynCastFlyFrame() )
3592 bool bNotify =
true;
3597 const SwFrame *pRel = pFly->IsFlyLayFrame() ? pFly->GetAnchorFrame():
3598 pFly->GetAnchorFrame()->
GetUpper();
3603 if( pFly->getFrameArea().Height()*10 >
3605 pFly->GetFormat()->GetSurround().GetSurround() !=
3606 css::text::WrapTextMode_THROUGH )
3630 OSL_ENSURE( pTmp,
"Where's my TabFrame?" );
3644 }
while ( pFrame &&
IsAnLower( pFrame ) ) ;
3666 nRet = nRel * nPercent / 100;
3677 OSL_ENSURE( pCol,
"Where's the columnframe?" );
3686 if ( nTmp != USHRT_MAX )
3688 if ( pCol == pLayFrame->
Lower() )
3691 nDiff = nDiff ?
std::min( nDiff, nTmp ) : nTmp;
3696 while ( pCol &&
nullptr == (pFrame = pCol->
Lower()) )
3699 }
while ( pFrame && pCol );
3701 return nDiff ? nDiff : nFirstDiff ? nFirstDiff : 240;
3715 for (
size_t i = 0;
i < nCnt; ++
i )
3720 if ( pFly->IsHeightClipped() &&
3721 ( !pFly->IsFlyFreeFrame() || pFly->GetPageFrame() ) )
3746 const sal_uInt16 nNumCols = rCol.
GetNumCols();
3749 bool bBackLock =
false;
3784 bool bNoBalance =
false;
3791 if( nMaximum < nMinimum )
3794 nMinimum = nMaximum = 0;
3796 nMinimum = nMaximum;
3802 GetBalancedColumns().GetValue();
3815 if( nTop > nMaximum )
3819 if( !pAny && !
static_cast<SwSectionFrame*
>(
this)->IsFootnoteLock() )
3844 if (
IsAnLower( pAnchoredObj->GetAnchorFrame() ) )
3846 pAnchoredObj->SetTmpConsiderWrapInfluence(
false );
3867 for ( sal_uInt16
i = 0;
i < nNumCols; ++
i )
3869 pCol->
Calc(pRenderContext);
3880 OSL_ENSURE( pCol && pCol->
GetNext(),
":-( column making holidays?");
3882 bool bMinDiff =
true;
3884 while ( bMinDiff && pCol )
3895 bool bFoundLower =
false;
3906 else if( nInnerHeight < 0 )
3919 if( nInnerHeight > nDiff )
3921 nDiff = nInnerHeight;
3926 if( nMaxFree < -nInnerHeight )
3927 nMaxFree = -nInnerHeight;
3928 if( nAllFree > -nInnerHeight )
3929 nAllFree = -nInnerHeight;
3947 if( nMinimum < nPrtHeight )
3948 nMinimum = nPrtHeight;
3951 if( nMaximum < nPrtHeight )
3952 nMaximum = nPrtHeight;
3957 if (
std::abs(nDiff - nMinDiff) > nNumCols && nDiff >
static_cast<tools::Long>(nNumCols) )
3967 if ( nFrameHeight > nMinHeight || nPrtHeight >= nMinDiff )
3968 nDiff = std::max( nDiff, nMinDiff );
3969 else if( nDiff < nMinDiff )
3970 nDiff = nMinDiff - nPrtHeight + 1;
3975 if( nDiff + nPrtHeight > nMaximum )
3976 nDiff = nMaximum - nPrtHeight;
3978 else if( nMaximum > nMinimum )
3981 if ( nMaximum < nPrtHeight )
3982 nDiff = nMaximum - nPrtHeight;
3987 nMaximum = nPrtHeight;
3998 nMinimum < nPrtHeight - nMinDiff ) )
4000 nMaxFree /= nNumCols;
4001 nDiff = nMaxFree < nMinDiff ? -nMinDiff : -nMaxFree;
4002 if( nPrtHeight + nDiff <= nMinimum )
4003 nDiff = ( nMinimum - nMaximum ) / 2;
4008 if( nPrtHeight + nDiff <= nMinimum )
4009 nDiff = ( nMinimum - nMaximum ) / 2;
4042 if (
IsAnLower( pAnchoredObj->GetAnchorFrame() ) )
4044 pAnchoredObj->SetTmpConsiderWrapInfluence(
false );
4105 SwFlowFrame *pFoll = pSect->
GetFollow();
4107 pSect->SetFollow(
nullptr );
4109 pSect->SetFollow( pFoll );
4141 if( pLastSctCnt == pCnt )
4142 pLastSctCnt =
nullptr;
4144#if OSL_DEBUG_LEVEL > 0
4146 OSL_ENSURE( !pLastSctCnt,
"Where's the last SctContent?" );
4163 pLastSctCnt =
nullptr;
4165 if( pLastTabCnt == pCnt )
4167 pLastTabCnt =
nullptr;
4168 pLastSctCnt =
nullptr;
4171#if OSL_DEBUG_LEVEL > 0
4173 OSL_ENSURE( !pLastTabCnt,
"Where's the last TabContent?" );
4196 if (
auto pFly = pAnchoredObj->DynCastFlyFrame() )
4198 if ( pFly->IsFlyInContentFrame() )
4202 pFly->CheckDirChange();
4226 if (
auto pFly = pAnchoredObj->DynCastFlyFrame() )
4230 pFly->CheckDirChange();
4266 const SwFormatAnchor& rAnch = pAnchoredObj->GetFrameFormat().GetAnchor();
4267 if ((rAnch.
GetAnchorId() != RndStdIds::FLY_AT_PARA) &&
4275 if ( pAnchoredObj->ConsiderObjWrapInfluenceOnObjPos() )
4276 pAnchoredObj->InvalidateObjPosForConsiderWrapInfluence();
4278 pAnchoredObj->InvalidateObjPos();
4288 std::set<SwNodeOffset> *
const pSkipped,
4292 std::vector<sw::Extent>::const_iterator
const& rIterFirst,
4293 std::vector<sw::Extent>::const_iterator
const& rIterEnd,
4296 if (pNode == &rTextNode)
4305 &rIterFirst, &rIterEnd, pFirstNode, pLastNode);
4313 pSkipped->insert(pFly->GetContent().GetContentIdx()->GetIndex());
4327 std::set<SwNodeOffset> *
const pSkipped)
4336 assert(pMerged->pFirstNode->GetIndex() <= rTextNode.
GetIndex()
4337 && rTextNode.
GetIndex() <= pMerged->pLastNode->GetIndex());
4342 std::vector<sw::Extent>::const_iterator iterFirst(pMerged->extents.begin());
4343 std::vector<sw::Extent>::const_iterator iter(iterFirst);
4344 SwTextNode const* pNode(pMerged->pFirstNode);
4347 if (iter == pMerged->extents.end()
4348 || iter->pNode != pNode)
4351 pNode, iterFirst, iter,
4352 pMerged->pFirstNode, pMerged->pLastNode);
4353 SwNodeOffset const until = iter == pMerged->extents.end()
4354 ? pMerged->pLastNode->GetIndex() + 1
4355 : iter->pNode->GetIndex();
4365 pMerged->pFirstNode, pMerged->pLastNode);
4368 if (iter == pMerged->extents.end())
4372 pNode = iter->pNode;
4382 std::set<SwNodeOffset> *
const pSkipped)
4394 std::vector<SwTextFrame*> frames;
4397 if (pFrame->getRootFrame() == &rLayout)
4399 if (pFrame->IsFollow())
4401 frames.push_back(pFrame);
4406 frames.insert(frames.begin(), pFrame);
4416 assert(!pFrame->GetMergedPara() ||
4425 pFrame->SetMergedPara(std::move(pMerged));
4427 auto const pMerged(pFrame->GetMergedPara());
4432 pFrame->InvalidatePage();
4433 if (
auto const pObjs = pFrame->GetDrawObjs())
4436 for (
auto const pObject : *pObjs)
4449 if (
auto const& pMergedPara = pFrame->GetMergedPara())
4453 pFrame->InvalidatePage();
4454 if (
auto const pObjs = pFrame->GetDrawObjs())
4456 for (
auto const pObject : *pObjs)
4464 if (!pFrame->IsFollow())
4469 assert(&rTextNode == pMergedPara->pFirstNode);
4474 j <= pMergedPara->pLastNode->GetIndex(); ++j)
4488 pFormat->DelFrames();
4495 pFrame->SetMergedPara(
nullptr);
4515 && pRedline->
GetType() == RedlineType::Delete
4549 auto const pFrame(
static_cast<SwContentNode&
>(rNode).getLayoutFrame(&rLayout));
4550 assert(!pFrame ||
static_cast<SwTextFrame*
>(pFrame)->GetMergedPara()->pFirstNode != &rNode);
4560 for ( ; j < rEndOfSectionNode.
GetIndex(); ++j)
4562 if (rNodes[j]->IsCreateFrameWhenHidingRedlines())
4581 std::set<SwNodeOffset> *
const pSkipped)
4583 assert(rEndOfExtraSectionNode.
IsEndNode());
4585 + 1;
i < rEndOfExtraSectionNode.
GetIndex(); ++
i)
4587 SwNode const& rStartNode(*rNodes[
i]);
4591 bool bSkip(pSkipped && pSkipped->find(
i) != pSkipped->end());
4597 SwNode const& rNode(*rNodes[j]);
4653 std::set<SwNodeOffset> skippedFlys;
4678 if (bIsShowChangesInMargin || pRedline->GetType() != RedlineType::Delete)
4697 pFootnote->InvalidateNumberInLayout();
4707 pAuthType->UpdateFields();
4784 xmlTextWriterSetIndent(writer,1);
4785 (void)xmlTextWriterSetIndentString(writer, BAD_CAST(
" "));
4786 (void)xmlTextWriterStartDocument( writer,
nullptr,
nullptr,
nullptr );
4792 (void)xmlTextWriterEndDocument( writer );
4793 xmlFreeTextWriter( writer );
4799 bool bCreateWriter = (
nullptr == writer);
4801 writer = lcl_createDefaultWriter();
4803 (void)xmlTextWriterStartElement(writer,
reinterpret_cast<const xmlChar*
>(
"root"));
4806 (void)xmlTextWriterStartElement(writer, BAD_CAST(
"sfxViewShells"));
4814 (void)xmlTextWriterEndElement(writer);
4816 (void)xmlTextWriterStartElement(writer, BAD_CAST(
"infos"));
4818 (void)xmlTextWriterEndElement(writer);
4820 (void)xmlTextWriterEndElement(writer);
4823 lcl_freeWriter(writer);
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(const SwTwips)=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.
constexpr tools::Long Y() const
constexpr tools::Long X() const
const SfxPoolItem * GetCurItem() const
const SfxPoolItem * NextItem()
static SAL_WARN_UNUSED_RESULT SfxViewShell * GetNext(const SfxViewShell &rPrev, bool bOnlyVisible=true, const std::function< bool(const SfxViewShell *)> &isViewShell=nullptr)
static SAL_WARN_UNUSED_RESULT SfxViewShell * GetFirst(bool bOnlyVisible=true, const std::function< bool(const SfxViewShell *)> &isViewShell=nullptr)
virtual SfxObjectShell * GetObjectShell() override
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
const SwFootnoteInfo & GetFootnoteInfo() const
IDocumentFieldsAccess const & getIDocumentFieldsAccess() const
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
SwFootnoteIdxs & GetFootnoteIdxs()
const sw::FrameFormats< sw::SpzFrameFormat * > * GetSpzFrameFormats() const
SwDocShell * GetDocShell()
virtual void UpdateFields()
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)