20#include <config_wasm_strip.h>
26#include <osl/diagnose.h>
60void InvalidateFramePos(
SwFrame* pFrame,
bool bInCalcContent)
71 , SwFlowFrame( static_cast<
SwFrame&>(*this) )
72 , m_pSection( &rSect )
73 , m_bFootnoteAtEnd(false)
75 , m_bContentLock(false)
76 , m_bOwnFootnoteNum(false)
77 , m_bFootnoteLock(false)
89 SwFlowFrame( static_cast<
SwFrame&>(*this) ),
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 )
107 pMaster->SetFollow(
this );
113 rSect.SetFollow(
this );
125 assert(
GetUpper() &&
"SwSectionFrame::Init before insertion?!");
131 aRectFnSet.
SetWidth( aFrm, nWidth );
178 else if( HasFollow() )
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()." );
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." );
437 pParent->
Grow( nFrameHeight );
439 if (
GetPrev() && !IsFollow() )
466 if( pTmp == pOtherFormat )
498 pLast = pLay->
Lower();
507 pNxt->SetFollow(
nullptr );
521 assert(pFrame &&
"SplitSect: Why?");
530 OSL_ENSURE( pSav,
"SplitSect: What's on?" );
537 aRectFnSet.
MakePos( *pNew,
nullptr, pSect,
true );
553 SetFollow(
nullptr );
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)
631 while (
p->GetNext() )
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 );
772 if( pPrvSct && !pPrvSct->IsJoinLocked() )
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 )
928 while( pSect->HasFollow() )
981 "InsertEndnotes: Where's my column?" );
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() )
1101 SetUndersized( !bMaximize && nDiff >= 0 );
1102 const bool bCalc = ( IsUndersized() || bMaximize ) &&
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 )
1210class 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" );
1361 SwTwips nUpper = CalcUpperSpace();
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);
1486 bMaximize = HasFollow();
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;
1571 if( IsUndersized() )
1598 bool bWrongPage =
false;
1599 assert(pSect &&
"GetNextSctLeaf: Missing SectionFrame");
1630 !( pUp = pUp->
GetUpper() )->GetPrev() )
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) ||
1730 ( pLayLeaf->
IsInSct() && ( !pSect->HasFollow()
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());
1842 bool bFollowFound(
false);
1846 if (pOldIter == pNewF)
1848 bFollowFound =
true;
1852 assert(bFollowFound);
1856 SwFlowFrame const*
const pNewF(SwFlowFrame::CastFlowFrame(pTmp));
1857 SwFlowFrame const*
const pOldF(SwFlowFrame::CastFlowFrame(*iter));
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();
1902 while( !pNxtContent &&
nullptr != ( pTmp = pTmp->
GetNext() ) )
1907 pNxtContent =
static_cast<SwLayoutFrame*
>(pTmp)->ContainsContent();
1921 pNxt->MoveSubTree( pLayLeaf, pNew->
GetNext() );
1927 pLayLeaf = pNew ? FirstLeaf(pNew) :
nullptr;
1957 SwFlowFrame::SetMoveBwdJump(
true );
1972 SwFlowFrame::SetMoveBwdJump(
true );
1975 if (!pCol && pSect &&
IsInTab() && CanContainSplitSection(
this))
1982 if (pPrecede->GetFrame().IsLayoutFrame())
1991 OSL_ENSURE( pSect,
"GetNextSctLeaf: Missing SectionFrame" );
2057 pPrevLeaf = pLayLeaf;
2060 SwFlowFrame::SetMoveBwdJump(
true );
2071 pLayLeaf = pPrevLeaf;
2099 pLayLeaf = FirstLeaf( pNew );
2100 if( !pNew->
Lower() )
2110 pLayLeaf = FirstLeaf( pNew );
2119 if( pLayLeaf->
Lower() )
2123 if( pLayLeaf != pTmpLay )
2126 SwFlowFrame::SetMoveBwdJump(
true );
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?" );
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);
2611 UpdateAttr_(pLegacy->m_pOld, pLegacy->m_pNew, eInvFlags);
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);
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" );
2798 while ( !pRet && pLay )
2803 "ToMaximize: Unexpected Frame" );
2807 "ToMaximize: ColFrame expected" );
2833 m_bUndersized = (nRet > 0);
2834 return nRet <= 0 ? 0 : nRet;
2846 pCont->
Calc(pRenderContext);
2851 pFootnote->
Calc(pRenderContext);
2852 pFrame->
Calc(pRenderContext);
2892 OSL_ENSURE( !pSect->
IsColLocked() && !pSect->IsJoinLocked(),
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?");
css::chart::ChartAxisLabelPosition ePos
@ CONSIDER_WRAP_ON_OBJECT_POSITION
const SfxPoolItem * GetCurItem() const
const SfxPoolItem * NextItem()
constexpr tools::Long Height() const
constexpr tools::Long Width() const
bool StartListening(SvtBroadcaster &rBroadcaster)
SvxGraphicPosition GetGraphicPos() const
tools::Long GetRight() const
tools::Long GetLeft() const
wrapper class for the positioning of Writer fly frames and drawing objects
void ClearItem(sal_uInt16 nWhichL)
const SvxBrushItem & GetBackground(bool=true) const
SwCellFrame is one table cell in the document layout.
SwCellFrame * GetFollowCell() const
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
general base class for all free-flowing frames
const SwRect & getFrameArea() const
bool isFrameAreaDefinitionValid() const
bool isFrameAreaPositionValid() const
const SwRect & getFramePrintArea() const
void setFramePrintAreaValid(bool bNew)
void setFrameAreaPositionValid(bool bNew)
bool isFramePrintAreaValid() const
bool isFrameAreaSizeValid() const
void setFrameAreaSizeValid(bool bNew)
Base class of the Writer layout elements.
SwTwips Grow(SwTwips, bool bTst=false, bool bInfo=false)
void InvalidateInfFlags()
bool IsFootnoteContFrame() const
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)
void SetDerivedR2L(bool bNew)
SwFrame * GetIndPrev() const
void CheckDirChange()
checks the layout direction and invalidates the lower frames recursively, if necessary.
SwTwips Shrink(SwTwips, bool bTst=false, bool bInfo=false)
SwFlyFrame * FindFlyFrame()
SwSectionFrame * FindSctFrame()
SwContentFrame * FindPrevCnt()
SwTabFrame * FindTabFrame()
bool InsertGroupBefore(SwFrame *pParent, SwFrame *pWhere, SwFrame *pSct)
Insert a chain of SwFrames into an existing structure.
SwLayoutFrame * GetNextSctLeaf(MakePageType eMakePage)
Returns the next layout sheet where the frame can be moved in.
bool IsColumnFrame() const
void InvalidateNextPos(bool bNoFootnote=false)
SwFrameType GetType() const
bool IsInFootnote() const
bool IsHeaderFrame() const
SwPageFrame * InsertPage(SwPageFrame *pSibling, bool bFootnote)
virtual void Calc(vcl::RenderContext *pRenderContext) const
const SwSortedObjs * GetDrawObjs() const
virtual void SwClientNotify(const SwModify &, const SfxHint &) override
void InsertBefore(SwLayoutFrame *pParent, SwFrame *pBehind)
Insert SwFrame into existing structure.
virtual bool IsDeleteForbidden() const
bool IsPageBodyFrame() const
const SwAttrSet * GetAttrSet() const
WARNING: this may not return correct RES_PAGEDESC/RES_BREAK items for SwTextFrame,...
SwFrame * GetIndPrev_() const
Called for a frame inside a section with no direct previous frame (or only previous empty section fra...
bool WrongPageDesc(SwPageFrame *pNew)
SwLayoutFrame * GetNextCellLeaf()
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.
SwLayoutFrame * GetNextLeaf(MakePageType eMakePage)
Returns the next layout leaf in which we can move the frame.
SwRootFrame * getRootFrame()
void SetCompletePaint() const
bool IsContentFrame() const
SwContentFrame * FindNextCnt(const bool _bInSameFootnote=false)
const SwLayoutFrame * GetPrevLayoutLeaf() const
SwPageFrame * FindPageFrame()
sw::BroadcastingModify * GetDep()
use these so we can grep for SwFrame's GetRegisteredIn accesses beware that SwTextFrame may return sw...
SwFrame * FindFooterOrHeader()
SwFootnoteFrame * FindFootnoteFrame()
SwFootnoteBossFrame * FindFootnoteBossFrame(bool bFootnotes=false)
static void DestroyFrame(SwFrame *const pFrame)
this is the only way to delete a SwFrame instance
bool IsLayoutFrame() const
SwLayoutFrame * GetPrevSctLeaf()
Returns the preceding layout sheet where the frame can be moved into.
bool IsColBodyFrame() const
These SwFrame inlines are here, so that frame.hxx does not need to include layfrm....
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.
void AdjustColumns(const SwFormatCol *pCol, bool bAdjustAttributes)
virtual void Format(vcl::RenderContext *pRenderContext, const SwBorderAttrs *pAttrs=nullptr) override
"Formats" the Frame; Frame and PrtArea.
bool IsAnLower(const SwFrame *) const
virtual void MakeAll(vcl::RenderContext *pRenderContext) override
virtual const SwFrameFormat * GetFormat() const
const SwFrame * ContainsAny(const bool _bInvestigateFootnoteForSections=false) const
Method <ContainsAny()> doesn't investigate content of footnotes by default.
virtual void DestroyImpl() override
friend void RestoreContent(SwFrame *, SwLayoutFrame *, SwFrame *pSibling)
bool IsBefore(const SwLayoutFrame *_pCheckRefLayFrame) const
method to check relative position of layout frame to a given layout frame.
const SwFrame * GetLastLower() const
const SwContentFrame * ContainsContent() const
Checks if the frame contains one or more ContentFrame's anywhere in his subsidiary structure; if so t...
friend SwFrame * SaveContent(SwLayoutFrame *, SwFrame *)
void ChgColumns(const SwFormatCol &rOld, const SwFormatCol &rNew, const bool bChgFootnote=false)
add or remove columns from a layoutframe.
bool MoveLowerFootnotes(SwContentFrame *pStart, SwFootnoteBossFrame *pOldBoss, SwFootnoteBossFrame *pNewBoss, const bool bFootnoteNums)
Moving the Footnotes of all Lowers - starting from StartContent.
SwTwips InnerHeight() const
InnerHeight returns the height of the content and may be bigger or less than the PrtArea-Height of th...
const SwFrame * Lower() const
virtual void Cut() override
void FormatWidthCols(const SwBorderAttrs &, const SwTwips nBorder, const SwTwips nMinHeight)
Called by Format for Frames and Areas with columns.
void CollectEndnote(SwFootnoteFrame *pFootnote)
A page of the document layout.
void InvalidateContent() const
const SwSortedObjs * GetSortedObjs() const
bool IsFootnotePage() const
Foot note interface.
tools::Long GetHeight(const SwRect &rRect) const
tools::Long YInc(tools::Long n1, tools::Long n2) const
void SetWidth(SwRect &rRect, tools::Long nNew) const
tools::Long GetTopMargin(const SwFrame &rFrame) const
void SetBottom(SwRect &rRect, tools::Long nNew) const
tools::Long GetWidth(const SwRect &rRect) const
void SetYMargins(SwFrame &rFrame, tools::Long nTop, tools::Long nBottom) const
void SetHeight(SwRect &rRect, tools::Long nNew) const
tools::Long GetTop(const SwRect &rRect) const
void SetXMargins(SwFrame &rFrame, tools::Long nLeft, tools::Long nRight) const
void AddBottom(SwRect &rRect, tools::Long nNew) const
tools::Long YDiff(tools::Long n1, tools::Long n2) const
void MakePos(SwFrame &rFrame, const SwFrame *pUp, const SwFrame *pPrv, bool bNotify) const
tools::Long GetBottom(const SwRect &rRect) const
tools::Long BottomDist(const SwRect &rRect, tools::Long nPos) const
tools::Long GetPrtBottom(const SwFrame &rFrame) const
void SetLeft(SwRect &rRect, tools::Long nNew) const
void Height(tools::Long nNew)
void Top(const tools::Long nTop)
void SSize(const Size &rNew)
void Width(tools::Long nNew)
The root element of a Writer document layout.
bool IsInDelList(SwSectionFrame *pSct) const
SwViewShell * GetCurrShell() const
std::unique_ptr< SwDestroyList > mpDestroy
void SetSuperfluous()
Remove superfluous Pages.
void InsertEmptySct(SwSectionFrame *pDel)
Empty SwSectionFrames are registered here for deletion and destroyed later on or deregistered.
bool IsAnyShellAccessible() const
void RemoveFromList_(SwSectionFrame *pSct)
void RemoveFromList(SwSectionFrame *pSct)
bool IsAnyNoteAtEnd() const
void CheckClipping(bool bGrow, bool bMaximize)
Adapt size to surroundings.
bool MoveAllowed(const SwFrame *) const
void DelEmpty(bool bRemove)
bool IsContentLocked() const
virtual void MakeAll(vcl::RenderContext *pRenderContext) override
virtual void Notify(SfxHint const &rHint) override
const SwSectionFormat * GetEndSectFormat() const
bool CalcMinDiff(SwTwips &rMinDiff) const
SwTwips Shrink_(SwTwips, bool bTst)
virtual ~SwSectionFrame() override
void CalcFootnoteAtEndFlag()
void CollectEndnotes(SwLayouter *pLayouter)
bool Growable() const
checks whether the SectionFrame is still able to grow, as case may be the environment has to be asked
virtual void Cut() override
void MergeNext(SwSectionFrame *pNxt)
|* Merges two SectionFrames, in case it's about the same section.
SwTwips Grow_(SwTwips, bool bTst)
const SwSectionFormat * GetEndSectFormat_() const
bool IsEndnoteAtMyEnd() const
bool IsBalancedSection() const
bool SplitSect(SwFrame *pFrame, bool bApres)
Splits the SectionFrame surrounding the pFrame up in two parts: pFrame and the start of the 2nd part.
bool IsSuperfluous() const
virtual void DestroyImpl() override
const SwContentFrame * FindLastContent() const
bool HasToBreak(const SwFrame *pFrame) const
|* Here it's decided whether the this-SectionFrame should break up |* the passed (Section)frm (or not...
SwTwips CalcUndersize() const
void CalcFootnoteContent()
SwSectionFrame(SwSection &, SwFrame *)
virtual void Format(vcl::RenderContext *pRenderContext, const SwBorderAttrs *pAttrs=nullptr) override
"formats" the frame; Frame and PrtArea
virtual bool ShouldBwdMoved(SwLayoutFrame *pNewUpper, bool &rReformat) override
void UpdateAttr_(const SfxPoolItem *, const SfxPoolItem *, SwSectionFrameInvFlags &, SwAttrSetChg *pa=nullptr, SwAttrSetChg *pb=nullptr)
SwFootnoteContFrame * ContainsFootnoteCont(const SwFootnoteContFrame *pCont=nullptr) const
Check every Column for FootnoteContFrames.
static void MoveContentAndDelete(SwSectionFrame *pDel, bool bSave)
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr) override
SwSectionFrame * FindMaster() const
void InvalidateFootnotePos()
bool ToMaximize(bool bCheckFollow) const
A sectionfrm has to maximize, if he has a follow or a ftncontainer at the end of the page.
SwTwips Undersize()
Returns the size delta that the section would like to be greater if it has undersized TextFrames in i...
bool IsFootnoteAtEnd() const
bool IsDescendantFrom(const SwSectionFormat *pSect) const
virtual void SwClientNotify(const SwModify &, const SfxHint &) override
const SwSectionFrame * GetFollow() const
SwSectionFormat * GetFormat()
class for collecting anchored objects
SwTabFrame is one table in the document layout, containing rows (which contain cells).
const SwFormatFootnote & GetFootnote() const
Represents the visualization of a paragraph.
bool getBrowseMode() const
void InvalidateAccessibleEditableState(bool bAllShells, const SwFrame *pFrame=nullptr)
Invalidate editable state for all accessible frames.
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
#define PROTOCOL(pFrame, nFunc, nAct, pPar)
#define PROTOCOL_ENTER(pFrame, nFunc, nAct, pPar)
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper) override
@ FTNEND_ATTXTEND_OWNNUMANDFMT
-""- and with own numberformat
@ FTNEND_ATTXTEND_OWNNUMSEQ
-""- and with own number sequence
@ FTNEND_ATPGORDOCEND
at page or document end
constexpr TypedWhichId< SvxFrameDirectionItem > RES_FRAMEDIR(120)
constexpr TypedWhichId< SwFormatNoBalancedColumns > RES_COLUMNBALANCE(119)
constexpr TypedWhichId< SwFormatCol > RES_COL(109)
constexpr TypedWhichId< SwFormatChg > RES_FMT_CHG(162)
constexpr TypedWhichId< SwAttrSetChg > RES_ATTRSET_CHG(163)
constexpr TypedWhichId< SvxProtectItem > RES_PROTECT(100)
constexpr TypedWhichId< SwFormatEndAtTextEnd > RES_END_AT_TXTEND(118)
constexpr TypedWhichId< SwFormatFootnoteAtTextEnd > RES_FTN_AT_TXTEND(117)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
tools::Long const nTopMargin
constexpr T saturating_add(T a, T b)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
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...
static void lcl_InvalidateInfFlags(SwFrame *pFrame, bool bInva)
|* MoveContent is called for destroying a SectionFrames, due to |* the cancellation or hiding of a se...
static SwTwips lcl_DeadLine(const SwFrame *pFrame)
static void lcl_FindContentFrame(SwContentFrame *&rpContentFrame, SwFootnoteFrame *&rpFootnoteFrame, SwFrame *pFrame, bool &rbChkFootnote)
static SwContentFrame * lcl_GetNextContentFrame(const SwLayoutFrame *pLay, bool bFwd)
static void lcl_ColumnRefresh(SwSectionFrame *pSect, bool bFollow)
@ AdjustSizeWithoutFormatting