20#include <config_wasm_strip.h>
31#include <osl/diagnose.h>
39#include <lineinfo.hxx>
69#include <objectformatter.hxx>
81#include <boost/circular_buffer.hpp>
88 bool isFlyCreationSuppressed =
false;
92 : m_wasAlreadySuppressed(isFlyCreationSuppressed)
94 (void)wasAlreadySuppressedAllowed;
95 assert(wasAlreadySuppressedAllowed || !isFlyCreationSuppressed);
96 isFlyCreationSuppressed =
true;
112 maFrame( pF->getFrameArea() ),
113 maPrt( pF->getFramePrintArea() ),
115 mbValidSize( pF->isFrameAreaSizeValid() )
140 const bool bChgWidth =
142 const bool bChgHeight =
150 SwFlowFrame *pFlow = SwFlowFrame::CastFlowFrame(
mpFrame );
152 if ( !pFlow->IsFollow() )
173 bInvalidPrePos =
true;
177 if ( bInvalidPrePos )
182 else if ( !pFlow->HasFollow() )
186 if( (nOldHeight > nNewHeight) || (!nOldHeight && nNewHeight) )
227 const bool bPrtWidth =
229 const bool bPrtHeight =
231 if ( bPrtWidth || bPrtHeight )
233 bool bUseNewFillProperties(
false);
237 if(aFillAttributes && aFillAttributes->isUsed())
239 bUseNewFillProperties =
true;
241 if(aFillAttributes->needCompleteRepaint())
247 if (!bUseNewFillProperties)
259 if ( !bAbsP && (bChgWidth || bChgHeight) )
266 if ( bAbsP || bPrtP || bChgWidth || bChgHeight ||
267 bPrtWidth || bPrtHeight || bChgFlyBasePos )
269#if !ENABLE_WASM_STRIP_ACCESSIBILITY
290 bool bNotify =
false;
291 bool bNotifySize =
false;
294 if ( !bAnchoredAsChar )
310 pObj->DynCastFlyFrame() !=
nullptr )
322 if ( pPageFrame != pFlyPageFrame )
324 OSL_ENSURE( pFlyPageFrame,
"~SwFrameNotify: Fly from Nowhere" );
326 pFlyPageFrame->
MoveFly( pFlyFrame, pPageFrame );
338 if ( ( rVert.
GetVertOrient() == text::VertOrientation::CENTER ||
341 ( bChgHeight || bPrtHeight ) )
352 ( bChgWidth || bPrtWidth || bChgFlyBasePos ) )
359 else if ( bPrtWidth )
370 if (
auto pFlyFrame = pObj->DynCastFlyFrame() )
373 pFlyFrame->InvalidateSize_();
376 if ( !bAnchoredAsChar )
378 pFlyFrame->InvalidatePos_();
380 pFlyFrame->Invalidate_();
386 if ( !bAnchoredAsChar )
388 pObj->InvalidateObjPos();
393 OSL_FAIL(
"<SwContentNotify::~SwContentNotify()> - unknown anchored object type." );
399#if !ENABLE_WASM_STRIP_ACCESSIBILITY
448 m_bLowersComplete( false )
463 while ( pLowerFrame )
477 pLowerFrame = pLowerFrame->
GetNext();
485 bool bNotify =
false;
497 static_cast<SwRowFrame*
>(pLay)->AdjustCells( nNew,
true);
556 pTmpFrame = pTmpFrame->
GetNext();
590 SwFrame* pFtnLower = pFtnFrame ? pFtnFrame->
Lower() :
nullptr;
623 bool bUnlockPosOfObjs( bPos );
628 ( pTabFrame->IsJoinLocked() ||
629 ( pTabFrame->IsFollow() &&
632 bUnlockPosOfObjs =
false;
639 bUnlockPosOfObjs =
static_cast<SwFootnoteFrame*
>(pLay)->IsUnlockPosOfLowerObjs();
642 else if ( bUnlockPosOfObjs && pLay->
IsSctFrame() )
644 bUnlockPosOfObjs =
false;
667 m_pOldPage( pFlyFrame->GetPageFrame() ),
668 m_aFrameAndSpace( pFlyFrame->GetObjRectWithSpaces() )
706 if ( bPosChgd || bFrameChgd || bPrtChgd )
791 mbChkHeightOfLastLine( false ),
792 mnHeightOfLastLine( 0 ),
794 mbInvalidatePrevPrtArea( false ),
795 mbBordersJoinedWithPrev( false )
826 OSL_ENSURE( pCell->
IsCellFrame(),
"Where's my cell?" );
840 while ( pPrevFrame &&
846 pPrevFrame = pPrevFrame->
FindPrev();
863 SwFrame* pLstContentOfSctFrame =
865 if ( pLstContentOfSctFrame )
888 if (
nullptr != pNd &&
892 const bool bNoTextFramePrtAreaChanged =
896 OSL_ENSURE( pCnt->
IsInFly(),
"OLE not in FlyFrame" );
901 {
if (
dynamic_cast<const SwCursorShell*
>( &rCurrentShell) !=
nullptr )
903 pFESh =
static_cast<SwFEShell*
>(&rCurrentShell);
923 bNoTextFramePrtAreaChanged );
964 if ( RndStdIds::FLY_AT_PAGE != rAnch.
GetAnchorId() ||
972 OSL_FAIL(
"<SwContentNotify::~SwContentNotify()> - to page anchored object with content position." );
980 pFormat->SetFormatAttr( aAnch );
983 pFormat->MakeFrames();
1015 if ( pMasterFrame && !pMasterFrame->IsFlyLock() &&
1021 if ( pAnchoredObj->GetFrameFormat().GetAnchor().GetAnchorId()
1022 == RndStdIds::FLY_AT_CHAR )
1024 pAnchoredObj->CheckCharRectAndTopOfLine( !pMasterFrame->
IsEmpty() );
1038 const bool bFlyAtFly = rAnch.
GetAnchorId() == RndStdIds::FLY_AT_FLY;
1043 const bool bDrawObjInContent = bSdrObj &&
1047 (rAnch.
GetAnchorId() == RndStdIds::FLY_AT_PARA) ||
1048 (rAnch.
GetAnchorId() == RndStdIds::FLY_AT_CHAR) ||
1049 bDrawObjInContent) )
1053 if ( bSdrObj &&
nullptr == (pSdrObj = pFormat->
FindSdrObject()) )
1055 OSL_ENSURE( !bSdrObj,
"DrawObject not found." );
1102 std::vector<sw::Extent>::const_iterator
const*
const pIter,
1103 std::vector<sw::Extent>::const_iterator
const*
const pEnd,
1106 assert(!pIter || *pIter == *pEnd || (*pIter)->pNode->GetIndex() ==
nIndex);
1112 if (rAnch.
GetAnchorId() == RndStdIds::FLY_AT_PARA)
1114 return pIter ==
nullptr
1126 assert(rAnch.
GetAnchorId() != RndStdIds::FLY_AT_FLY);
1127 if (*pIter == *pEnd && rAnch.
GetAnchorId() == RndStdIds::FLY_AT_CHAR)
1133 for (
auto iter = *pIter; iter != *pEnd; ++iter)
1135 assert(iter->nStart != iter->nEnd);
1136 assert(iter->pNode->GetIndex() ==
nIndex);
1141 if (rAnch.
GetAnchorId() == RndStdIds::FLY_AT_CHAR)
1157 if (iter->nStart == 0)
1168 ? iter->pNode == pFirstNode
1176 else if (iter == *pEnd - 1)
1178 if (iter->nEnd == iter->pNode->Len())
1187 iter->pNode == pLastNode
1188 ? iter->pNode->
Len()
1196 assert(rAnch.
GetAnchorId() == RndStdIds::FLY_AS_CHAR);
1213 std::vector<sw::Extent>::const_iterator
const*
const pIter,
1214 std::vector<sw::Extent>::const_iterator
const*
const pEnd,
1221 if (rAnchor.
GetAnchorId() == RndStdIds::FLY_AT_CHAR
1222 || rAnchor.
GetAnchorId() == RndStdIds::FLY_AS_CHAR)
1225 if (!
IsShown(rNode.
GetIndex(), rAnchor, pIter, pEnd, pFirstNode, pLastNode))
1227 pFrameFormat->DelFrames();
1235 std::vector<sw::Extent>::const_iterator
const*
const pIter,
1236 std::vector<sw::Extent>::const_iterator
const*
const pEnd,
1239#if OSL_DEBUG_LEVEL > 0
1240 std::vector<SwFrameFormat*> checkFormats;
1241 for(
auto pFormat: *pTable)
1247 checkFormats.push_back( pFormat );
1256 for (
size_t it = 0; it != rFlys.size(); )
1263#if OSL_DEBUG_LEVEL > 0
1264 std::vector<SwFrameFormat*>::iterator checkPos = std::find( checkFormats.begin(), checkFormats.end(), pFormat );
1265 assert( checkPos != checkFormats.end());
1266 checkFormats.erase( checkPos );
1268 AppendObj(pFrame, pPage, pFormat, rAnch);
1273#if OSL_DEBUG_LEVEL > 0
1274 assert( checkFormats.empty());
1287 std::vector<sw::Extent>::const_iterator iterFirst(pMerged->extents.begin());
1288 std::vector<sw::Extent>::const_iterator iter(iterFirst);
1289 SwTextNode const* pNode(pMerged->pFirstNode);
1292 if (iter == pMerged->extents.end()
1293 || iter->pNode != pNode)
1296 &iterFirst, &iter, pMerged->pFirstNode, pMerged->pLastNode);
1297 SwNodeOffset const until = iter == pMerged->extents.end()
1298 ? pMerged->pLastNode->GetIndex() + 1
1299 : iter->pNode->GetIndex();
1307 AppendObjsOfNode(pTable, pTmp->
GetIndex(), pFrame, pPage, pDoc, &iter, &iter, pMerged->pFirstNode, pMerged->pLastNode);
1310 if (iter == pMerged->extents.end())
1314 pNode = iter->pNode;
1332 assert(rAnchor.
GetAnchorId() == RndStdIds::FLY_AT_PARA ||
1333 rAnchor.
GetAnchorId() == RndStdIds::FLY_AT_CHAR ||
1340 auto iterFirst(pMergedPara->extents.cbegin());
1341 if (iterFirst == pMergedPara->extents.end()
1342 && (rAnchor.
GetAnchorId() == RndStdIds::FLY_AT_PARA
1343 || rAnchor.
GetAnchorId() == RndStdIds::FLY_AT_CHAR))
1345 ret = (pAnchorNode == pMergedPara->pFirstNode
1346 && (rAnchor.
GetAnchorId() == RndStdIds::FLY_AT_PARA
1348 || (pAnchorNode == pMergedPara->pLastNode
1349 && (rAnchor.
GetAnchorId() == RndStdIds::FLY_AT_PARA
1352 auto iter(iterFirst);
1353 SwTextNode const* pNode(pMergedPara->pFirstNode);
1356 if (iter == pMergedPara->extents.end()
1357 || iter->pNode != pNode)
1360 if (pNode == pAnchorNode)
1363 pMergedPara->pFirstNode, pMergedPara->pLastNode);
1366 if (iter == pMergedPara->extents.end())
1370 pNode = iter->pNode;
1387 boost::circular_buffer<SwFrameFormat*> vFormatsToConnect(pTable->
size());
1388 for(
const auto& pFormat : *pTable)
1390 const auto& rAnch = pFormat->GetAnchor();
1393 if ((rAnch.GetAnchorId() != RndStdIds::FLY_AT_PAGE) && (rAnch.GetAnchorId() != RndStdIds::FLY_AS_CHAR))
1395 const SwNode* pAnchorNode = rAnch.GetAnchorNode();
1398 pFormat->MakeFrames();
1400 vFormatsToConnect.push_back(pFormat);
1405 while(!vFormatsToConnect.empty())
1407 auto& pFormat = vFormatsToConnect.front();
1408 bool isConnected(
false);
1412 pFormat->MakeFrames();
1416 vFormatsToConnect.pop_front();
1419 if(pFirstRequeued == pFormat)
1423 pFirstRequeued = pFormat;
1424 assert(!vFormatsToConnect.full());
1425 vFormatsToConnect.push_back(pFormat);
1429 pFirstRequeued =
nullptr;
1438 std::vector<SwTextFrame*> frames;
1442 if (pFrame->getRootFrame()->HasMergedParas())
1444 frames.push_back(pFrame);
1453 SwTextNode & rFirstNode(pFrame->GetMergedPara()
1454 ? *pFrame->GetMergedPara()->pFirstNode
1458 pFrame->SetMergedPara(
nullptr);
1460 *pFrame, rFirstNode,
eMode));
1481 if ( aRectFnSet.
IsVert() )
1483 aFrm.
Pos().AdjustX( -1 );
1487 aFrm.
Pos().AdjustY(1 );
1498 if( bOldCallbackActionEnabled )
1515 const bool bStartPercent = bPages && !nEndIndex;
1520 std::unique_ptr<SwActualSection> pActualSection;
1521 std::unique_ptr<SwLayHelper> pPageMaker;
1530 pPageMaker.reset(
new SwLayHelper( pDoc, pFrame, pPrv, pPage, pLay,
1534 const sal_uLong nPageCount = pPageMaker->CalcPageCount();
1571 pUpperSection = pTmp;
1574 "InsertCnt_: Wrong Call" );
1605 pPageMaker->CheckInsert(
nIndex );
1612 if (pSection && pSection->ContainsAny() == pFrame)
1614 pSection->InvalidatePrt();
1623#if !ENABLE_WASM_STRIP_ACCESSIBILITY
1636 pNext ? pNext->DynCastTextFrame() :
nullptr,
1637 pPrev ? pPrev->DynCastTextFrame() :
nullptr );
1668 && pRedline->
GetType() == RedlineType::Delete
1671 SAL_WARN(
"sw.pageframe",
"skipping table frame creation on bizarre redline");
1707 pPageMaker->CheckInsert(
nIndex );
1719#if !ENABLE_WASM_STRIP_ACCESSIBILITY
1731 pNext ? pNext->DynCastTextFrame() :
nullptr,
1732 pPrev ? pPrev->DynCastTextFrame() :
nullptr );
1750 pTmpFrame = pTmpFrame->IsFollow() ? pTmpFrame->
FindMaster() :
nullptr;
1768 pActualSection->SetLastPos(pPrv);
1773 if ( pActualSection->GetUpper() )
1803 if (
nIndex + 1 == nEndIndex
1814 && pActualSection->GetUpper()
1815 && pActualSection->GetUpper()->GetSectionNode() ==
1831 assert(!pParent->
Lower());
1833 pNext->
Paste(pParent,
nullptr);
1841#if !ENABLE_WASM_STRIP_ACCESSIBILITY
1853 pNext ? pNext->DynCastTextFrame() :
nullptr,
1854 pPrev ? pPrev->DynCastTextFrame() :
nullptr );
1900 assert(pActualSection &&
"Section end without section start?");
1905 pActualSection.reset(pActualSection->GetUpper());
1907 if ( pActualSection )
1926 if (
SwSectionFrame* pOuterSectionFrame = pActualSection->GetSectionFrame())
1929 pFrame = pOuterSectionFrame->SplitSect(pActualSection->GetLastPos(), pPrv);
1932 if (! pOuterSectionFrame->IsColLocked() &&
1933 ! pOuterSectionFrame->ContainsContent() )
1935 pOuterSectionFrame->DelEmpty(
true );
1941 pFrame = pActualSection->GetSectionNode()->MakeFrame( pLay );
1950 pActualSection->SetSectionFrame(
static_cast<SwSectionFrame*
>(pFrame) );
1990 if ( pActualSection )
1993 if ( !(pLay = pActualSection->GetSectionFrame())->ContainsContent() )
1998 pActualSection.reset();
2003 if ( !isFlyCreationSuppressed )
2010 pPageMaker->CheckFlyCache( pPage );
2022 if( bOldCallbackActionEnabled )
2037 bool bAfter = *pNd < rSttIdx;
2040 ::std::vector<SwFrame*> frames;
2044 frames.push_back(pFrame);
2046 for (
SwFrame *
const pFrame : frames)
2050 bool bOldLock, bOldFootnote;
2051 if( pFootnoteFrame )
2057 bOldFootnote =
true;
2075 bool bMoveNext = nEndIdx - rSttIdx.GetIndex() >
SwNodeOffset(120);
2076 bool bAllowMove = !pFrame->IsInFly() && pFrame->IsMoveable() &&
2077 (!pFrame->IsInTab() || pFrame->IsTabFrame() );
2078 if ( bMoveNext && bAllowMove )
2082 SwFlowFrame *pTmp = SwFlowFrame::CastFlowFrame( pMove );
2089 assert(!pTmp->HasFollow() &&
"prev. node's frame is not last");
2099 if( pCol && !pMove )
2118 }
while( !pMove && pCol );
2130 pTmp = SwFlowFrame::CastFlowFrame( pMove );
2140 assert(!pTmp->IsFollow() &&
"next node's frame is not master");
2150 pTmp = SwFlowFrame::CastFlowFrame( pMove );
2161 bool bTmpOldLock = pTmp->IsJoinLocked();
2163 while( pTmp->MoveFwd(
true,
false,
true ) )
2165 if( pOldUp == pTmp->GetFrame().
GetUpper() )
2167 pOldUp = pTmp->GetFrame().
GetUpper();
2173 pFrame->IsInDocBody(), nEndIdx, pPrev,
eMode );
2180 nEndIdx, pPrv,
eMode );
2183 if( !isFlyCreationSuppressed )
2186 if( !pTable->
empty() )
2190 if( pFrame->IsInFly() )
2191 pFrame->FindFlyFrame()->Invalidate_();
2192 if( pFrame->IsInTab() )
2193 pFrame->InvalidateSize();
2221 , m_rAttrSet(pConstructor->IsContentFrame()
2222 ? pConstructor->IsTextFrame()
2223 ? static_cast<const
SwTextFrame*>(pConstructor)->GetTextNodeForParaProps()->GetSwAttrSet()
2226 , m_rUL(m_rAttrSet.GetULSpace())
2227 , m_rBox(m_rAttrSet.GetBox())
2228 , m_rShadow(m_rAttrSet.GetShadow())
2229 , m_aFrameSize(m_rAttrSet.GetFrameSize().GetSize())
2231 , m_bJoinedWithPrev(false)
2232 , m_bJoinedWithNext(false)
2240 , m_nGetBottomLine(0)
2296 if (bGutterAtTop &&
m_xLR)
2337 nRight +=
m_xLR->GetRight();
2342 nRight +=
static_cast<const SwTextFrame*
>(pCaller)->GetTextNodeForParaProps()->GetLeftMarginWithNum();
2347 const auto pPageFrame =
static_cast<const SwPageFrame*
>(pCaller);
2356 nRight += nGutterMargin;
2369 if (pSortedObjs->
size() > 0)
2372 if (
auto pFly =
pObject->DynCastFlyFrame())
2374 if (pFly->Lower() && pFly->Lower()->IsTabFrame())
2401 bool bIgnoreMargin =
false;
2409 bIgnoreMargin =
true;
2412 bIgnoreMargin =
true;
2420 nLeft +=
m_xLR->GetLeft();
2426 nLeft +=
static_cast<const SwTextFrame*
>(pCaller)->GetTextNodeForParaProps()->GetLeftMarginWithNum();
2431 const auto pPageFrame =
static_cast<const SwPageFrame*
>(pCaller);
2439 nLeft += nGutterMargin;
2498 return ( ((pL1 && pL2) && (*pL1 == *pL2)) || (!pL1 && !pL2) );
2517 const SwFrame& _rCmpFrame )
const
2519 bool bReturnVal =
false;
2550 const SwFrame* pPrevFrame = _pPrevFrame ? _pPrevFrame : _rFrame.
GetPrev();
2552 while ( pPrevFrame && pPrevFrame->
IsTextFrame() &&
2555 pPrevFrame = pPrevFrame->
GetPrev();
2584 while ( pNextFrame && pNextFrame->
IsTextFrame() &&
2587 pNextFrame = pNextFrame->
GetNext();
2605 const SwFrame* _pPrevFrame )
const
2677 ?
static_cast<const SwTextFrame&
>(rFrame).GetTextNodeForParaProps()
2686 m_pConstructor( pFrame )
2703 m_pCurrent( nullptr )
2714 if ( !pObjs->
size() )
2717 sal_uInt32 nTopOrd = 0;
2718 (*pObjs)[0]->GetDrawObj()->GetOrdNum();
2725 if ( nTmp >= nTopOrd )
2738 sal_uInt32 nBotOrd = USHRT_MAX;
2740 if ( pObjs->
size() )
2742 (*pObjs)[0]->GetDrawObj()->GetOrdNum();
2749 if ( nTmp < nBotOrd )
2766 sal_uInt32 nOrd = USHRT_MAX;
2768 if ( pObjs->
size() )
2770 (*pObjs)[0]->GetDrawObj()->GetOrdNum();
2777 if ( nTmp > nCurOrd && nTmp < nOrd )
2796 if ( !pObjs->
size() )
2799 sal_uInt32 nOrd = 0;
2800 (*pObjs)[0]->GetDrawObj()->GetOrdNum();
2807 if ( nTmp < nCurOrd && nTmp >= nOrd )
2827 OSL_ENSURE( _pFrame->
GetDrawObjs(),
"no DrawObjs in lcl_RemoveObjsFromPage." );
2833 pObj->ClearVertPosOrientFrame();
2835 pObj->ResetLayoutProcessBools();
2838 if (
auto pFlyFrame = pObj->DynCastFlyFrame() )
2842 if ( pFlyFrame->GetDrawObjs() )
2854 if ( pFlyFrame->IsFlyFreeFrame() )
2858 pPg->RemoveFlyFromPage(pFlyFrame);
2864 if (pObj->GetFrameFormat().GetAnchor().GetAnchorId() != RndStdIds::FLY_AS_CHAR)
2867 pPg->RemoveDrawObjFromPage( *pDrawObj );
2879 if (
nullptr == pSav )
2905 }
while ( pTmp != pSect );
2911 bool bGo = pStart == pSav;
2940 OSL_ENSURE( !pFloat,
"new FloatFrame?" );
2948 if( !bGo && pFloat == pStart )
2952 pFloat->
mpPrev =
nullptr;
2978 bGo = bGo || ( pStart == pFloat );
2981 return bGo ? pStart :
nullptr;
2988 OSL_ENSURE( _pFrame->
GetDrawObjs(),
"no DrawObjs in lcl_AddObjsToPage." );
2994 pObj->UnlockPosition();
2997 if (
auto pFlyFrame = pObj->DynCastFlyFrame() )
2999 if (pFlyFrame->IsFlyFreeFrame())
3003 pFlyFrame->InvalidatePos_();
3004 pFlyFrame->InvalidateSize_();
3005 pFlyFrame->InvalidatePage( _pPage );
3009 if ( pFlyFrame->GetDrawObjs() )
3025 if (pObj->GetFrameFormat().GetAnchor().GetAnchorId() != RndStdIds::FLY_AS_CHAR)
3027 pObj->InvalidateObjPos();
3037 OSL_ENSURE( pSav && pParent,
"no Save or Parent provided for RestoreContent." );
3058 SwFlowFrame *pFlowFrame =
dynamic_cast<SwFlowFrame*
>(pSibling);
3059 if (pFlowFrame && pFlowFrame->GetFollow())
3089 static_cast<SwTextFrame*
>(pSav)->GetCacheIdx() != USHRT_MAX )
3103 static_cast<SwTextFrame*
>(pBlub)->GetCacheIdx() != USHRT_MAX )
3120 pParent->
Grow( nGrowVal );
3130 bool const isFirstPageOfLayoutOdd(nFirstVirtPageNum % 2 == 1);
3131 return ((nPageNum % 2) == 1) == isFirstPageOfLayoutOdd;
3137 bool const isRightPage,
bool const bFirst,
bool bInsertEmpty,
3140 bool const bVeryFirstPage )
3173 OSL_ENSURE( pFormat,
"Descriptor without any format?!" );
3174 bInsertEmpty = !bInsertEmpty;
3181 SAL_INFO(
"sw.pageframe",
"InsertNewPage - insert empty p: " << pRet <<
" d: " << pTmpDesc );
3182 pRet->
Paste( pUpper, pSibling );
3185 pRet =
new SwPageFrame( pFormat, pUpper, &rDesc );
3186 SAL_INFO(
"sw.pageframe",
"InsertNewPage p: " << pRet <<
" d: " << &rDesc <<
" f: " << pFormat );
3187 pRet->
Paste( pUpper, pSibling );
3220 if ( pPage != pObj->GetPageFrame() )
3222 pObj->RegisterAtPage(*pPage);
3229 pObj->GetDrawObj()->getSdrPageFromSdrObject() )
3233 pObj->GetDrawObj()->GetOrdNumDirect() );
3258 if ( rOld.
Pos() != aFrame.
Pos() )
3278 if ( pOld != pPageFrame )
3283 if ( rOld.
Left() != aFrame.
Left() )
3286 aTmp.
Union( aFrame );
3296 aTmp.
Union( aFrame );
3298 aTmp.
Right( std::max(nNew, nOld) );
3301 if ( rOld.
Top() != aFrame.
Top() )
3304 aTmp.
Union( aFrame );
3314 aTmp.
Union( aFrame );
3316 aTmp.
Bottom( std::max(nNew, nOld) );
3324 if(!bNotifyBackground &&
3329 bNotifyBackground =
true;
3332 if(bNotifyBackground)
3367 auto pTextFrame =
static_cast<SwTextFrame*
>(pCnt);
3373 SwTwips nLower = pTextFrame->GetLowerMarginForFlyIntersect();
3389 else if ( aCntPrt.
Overlaps( rRect ) )
3397 if (
auto pFly = pObj->DynCastFlyFrame() )
3399 if ( pFly->IsFlyInContentFrame() )
3432 pFlyFrame =
nullptr;
3433 pAnchor =
const_cast<SwFrame*
>(
3463 bool isValidTableBeforeAnchor(
false);
3464 while ( pCnt && pArea && pArea->
IsAnLower( pCnt ) )
3470 if ( pTab != pLastTab )
3473 isValidTableBeforeAnchor =
false;
3488 isValidTableBeforeAnchor =
true;
3497 if (!isValidTableBeforeAnchor
3501 if ( !pFlyFrame || !pFlyFrame->
IsLowerOf( pTab ) )
3509 if (!isValidTableBeforeAnchor && pCell->
IsCellFrame() &&
3527 if ( pAnchoredObj->DynCastFlyFrame() !=
nullptr )
3529 if( pAnchoredObj->GetDrawObj() == pObj )
3563 pFlyFrame && !pFly->
IsLowerOf( pFlyFrame ) )
3581 if ( bInva && pPage &&
3628 const SwFlyFrame* pFly = pFlyDrawObj->GetFlyFrame();
3637 OSL_ENSURE( pFrame,
"8-( Fly is lost in Space." );
3640 {
if ( pFrame == pCurrFrame )
3659 nAdditionalContextType;
3661 {
if ( pFrame->
GetType() & nTyp )
3676 {
if ( pFrame->
GetType() & nTyp )
3678 if( pFrame == pContext )
3708 nFlyAdd = std::max(
tools::Long(0), nFlyAdd - nLow );
3777 void SetFrame(
SwFrame* pHold );
3778 SwFrame* GetFrame() {
return m_pFrame; }
3780 bool IsSet()
const {
return m_bSet; }
3785void SwFrameHolder::SetFrame(
SwFrame* pHold )
3788 if (m_pFrame != pHold)
3791 EndListening(*m_pFrame);
3797void SwFrameHolder::Reset()
3800 EndListening(*m_pFrame);
3807 if (rHint.
GetId() == SfxHintId::Dying && &rBC == m_pFrame)
3815 std::pair<Point, bool>
const*
const pViewPosAndCalcFrame)
3817 SwFrame *pMinFrame =
nullptr, *pTmpFrame;
3818 SwFrameHolder aHolder;
3820 bool bClientIterChanged =
false;
3824 pMinFrame =
nullptr;
3826 sal_uInt64 nMinDist = 0;
3827 bClientIterChanged =
false;
3829 for( pTmpFrame = aIter.
First(); pTmpFrame; pTmpFrame = aIter.
Next() )
3831 if( pTmpFrame->GetType() & nFrameType &&
3832 ( !pLayout || pLayout == pTmpFrame->
getRootFrame() ) &&
3833 (!pTmpFrame->IsFlowFrame() ||
3834 !SwFlowFrame::CastFlowFrame( pTmpFrame )->IsFollow() ))
3836 if (pViewPosAndCalcFrame)
3840 aHolder.SetFrame( pMinFrame );
3844 if (pViewPosAndCalcFrame->second)
3851 SwFlyFrame* pFlyFrame( pTmpFrame->FindFlyFrame() );
3864 if( aIter.
IsChanged() || ( aHolder.IsSet() && !aHolder.GetFrame() ) )
3867 bClientIterChanged =
true;
3872 if (!pViewPosAndCalcFrame->second &&
3875 FAR_AWAY == pTmpFrame->getFrameArea().Pos().getX() &&
3876 FAR_AWAY == pTmpFrame->getFrameArea().Pos().getY() )
3879 aCalcRect = pTmpFrame->getFrameArea();
3881 if (aCalcRect.
Contains(pViewPosAndCalcFrame->first))
3883 pMinFrame = pTmpFrame;
3889 const Point aDiff = aCalcRectCenter - pViewPosAndCalcFrame->first;
3890 const sal_uInt64 nCurrentDist = sal_Int64(aDiff.
getX()) * sal_Int64(aDiff.
getX()) + sal_Int64(aDiff.
getY()) * sal_Int64(aDiff.
getY());
3891 if ( !pMinFrame || nCurrentDist < nMinDist )
3893 pMinFrame = pTmpFrame;
3894 nMinDist = nCurrentDist;
3900 pMinFrame = pTmpFrame;
3905 }
while( bClientIterChanged );
3907 if( pPos && pMinFrame && pMinFrame->
IsTextFrame() )
3908 return static_cast<SwTextFrame*
>(pMinFrame)->GetFrameAtPos( *pPos );
3936 while ( pLowerFrame )
3949 pLowerFrame = pLowerFrame->
GetNext();
3952 return aPrtWithoutHeaderFooter;
3964 bool& obIsLineSpacingProportional,
3965 bool bIdenticalStyles )
3976 if (bIdenticalStyles)
3979 onLowerSpacing = rULSpace.
GetLower();
3982 obIsLineSpacingProportional =
false;
3985 onLineSpacing =
static_cast<const SwTextFrame&
>(rFrame).GetLineSpace();
3986 obIsLineSpacingProportional =
3987 onLineSpacing != 0 &&
3988 static_cast<const SwTextFrame&
>(rFrame).GetLineSpace(
true ) == 0;
3991 OSL_ENSURE( onLowerSpacing >= 0 && onLineSpacing >= 0,
3992 "<GetSpacingValuesOfFrame(..)> - spacing values aren't positive!" );
4002 while ( pContent && rCell.
IsAnLower( pContent ) )
4005 if ( pTmpTab != pTab )
4026 ? pFrame->IsTextFrame()
4028 ? static_cast<
SwTextFrame const*>(pFrame)->GetTextNodeFirst()
4029 : const_cast<
SwFrame*>(pFrame)->GetDep()
4046 pLast = aIter.
Next();
css::chart::ChartAxisLabelPosition ePos
helper class to disable creation of an action by a callback event in particular, change event from a ...
virtual const SwDrawModel * GetDrawModel() const =0
Draw Model and id accessors.
virtual const SwRootFrame * GetCurrentLayout() const =0
virtual const SwRedlineTable & GetRedlineTable() const =0
virtual const SwRangeRedline * GetRedline(const SwPosition &rPos, SwRedlineTable::size_type *pFndPos) const =0
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
virtual bool IsUpdateExpField() const =0
virtual bool IsNewDoc() const =0
virtual void BlockIdling()=0
Increment block count.
virtual void UnblockIdling()=0
Decrement block count.
constexpr tools::Long getX() const
constexpr tools::Long getY() const
const SdrPage * GetPage(sal_uInt16 nPgNum) const
virtual SdrObject * SetObjectOrdNum(size_t nOldObjNum, size_t nNewObjNum)
sal_uInt32 GetOrdNumDirect() const
void ActionChanged() const
sal_uInt32 GetOrdNum() const
virtual const tools::Rectangle & GetCurrentBoundRect() const
virtual const tools::Rectangle & GetLastBoundRect() const
SdrPage * getSdrPageFromSdrObject() const
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint)
const editeng::SvxBorderLine * GetTop() const
sal_Int16 CalcLineSpace(SvxBoxItemLine nLine, bool bEvenIfNoLine=false, bool bAllowNegative=false) const
const editeng::SvxBorderLine * GetRight() const
const editeng::SvxBorderLine * GetLeft() const
const editeng::SvxBorderLine * GetBottom() const
SvxGraphicPosition GetGraphicPos() const
virtual SvxFirstLineIndentItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual SvxLRSpaceItem * Clone(SfxItemPool *pPool=nullptr) const override
tools::Long GetLeft() const
sal_uInt16 GetPropLineSpace() const
SvxInterLineSpaceRule GetInterLineSpaceRule() const
virtual SvxRightMarginItem * Clone(SfxItemPool *pPool=nullptr) const override
sal_uInt16 CalcShadowSpace(SvxShadowItemSide nShadow) const
virtual SvxTextLeftMarginItem * Clone(SfxItemPool *pPool=nullptr) const override
sal_uInt16 GetUpper() const
sal_uInt16 GetLower() const
SwSectionNode * GetSectionNode()
void SetUpper(SwActualSection *p)
class for the positioning of drawing objects
wrapper class for the positioning of Writer fly frames and drawing objects
const SwFrame * GetAnchorFrame() const
bool ConsiderForTextWrap() const
virtual void NotifyBackground(SwPageFrame *_pPageFrame, const SwRect &_rRect, PrepareHint _eHint)=0
method to trigger notification of 'background'
void SetForceNotifyNewBackground(bool const b)
bool ConsiderObjWrapInfluenceOnObjPos() const
method to determine, if wrapping style influence of the anchored object has to be considered on the o...
SwPageFrame * GetPageFrame()
bool IsForceNotifyNewBackground()
void SetConsiderForTextWrap(const bool _bConsiderForTextWrap)
const SwRect & GetObjRectWithSpaces() const
method to determine object area inclusive its spacing
const SdrObject * GetDrawObj() const
void SetRestartLayoutProcess(const bool _bRestartLayoutProcess)
const SvxFirstLineIndentItem & GetFirstLineIndent(bool=true) const
const SwDoc * GetDoc() const
const SwParaConnectBorderItem & GetParaConnectBorder(bool=true) const
const SvxBrushItem & GetBackground(bool=true) const
const SvxLRSpaceItem & GetLRSpace(bool=true) const
const SvxULSpaceItem & GetULSpace(bool=true) const
const SvxTextLeftMarginItem & GetTextLeftMargin(bool=true) const
const SvxFormatKeepItem & GetKeep(bool=true) const
const SvxLineSpacingItem & GetLineSpacing(bool=true) const
const SvxRightMarginItem & GetRightMargin(bool=true) const
const SwFrame * m_pConstructor
virtual SwCacheObj * NewObj() override
Can be use in NewObj.
SwBorderAttrAccess(SwCache &rCache, const SwFrame *pOwner)
const SvxShadowItem & m_rShadow
bool JoinedWithNext(const SwFrame &_rFrame) const
sal_uInt16 CalcRightLine() const
bool JoinedWithPrev(const SwFrame &_rFrame, const SwFrame *_pPrevFrame=nullptr) const
SwBorderAttrs(const sw::BorderCacheOwner *pOwner, const SwFrame *pConstructor)
const SvxBoxItem & GetBox() const
sal_uInt16 m_nGetBottomLine
const SvxULSpaceItem & m_rUL
std::unique_ptr< SvxRightMarginItem > m_pRightMargin
tools::Long CalcLeft(const SwFrame *pCaller) const
bool CmpLeftRight(const SwBorderAttrs &rCmpAttrs, const SwFrame *pCaller, const SwFrame *pCmp) const
sal_uInt16 CalcTopLine() const
sal_uInt16 CalcLeftLine() const
void GetBottomLine_(const SwFrame &_rFrame)
sal_uInt16 CalcTop() const
void GetTopLine_(const SwFrame &_rFrame, const SwFrame *_pPrevFrame)
bool m_bCachedJoinedWithNext
void CalcJoinedWithNext(const SwFrame &_rFrame)
bool m_bCachedJoinedWithPrev
const SvxShadowItem & GetShadow() const
std::unique_ptr< SvxFirstLineIndentItem > m_pFirstLineIndent
sal_uInt16 m_nLineSpacing
sal_uInt16 CalcBottomLine() const
bool m_bCachedGetBottomLine
tools::Long CalcRight(const SwFrame *pCaller) const
std::shared_ptr< SvxLRSpaceItem > m_xLR
void CalcJoinedWithPrev(const SwFrame &_rFrame, const SwFrame *_pPrevFrame)
std::unique_ptr< SvxTextLeftMarginItem > m_pTextLeftMargin
bool JoinWithCmp(const SwFrame &_rCallerFrame, const SwFrame &_rCmpFrame) const
const SwAttrSet & m_rAttrSet
const SvxBoxItem & m_rBox
sal_uInt16 CalcBottom() const
virtual ~SwBorderAttrs() override
Access class for the Cache.
SwCacheObj * Get(bool isDuplicateOwnerAllowed)
The Cache object base class Users of the Cache must derive a class from the SwCacheObj and store thei...
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
SwContentFrame * GetNextContentFrame() const
virtual SwContentFrame * MakeFrame(SwFrame *pSib)=0
MakeFrame will be called for a certain layout pSib is another SwFrame of the same layout (e....
SwContentFrame * getLayoutFrame(const SwRootFrame *, const SwPosition *pPos=nullptr, std::pair< Point, bool > const *pViewPosAndCalcFrame=nullptr) const
bool mbChkHeightOfLastLine
bool mbInvalidatePrevPrtArea
SwTwips mnHeightOfLastLine
SwContentNotify(SwContentFrame *pContentFrame)
bool mbBordersJoinedWithPrev
bool HasBeenDeleted() const
return true if mpFrame != 0 and mpFrame is not client of pRegIn false otherwise
const sw::BroadcastingModify * mpRegIn
SwDeletionChecker(const SwFrame *pFrame)
IDocumentState const & getIDocumentState() const
SwLayoutCache * GetLayoutCache() const
const SwLineNumberInfo & GetLineNumberInfo() const
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
SwEditShell const * GetEditShell() const
IDocumentLayoutAccess const & getIDocumentLayoutAccess() const
IDocumentSettingAccess const & getIDocumentSettingAccess() const
bool DoesContainAtPageObjWithContentAnchor()
const SwFrameFormat * GetEmptyPageFormat() const
void DelFrameFormat(SwFrameFormat *pFormat, bool bBroadcast=false)
::sw::DocumentSettingManager & GetDocumentSettingManager()
const sw::FrameFormats< sw::SpzFrameFormat * > * GetSpzFrameFormats() const
IDocumentTimerAccess const & getIDocumentTimerAccess() const
bool IsInHeaderFooter(const SwNode &) const
new class for re-direct methods calls at a 'virtual' drawing object to its referenced object.
virtual void CalcAndSetScale(svt::EmbeddedObjectRef &xObj, const SwRect *pFlyPrtRect=nullptr, const SwRect *pFlyFrameRect=nullptr, const bool bNoTextFramePrtAreaChanged=false)=0
Client for OleObject has to be up-to-date regarding scaling.
Flys that are anchored to content (at-para, at-char) but not in content (as-char).
general base class for all free-flowing frames
const SwVirtFlyDrawObj * GetVirtDrawObj() const
virtual const SwFlyFrameFormat * GetFormat() const override
bool IsFlyAtContentFrame() const
bool IsLowerOf(const SwLayoutFrame *pUpper) const
virtual const SwFlyFrame * DynCastFlyFrame() const override
SwFlyFrame * GetNextLink() const
bool IsFlyLayFrame() const
bool IsFlyFreeFrame() const
bool IsNotifyBack() const
bool supportsAutoContour() const
bool IsNoMoveOnCheckClip() const
Flys that are anchored as a character in the content.
Flys that are bound to layout frames (to-frame) and not to/as content.
SwFlyNotify(SwFlyFrame *pFlyFrame)
const SwRect m_aFrameAndSpace
const SwRect & getFrameArea() const
const SwRect & getFramePrintArea() const
bool isFrameAreaSizeValid() const
SwFrameNotify(SwFrame *pFrame)
SwTwips mnFlyAnchorOfstNoWrap
const SwRect & getFrameArea() const
Base class of the Writer layout elements.
SwTwips Grow(SwTwips, bool bTst=false, bool bInfo=false)
void InvalidateInfFlags()
void InsertBehind(SwLayoutFrame *pParent, SwFrame *pBefore)
Insert SwFrame into existing structure.
virtual bool Prepare(const PrepareHint ePrep=PrepareHint::Clear, const void *pVoid=nullptr, bool bNotify=true)
SwFrame * GetIndPrev() const
SwTextFrame * DynCastTextFrame()
sal_uInt16 GetVirtPageNum() const
void CheckDirChange()
checks the layout direction and invalidates the lower frames recursively, if necessary.
SwFlyFrame * FindFlyFrame()
bool IsAccessibleFrame() const
SwSectionFrame * FindSctFrame()
SwContentFrame * FindPrevCnt()
SwTabFrame * FindTabFrame()
bool supportsFullDrawingLayerFillAttributeSet() const
bool IsColumnFrame() const
void InvalidateNextPos(bool bNoFootnote=false)
SwFrameType GetType() const
bool IsInFootnote() const
bool IsHeaderFrame() const
void InvalidateObjs(const bool _bNoInvaOfAsCharAnchoredObjs=true)
bool IsRetoucheFrame() const
const SwSortedObjs * GetDrawObjs() const
static SwCache & GetCache()
bool IsRightToLeft() const
void AppendFly(SwFlyFrame *pNew)
static void CheckPageDescs(SwPageFrame *pStart, bool bNotifyFields=true, SwPageFrame **ppPrev=nullptr)
Check all pages (starting from the given one) if they use the appropriate frame format.
SwFlyFrame * ImplFindFlyFrame()
const SwAttrSet * GetAttrSet() const
WARNING: this may not return correct RES_PAGEDESC/RES_BREAK items for SwTextFrame,...
void InvalidateNextPrtArea()
method to invalidate printing area of next frame #i11859#
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr)=0
bool IsMoveable(const SwLayoutFrame *_pLayoutFrame=nullptr) const
determine, if frame is moveable in given environment
SwFootnoteFrame * ImplFindFootnoteFrame()
bool IsFooterFrame() const
bool IsFootnoteFrame() const
SwLayoutFrame * GetUpper()
const SwLayoutFrame * GetNextLayoutLeaf() const
void InvalidatePage(const SwPageFrame *pPage=nullptr) const
Invalidates the page in which the Frame is currently placed.
SwRootFrame * getRootFrame()
bool IsNoTextFrame() const
void SetCompletePaint() const
virtual const SvxFormatBreakItem & GetBreakItem() const
bool IsContentFrame() const
SwContentFrame * FindNextCnt(const bool _bInSameFootnote=false)
SwPageFrame * FindPageFrame()
drawinglayer::attribute::SdrAllFillAttributesHelperPtr getSdrAllFillAttributesHelper() const
void AppendDrawObj(SwAnchoredObject &_rNewObj)
SwFrame * FindFooterOrHeader()
SwFootnoteFrame * FindFootnoteFrame()
static void DestroyFrame(SwFrame *const pFrame)
this is the only way to delete a SwFrame instance
bool IsLayoutFrame() const
Helps during the InsertCnt_ function to create new pages.
SwLayNotify(SwLayoutFrame *pLayFrame)
bool IsLowersComplete() const
bool CompareLayout(const SwDoc &rDoc) const
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame.
void ChgLowersProp(const Size &rOldSize)
Change size of lowers proportionally.
bool IsAnLower(const SwFrame *) const
virtual const SwFrameFormat * GetFormat() const
const SwFrame * ContainsAny(const bool _bInvestigateFootnoteForSections=false) const
Method <ContainsAny()> doesn't investigate content of footnotes by default.
const SwFrame * GetLastLower() const
void NotifyLowerObjs(const bool _bUnlockPosOfObjs=false)
force an unlockposition call for the lower objects.
const SwContentFrame * ContainsContent() const
Checks if the frame contains one or more ContentFrame's anywhere in his subsidiary structure; if so t...
void InvaPercentLowers(SwTwips nDiff=0)
Invalidates the inner Frames, whose width and/or height are calculated using percentages.
const SwFrame * Lower() const
< purpose of derivation from SwClient: character style for displaying the numbers.
bool IsPaintLineNumbers() const
bool IsCountInFlys() const
Base class of the Writer document model elements.
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
SwNodeOffset GetIndex() const
SwNodes & GetNodes()
Node is in which nodes-array/doc?
bool IsContentNode() const
bool IsSectionNode() const
const SwStartNode * StartOfSectionNode() const
Merge GetRedlineMergeFlag() const
SwNodeOffset EndOfSectionIndex() const
bool IsCreateFrameWhenHidingRedlines() const
std::vector< SwFrameFormat * > const & GetAnchoredFlys() const
SwNode * FindPrvNxtFrameNode(const SwNode &rFrameNd, const SwNode *pEnd, SwRootFrame const *pLayout=nullptr) const
Search previous / next content node or table node with frames.
bool IsOLESizeInvalid() const
const SwOLEObj & GetOLEObj() const
void SetOLESizeInvalid(bool b)
svt::EmbeddedObjectRef & GetObject()
bool IsOleRef() const
To avoid unnecessary loading of object.
const SdrObject * m_pCurrent
const SdrObject * Bottom()
SwOrderIter(const SwPageFrame *pPage)
const SwPageFrame * m_pPage
const SwPosition * Start() const
SwFrameFormat & GetMaster()
bool IsFirstShared() const
SwFrameFormat & GetFirstLeft()
SwFrameFormat & GetFirstMaster()
SwFrameFormat * GetRightFormat(bool const bFirst=false)
Layout uses the following methods to obtain a format in order to be able to create a page.
SwFrameFormat & GetLeft()
SwFrameFormat * GetLeftFormat(bool const bFirst=false)
A page of the document layout.
void InvalidateContent() const
void AppendFlyToPage(SwFlyFrame *pNew)
void PreparePage(bool bFootnote)
Always call after Paste Creates the page-bound frames and formats the generic content.
sal_uInt16 GetPhyPageNum() const
void RemoveFlyFromPage(SwFlyFrame *pToRemove)
const SwSortedObjs * GetSortedObjs() const
void MoveFly(SwFlyFrame *pToMove, SwPageFrame *pDest)
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr) override
void InvalidateFlyContent() const
void AppendDrawObjToPage(SwAnchoredObject &_rNewObj)
SwRect PrtWithoutHeaderAndFooter() const
RedlineType GetType(sal_uInt16 nPos=0) const
tools::Long GetHeight(const SwRect &rRect) const
void SetPos(SwRect &rRect, const Point &rNew) const
tools::Long GetWidth(const SwRect &rRect) const
tools::Long TopDist(const SwRect &rRect, tools::Long nPos) const
tools::Long GetTop(const SwRect &rRect) const
Point GetPos(const SwRect &rRect) const
bool PosDiff(const SwRect &rRect1, const SwRect &rRect2) const
Of course Writer needs its own rectangles.
void Height(tools::Long nNew)
SwRect & Union(const SwRect &rRect)
void Top(const tools::Long nTop)
void Right(const tools::Long nRight)
void Bottom(const tools::Long nBottom)
SwRect & Intersection_(const SwRect &rRect)
void Pos(const Point &rNew)
void SSize(const Size &rNew)
bool Contains(const Point &rPOINT) const
void AddBottom(const tools::Long nAdd)
bool Overlaps(const SwRect &rRect) const
void AddTop(const tools::Long nAdd)
void Left(const tools::Long nLeft)
void Width(tools::Long nNew)
The root element of a Writer document layout.
SwViewShell * GetCurrShell() const
static void AssertPageFlys(SwPageFrame *)
Makes sure that, starting from the passed Page, all page-bound Frames are on the right Page (pagenumb...
const SwPageFrame * GetPageAtPos(const Point &rPt, const Size *pSize=nullptr, bool bExtend=false) const
Point rPt: The point that should be used to find the page Size pSize: If given, we return the (first)...
bool HasMergedParas() const
bool IsAnyShellAccessible() const
bool IsHideRedlines() const
Replacement for sw::DocumentRedlineManager::GetRedlineFlags() (this is layout-level redline hiding).
bool IsCallbackActionEnabled() const
void RemoveFromList(SwSectionFrame *pSct)
void SetCallbackActionEnabled(bool b)
SwRowFrame is one table row in the document layout.
void AdjustCells(const SwTwips nHeight, const bool bHeight)
Adapts the Cells to the current height; invalidates the Cells if the Direction does not match the hei...
bool ShouldRowKeepWithNext(const bool bCheckParents=true) const
void DelEmpty(bool bRemove)
SwTwips Undersize()
Returns the size delta that the section would like to be greater if it has undersized TextFrames in i...
A section node represents the start of a section on the UI, i.e.
SwFrame * MakeFrame(SwFrame *)
const SwSection & GetSection() const
SwSectionFormat * GetFormat()
bool CalcHiddenFlag() const
class for collecting anchored objects
Starts a section of nodes in the document model.
SwTabFrame is one table in the document layout, containing rows (which contain cells).
SwTabFrame * FindMaster(bool bFirstMaster=false) const
SwFrame * FindLastContentOrTable()
const SwTable & GetTable() const
SwTabFrame * MakeFrame(SwFrame *)
void SwitchFormulasToInternalRepresentation()
Represents the visualization of a paragraph.
void Init()
This is public, as it needs to be called by some methods in order to save the Prepare USE WITH CAUTIO...
SwTwips GetBaseOffsetForFly(bool bIgnoreFlysAnchoredAtThisFrame) const
sw::MergedPara * GetMergedPara()
bool IsHiddenNow() const
Hidden.
SwTextNode * GetTextNodeFirst()
virtual bool Prepare(const PrepareHint ePrep=PrepareHint::Clear, const void *pVoid=nullptr, bool bNotify=true) override
SwContentFrame: the shortcut for the Frames If the void* casts wrongly, it's its own fault!...
SwTwips GetHeightOfLastLine() const
SwTextNode is a paragraph in the document model.
virtual sal_Int32 Len() const override
bool IsShowOutlineContentVisibilityButton() const
bool getBrowseMode() const
bool IsAction() const
SS for the Lay-/IdleAction and relatives.
void InvalidateAccessibleFrameContent(const SwFrame *pFrame)
Invalidate accessible frame's content.
SwLayAction & GetLayAction()
void MoveAccessibleFrame(const SwFrame *pFrame, const SwRect &rOldFrame)
vcl::RenderContext * GetOut() const
const SwViewOption * GetViewOptions() const
SwRootFrame * GetLayout() const
void InvalidateAccessibleParaFlowRelation(const SwTextFrame *_pFromTextFrame, const SwTextFrame *_pToTextFrame)
invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
void InvalidateWindows(const SwRect &rRect)
bool IsInConstructor() const
Bookkeeping helper for SwCache caching writer borders.
virtual bool get(DocumentSettingId id) const override
Return the specified document setting.
const bool m_wasAlreadySuppressed
FlyCreationSuppressor(bool isAlreadySuppressedAllowed=true)
ring_container GetRingContainer()
#define suppress_fun_call_w_exception(expr)
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper) override
EmbeddedObjectRef * pObject
@ Fixed
Frame cannot be moved in Var-direction.
void sw_RemoveFootnotes(SwFootnoteBossFrame *pBoss, bool bPageOnly, bool bEndNotes)
remove all footnotes (not the references) and all footnote pages
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_FONTSIZE(8)
constexpr TypedWhichId< SfxBoolItem > RES_RTL_GUTTER(139)
constexpr TypedWhichId< SwDrawFrameFormat > RES_DRAWFRMFMT(165)
constexpr TypedWhichId< SvxLRSpaceItem > RES_LR_SPACE(97)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
std::shared_ptr< SdrAllFillAttributesHelper > SdrAllFillAttributesHelperPtr
Dialog to specify the properties of date form field.
bool IsRightPageByNumber(SwRootFrame const &rLayout, sal_uInt16 nPageNum)
bool FrameContainsNode(SwContentFrame const &rFrame, SwNodeOffset nNodeIndex)
SwTextFrame * MakeTextFrame(SwTextNode &rNode, SwFrame *, sw::FrameMode eMode)
void RecreateStartTextFrames(SwTextNode &rNode)
std::unique_ptr< sw::MergedPara > CheckParaRedlineMerge(SwTextFrame &rFrame, SwTextNode &rTextNode, FrameMode eMode)
o3tl::strong_int< sal_Int32, struct Tag_SwNodeOffset > SwNodeOffset
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
SwContentNode * GetNode(SwPaM &rPam, bool &rbFirst, SwMoveFnCollection const &fnMove, bool const bInReadOnly, SwRootFrame const *const i_pLayout)
This function returns the next node in direction of search.
Marks a position in the document model.
Describes parts of multiple text nodes, which will form a text frame, even when redlines are hidden a...
@ FlyFrameAttributesChanged
bool IsSelectFrameAnchoredAtPara(SwPosition const &rAnchorPos, SwPosition const &rStart, SwPosition const &rEnd, DelContentType const nDelContentType)
is a fly anchored at paragraph at rAnchorPos selected?
bool IsDestroyFrameAnchoredAtChar(SwPosition const &rAnchorPos, SwPosition const &rStart, SwPosition const &rEnd, DelContentType const nDelContentType)
will DelContentIndex destroy a frame anchored at character at rAnchorPos?