20 #include <config_wasm_strip.h>
26 #include <osl/diagnose.h>
33 #include <section.hxx>
45 #include <viewimp.hxx>
60 void InvalidateFramePos(
SwFrame* pFrame,
bool bInCalcContent)
72 , m_pSection( &rSect )
73 , m_bFootnoteAtEnd(
false)
75 , m_bContentLock(
false)
76 , m_bOwnFootnoteNum(
false)
77 , m_bFootnoteLock(
false)
90 m_pSection( rSect.GetSection() ),
91 m_bFootnoteAtEnd( rSect.IsFootnoteAtEnd() ),
92 m_bEndnAtEnd( rSect.IsEndnAtEnd() ),
93 m_bContentLock(
false ),
94 m_bOwnFootnoteNum(
false ),
95 m_bFootnoteLock(
false )
125 assert(
GetUpper() &&
"SwSectionFrame::Init before insertion?!");
131 aRectFnSet.
SetWidth( aFrm, nWidth );
196 OSL_ENSURE( !bRemove,
"Don't delete locked SectionFrames" );
207 #if !ENABLE_WASM_STRIP_ACCESSIBILITY
210 if ( pViewShell && pViewShell->
GetLayout() &&
216 pNext ? pNext->DynCastTextFrame() :
nullptr,
217 pPrev ? pPrev->DynCastTextFrame() : nullptr );
267 OSL_ENSURE(
GetUpper(),
"Cut without Upper()." );
283 pFrame = static_cast<SwSectionFrame*>(pFrame)->ContainsAny();
296 if (
nullptr != pFrame )
332 if( nFrameHeight <= 0 )
344 pUp->
Shrink( nFrameHeight );
349 OSL_ENSURE( pParent,
"No parent for Paste()." );
350 OSL_ENSURE( pParent->
IsLayoutFrame(),
"Parent is ContentFrame." );
351 OSL_ENSURE( pParent !=
this,
"I'm my own parent." );
352 OSL_ENSURE( pSibling !=
this,
"I'm my own neighbour." );
354 "I am still registered somewhere." );
381 while( !pSibling &&
nullptr != ( pCol = static_cast<SwColumnFrame*>(pCol->
GetNext()) ) )
382 pSibling = static_cast<SwLayoutFrame*>(pCol->
Lower())->
Lower();
389 while (
nullptr != ( pCol = static_cast<SwColumnFrame*>(pCol->
GetNext()) ) )
414 if( !static_cast<SwLayoutFrame*>(pParent)->Lower() )
437 pParent->
Grow( nFrameHeight );
466 if( pTmp == pOtherFormat )
498 pLast = pLay->
Lower();
521 assert(pFrame &&
"SplitSect: Why?");
530 OSL_ENSURE( pSav,
"SplitSect: What's on?" );
537 aRectFnSet.
MakePos( *pNew,
nullptr, pSect,
true );
546 pLay = static_cast<SwLayoutFrame*>(pLay->
Lower());
592 return const_cast<SwContentFrame*>(static_cast<const SwContentFrame*>(pLay->
GetNext()));
597 return const_cast<SwContentFrame*>(static_cast<const SwContentFrame*>(pLay->
GetPrev()));
602 bool bGoingUp =
true;
605 bool bGoingFwdOrBwd =
false;
611 bGoingDown =
nullptr != p;
616 ( bFwd ?
static_cast<const SwFlyFrame*
>(pFrame)->GetNextLink() :
static_cast<const SwFlyFrame*
>(pFrame)->GetPrevLink() ) :
618 bGoingFwdOrBwd =
nullptr != p;
619 if ( !bGoingFwdOrBwd )
622 bGoingUp =
nullptr != p;
628 bGoingUp = !( bGoingFwdOrBwd || bGoingDown );
630 if (!bFwd && bGoingDown)
637 return pContentFrame;
650 bool CanContainSplitSection(
const SwFrame* pFrame)
683 if( pDel->
IsInTab() && pParent )
700 pPrvSct = pPrvContent ? pPrvContent->
FindSctFrame() :
nullptr;
702 pNxtSct = pNxtContent ? pNxtContent->
FindSctFrame() :
nullptr;
707 pPrvSct = pNxtSct =
nullptr;
712 bool bOldFootnote =
true;
722 if( pNxtSct && pNxtSct->
GetFormat() == pParent )
724 pUp = FirstLeaf( pNxtSct );
726 if( pPrvSct && ( pPrvSct->
GetFormat() != pParent ) )
729 else if( pPrvSct && pPrvSct->
GetFormat() == pParent )
755 aRectFnSet.
MakePos( *pPrvSct, pUp, pPrv,
true );
756 pUp = FirstLeaf( pPrvSct );
774 OSL_ENSURE( pNxtSct,
"MoveContent: No Merge" );
786 OSL_ENSURE(
getRootFrame()->IsInDelList(
this ),
"SectionFrame without Section" );
802 pNext->InvalidatePos();
827 bool bCanContainSplitSection =
false;
829 bCanContainSplitSection = CanContainSplitSection(
GetUpper());
861 pLower->
Calc(pRenderContext);
871 OSL_FAIL(
"Oops, where is my tinfoil hat?" );
880 if(
auto pNewFormat = dynamic_cast< const SwSectionFormat *>( pFormat->
GetRegisteredIn()) )
881 pFormat = pNewFormat;
889 SwFrame* pFrame,
bool &rbChkFootnote )
896 while( !rpContentFrame && pFrame )
899 rpContentFrame = static_cast<SwContentFrame*>(pFrame);
912 static_cast<SwLayoutFrame*>(pFrame)->
Lower(), rbChkFootnote );
936 pSect = static_cast<SwSectionFrame*>(pTmp);
981 "InsertEndnotes: Where's my column?" );
986 pCol = static_cast<SwColumnFrame*>(pSect->
Lower());
1018 pSect = pLayouter ? pSect->
GetFollow() :
nullptr;
1038 pCol->
Calc(pRenderContext);
1054 OSL_ENSURE(
IsColLocked(),
"CollectEndnotes: You love the risk?" );
1060 bool bEmpty =
false;
1064 while(
nullptr != (pFootnote =
lcl_FindEndnote( pSect, bEmpty, pLayouter )) )
1094 if( aRectFnSet.
IsVert() )
1107 bool bExtraCalc =
false;
1111 bool bEmpty =
false;
1125 if ( !(bCalc || bExtraCalc) )
1136 aRectFnSet.
SetBottom( aFrm, nDeadLine );
1147 bool bHeightChanged = aRectFnSet.
IsVert() ?
1157 if ( !(( bHeightChanged || bExtraCalc ) &&
Lower()) )
1193 aRectFnSet.
SetBottom( aFrm, nDeadLine );
1198 if( nTop > nHeight )
1210 class ExtraFormatToPositionObjs
1214 bool mbExtraFormatPerformed;
1218 : mpSectFrame( &_rSectFrame ),
1219 mbExtraFormatPerformed(
false )
1222 ~ExtraFormatToPositionObjs()
1224 if ( !mbExtraFormatPerformed )
1234 if ( mpSectFrame->
IsAnLower( pAnchoredObj->GetAnchorFrame() ) )
1236 pAnchoredObj->SetKeepPosLocked(
false );
1243 void InitObjs(
SwFrame& rFrame )
1250 pAnchoredObj->UnlockPosition();
1251 pAnchoredObj->SetClearedEnvironment(
false );
1257 while ( pLowerFrame !=
nullptr )
1259 InitObjs( *pLowerFrame );
1261 pLowerFrame = pLowerFrame->
GetNext();
1266 void FormatSectionToPositionObjs()
1282 aRectFnSet.AddBottom( aFrm, nDiff );
1285 aRectFnSet.SetYMargins( *mpSectFrame, nTopMargin, 0 );
1298 pColFrame->
Calc(pRenderContext);
1299 pColFrame->
Lower()->
Calc(pRenderContext);
1313 InitObjs( *mpSectFrame );
1327 if ( mpSectFrame->
IsAnLower( pAnchoredObj->GetAnchorFrame() ) )
1329 pAnchoredObj->SetKeepPosLocked(
true );
1334 mbExtraFormatPerformed =
true;
1347 OSL_ENSURE(
getRootFrame()->IsInDelList(
this ),
"SectionFrame without Section" );
1399 ExtraFormatToPositionObjs aExtraFormatToPosObjs( *
this );
1404 aExtraFormatToPosObjs.FormatSectionToPositionObjs();
1420 aRectFnSet.
SetWidth( aFrm, nWidth );
1440 if ( bHasColumns && !
Lower()->
GetNext() && bMaximize )
1474 pFrame->
Calc(pRenderContext);
1476 pFrame->
Calc(pRenderContext);
1496 nBottom = aRectFnSet.
YInc( nBottom, -nDiff );
1501 nDeadLine = aRectFnSet.
YInc( nDeadLine, nTmpDiff );
1502 nTmpDiff = aRectFnSet.
YDiff( nBottom, nDeadLine );
1533 pFrame->
Calc(pRenderContext);
1535 pFrame->
Calc(pRenderContext);
1539 bool bUnderSz =
false;
1598 bool bWrongPage =
false;
1599 assert(pSect &&
"GetNextSctLeaf: Missing SectionFrame");
1634 if( pUp == pTmp || pUp->
GetNext() == pTmpX )
1648 std::vector<SwFrame *> parents;
1651 parents.push_back(pTmp);
1661 bool bLayLeafTableAllowed =
false;
1676 SAL_WARN(
"sw.layout",
"section is in table, but the table is not split");
1686 SwFrame *
const pTmpCnt =
static_cast<SwTabFrame*
>(
this)->FindLastContentOrTable();
1687 pLayLeaf = pTmpCnt ? pTmpCnt->
GetUpper() :
nullptr;
1689 else if (pCellLeaf && CanContainSplitSection(
this))
1693 pLayLeaf = pCellLeaf;
1695 SAL_WARN(
"sw.layout",
"my table frame and my follow's table frame is the same");
1697 bLayLeafTableAllowed =
true;
1704 while( pLayLeaf && static_cast<SwColumnFrame*>(
this)->IsAnLower( pLayLeaf ) )
1729 (pLayLeaf->
IsInTab() && !bLayLeafTableAllowed) ||
1734 pOldLayLeaf = pLayLeaf;
1748 pOldLayLeaf =
nullptr;
1760 if (pCellLeaf && CanContainSplitSection(
this))
1765 pLayLeaf = pCellLeaf;
1795 aRectFnSet.
MakePos( *pNew, pLayLeaf,
nullptr,
true );
1800 auto iter(parents.begin());
1801 if (parents.size() >= 2 &&
1802 parents[0]->IsBodyFrame() && parents[1]->IsColumnFrame())
1806 std::advance(iter, +2);
1811 && parents[0]->IsColumnFrame())
1814 std::advance(iter, +1);
1821 for ( ; iter != parents.end(); ++iter)
1825 if ((*iter)->IsColumnFrame() &&
1826 (iter + 1) != parents.end() && (*(iter + 1))->IsBodyFrame())
1832 assert(pTmp->
GetType() == (*iter)->GetType());
1840 SwCellFrame const*
const pNewF(static_cast<SwCellFrame*>(pTmp));
1841 SwCellFrame const*
const pOldF(static_cast<SwCellFrame*>(*iter));
1842 bool bFollowFound(
false);
1846 if (pOldIter == pNewF)
1848 bFollowFound =
true;
1852 assert(bFollowFound);
1858 bool bFollowFound(
false);
1860 pOldIter; pOldIter = pOldIter->
GetFollow())
1862 if (pOldIter == pNewF)
1864 bFollowFound =
true;
1868 assert(bFollowFound);
1872 assert(pTmp ==
nullptr
1883 if( pTmp && pTmp != pSect->
GetFollow() )
1894 pNxtContent =
static_cast<SwLayoutFrame*
>(pTmp)->ContainsContent();
1896 pNxt = static_cast<SwSectionFrame*>(pTmp);
1902 while( !pNxtContent &&
nullptr != ( pTmp = pTmp->
GetNext() ) )
1905 pNxtContent = static_cast<SwContentFrame*>(pTmp);
1907 pNxtContent =
static_cast<SwLayoutFrame*
>(pTmp)->ContainsContent();
1927 pLayLeaf = pNew ? FirstLeaf(pNew) :
nullptr;
1954 if( static_cast<SwLayoutFrame*>(pCol->
Lower())->
Lower() )
1975 if (!pCol && pSect &&
IsInTab() && CanContainSplitSection(
this))
1982 if (pPrecede->GetFrame().IsLayoutFrame())
1983 pCol = static_cast<SwLayoutFrame*>(&pPrecede->GetFrame());
1991 OSL_ENSURE( pSect,
"GetNextSctLeaf: Missing SectionFrame" );
2014 while( pPrv && pPrv->IsSctFrame() && !
static_cast<SwSectionFrame*
>(pPrv)->GetSection() )
2057 pPrevLeaf = pLayLeaf;
2071 pLayLeaf = pPrevLeaf;
2084 while( !static_cast<SwSectionFrame*>(pTmp)->GetSection() && pTmp->
GetPrev() &&
2087 if( static_cast<SwSectionFrame*>(pTmp)->GetFollow() == pSect )
2099 pLayLeaf = FirstLeaf( pNew );
2100 if( !pNew->
Lower() )
2110 pLayLeaf = FirstLeaf( pNew );
2119 if( pLayLeaf->
Lower() )
2123 if( pLayLeaf != pTmpLay )
2136 while( pUp && pUp->
IsInSct() )
2168 if( nFrameHeight > 0 && nDist > (
LONG_MAX - nFrameHeight) )
2198 if( !bInCalcContent && nGrow < nDist &&
GetUpper() )
2209 if( bInCalcContent )
2217 if( bInCalcContent )
2219 else if( nSpace < nGrow && nDist != nSpace +
GetUpper()->
2220 Grow( nGrow - nSpace ) )
2243 aRectFnSet.
SetHeight( aPrt, nPrtHeight );
2266 InvalidateFramePos(pFrame, bInCalcContent);
2271 InvalidateFramePos(pFrame, bInCalcContent);
2288 if( bInCalcContent )
2310 if ( nDist > nFrameHeight )
2311 nDist = nFrameHeight;
2339 aRectFnSet.
SetHeight( aPrt, nPrtHeight );
2434 if( pBody && pBody->
Lower() )
2468 OSL_ENSURE(
IsInSct(),
"Why?" );
2483 if( static_cast<const SwLayoutFrame*>(static_cast<const SwLayoutFrame*>(pCol)->
Lower())->Lower() )
2512 if( static_cast<SwLayoutFrame*>(static_cast<SwLayoutFrame*>(pCol)->
Lower())->Lower() )
2526 while( pFormat != pMyFormat )
2528 if(
auto pNewFormat = dynamic_cast< const SwSectionFormat *>( pMyFormat->
GetRegisteredIn()) )
2529 pMyFormat = pNewFormat;
2545 if(
auto pNewFormat = dynamic_cast<SwSectionFormat *>( pFormat->
GetRegisteredIn()) )
2546 pFormat = pNewFormat;
2570 if(
auto pNewFormat = dynamic_cast<SwSectionFormat *>( pFormat->
GetRegisteredIn()) )
2571 pFormat = pNewFormat;
2587 if (rHint.
GetId() == SfxHintId::SwLegacyModify)
2593 auto& rOldSetChg = *
static_cast<const SwAttrSetChg*
>(pLegacy->m_pOld);
2594 auto& rNewSetChg = *
static_cast<const SwAttrSetChg*
>(pLegacy->m_pNew);
2603 UpdateAttr_(pOItem, pNItem, eInvFlags, &aOldSet, &aNewSet);
2604 pNItem = aNIter.NextItem();
2605 pOItem = aOIter.NextItem();
2611 UpdateAttr_(pLegacy->m_pOld, pLegacy->m_pNew, eInvFlags);
2621 else if(
const auto pHint = dynamic_cast<const SwSectionFrameMoveAndDeleteHint*>(&rHint))
2637 const sal_uInt16 nWhich = pOld ? pOld->
Which() : pNew ? pNew->
Which() : 0;
2651 sal_uInt16 nCol = 0;
2657 aCol.
Init( nCol, 0, 1000 );
2678 assert(pOld && pNew);
2681 ChgColumns( *static_cast<const SwFormatCol*>(pOld), *static_cast<const SwFormatCol*>(pNew) );
2725 #if !ENABLE_WASM_STRIP_ACCESSIBILITY
2740 if ( pOldSet || pNewSet )
2771 return nullptr != pCont;
2773 while( pCont && !bRet )
2791 OSL_ENSURE(
IsAnLower( pLay ),
"ContainsFootnoteCont: Wrong FootnoteContainer" );
2795 pLay = static_cast<const SwLayoutFrame*>(
Lower());
2798 while ( !pRet && pLay )
2803 "ToMaximize: Unexpected Frame" );
2807 "ToMaximize: ColFrame expected" );
2834 return nRet <= 0 ? 0 : nRet;
2846 pCont->
Calc(pRenderContext);
2851 pFootnote->
Calc(pRenderContext);
2852 pFrame->
Calc(pRenderContext);
2893 "DeleteEmptySct: Locked SectionFrame" );
2900 if( pUp && !pUp->
Lower() )
2913 OSL_ENSURE( pSect->
GetSection(),
"DeleteEmptySct: Half-dead SectionFrame?!" );
2920 assert(
mpDestroy &&
"Where's my list?");
void InsertBefore(SwLayoutFrame *pParent, SwFrame *pBehind)
Insert SwFrame into existing structure.
bool IsAnLower(const SwFrame *) const
vcl::RenderContext * GetOut() const
SwFrame * FindFooterOrHeader()
SwSectionFrame * FindMaster() const
constexpr TypedWhichId< SvxProtectItem > RES_PROTECT(100)
Base class of the Writer layout elements.
Base class that provides the general functionalities for frames that are allowed at page breaks (flow...
Represents the visualization of a paragraph.
constexpr TypedWhichId< SvxFrameDirectionItem > RES_FRAMEDIR(120)
constexpr TypedWhichId< SwFormatEndAtTextEnd > RES_END_AT_TXTEND(118)
void InvalidateInfFlags()
static void lcl_InvalidateInfFlags(SwFrame *pFrame, bool bInva)
|* MoveContent is called for destroying a SectionFrames, due to |* the cancellation or hiding of a se...
void CalcFootnoteAtEndFlag()
virtual void SwClientNotify(const SwModify &, const SfxHint &) override
bool MoveAllowed(const SwFrame *) const
SwTwips Shrink_(SwTwips, bool bTst)
const SwSortedObjs * GetDrawObjs() const
void RemoveFromList(SwSectionFrame *pSct)
virtual ~SwSectionFrame() override
SwTwips Grow(SwTwips, bool bTst=false, bool bInfo=false)
virtual void Format(vcl::RenderContext *pRenderContext, const SwBorderAttrs *pAttrs=nullptr) override
"Formats" the Frame; Frame and PrtArea.
static void SetMoveBwdJump(bool bNew)
tools::Long BottomDist(const SwRect &rRect, tools::Long nPos) const
bool IsAnyShellAccessible() const
void DelEmpty(bool bRemove)
const SvxBrushItem & GetBackground(bool=true) const
virtual void Format(vcl::RenderContext *pRenderContext, const SwBorderAttrs *pAttrs=nullptr) override
"formats" the frame; Frame and PrtArea
constexpr TypedWhichId< SwFormatChg > RES_FMT_CHG(162)
bool SplitSect(SwFrame *pFrame, bool bApres)
Splits the SectionFrame surrounding the pFrame up in two parts: pFrame and the start of the 2nd part...
constexpr TypedWhichId< SwFormatCol > RES_COL(109)
bool IsBefore(const SwLayoutFrame *_pCheckRefLayFrame) const
method to check relative position of layout frame to a given layout frame.
void InvalidateFootnotePos()
void SetCompletePaint() const
bool IsInFootnote() const
virtual bool Prepare(const PrepareHint ePrep=PrepareHint::Clear, const void *pVoid=nullptr, bool bNotify=true)
void FormatWidthCols(const SwBorderAttrs &, const SwTwips nBorder, const SwTwips nMinHeight)
Called by Format for Frames and Areas with columns.
SwFrameType GetType() const
void SetDerivedR2L(bool bNew)
#define PROTOCOL(pFrame, nFunc, nAct, pPar)
-""- and with own numberformat
tools::Long GetRight() const
const SwRect & getFramePrintArea() const
SwTabFrame is one table in the document layout, containing rows (which contain cells).
void UpdateAttr_(const SfxPoolItem *, const SfxPoolItem *, SwSectionFrameInvFlags &, SwAttrSetChg *pa=nullptr, SwAttrSetChg *pb=nullptr)
bool IsSuperfluous() const
SwTwips Undersize()
Returns the size delta that the section would like to be greater if it has undersized TextFrames in i...
virtual void Notify(SfxHint const &rHint) override
SwSectionFormat * GetFormat()
static void DestroyFrame(SwFrame *const pFrame)
this is the only way to delete a SwFrame instance
virtual void DestroyImpl() override
virtual void Calc(vcl::RenderContext *pRenderContext) const
bool IsFootnotePage() const
Foot note interface.
tools::Long GetWidth(const SwRect &rRect) const
static SwFlowFrame * CastFlowFrame(SwFrame *pFrame)
void AddBottom(SwRect &rRect, tools::Long nNew) const
The root element of a Writer document layout.
bool HasToBreak(const SwFrame *pFrame) const
|* Here it's decided whether the this-SectionFrame should break up |* the passed (Section)frm (or not...
css::chart::ChartAxisLabelPosition ePos
bool IsFootnoteFrame() const
void SetXMargins(SwFrame &rFrame, tools::Long nLeft, tools::Long nRight) const
bool ToMaximize(bool bCheckFollow) const
A sectionfrm has to maximize, if he has a follow or a ftncontainer at the end of the page...
bool isFrameAreaDefinitionValid() const
SwLayoutFrame * GetPrevSctLeaf()
Returns the preceding layout sheet where the frame can be moved into.
void CheckDirChange()
checks the layout direction and invalidates the lower frames recursively, if necessary.
tools::Long GetTop(const SwRect &rRect) const
constexpr tools::Long Width() const
SwTwips CalcUpperSpace(const SwBorderAttrs *pAttrs=nullptr, const SwFrame *pPr=nullptr, const bool _bConsiderGrid=true) const
method to determine the upper space hold by the frame
void ChgLowersProp(const Size &rOldSize)
Change size of lowers proportionally.
void SetBottom(SwRect &rRect, tools::Long nNew) const
wrapper class for the positioning of Writer fly frames and drawing objects
friend SwFrame * SaveContent(SwLayoutFrame *, SwFrame *)
SvxGraphicPosition GetGraphicPos() const
SwTwips Grow_(SwTwips, bool bTst)
const SwLayoutFrame * GetPrevLayoutLeaf() const
const SwRect & getFrameArea() const
bool getBrowseMode() const
SwLayoutFrame * GetNextLeaf(MakePageType eMakePage)
Returns the next layout leaf in which we can move the frame.
void CollectEndnote(SwFootnoteFrame *pFootnote)
static SwTwips lcl_DeadLine(const SwFrame *pFrame)
void RemoveFromList_(SwSectionFrame *pSct)
virtual bool ShouldBwdMoved(SwLayoutFrame *pNewUpper, bool &rReformat) override
const SwContentFrame * FindLastContent() const
static SwFootnoteFrame * lcl_FindEndnote(SwSectionFrame *&rpSect, bool &rbEmpty, SwLayouter *pLayouter)
CollectEndnotes looks for endnotes in the sectionfrm and his follows, the endnotes will cut off the l...
void SetSuperfluous()
Remove superfluous Pages.
void Width(tools::Long nNew)
static void lcl_FindContentFrame(SwContentFrame *&rpContentFrame, SwFootnoteFrame *&rpFootnoteFrame, SwFrame *pFrame, bool &rbChkFootnote)
void setFramePrintAreaValid(bool bNew)
bool IsPageBodyFrame() const
SwFlyFrame * FindFlyFrame()
virtual void DestroyImpl() override
SwFrame * GetIndPrev_() const
Called for a frame inside a section with no direct previous frame (or only previous empty section fra...
SwTwips CalcUndersize() const
static void MoveContentAndDelete(SwSectionFrame *pDel, bool bSave)
SwLayoutFrame * GetNextCellLeaf()
SwLayoutFrame * GetNextSctLeaf(MakePageType eMakePage)
Returns the next layout sheet where the frame can be moved in.
bool IsDescendantFrom(const SwSectionFormat *pSect) const
const SwAttrSet * GetAttrSet() const
WARNING: this may not return correct RES_PAGEDESC/RES_BREAK items for SwTextFrame, use GetBreakItem()/GetPageDescItem() instead.
void InvalidateContent() const
void SetUndersized(const bool bNew)
bool IsColumnFrame() const
SwFootnoteFrame * FindFootnoteFrame()
static SwContentFrame * lcl_GetNextContentFrame(const SwLayoutFrame *pLay, bool bFwd)
bool IsBalancedSection() const
bool IsContentFrame() const
SwFrame * GetIndPrev() const
const SwSortedObjs * GetSortedObjs() const
sw::BroadcastingModify * GetDep()
use these so we can grep for SwFrame's GetRegisteredIn accesses beware that SwTextFrame may return sw...
tools::Long GetPrtBottom(const SwFrame &rFrame) const
const SwFrame * GetLastLower() const
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr) override
SwTwips InnerHeight() const
InnerHeight returns the height of the content and may be bigger or less than the PrtArea-Height of th...
virtual void MakeAll(vcl::RenderContext *pRenderContext) override
const SwSectionFrame * GetFollow() const
SwPageFrame * FindPageFrame()
virtual bool IsDeleteForbidden() const
virtual void Cut() override
tools::Long YInc(tools::Long n1, tools::Long n2) const
const SwFrame * Lower() const
SwContentFrame * FindNextCnt(const bool _bInSameFootnote=false)
virtual void SwClientNotify(const SwModify &, const SfxHint &) override
void InvalidatePage(const SwPageFrame *pPage=nullptr) const
Invalidates the page in which the Frame is currently placed.
tools::Long GetHeight(const SwRect &rRect) const
bool IsJoinLocked() const
void ChgColumns(const SwFormatCol &rOld, const SwFormatCol &rNew, const bool bChgFootnote=false)
add or remove columns from a layoutframe.
void SetFollow(SwFlowFrame *const pFollow)
tools::Long GetLeft() const
SwLayoutFrame * GetUpper()
void InsertEmptySct(SwSectionFrame *pDel)
Empty SwSectionFrames are registered here for deletion and destroyed later on or deregistered.
constexpr TypedWhichId< SwAttrSetChg > RES_ATTRSET_CHG(163)
bool isFramePrintAreaValid() const
bool IsUndersized() const
SwFootnoteBossFrame * FindFootnoteBossFrame(bool bFootnotes=false)
friend void RestoreContent(SwFrame *, SwLayoutFrame *, SwFrame *pSibling)
tools::Long GetTopMargin(const SwFrame &rFrame) const
bool isFrameAreaPositionValid() const
tools::Long YDiff(tools::Long n1, tools::Long n2) const
void SSize(const Size &rNew)
bool StartListening(SvtBroadcaster &rBroadcaster)
bool isFrameAreaSizeValid() const
bool InsertGroupBefore(SwFrame *pParent, SwFrame *pWhere, SwFrame *pSct)
Insert a chain of SwFrames into an existing structure.
SwCellFrame * GetFollowCell() const
A page of the document layout.
const SwFormatFootnote & GetFootnote() const
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper) override
SwTwips Shrink(SwTwips, bool bTst=false, bool bInfo=false)
SwSectionFrame * FindSctFrame()
void InvalidateAccessibleParaFlowRelation(const SwTextFrame *_pFromTextFrame, const SwTextFrame *_pToTextFrame)
invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
void CollectEndnotes(SwLayouter *pLayouter)
SvtBroadcaster & GetNotifier()
void setFrameAreaPositionValid(bool bNew)
static void lcl_ColumnRefresh(SwSectionFrame *pSect, bool bFollow)
bool IsLayoutFrame() const
T saturating_add(T a, T b)
bool Growable() const
checks whether the SectionFrame is still able to grow, as case may be the environment has to be asked...
void SetYMargins(SwFrame &rFrame, tools::Long nTop, tools::Long nBottom) const
const SwFlowFrame * GetPrecede() const
void SetWidth(SwRect &rRect, tools::Long nNew) const
tools::Long const nTopMargin
void MoveSubTree(SwLayoutFrame *pParent, SwFrame *pSibling=nullptr)
hook tree onto new parent with minimal operations and notifications
general base class for all free-flowing frames
#define SAL_WARN_IF(condition, area, stream)
constexpr tools::Long Height() const
bool MoveLowerFootnotes(SwContentFrame *pStart, SwFootnoteBossFrame *pOldBoss, SwFootnoteBossFrame *pNewBoss, const bool bFootnoteNums)
Moving the Footnotes of all Lowers - starting from StartContent.
const SwSectionFormat * GetEndSectFormat_() const
friend void CalcContent(SwLayoutFrame *pLay, bool bNoColl)
const SwViewOption * GetViewOptions() const
const SwFrame * ContainsAny(const bool _bInvestigateFootnoteForSections=false) const
Method doesn't investigate content of footnotes by default.
constexpr TypedWhichId< SwFormatNoBalancedColumns > RES_COLUMNBALANCE(119)
void InsertBehind(SwLayoutFrame *pParent, SwFrame *pBefore)
Insert SwFrame into existing structure.
const SwSectionFormat * GetEndSectFormat() const
void SetHeight(SwRect &rRect, tools::Long nNew) const
bool IsAnyNoteAtEnd() const
void InvalidateNextPos(bool bNoFootnote=false)
void Top(const tools::Long nTop)
const SwModify * GetRegisteredIn() const
bool IsColBodyFrame() const
These SwFrame inlines are here, so that frame.hxx does not need to include layfrm.hxx.
void setFrameAreaSizeValid(bool bNew)
void CheckClipping(bool bGrow, bool bMaximize)
Adapt size to surroundings.
virtual void Cut() override
-""- and with own number sequence
void CalcFootnoteContent()
bool IsContentLocked() const
void MakePos(SwFrame &rFrame, const SwFrame *pUp, const SwFrame *pPrv, bool bNotify) const
void InvalidateAccessibleEditableState(bool bAllShells, const SwFrame *pFrame=nullptr)
Invalidate editable state for all accessible frames.
tools::Long GetBottom(const SwRect &rRect) const
SwFootnoteContFrame * ContainsFootnoteCont(const SwFootnoteContFrame *pCont=nullptr) const
Check every Column for FootnoteContFrames.
void ClearItem(sal_uInt16 nWhichL)
#define SAL_WARN(area, stream)
void SetLeft(SwRect &rRect, tools::Long nNew) const
bool IsFootnoteAtEnd() const
bool IsInDelList(SwSectionFrame *pSct) const
void AdjustColumns(const SwFormatCol *pCol, bool bAdjustAttributes)
SwContentFrame * FindPrevCnt()
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame...
void MergeNext(SwSectionFrame *pNxt)
|* Merges two SectionFrames, in case it's about the same section.
const SwLayoutFrame * GetNextLayoutLeaf() const
bool IsEndnoteAtMyEnd() const
SwPageFrame * InsertPage(SwPageFrame *pSibling, bool bFootnote)
bool CalcMinDiff(SwTwips &rMinDiff) const
bool IsFootnoteContFrame() const
bool WrongPageDesc(SwPageFrame *pNew)
const SwContentFrame * ContainsContent() const
Checks if the frame contains one or more ContentFrame's anywhere in his subsidiary structure; if so t...
SwSectionFrame(SwSection &, SwFrame *)
SwRootFrame * GetLayout() const
const SwFlowFrame * GetFollow() const
virtual void MakeAll(vcl::RenderContext *pRenderContext) override
SwViewShell * GetCurrShell() const
class for collecting anchored objects
void Height(tools::Long nNew)
constexpr TypedWhichId< SwFormatFootnoteAtTextEnd > RES_FTN_AT_TXTEND(117)
bool IsFooterFrame() const
SwRootFrame * getRootFrame()
SwCellFrame is one table cell in the document layout.
std::unique_ptr< SwDestroyList > mpDestroy
bool IsHeaderFrame() const
virtual const SwFrameFormat * GetFormat() const
bool m_bDetectedRangeSegmentation false
#define PROTOCOL_ENTER(pFrame, nFunc, nAct, pPar)
SwTabFrame * FindTabFrame()