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 );
525 assert(!pFrameStartAfter ||
IsAnLower(pFrameStartAfter));
527 if (pFrameStartAfter)
529 pSav = pFrameStartAfter->
FindNext();
550 pFramePutAfter =
this;
555 aRectFnSet.
MakePos( *pNew,
nullptr, pFramePutAfter,
true );
572 SetFollow(
nullptr );
619 bool bGoingUp =
true;
622 bool bGoingFwdOrBwd =
false;
628 bGoingDown =
nullptr !=
p;
633 ( bFwd ?
static_cast<const SwFlyFrame*
>(pFrame)->GetNextLink() :
static_cast<const SwFlyFrame*
>(pFrame)->GetPrevLink() ) :
635 bGoingFwdOrBwd =
nullptr !=
p;
636 if ( !bGoingFwdOrBwd )
639 bGoingUp =
nullptr !=
p;
645 bGoingUp = !( bGoingFwdOrBwd || bGoingDown );
647 if (!bFwd && bGoingDown)
648 while (
p->GetNext() )
654 return pContentFrame;
667 bool CanContainSplitSection(
const SwFrame* pFrame)
700 if( pDel->
IsInTab() && pParent )
717 pPrvSct = pPrvContent ? pPrvContent->
FindSctFrame() :
nullptr;
719 pNxtSct = pNxtContent ? pNxtContent->
FindSctFrame() :
nullptr;
724 pPrvSct = pNxtSct =
nullptr;
729 bool bOldFootnote =
true;
739 if( pNxtSct && pNxtSct->
GetFormat() == pParent )
741 pUp = FirstLeaf( pNxtSct );
743 if( pPrvSct && ( pPrvSct->
GetFormat() != pParent ) )
746 else if( pPrvSct && pPrvSct->
GetFormat() == pParent )
772 aRectFnSet.
MakePos( *pPrvSct, pUp, pPrv,
true );
773 pUp = FirstLeaf( pPrvSct );
789 if( pPrvSct && !pPrvSct->IsJoinLocked() )
791 OSL_ENSURE( pNxtSct,
"MoveContent: No Merge" );
803 OSL_ENSURE(
getRootFrame()->IsInDelList(
this ),
"SectionFrame without Section" );
819 pNext->InvalidatePos();
844 bool bCanContainSplitSection =
false;
846 bCanContainSplitSection = CanContainSplitSection(
GetUpper());
878 pLower->
Calc(pRenderContext);
888 OSL_FAIL(
"Oops, where is my tinfoil hat?" );
897 if(
auto pNewFormat =
dynamic_cast< const SwSectionFormat *
>( pFormat->GetRegisteredIn()) )
898 pFormat = pNewFormat;
906 SwFrame* pFrame,
bool &rbChkFootnote )
913 while( !rpContentFrame && pFrame )
945 while( pSect->HasFollow() )
998 "InsertEndnotes: Where's my column?" );
1035 pSect = pLayouter ? pSect->
GetFollow() :
nullptr;
1055 pCol->
Calc(pRenderContext);
1071 OSL_ENSURE(
IsColLocked(),
"CollectEndnotes: You love the risk?" );
1077 bool bEmpty =
false;
1081 while(
nullptr != (pFootnote =
lcl_FindEndnote( pSect, bEmpty, pLayouter )) )
1111 if( aRectFnSet.
IsVert() )
1118 SetUndersized( !bMaximize && nDiff >= 0 );
1119 const bool bCalc = ( IsUndersized() || bMaximize ) &&
1124 bool bExtraCalc =
false;
1128 bool bEmpty =
false;
1142 if ( !(bCalc || bExtraCalc) )
1153 aRectFnSet.
SetBottom( aFrm, nDeadLine );
1164 bool bHeightChanged = aRectFnSet.
IsVert() ?
1174 if ( !(( bHeightChanged || bExtraCalc ) &&
Lower()) )
1210 aRectFnSet.
SetBottom( aFrm, nDeadLine );
1215 if( nTop > nHeight )
1227class ExtraFormatToPositionObjs
1231 bool mbExtraFormatPerformed;
1235 : mpSectFrame( &_rSectFrame ),
1236 mbExtraFormatPerformed( false )
1239 ~ExtraFormatToPositionObjs()
1241 if ( !mbExtraFormatPerformed )
1251 if ( mpSectFrame->
IsAnLower( pAnchoredObj->GetAnchorFrame() ) )
1253 pAnchoredObj->SetKeepPosLocked(
false );
1260 void InitObjs(
SwFrame& rFrame )
1267 pAnchoredObj->UnlockPosition();
1268 pAnchoredObj->SetClearedEnvironment(
false );
1274 while ( pLowerFrame !=
nullptr )
1276 InitObjs( *pLowerFrame );
1278 pLowerFrame = pLowerFrame->
GetNext();
1283 void FormatSectionToPositionObjs()
1299 aRectFnSet.AddBottom( aFrm, nDiff );
1302 aRectFnSet.SetYMargins( *mpSectFrame, nTopMargin, 0 );
1315 pColFrame->
Calc(pRenderContext);
1316 pColFrame->
Lower()->
Calc(pRenderContext);
1330 InitObjs( *mpSectFrame );
1344 if ( mpSectFrame->
IsAnLower( pAnchoredObj->GetAnchorFrame() ) )
1346 pAnchoredObj->SetKeepPosLocked(
true );
1351 mbExtraFormatPerformed =
true;
1364 OSL_ENSURE(
getRootFrame()->IsInDelList(
this ),
"SectionFrame without Section" );
1378 SwTwips nUpper = CalcUpperSpace();
1416 ExtraFormatToPositionObjs aExtraFormatToPosObjs( *
this );
1421 aExtraFormatToPosObjs.FormatSectionToPositionObjs();
1437 aRectFnSet.
SetWidth( aFrm, nWidth );
1457 if ( bHasColumns && !
Lower()->
GetNext() && bMaximize )
1491 pFrame->
Calc(pRenderContext);
1493 pFrame->
Calc(pRenderContext);
1503 bMaximize = HasFollow();
1513 nBottom = aRectFnSet.
YInc( nBottom, -nDiff );
1518 nDeadLine = aRectFnSet.
YInc( nDeadLine, nTmpDiff );
1519 nTmpDiff = aRectFnSet.
YDiff( nBottom, nDeadLine );
1550 pFrame->
Calc(pRenderContext);
1552 pFrame->
Calc(pRenderContext);
1556 bool bUnderSz =
false;
1588 if( IsUndersized() )
1615 bool bWrongPage =
false;
1616 assert(pSect &&
"GetNextSctLeaf: Missing SectionFrame");
1647 !( pUp = pUp->
GetUpper() )->GetPrev() )
1651 if( pUp == pTmp || pUp->
GetNext() == pTmpX )
1665 std::vector<SwFrame *> parents;
1668 parents.push_back(pTmp);
1678 bool bLayLeafTableAllowed =
false;
1693 SAL_WARN(
"sw.layout",
"section is in table, but the table is not split");
1703 SwFrame *
const pTmpCnt =
static_cast<SwTabFrame*
>(
this)->FindLastContentOrTable();
1704 pLayLeaf = pTmpCnt ? pTmpCnt->
GetUpper() :
nullptr;
1706 else if (pCellLeaf && CanContainSplitSection(
this))
1710 pLayLeaf = pCellLeaf;
1712 SAL_WARN(
"sw.layout",
"my table frame and my follow's table frame is the same");
1714 bLayLeafTableAllowed =
true;
1721 while( pLayLeaf &&
static_cast<SwColumnFrame*
>(
this)->IsAnLower( pLayLeaf ) )
1746 (pLayLeaf->
IsInTab() && !bLayLeafTableAllowed) ||
1747 ( pLayLeaf->
IsInSct() && ( !pSect->HasFollow()
1751 pOldLayLeaf = pLayLeaf;
1766 pOldLayLeaf =
nullptr;
1778 if (pCellLeaf && CanContainSplitSection(
this))
1783 pLayLeaf = pCellLeaf;
1813 aRectFnSet.
MakePos( *pNew, pLayLeaf,
nullptr,
true );
1818 auto iter(parents.begin());
1819 if (parents.size() >= 2 &&
1820 parents[0]->IsBodyFrame() && parents[1]->IsColumnFrame())
1824 std::advance(iter, +2);
1829 && parents[0]->IsColumnFrame())
1832 std::advance(iter, +1);
1839 for ( ; iter != parents.end(); ++iter)
1843 if ((*iter)->IsColumnFrame() &&
1844 (iter + 1) != parents.end() && (*(iter + 1))->IsBodyFrame())
1850 assert(pTmp->
GetType() == (*iter)->GetType());
1860 bool bFollowFound(
false);
1864 if (pOldIter == pNewF)
1866 bFollowFound =
true;
1870 assert(bFollowFound);
1874 SwFlowFrame const*
const pNewF(SwFlowFrame::CastFlowFrame(pTmp));
1875 SwFlowFrame const*
const pOldF(SwFlowFrame::CastFlowFrame(*iter));
1876 bool bFollowFound(
false);
1878 pOldIter; pOldIter = pOldIter->GetFollow())
1880 if (pOldIter == pNewF)
1882 bFollowFound =
true;
1886 assert(bFollowFound);
1890 assert(pTmp ==
nullptr
1901 if( pTmp && pTmp != pSect->
GetFollow() )
1912 pNxtContent =
static_cast<SwLayoutFrame*
>(pTmp)->ContainsContent();
1920 while( !pNxtContent &&
nullptr != ( pTmp = pTmp->
GetNext() ) )
1925 pNxtContent =
static_cast<SwLayoutFrame*
>(pTmp)->ContainsContent();
1939 pNxt->MoveSubTree( pLayLeaf, pNew->
GetNext() );
1945 pLayLeaf = pNew ? FirstLeaf(pNew) :
nullptr;
1975 SwFlowFrame::SetMoveBwdJump(
true );
1990 SwFlowFrame::SetMoveBwdJump(
true );
1993 if (!pCol && pSect &&
IsInTab() && CanContainSplitSection(
this))
2000 if (pPrecede->GetFrame().IsLayoutFrame())
2009 OSL_ENSURE( pSect,
"GetNextSctLeaf: Missing SectionFrame" );
2075 pPrevLeaf = pLayLeaf;
2078 SwFlowFrame::SetMoveBwdJump(
true );
2089 pLayLeaf = pPrevLeaf;
2117 pLayLeaf = FirstLeaf( pNew );
2118 if( !pNew->
Lower() )
2128 pLayLeaf = FirstLeaf( pNew );
2137 if( pLayLeaf->
Lower() )
2141 if( pLayLeaf != pTmpLay )
2144 SwFlowFrame::SetMoveBwdJump(
true );
2154 while( pUp && pUp->
IsInSct() )
2186 if( nFrameHeight > 0 && nDist > (
LONG_MAX - nFrameHeight) )
2216 if( !bInCalcContent && nGrow < nDist &&
GetUpper() )
2227 if( bInCalcContent )
2235 if( bInCalcContent )
2237 else if( nSpace < nGrow && nDist != nSpace +
GetUpper()->
2238 Grow( nGrow - nSpace ) )
2261 aRectFnSet.
SetHeight( aPrt, nPrtHeight );
2284 InvalidateFramePos(pFrame, bInCalcContent);
2289 InvalidateFramePos(pFrame, bInCalcContent);
2306 if( bInCalcContent )
2328 if ( nDist > nFrameHeight )
2329 nDist = nFrameHeight;
2357 aRectFnSet.
SetHeight( aPrt, nPrtHeight );
2452 if( pBody && pBody->
Lower() )
2486 OSL_ENSURE(
IsInSct(),
"Why?" );
2544 while( pFormat != pMyFormat )
2546 if(
auto pNewFormat =
dynamic_cast< const SwSectionFormat *
>( pMyFormat->GetRegisteredIn()) )
2547 pMyFormat = pNewFormat;
2563 if(
auto pNewFormat =
dynamic_cast<SwSectionFormat *
>( pFormat->GetRegisteredIn()) )
2564 pFormat = pNewFormat;
2588 if(
auto pNewFormat =
dynamic_cast<SwSectionFormat *
>( pFormat->GetRegisteredIn()) )
2589 pFormat = pNewFormat;
2605 if (rHint.
GetId() == SfxHintId::SwLegacyModify)
2611 auto& rOldSetChg = *
static_cast<const SwAttrSetChg*
>(pLegacy->m_pOld);
2612 auto& rNewSetChg = *
static_cast<const SwAttrSetChg*
>(pLegacy->m_pNew);
2621 UpdateAttr_(pOItem, pNItem, eInvFlags, &aOldSet, &aNewSet);
2629 UpdateAttr_(pLegacy->m_pOld, pLegacy->m_pNew, eInvFlags);
2655 const sal_uInt16 nWhich = pOld ? pOld->
Which() : pNew ? pNew->
Which() : 0;
2669 sal_uInt16 nCol = 0;
2675 aCol.
Init( nCol, 0, 1000 );
2696 assert(pOld && pNew);
2743#if !ENABLE_WASM_STRIP_ACCESSIBILITY
2758 if ( pOldSet || pNewSet )
2789 return nullptr != pCont;
2791 while( pCont && !bRet )
2809 OSL_ENSURE(
IsAnLower( pLay ),
"ContainsFootnoteCont: Wrong FootnoteContainer" );
2816 while ( !pRet && pLay )
2821 "ToMaximize: Unexpected Frame" );
2825 "ToMaximize: ColFrame expected" );
2851 m_bUndersized = (nRet > 0);
2852 return nRet <= 0 ? 0 : nRet;
2864 pCont->
Calc(pRenderContext);
2869 pFootnote->
Calc(pRenderContext);
2870 pFrame->
Calc(pRenderContext);
2910 OSL_ENSURE( !pSect->
IsColLocked() && !pSect->IsJoinLocked(),
2911 "DeleteEmptySct: Locked SectionFrame" );
2918 if( pUp && !pUp->
Lower() )
2931 OSL_ENSURE( pSect->
GetSection(),
"DeleteEmptySct: Half-dead SectionFrame?!" );
2938 assert(
mpDestroy &&
"Where's my list?");
2961 (void)xmlTextWriterStartElement(writer,
reinterpret_cast<const xmlChar*
>(
"section"));
2964 (void)xmlTextWriterStartElement(writer, BAD_CAST(
"infos"));
2966 (void)xmlTextWriterEndElement(writer);
2969 (void)xmlTextWriterEndElement(writer);
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
virtual void MakePos()
Calculates the frame area position, in case it's invalid.
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...
void dumpInfosAsXml(xmlTextWriterPtr writer) const
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
void dumpChildrenAsXml(xmlTextWriterPtr writer) const
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 void dumpAsXml(xmlTextWriterPtr writer=nullptr) const override
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 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.
SwSectionFrame * SplitSect(SwFrame *pFrameStartAfter, SwFrame *pFramePutAfter)
Splits the SectionFrame surrounding the pFrame up in two parts: pFrame and the start of the 2nd part.
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 dumpAsXmlAttributes(xmlTextWriterPtr writer) const override
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)
struct _xmlTextWriter * xmlTextWriterPtr
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(126)
constexpr TypedWhichId< SwFormatEndAtTextEnd > RES_END_AT_TXTEND(124)
constexpr TypedWhichId< SwFormatFootnoteAtTextEnd > RES_FTN_AT_TXTEND(123)
constexpr TypedWhichId< SwFormatCol > RES_COL(115)
constexpr TypedWhichId< SwAttrSetChg > RES_ATTRSET_CHG(169)
constexpr TypedWhichId< SwFormatNoBalancedColumns > RES_COLUMNBALANCE(125)
constexpr TypedWhichId< SvxProtectItem > RES_PROTECT(106)
constexpr TypedWhichId< SwFormatChg > RES_FMT_CHG(168)
#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)
bool HasPageBreakBefore(SwPageFrame const &rPage)
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