33 #include <objectformatter.hxx>
39 #include <osl/diagnose.h>
43 #define ENDNOTE 0x80000000
53 if ( it != rFootnoteIdxs.
end() )
60 OSL_ENSURE( !pDoc,
"FootnotePos not found." );
67 OSL_ENSURE( pDoc,
"SwFootnoteFrame: Missing doc!" );
97 "Where's the column?" );
101 return pOld != rpPage;
103 else if( bDontLeave )
117 rpBoss = static_cast<SwFootnoteBossFrame*>(pBody->
Lower());
199 if( static_cast<const SwTextFrame*>(pFrame)->IsUndersized() )
202 nRet =
static_cast<const SwTextFrame*
>(pFrame)->GetParHeight() -
243 aRectFnSet.
SetTop( aPrt, nBorder );
279 nRemaining += nBorder;
300 else if ( nDiff < 0 )
311 aRectFnSet.
SubTop( aPrt, nTmpDiff );
335 OSL_ENSURE( pSect,
"GrowFrame: Missing SectFrame" );
352 nDist = std::min( nDist,
380 if ( nAvail > nDist )
391 aFrm.
Pos().AdjustX( -nDist );
409 pFootnote = pFootnote->
GetNext();
410 if( static_cast<SwFootnoteFrame*>(pFootnote)->GetAttr()->GetFootnote().IsEndNote() )
417 nReal += pBoss->
Grow( nGrow - nReal, bTst );
428 if ( nReal != nDist )
438 aFrm.
Pos().AdjustX(nDist );
456 bool bShrink =
false;
489 mbBackMoveLocked( false ),
491 mbUnlockPosOfLowerObjs( true )
594 OSL_ENSURE( pParent,
"no parent in Paste." );
595 OSL_ENSURE( pParent->
IsLayoutFrame(),
"Parent is ContentFrame." );
596 OSL_ENSURE( pParent !=
this,
"I am my own parent." );
597 OSL_ENSURE( pSibling !=
this,
"I am my own sibling." );
599 "I am still somewhere registered." );
602 InsertBefore( static_cast<SwLayoutFrame*>(pParent), pSibling );
620 "Footnote without content?" );
630 "Footnote without content?" );
636 #if OSL_DEBUG_LEVEL > 0
647 "Next is not FootnoteNext" );
671 OSL_ENSURE( pNxt->
IsColBodyFrame(),
"GetNextFootnoteLeaf: Funny Leaf" );
684 pPage = static_cast<SwPageFrame*>(pPage->
GetNext());
697 if ( pFootnote && pFootnote->
GetFollow() )
704 while( pTmpBoss != pBoss && pTmpBoss && !pTmpBoss->
GetPrev() )
706 if( pTmpBoss == pBoss )
726 pBoss = static_cast<SwFootnoteBossFrame*>(pLay->
Lower());
756 if( bEndn && pFootnote->
IsInSct() )
779 pTmpRef = pFootnote->
GetRef();
795 pNxtBoss = static_cast<SwFootnoteBossFrame*>(pNxtBoss->
GetPrev());
803 if( pNxtBoss == pOldBoss )
810 if( !pSect || !pSect->
Lower() )
813 "GetPrevFootnoteLeaf: Where's the column?" );
842 if ( pStop == pNxtBoss )
857 bJump = pOldBoss->
GetPrev() !=
static_cast<SwFrame const *
>(pNewBoss);
866 (nDiff > 1 && !static_cast<SwPageFrame*>(pOldPage->
GetPrev())->IsEmptyPage()) )
925 if ( bPageOnly && !pNxt )
932 }
while ( pFootnote );
940 if( pBody && pBody->
Lower() )
947 static_cast<SwSectionFrame*>(pLow)->Lower() &&
950 bPageOnly, bEndNotes );
970 pBoss = static_cast<SwFootnoteBossFrame*>(pBody->
Lower());
998 pPage = static_cast<SwPageFrame*>(pPage->
GetNext());
1000 pPage = static_cast<SwPageFrame*>(pPage->
GetNext());
1030 #if OSL_DEBUG_LEVEL > 0
1038 pFootnote = pFootnote->
GetNext();
1050 if ( !
GetFormat()->GetDoc()->GetFootnoteIdxs().empty() )
1062 if( pBoss && ( !bChgPage || pPage->
IsEndNotePage() == bEndNote ) )
1064 }
while ( !pCont && pPage );
1083 sal_uInt16
nPgNum, nColNum;
1089 OSL_ENSURE( pBoss,
"FindFirstFootnote: No boss found" );
1094 if ( nPgNum == nRefNum )
1097 if( nColNum == nRefCol )
1099 else if( nColNum > nRefCol )
1102 else if ( nPgNum > nRefNum )
1130 if ( nPgNum == nRefNum )
1133 if( nColNum == nRefCol )
1135 else if( nColNum > nRefCol )
1138 else if ( nPgNum > nRefNum )
1155 while ( pRet && (pRet->
GetRef() != pCnt) )
1161 pRet = static_cast<const SwFootnoteFrame*>(pRet->
GetNext());
1185 OSL_ENSURE( !pCheck->
GetMaster(),
"given master is not a Master." );
1191 GetNodes().GoNextSection( &aIdx,
true,
false );
1203 while ( pFootnote && pFootnote->
GetMaster() )
1205 if ( pFootnote != pCheck )
1217 pFrame = aIter.
Next();
1231 bool bDontLeave =
false;
1242 bDontLeave =
nullptr != pEndFormat;
1251 else if( pSibling->
IsInSct() )
1266 else if( pSibling->
IsInSct() )
1286 if( nCmpPos > nStPos )
1305 if ( nCmpPos > nStPos )
1322 OSL_ENSURE(
false,
"Could not find space for footnote.");
1330 while ( pSibling && nCmpPos <= nStPos )
1332 pLastSib = pSibling;
1343 "InsertFootnote: Master expected I" );
1354 ? pNxtB->FindNearestFootnoteCont( bDontLeave ) :
nullptr;
1363 OSL_ENSURE( nCmpPos > nLastPos,
"InsertFootnote: Order of FootnoteFrame's buggy" );
1368 if ( pSibling && pLastSib && (pSibling != pLastSib) )
1371 if ( nCmpPos > nStPos )
1372 pSibling = pLastSib;
1374 else if ( !pSibling )
1379 pSibling = pLastSib;
1382 OSL_ENSURE( !pSibling->
GetNext(),
"InsertFootnote: Who's that guy?" );
1396 while ( pSibling && !bEnd && (nCmpPos <= nStPos) )
1398 pLastSib = pSibling;
1408 GetAttr()->GetFootnote().IsEndNote() );
1412 ( nTmpRef == nRefNum &&
lcl_ColumnNum( pBoss ) <= nRefCol ))
1432 if ( !bEnd && pSibling )
1434 if (pSibling && (pSibling != pLastSib))
1437 if ( (nLastPos < nCmpPos) && (nCmpPos > nStPos) )
1439 pSibling = pLastSib;
1448 if ( nCmpPos < nStPos )
1461 OSL_FAIL(
"InsertFootnote: Master expected II" );
1470 OSL_ENSURE( pParent,
"paste in space?" );
1471 pNew->
Paste( pParent, pSibling );
1485 if (pCont && pCont->
Lower())
1489 static_cast<const SwFootnoteFrame*>(pCont->
Lower())->GetAttr()))
1516 bool bChgPage =
false;
1522 static_cast<SwSectionFrame*>(
GetUpper())->IsEndnAtEnd() )
1551 !pPage->
OnRightPage(),
false,
false,
true, nullptr );
1583 OSL_ENSURE(
false,
"no footnote content." );
1600 pTmp = static_cast<SwFootnoteFrame*>(pTmp->
GetNext());
1601 if( pTmp && *pTmp < pAttr )
1617 OSL_ENSURE( pBody,
"AppendFootnote: NoPageBody?" );
1619 pBoss = static_cast<SwFootnoteBossFrame*>(pBody->
Lower());
1630 if( pSect && !pSect->IsJoinLocked() && ( bEnd ? !pSect->IsEndnAtEnd() :
1631 !pSect->IsFootnoteAtEnd() ) && pSect->Growable() )
1632 pSect->InvalidateSize();
1637 const bool bOldFootnoteFrameLocked( pNew->
IsColLocked() );
1659 if ( !bOldFootnoteFrameLocked )
1668 if ( !bOldFootnoteFrameLocked && !pNew->
GetLower() &&
1685 OSL_ENSURE( pAttr->
GetStartNode(),
"FootnoteAtr without StartNode." );
1690 GetNodes().GoNextSection( &aIdx,
true,
false );
1704 if ( pFootnote && pFootnote->
GetRef() == pRef )
1710 if( pFootnote->
GetAttr() != pAttr )
1712 while ( pFootnote && pFootnote->
GetMaster() )
1717 }
while (
nullptr != (pFrame = aIter.
Next()) );
1737 }
while ( pFootnote );
1740 OSL_ENSURE( pRef->
IsTextFrame(),
"NoTextFrame has Footnote?" );
1742 if( !pMaster->IsLocked() )
1756 pFootnote->
SetRef( pNew );
1767 const bool _bCollectOnlyPreviousFootnotes )
1775 while ( !pFootnote && _pOld->
GetPrev() )
1788 nullptr != ( pPg =
static_cast<SwPageFrame*
>(pTmp->FindPageFrame()->GetPrev()))
1809 CollectFootnotes_(_pRef, pFootnote, _rFootnoteArr, _bCollectOnlyPreviousFootnotes ?
this :
nullptr);
1814 if ( rFootnoteArr.end() == std::find( rFootnoteArr.begin(), rFootnoteArr.end(), pFootnote ) )
1815 rFootnoteArr.push_back( pFootnote );
1832 OSL_ENSURE( !_pFootnote->
GetMaster() || _pFootnote->
GetRef() != _pRef,
"move FollowFootnote?" );
1836 bool bFound =
false;
1844 pNxtFootnote = pNxtFootnote->
GetFollow();
1847 if ( !pNxtFootnote )
1863 pNxtFootnote = pNxtFootnote->
GetMaster();
1864 if( pNxtFootnote == _pFootnote )
1865 pNxtFootnote =
nullptr;
1869 }
while( !pNxtFootnote && pBoss );
1873 OSL_ENSURE( !pNxtFootnote->
GetMaster(),
"_CollectFootnote: Master expected" );
1875 pNxtFootnote = pNxtFootnote->
GetMaster();
1877 if ( pNxtFootnote == _pFootnote )
1879 OSL_FAIL(
"_CollectFootnote: Vicious circle" );
1880 pNxtFootnote =
nullptr;
1884 bool bCollectFoundFootnote =
false;
1890 if (_pFootnote->
GetRef() == _pRef && (!bEndNote || bContinuousEndnotes))
1892 if (_pRefFootnoteBossFrame)
1895 OSL_ENSURE( pBossOfFoundFootnote,
1896 "<SwFootnoteBossFrame::CollectFootnotes_(..)> - footnote boss frame of found footnote frame missing.\nWrong layout!" );
1897 if ( !pBossOfFoundFootnote ||
1898 pBossOfFoundFootnote->
IsBefore( _pRefFootnoteBossFrame )
1901 bCollectFoundFootnote =
true;
1906 bCollectFoundFootnote =
true;
1910 if ( bCollectFoundFootnote )
1912 OSL_ENSURE( !_pFootnote->
GetMaster(),
"move FollowFootnote?" );
1916 SwFrame *pCnt = pNxt->ContainsAny();
1923 pCnt->
Paste( _pFootnote );
1929 OSL_ENSURE( !pNxt,
"footnote without content?" );
1945 if ( pNxtFootnote &&
1946 _rFootnoteArr.end() == std::find( _rFootnoteArr.begin(), _rFootnoteArr.end(), pNxtFootnote ) &&
1947 aNotFootnoteArr.end() == std::find( aNotFootnoteArr.begin(), aNotFootnoteArr.end(), pNxtFootnote ) )
1948 _pFootnote = pNxtFootnote;
1952 while ( _pFootnote );
1969 !pFootnote->GetAttr()->GetFootnote().IsEndNote()));
1970 if( pRefBoss !=
this )
1974 if( nRefNum < nMyNum || ( nRefNum == nMyNum && nRefCol <= nMyCol ) )
1979 if ( pFootnote->GetUpper() )
1984 SwFrame *pCnt = pFootnote->ContainsAny();
1990 while( pTmp && static_cast<SwLayoutFrame*>(pCnt)->IsAnLower( pTmp ) )
2027 pFootnote->Calc(
getRootFrame()->GetCurrShell()->GetOut());
2028 pFootnote->GetUpper()->Calc(
getRootFrame()->GetCurrShell()->GetOut());
2033 pCnt = pFootnote->ContainsAny();
2034 bool bUnlock = !pFootnote->IsBackMoveLocked();
2035 pFootnote->LockBackMove();
2039 pFootnote->KeepLockPosOfLowerObjs();
2053 pCnt = pFootnote->ContainsAny();
2071 pFootnote->UnlockBackMove();
2072 if( !pFootnote->ContainsAny() && !pFootnote->IsColLocked() )
2077 pFootnote =
nullptr;
2085 pFootnote->UnlockPosOfLowerObjs();
2086 pFootnote->Calc(
getRootFrame()->GetCurrShell()->GetOut());
2092 OSL_ENSURE( !pFootnote->GetMaster() && !pFootnote->GetFollow(),
2093 "DelFootnote and Master/Follow?" );
2096 pFootnote =
nullptr;
2102 pLastInsertedFootnote = pFootnote;
2108 if ( !(bCalc && pLastInsertedFootnote) )
2111 if ( !pLastInsertedFootnote->
GetNext() )
2172 "SwPageFrame::MoveFootnotes: source frame isn't on that FootnoteBoss" );
2180 OSL_ENSURE( pDestBoss,
"+SwPageFrame::MoveFootnotes: no destination boss" );
2186 if ( aFootnoteArr.empty() )
2193 if( pSrcPage != pDestPage )
2208 if( pFootnote && pFootnote->
GetPrev() && bLock )
2236 bool bStart = pAttr ==
nullptr;
2241 bool bUnlockLastFootnoteFrame(
false );
2254 if ( pFootnoteFrame != pLastFootnoteFrame )
2256 if ( pLastFootnoteFrame )
2258 if ( !bLock && bUnlockLastFootnoteFrame )
2266 if ( !bLock && bUnlockLastFootnoteFrame &&
2272 pLastFootnoteFrame->
Cut();
2274 pLastFootnoteFrame =
nullptr;
2279 bUnlockLastFootnoteFrame = !pFootnoteFrame->
IsColLocked();
2283 pLastFootnoteFrame = pFootnoteFrame;
2311 pCnt = pFootnote ? pFootnote->
ContainsAny() :
nullptr;
2320 if( !pFootnoteFrame->
Lower() &&
2324 OSL_ENSURE( pLastFootnoteFrame == pFootnoteFrame,
2325 "<SwFootnoteBossFrame::RearrangeFootnotes(..)> - <pLastFootnoteFrame> != <pFootnoteFrame>" );
2326 pLastFootnoteFrame =
nullptr;
2327 pFootnoteFrame->
Cut();
2329 if (pFootnote == pFootnoteFrame)
2330 pFootnote =
nullptr;
2379 bool bUnlockLastFootnoteFrameGuard = pLastFootnoteFrame && !pLastFootnoteFrame->
IsColLocked();
2380 if (bUnlockLastFootnoteFrameGuard)
2381 pLastFootnoteFrame->
ColLock();
2383 if (bUnlockLastFootnoteFrameGuard)
2397 if ( !pLastFootnoteFrame )
2400 if ( !bLock && bUnlockLastFootnoteFrame )
2408 if ( !bLock && bUnlockLastFootnoteFrame &&
2413 pLastFootnoteFrame->
Cut();
2425 if( !pBody || !pBody->
Lower() )
2429 sal_uInt16 nNum = 0;
2433 if( static_cast<SwTextFrame*>(pContent)->HasFootnote() )
2438 pContent = static_cast<SwSectionFrame*>(pBoss->
GetUpper())->FindLastContent();
2459 if (nNum != nOldNumRLHidden)
2461 pTextFootnote->
SetNumber(nOldNum, nNum, OUString());
2466 if (nNum != nOldNum)
2468 pTextFootnote->
SetNumber(nNum, nOldNumRLHidden, OUString());
2473 pFootnote = static_cast<SwFootnoteFrame*>(pFootnote->
GetNext());
2480 pFootnote =
nullptr;
2487 if( pFootnote && pFootnote->
GetRef() != pContent )
2488 pFootnote =
nullptr;
2530 OSL_ENSURE( pPg ||
IsInSct(),
"Footnote lost page" );
2563 nTmp += aRectFnSet.
YDiff(
2621 OSL_ENSURE( pTmp,
"NeighbourhoodAdjustment: Missing Lower()" );
2627 "NeighbourhoodAdjustment: Who's that guy?" );
2660 if ( pNewBoss == pOldBoss )
2663 bool bMoved =
false;
2671 if ( static_cast<SwTextFrame*>(pStart)->HasFootnote() )
2684 "MoveLowerFootnotes: Section confusion" );
2685 std::unique_ptr<SwFootnoteFrames> pFootnoteArr;
2689 bool bFoundCandidate =
false;
2690 if (pStart && pOldBoss->
IsInSct())
2694 bFoundCandidate = pOldChief != pNewChief;
2697 if (bFoundCandidate)
2704 if ( static_cast<SwTextFrame*>(pStart)->HasFootnote() )
2706 pOldBoss, *pFootnoteArr );
2709 if( pFootnoteArr->empty() )
2711 pFootnoteArr.reset();
2715 pFootnoteArr =
nullptr;
2717 if ( !aFootnoteArr.empty() || pFootnoteArr )
2719 if( !aFootnoteArr.empty() )
2725 pFootnoteArr.reset();
2730 if ( bFootnoteNums )
2734 if( pOldPage != pNewPage )
2757 if( !pBody || !pBody->
Lower() )
2767 pNxt = static_cast<SwLayoutFrame*>(pNxt->
GetNext());
2779 bool bSamePage =
true;
2787 bool bSameBoss = pNewBoss == pOldBoss;
2807 while(pNx && !static_cast<SwFootnoteFrame*>(pNx)->GetAttr()->GetFootnote().IsEndNote())
2809 pTmpFootnote->
Paste( pCont, pNx );
2827 pNewUp->InsertBefore( pTmpFootnote, pTmpFootnote->
Lower() );
2833 aFrm.
Pos().AdjustY(1 );
2843 pTmpNxt = static_cast<SwContentFrame*>(pTmp);
2845 pTmpNxt = static_cast<SwSectionFrame*>(pTmp);
2848 OSL_ENSURE( pTmp->
IsTabFrame(),
"GetNextSctLeaf: Wrong Type" );
2867 nOldHeight( pBs->GetMaxFootnoteHeight() )
2936 SwFrame* pTmpLastLower( pLastLowerOfFootnote );
2937 while ( pTmpLastLower && pTmpLastLower->
GetNext() )
2939 pTmpLastLower = pTmpLastLower->
GetNext();
2941 !
static_cast<SwTextFrame*
>(pTmpLastLower)->IsHiddenNow() ) ||
2948 pLastLowerOfFootnote = pTmpLastLower;
2953 if ( pLastLowerOfFootnote && pLastLowerOfFootnote->
IsTabFrame() )
2957 else if ( pLastLowerOfFootnote && pLastLowerOfFootnote->
IsSctFrame() )
2963 pLastContentFrame =
dynamic_cast<SwContentFrame*
>(pLastLowerOfFootnote);
2966 return pLastContentFrame;
void InsertBefore(SwLayoutFrame *pParent, SwFrame *pBehind)
Insert SwFrame into existing structure.
bool IsAnLower(const SwFrame *) const
SwSectionFrame * FindMaster() const
void SetTop(SwRect &rRect, tools::Long nNew) const
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.
Marks a position in the document model.
void AddHeight(SwRect &rRect, tools::Long nNew) const
SwContentFrame * GetNextContentFrame() const
SwTwips Grow(SwTwips, bool bTst=false, bool bInfo=false)
void RemoveFootnotes(SwPageFrame *pPage=nullptr, bool bPageOnly=false, bool bEndNotes=false)
Remove all footnotes (but no references)
static void SetMoveBwdJump(bool bNew)
tools::Long BottomDist(const SwRect &rRect, tools::Long nPos) const
bool MoveFootnoteCntFwd(bool, SwFootnoteBossFrame *)
Return value guarantees that a new page was not created. See SwFlowFrame::MoveFwd.
SwFootnoteFrame * ImplFindFootnoteFrame()
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.
bool IsBefore(const SwLayoutFrame *_pCheckRefLayFrame) const
method to check relative position of layout frame to a given layout frame.
void SetCompletePaint() const
bool IsInFootnote() const
virtual bool Prepare(const PrepareHint ePrep=PrepareHint::Clear, const void *pVoid=nullptr, bool bNotify=true)
const SwRect & getFramePrintArea() const
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! The void*...
SwTabFrame is one table in the document layout, containing rows (which contain cells).
SwContentFrame * getLayoutFrame(const SwRootFrame *, const SwPosition *pPos=nullptr, std::pair< Point, bool > const *pViewPosAndCalcFrame=nullptr) const
static sal_uInt16 lcl_ColumnNum(const SwFrame *pBoss)
void SetColMaxFootnoteHeight()
Adapt the max. footnote height in each single column.
const_iterator find(const Value &x) const
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr) override
void SubTop(SwRect &rRect, tools::Long nNew) const
static void DestroyFrame(SwFrame *const pFrame)
this is the only way to delete a SwFrame instance
void Pos(const Point &rNew)
Dialog to specify the properties of date form field.
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
bool IsFootnoteFrame() 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
tools::Long TopDist(const SwRect &rRect, tools::Long nPos) const
sal_uInt16 GetPhyPageNum() const
tools::Long GetTop(const SwRect &rRect) const
SwSectionFrame * ImplFindSctFrame()
const SwPageFootnoteInfo & GetFootnoteInfo() const
void sw_RemoveFootnotes(SwFootnoteBossFrame *pBoss, bool bPageOnly, bool bEndNotes)
remove all footnotes (not the references) and all footnote pages
const SwRect & getFrameArea() const
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
bool getBrowseMode() const
const SwPageFrame * GetLastPage() const
sal_Int32 GetStart() const
void SetSuperfluous()
Remove superfluous Pages.
void setFramePrintAreaValid(bool bNew)
bool IsPageBodyFrame() const
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.
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr)=0
bool IsFootnoteLock() const
bool IsColumnFrame() const
SwFootnoteFrame * FindFootnoteFrame()
SwTabFrame * ImplFindTabFrame()
bool IsContentFrame() const
static void FootnoteInArr(SwFootnoteFrames &rFootnoteArr, SwFootnoteFrame *pFootnote)
SwFrame * GetIndPrev() const
tools::Long GetPrtBottom(const SwFrame &rFrame) const
const SwFrame * GetLastLower() const
const SwSectionFrame * GetFollow() const
SwPageFrame * FindPageFrame()
virtual bool IsDeleteForbidden() const
virtual void Cut() override
const SwFrame * Lower() const
SwContentFrame * FindNextCnt(const bool _bInSameFootnote=false)
SwPageDesc * GetPageDesc()
SwTwips AdjustNeighbourhood(SwTwips nDiff, bool bTst=false)
Adjust surrounding neighbourhood after insertion.
SwContentNode * GetContentNode()
void InvalidatePage(const SwPageFrame *pPage=nullptr) const
Invalidates the page in which the Frame is currently placed.
tools::Long GetHeight(const SwRect &rRect) const
SwLayoutFrame * GetUpper()
void AddHeight(const tools::Long nAdd)
bool isFramePrintAreaValid() const
Marks a character position inside a document model node.
::rtl::Reference< Content > pContent
bool IsEndNotePage() const
static sal_uLong lcl_FindFootnotePos(const SwDoc *pDoc, const SwTextFootnote *pAttr)
Search the position of an attribute in the FootnoteArray at the document, because all footnotes are l...
tools::Long GetPrtTop(const SwFrame &rFrame) const
SwFootnoteBossFrame * FindFootnoteBossFrame(bool bFootnotes=false)
Provides access to settings of a document.
Marks a node in the document model.
const IDocumentSettingAccess * getIDocumentSettingAccess() const
Provides access to the document setting interface.
const_iterator end() const
tools::Long YDiff(tools::Long n1, tools::Long n2) const
bool isFrameAreaSizeValid() const
SwContentFrame * FindLastContent(SwFindMode nMode=SwFindMode::None)
void UpdateFootnoteNums()
Update the footnote numbers of all Pages.
A page of the document layout.
const SwFormatFootnote & GetFootnote() const
SwTwips Shrink(SwTwips, bool bTst=false, bool bInfo=false)
SwLayoutFrame * GetPrevFootnoteLeaf(MakePageType eMakeFootnote)
Get the preceding layout leaf in that the frame can be moved.
SwSectionFrame * FindSctFrame()
const SwFrameFormat * GetDfltFrameFormat() const
const_iterator begin() const
tools::Long const nBorder
bool IsLayoutFrame() const
SwTextNode is a paragraph in the document model.
bool Growable() const
checks whether the SectionFrame is still able to grow, as case may be the environment has to be asked...
void SetWidth(SwRect &rRect, tools::Long nNew) const
SwContentFrame * FindLastBodyContent()
Searches the last ContentFrame in BodyText below the page.
void MoveSubTree(SwLayoutFrame *pParent, SwFrame *pSibling=nullptr)
hook tree onto new parent with minimal operations and notifications
SwLayoutFrame * GetLeaf(MakePageType eMakePage, bool bFwd)
void CheckFootnotePageDescs(bool bEndNote)
Change the page template of the footnote pages.
SwPageDesc * GetPageDesc(SwDoc &rDoc) const
static SwPageFrame * lcl_GetApproximateFootnotePage(const bool bEnd, const SwPageFrame *pPage, const SwDoc *pDoc, const SwTextFootnote *pAttr)
virtual SwTwips ShrinkFrame(SwTwips, bool bTst=false, bool bInfo=false) override
#define SAL_WARN_IF(condition, area, stream)
SwTextFrame * FindMaster() const
sal_uInt16 GetPhyPageNum() const
bool MoveLowerFootnotes(SwContentFrame *pStart, SwFootnoteBossFrame *pOldBoss, SwFootnoteBossFrame *pNewBoss, const bool bFootnoteNums)
Moving the Footnotes of all Lowers - starting from StartContent.
const SwViewOption * GetViewOptions() const
const SwFrame * ContainsAny(const bool _bInvestigateFootnoteForSections=false) const
Method doesn't investigate content of footnotes by default.
const SwSectionFormat * GetEndSectFormat() const
void SetHeight(SwRect &rRect, tools::Long nNew) const
IDocumentSettingAccess const & getIDocumentSettingAccess() const
const SwDoc * GetDoc() const
void InvalidateNextPos(bool bNoFootnote=false)
bool IsColBodyFrame() const
These SwFrame inlines are here, so that frame.hxx does not need to include layfrm.hxx.
static bool lcl_NextFootnoteBoss(SwFootnoteBossFrame *&rpBoss, SwPageFrame *&rpPage, bool bDontLeave)
void setFrameAreaSizeValid(bool bNew)
bool IsFootnoteAllowed() const
virtual void Cut() override
bool IsHideRedlines() const
Replacement for sw::DocumentRedlineManager::GetRedlineFlags() (this is layout-level redline hiding)...
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
bool IsAnFollow(const SwFlowFrame *pFlow) const
const SfxPoolItem & GetAttr() const
SwLayoutFrame * GetNextFootnoteLeaf(MakePageType eMakePage)
Return the next layout leaf in that the frame can be moved.
tools::Long GetBottom(const SwRect &rRect) const
SwFootnoteIdxs & GetFootnoteIdxs()
bool IsFootnoteAtEnd() const
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame...
bool IsFootnoteBossFrame() const
SwTwips FootnoteSeparatorHeight(SwPageFootnoteInfo const &rInf)
SwPageFrame * InsertPage(SwPageFrame *pSibling, bool bFootnote)
bool IsFootnoteContFrame() const
std::vector< SwFootnoteFrame * > SwFootnoteFrames
const SwContentFrame * ContainsContent() const
Checks if the frame contains one or more ContentFrame's anywhere in his subsidiary structure; if so t...
void SetEndNotePage(bool b)
SwViewShell * GetCurrShell() const
void Height(tools::Long nNew)
const SwFootnoteInfo & GetFootnoteInfo() const
SwRootFrame * getRootFrame()
const SwEndNoteInfo & GetEndNoteInfo() const
std::vector< SwTextFootnote * >::const_iterator const_iterator
static tools::Long lcl_Undersize(const SwFrame *pFrame)
bool IsInHeadline(const SwFrame &rFrame) const
virtual const SwFrameFormat * GetFormat() const