20#include <libxml/xmlwriter.h>
35#include <objectformatter.hxx>
41#include <osl/diagnose.h>
45#define ENDNOTE 0x80000000
55 if ( it != rFootnoteIdxs.
end() )
62 OSL_ENSURE( !pDoc,
"FootnotePos not found." );
69 OSL_ENSURE( pDoc,
"SwFootnoteFrame: Missing doc!" );
99 "Where's the column?" );
103 return pOld != rpPage;
105 else if( bDontLeave )
201 if(
static_cast<const SwTextFrame*
>(pFrame)->IsUndersized() )
204 nRet =
static_cast<const SwTextFrame*
>(pFrame)->GetParHeight() -
302 else if ( nDiff < 0 )
313 aRectFnSet.
SubTop( aPrt, nTmpDiff );
337 OSL_ENSURE( pSect,
"GrowFrame: Missing SectFrame" );
382 if ( nAvail > nDist )
393 aFrm.
Pos().AdjustX( -nDist );
411 pFootnote = pFootnote->
GetNext();
412 if(
static_cast<SwFootnoteFrame*
>(pFootnote)->GetAttr()->GetFootnote().IsEndNote() )
419 nReal += pBoss->
Grow( nGrow - nReal, bTst );
430 if ( nReal != nDist )
440 aFrm.
Pos().AdjustX(nDist );
458 bool bShrink =
false;
491 mbBackMoveLocked( false ),
493 mbUnlockPosOfLowerObjs( true )
596 OSL_ENSURE( pParent,
"no parent in Paste." );
597 OSL_ENSURE( pParent->
IsLayoutFrame(),
"Parent is ContentFrame." );
598 OSL_ENSURE( pParent !=
this,
"I am my own parent." );
599 OSL_ENSURE( pSibling !=
this,
"I am my own sibling." );
601 "I am still somewhere registered." );
612 pContent->InvalidatePrt_();
618 pNext->InvalidatePos_();
619 if (
SwFrame *
const pContent = pNext->ContainsContent())
621 pContent->InvalidatePrt_();
632 "Footnote without content?" );
636 assert(pDel !=
this);
643 "Footnote without content?" );
644 SwFlowFrame::CastFlowFrame(
GetNext()->
GetLower() )->MoveSubTree(
this );
646 assert(pDel !=
this);
650#if OSL_DEBUG_LEVEL > 0
661 "Next is not FootnoteNext" );
685 OSL_ENSURE( pNxt->
IsColBodyFrame(),
"GetNextFootnoteLeaf: Funny Leaf" );
711 if ( pFootnote && pFootnote->
GetFollow() )
718 while( pTmpBoss != pBoss && pTmpBoss && !pTmpBoss->
GetPrev() )
720 if( pTmpBoss == pBoss )
770 if( bEndn && pFootnote->
IsInSct() )
793 pTmpRef = pFootnote->
GetRef();
817 if( pNxtBoss == pOldBoss )
824 if( !pSect || !pSect->
Lower() )
827 "GetPrevFootnoteLeaf: Where's the column?" );
856 if ( pStop == pNxtBoss )
871 bJump = pOldBoss->
GetPrev() !=
static_cast<SwFrame const *
>(pNewBoss);
884 SwFlowFrame::SetMoveBwdJump(
true );
899 if ( pTab->IsFollow() )
939 if ( bPageOnly && !pNxt )
946 }
while ( pFootnote );
954 if( pBody && pBody->
Lower() )
964 bPageOnly, bEndNotes );
1044#if OSL_DEBUG_LEVEL > 0
1051 assert(pFootnote->
IsFootnoteFrame() &&
"Neighbor of footnote must be a footnote");
1052 pFootnote = pFootnote->
GetNext();
1064 if ( !
GetFormat()->GetDoc()->GetFootnoteIdxs().empty() )
1076 if( pBoss && ( !bChgPage || pPage->
IsEndNotePage() == bEndNote ) )
1078 }
while ( !pCont && pPage );
1097 sal_uInt16
nPgNum, nColNum;
1103 OSL_ENSURE( pBoss,
"FindFirstFootnote: No boss found" );
1111 if( nColNum == nRefCol )
1113 else if( nColNum > nRefCol )
1116 else if (
nPgNum > nRefNum )
1147 if( nColNum == nRefCol )
1149 else if( nColNum > nRefCol )
1152 else if (
nPgNum > nRefNum )
1169 while ( pRet && (pRet->
GetRef() != pCnt) )
1199 OSL_ENSURE( !pCheck->
GetMaster(),
"given master is not a Master." );
1205 GetNodes().GoNextSection( &aIdx,
true,
false );
1217 while ( pFootnote && pFootnote->
GetMaster() )
1219 if ( pFootnote != pCheck )
1231 pFrame = aIter.
Next();
1245 bool bDontLeave =
false;
1256 bDontLeave =
nullptr != pEndFormat;
1265 else if( pSibling->
IsInSct() )
1280 else if( pSibling->
IsInSct() )
1300 if( nCmpPos > nStPos )
1319 if ( nCmpPos > nStPos )
1336 OSL_ENSURE(
false,
"Could not find space for footnote.");
1344 while ( pSibling && nCmpPos <= nStPos )
1346 pLastSib = pSibling;
1357 "InsertFootnote: Master expected I" );
1377 OSL_ENSURE( nCmpPos > nLastPos,
"InsertFootnote: Order of FootnoteFrame's buggy" );
1382 if ( pSibling && pLastSib && (pSibling != pLastSib) )
1385 if ( nCmpPos > nStPos )
1386 pSibling = pLastSib;
1388 else if ( !pSibling )
1393 pSibling = pLastSib;
1396 OSL_ENSURE( !pSibling->
GetNext(),
"InsertFootnote: Who's that guy?" );
1410 while ( pSibling && !bEnd && (nCmpPos <= nStPos) )
1412 pLastSib = pSibling;
1422 GetAttr()->GetFootnote().IsEndNote() );
1426 ( nTmpRef == nRefNum &&
lcl_ColumnNum( pBoss ) <= nRefCol ))
1446 if ( !bEnd && pSibling )
1448 if (pSibling && (pSibling != pLastSib))
1451 if ( (nLastPos < nCmpPos) && (nCmpPos > nStPos) )
1453 pSibling = pLastSib;
1462 if ( nCmpPos < nStPos )
1475 OSL_FAIL(
"InsertFootnote: Master expected II" );
1484 OSL_ENSURE( pParent,
"paste in space?" );
1485 pNew->
Paste( pParent, pSibling );
1499 if (pCont && pCont->
Lower())
1530 bool bChgPage =
false;
1565 !pPage->
OnRightPage(),
false,
false,
true,
nullptr );
1597 OSL_ENSURE(
false,
"no footnote content." );
1615 if( pTmp && *pTmp < pAttr )
1631 OSL_ENSURE( pBody,
"AppendFootnote: NoPageBody?" );
1644 if( pSect && !pSect->IsJoinLocked() && ( bEnd ? !pSect->
IsEndnAtEnd() :
1651 const bool bOldFootnoteFrameLocked( pNew->
IsColLocked() );
1673 if ( !bOldFootnoteFrameLocked )
1682 if ( !bOldFootnoteFrameLocked && !pNew->
GetLower() &&
1699 OSL_ENSURE( pAttr->
GetStartNode(),
"FootnoteAtr without StartNode." );
1704 GetNodes().GoNextSection( &aIdx,
true,
false );
1718 if ( pFootnote && pFootnote->
GetRef() == pRef )
1724 if( pFootnote->
GetAttr() != pAttr )
1726 while ( pFootnote && pFootnote->
GetMaster() )
1731 }
while (
nullptr != (pFrame = aIter.
Next()) );
1751 }
while ( pFootnote );
1752 if( bPrep && pRef->IsFollow() )
1754 OSL_ENSURE( pRef->
IsTextFrame(),
"NoTextFrame has Footnote?" );
1770 pFootnote->
SetRef( pNew );
1781 const bool _bCollectOnlyPreviousFootnotes )
1789 while ( !pFootnote && _pOld->
GetPrev() )
1802 nullptr != ( pPg =
static_cast<SwPageFrame*
>(pTmp->FindPageFrame()->GetPrev()))
1823 CollectFootnotes_(_pRef, pFootnote, _rFootnoteArr, _bCollectOnlyPreviousFootnotes ?
this :
nullptr);
1828 if ( rFootnoteArr.end() == std::find( rFootnoteArr.begin(), rFootnoteArr.end(), pFootnote ) )
1829 rFootnoteArr.push_back( pFootnote );
1846 OSL_ENSURE( !_pFootnote->
GetMaster() || _pFootnote->
GetRef() != _pRef,
"move FollowFootnote?" );
1850 bool bFound =
false;
1858 pNxtFootnote = pNxtFootnote->
GetFollow();
1861 if ( !pNxtFootnote )
1877 pNxtFootnote = pNxtFootnote->
GetMaster();
1878 if( pNxtFootnote == _pFootnote )
1879 pNxtFootnote =
nullptr;
1883 }
while( !pNxtFootnote && pBoss );
1887 OSL_ENSURE( !pNxtFootnote->
GetMaster(),
"_CollectFootnote: Master expected" );
1889 pNxtFootnote = pNxtFootnote->
GetMaster();
1891 if ( pNxtFootnote == _pFootnote )
1893 OSL_FAIL(
"_CollectFootnote: Vicious circle" );
1894 pNxtFootnote =
nullptr;
1898 bool bCollectFoundFootnote =
false;
1904 if (_pFootnote->
GetRef() == _pRef && (!bEndNote || bContinuousEndnotes))
1906 if (_pRefFootnoteBossFrame)
1909 OSL_ENSURE( pBossOfFoundFootnote,
1910 "<SwFootnoteBossFrame::CollectFootnotes_(..)> - footnote boss frame of found footnote frame missing.\nWrong layout!" );
1911 if ( !pBossOfFoundFootnote ||
1912 pBossOfFoundFootnote->
IsBefore( _pRefFootnoteBossFrame )
1915 bCollectFoundFootnote =
true;
1920 bCollectFoundFootnote =
true;
1924 if ( bCollectFoundFootnote )
1926 OSL_ENSURE( !_pFootnote->
GetMaster(),
"move FollowFootnote?" );
1937 pCnt->
Paste( _pFootnote );
1943 OSL_ENSURE( !pNxt,
"footnote without content?" );
1959 if ( pNxtFootnote &&
1960 _rFootnoteArr.end() == std::find( _rFootnoteArr.begin(), _rFootnoteArr.end(), pNxtFootnote ) &&
1961 aNotFootnoteArr.end() == std::find( aNotFootnoteArr.begin(), aNotFootnoteArr.end(), pNxtFootnote ) )
1962 _pFootnote = pNxtFootnote;
1966 while ( _pFootnote );
1983 !pFootnote->GetAttr()->GetFootnote().IsEndNote()));
1984 if( pRefBoss !=
this )
1988 if( nRefNum < nMyNum || ( nRefNum == nMyNum && nRefCol <= nMyCol ) )
1993 if ( pFootnote->GetUpper() )
1998 SwFrame *pCnt = pFootnote->ContainsAny();
2041 pFootnote->Calc(
getRootFrame()->GetCurrShell()->GetOut());
2042 pFootnote->GetUpper()->Calc(
getRootFrame()->GetCurrShell()->GetOut());
2047 pCnt = pFootnote->ContainsAny();
2048 bool bUnlock = !pFootnote->IsBackMoveLocked();
2049 pFootnote->LockBackMove();
2053 pFootnote->KeepLockPosOfLowerObjs();
2067 pCnt = pFootnote->ContainsAny();
2085 pFootnote->UnlockBackMove();
2086 if( !pFootnote->ContainsAny() && !pFootnote->IsColLocked() )
2091 pFootnote =
nullptr;
2099 pFootnote->UnlockPosOfLowerObjs();
2100 pFootnote->Calc(
getRootFrame()->GetCurrShell()->GetOut());
2106 OSL_ENSURE( !pFootnote->GetMaster() && !pFootnote->GetFollow(),
2107 "DelFootnote and Master/Follow?" );
2110 pFootnote =
nullptr;
2116 pLastInsertedFootnote = pFootnote;
2122 if ( !(bCalc && pLastInsertedFootnote) )
2125 if ( !pLastInsertedFootnote->
GetNext() )
2186 "SwPageFrame::MoveFootnotes: source frame isn't on that FootnoteBoss" );
2194 OSL_ENSURE( pDestBoss,
"+SwPageFrame::MoveFootnotes: no destination boss" );
2200 if ( aFootnoteArr.empty() )
2207 if( pSrcPage != pDestPage )
2222 if( pFootnote && pFootnote->
GetPrev() && bLock )
2250 bool bStart = pAttr ==
nullptr;
2255 bool bUnlockLastFootnoteFrame(
false );
2268 if ( pFootnoteFrame != pLastFootnoteFrame )
2270 if ( pLastFootnoteFrame )
2272 if ( !bLock && bUnlockLastFootnoteFrame )
2280 if ( !bLock && bUnlockLastFootnoteFrame &&
2286 pLastFootnoteFrame->
Cut();
2288 pLastFootnoteFrame =
nullptr;
2293 bUnlockLastFootnoteFrame = !pFootnoteFrame->
IsColLocked();
2297 pLastFootnoteFrame = pFootnoteFrame;
2325 pCnt = pFootnote ? pFootnote->
ContainsAny() :
nullptr;
2334 if( !pFootnoteFrame->
Lower() &&
2338 OSL_ENSURE( pLastFootnoteFrame == pFootnoteFrame,
2339 "<SwFootnoteBossFrame::RearrangeFootnotes(..)> - <pLastFootnoteFrame> != <pFootnoteFrame>" );
2340 pLastFootnoteFrame =
nullptr;
2341 pFootnoteFrame->
Cut();
2343 if (pFootnote == pFootnoteFrame)
2344 pFootnote =
nullptr;
2393 bool bUnlockLastFootnoteFrameGuard = pLastFootnoteFrame && !pLastFootnoteFrame->
IsColLocked();
2394 if (bUnlockLastFootnoteFrameGuard)
2395 pLastFootnoteFrame->
ColLock();
2397 if (bUnlockLastFootnoteFrameGuard)
2411 if ( !pLastFootnoteFrame )
2414 if ( !bLock && bUnlockLastFootnoteFrame )
2422 if ( !bLock && bUnlockLastFootnoteFrame &&
2428 pLastFootnoteFrame->
Cut();
2440 if( !pBody || !pBody->
Lower() )
2444 sal_uInt16 nNum = 0;
2448 if(
static_cast<SwTextFrame*
>(pContent)->HasFootnote() )
2474 if (nNum != nOldNumRLHidden)
2476 pTextFootnote->
SetNumber(nOldNum, nNum, OUString());
2481 if (nNum != nOldNum)
2483 pTextFootnote->
SetNumber(nNum, nOldNumRLHidden, OUString());
2495 pFootnote =
nullptr;
2502 if( pFootnote && pFootnote->
GetRef() != pContent )
2503 pFootnote =
nullptr;
2545 OSL_ENSURE( pPg ||
IsInSct(),
"Footnote lost page" );
2578 nTmp += aRectFnSet.
YDiff(
2636 OSL_ENSURE( pTmp,
"NeighbourhoodAdjustment: Missing Lower()" );
2642 "NeighbourhoodAdjustment: Who's that guy?" );
2675 if ( pNewBoss == pOldBoss )
2678 bool bMoved =
false;
2686 if (
static_cast<SwTextFrame*
>(pStart)->HasFootnote() )
2699 "MoveLowerFootnotes: Section confusion" );
2700 std::unique_ptr<SwFootnoteFrames> pFootnoteArr;
2704 bool bFoundCandidate =
false;
2705 if (pStart && pOldBoss->
IsInSct())
2709 bFoundCandidate = pOldChief != pNewChief;
2712 if (bFoundCandidate)
2719 if (
static_cast<SwTextFrame*
>(pStart)->HasFootnote() )
2721 pOldBoss, *pFootnoteArr );
2724 if( pFootnoteArr->empty() )
2726 pFootnoteArr.reset();
2730 pFootnoteArr =
nullptr;
2732 if ( !aFootnoteArr.empty() || pFootnoteArr )
2734 if( !aFootnoteArr.empty() )
2740 pFootnoteArr.reset();
2745 if ( bFootnoteNums )
2749 if( pOldPage != pNewPage )
2772 if( !pBody || !pBody->
Lower() )
2794 bool bSamePage =
true;
2802 bool bSameBoss = pNewBoss == pOldBoss;
2823 while(pNx && !
static_cast<SwFootnoteFrame*
>(pNx)->GetAttr()->GetFootnote().IsEndNote())
2825 pTmpFootnote->
Paste( pCont, pNx );
2849 aFrm.
Pos().AdjustY(1 );
2864 OSL_ENSURE( pTmp->
IsTabFrame(),
"GetNextSctLeaf: Wrong Type" );
2870 pTmpNxt->MoveSubTree( pTmpFootnote, pNewUp->
GetNext() );
2876 MoveSubTree( pNewUp, pNewUp->
Lower() );
2887 nOldHeight( pBs->GetMaxFootnoteHeight() )
2956 SwFrame* pTmpLastLower( pLastLowerOfFootnote );
2957 while ( pTmpLastLower && pTmpLastLower->
GetNext() )
2959 pTmpLastLower = pTmpLastLower->
GetNext();
2968 pLastLowerOfFootnote = pTmpLastLower;
2973 if ( pLastLowerOfFootnote && pLastLowerOfFootnote->
IsTabFrame() )
2977 else if ( pLastLowerOfFootnote && pLastLowerOfFootnote->
IsSctFrame() )
2983 pLastContentFrame =
dynamic_cast<SwContentFrame*
>(pLastLowerOfFootnote);
2986 return pLastContentFrame;
2991 (void)xmlTextWriterStartElement(writer,
reinterpret_cast<const xmlChar*
>(
"ftn"));
2994 (void)xmlTextWriterStartElement(writer, BAD_CAST(
"infos"));
2996 (void)xmlTextWriterEndElement(writer);
2999 (void)xmlTextWriterEndElement(writer);
Provides access to settings of a document.
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
const SwDoc * GetDoc() const
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
SwContentFrame * GetNextContentFrame() const
SwTextFrame * FindMaster() const
bool MoveFootnoteCntFwd(bool, SwFootnoteBossFrame *)
Return value guarantees that a new page was not created. See SwFlowFrame::MoveFwd.
SwContentFrame * getLayoutFrame(const SwRootFrame *, const SwPosition *pPos=nullptr, std::pair< Point, bool > const *pViewPosAndCalcFrame=nullptr) const
const SwFootnoteInfo & GetFootnoteInfo() const
SwFootnoteIdxs & GetFootnoteIdxs()
IDocumentSettingAccess const & getIDocumentSettingAccess() const
const SwEndNoteInfo & GetEndNoteInfo() const
const SwFrameFormat * GetDfltFrameFormat() const
SwPageDesc * GetPageDesc(SwDoc &rDoc) const
const SwRect & getFrameArea() const
bool isFrameAreaDefinitionValid() const
const SwRect & getFramePrintArea() const
void setFramePrintAreaValid(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)
SwSectionFrame * ImplFindSctFrame()
bool IsFootnoteContFrame() const
virtual bool Prepare(const PrepareHint ePrep=PrepareHint::Clear, const void *pVoid=nullptr, bool bNotify=true)
SwFrame * GetIndPrev() const
SwTwips Shrink(SwTwips, bool bTst=false, bool bInfo=false)
SwSectionFrame * FindSctFrame()
SwLayoutFrame * GetNextSctLeaf(MakePageType eMakePage)
Returns the next layout sheet where the frame can be moved in.
SwTabFrame * ImplFindTabFrame()
bool IsColumnFrame() const
void InvalidateNextPos(bool bNoFootnote=false)
bool IsInFootnote() const
SwPageFrame * InsertPage(SwPageFrame *pSibling, bool bFootnote)
virtual void Calc(vcl::RenderContext *pRenderContext) const
void InsertBefore(SwLayoutFrame *pParent, SwFrame *pBehind)
Insert SwFrame into existing structure.
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.
virtual bool IsDeleteForbidden() const
bool IsPageBodyFrame() const
const SwAttrSet * GetAttrSet() const
WARNING: this may not return correct RES_PAGEDESC/RES_BREAK items for SwTextFrame,...
void dumpInfosAsXml(xmlTextWriterPtr writer) const
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr)=0
SwFootnoteFrame * ImplFindFootnoteFrame()
SwLayoutFrame * GetPrevFootnoteLeaf(MakePageType eMakeFootnote)
Get the preceding layout leaf in that the frame can be moved.
bool IsFootnoteFrame() const
SwLayoutFrame * GetUpper()
virtual void dumpAsXmlAttributes(xmlTextWriterPtr writer) const
SwLayoutFrame * GetLeaf(MakePageType eMakePage, bool bFwd)
void InvalidatePage(const SwPageFrame *pPage=nullptr) const
Invalidates the page in which the Frame is currently placed.
SwLayoutFrame * GetNextFootnoteLeaf(MakePageType eMakePage)
Return the next layout leaf in that the frame can be moved.
SwRootFrame * getRootFrame()
void SetCompletePaint() const
bool IsContentFrame() const
bool IsFootnoteBossFrame() const
SwContentFrame * FindNextCnt(const bool _bInSameFootnote=false)
bool IsFootnoteAllowed() const
SwTwips AdjustNeighbourhood(SwTwips nDiff, bool bTst=false)
Adjust surrounding neighbourhood after insertion.
SwPageFrame * FindPageFrame()
SwFootnoteFrame * FindFootnoteFrame()
SwFootnoteBossFrame * FindFootnoteBossFrame(bool bFootnotes=false)
sal_uInt16 GetPhyPageNum() const
static void DestroyFrame(SwFrame *const pFrame)
this is the only way to delete a SwFrame instance
void dumpChildrenAsXml(xmlTextWriterPtr writer) const
bool IsLayoutFrame() const
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.
bool IsAnLower(const SwFrame *) const
virtual const SwFrameFormat * GetFormat() const
const SwFrame * ContainsAny(const bool _bInvestigateFootnoteForSections=false) const
Method <ContainsAny()> doesn't investigate content of footnotes by default.
bool IsBefore(const SwLayoutFrame *_pCheckRefLayFrame) const
method to check relative position of layout frame to a given layout frame.
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr) override
const SwFrame * GetLastLower() const
virtual SwTwips ShrinkFrame(SwTwips, bool bTst=false, bool bInfo=false) override
const SwContentFrame * ContainsContent() const
Checks if the frame contains one or more ContentFrame's anywhere in his subsidiary structure; if so t...
bool MoveLowerFootnotes(SwContentFrame *pStart, SwFootnoteBossFrame *pOldBoss, SwFootnoteBossFrame *pNewBoss, const bool bFootnoteNums)
Moving the Footnotes of all Lowers - starting from StartContent.
const SwFrame * Lower() const
virtual void Cut() override
Marks a node in the document model.
SwNodeOffset GetIndex() const
SwContentNode * GetContentNode()
const IDocumentSettingAccess * getIDocumentSettingAccess() const
Provides access to the document setting interface.
const SwPageFootnoteInfo & GetFootnoteInfo() const
A page of the document layout.
SwContentFrame * FindLastBodyContent()
Searches the last ContentFrame in BodyText below the page.
bool IsEndNotePage() const
sal_uInt16 GetPhyPageNum() const
void SetColMaxFootnoteHeight()
Adapt the max. footnote height in each single column.
void SetEndNotePage(bool b)
bool IsFootnotePage() const
Foot note interface.
SwPageDesc * GetPageDesc()
tools::Long GetHeight(const SwRect &rRect) const
void SetWidth(SwRect &rRect, tools::Long nNew) const
void AddHeight(SwRect &rRect, tools::Long nNew) const
tools::Long GetWidth(const SwRect &rRect) const
tools::Long TopDist(const SwRect &rRect, tools::Long nPos) const
void SetHeight(SwRect &rRect, tools::Long nNew) const
tools::Long GetTop(const SwRect &rRect) const
void SubTop(SwRect &rRect, tools::Long nNew) const
void AddBottom(SwRect &rRect, tools::Long nNew) const
tools::Long YDiff(tools::Long n1, tools::Long n2) const
tools::Long GetPrtTop(const SwFrame &rFrame) const
tools::Long GetBottom(const SwRect &rRect) const
tools::Long BottomDist(const SwRect &rRect, tools::Long nPos) const
void SetTop(SwRect &rRect, tools::Long nNew) const
tools::Long GetPrtBottom(const SwFrame &rFrame) const
void Height(tools::Long nNew)
void Pos(const Point &rNew)
void AddHeight(const tools::Long nAdd)
SwViewShell * GetCurrShell() const
void SetSuperfluous()
Remove superfluous Pages.
const SwPageFrame * GetLastPage() const
void RemoveFootnotes(SwPageFrame *pPage=nullptr, bool bPageOnly=false, bool bEndNotes=false)
Remove all footnotes (but no references)
void CheckFootnotePageDescs(bool bEndNote)
Change the page template of the footnote pages.
void UpdateFootnoteNums()
Update the footnote numbers of all Pages.
bool IsAnyNoteAtEnd() const
bool IsOwnFootnoteNum() const
const SwSectionFormat * GetEndSectFormat() const
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
SwContentFrame * FindLastContent(SwFindMode nMode=SwFindMode::None)
SwSectionFrame * FindMaster() 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 IsFootnoteAtEnd() const
bool IsDescendantFrom(const SwSectionFormat *pSect) const
bool IsFootnoteLock() const
const SwSectionFrame * GetFollow() const
SwTabFrame is one table in the document layout, containing rows (which contain cells).
bool IsInHeadline(const SwFrame &rFrame) const
const SfxPoolItem & GetAttr() const
const SwFormatFootnote & GetFootnote() const
sal_Int32 GetStart() const
Represents the visualization of a paragraph.
bool IsHiddenNow() const
Hidden.
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!...
SwTextNode is a paragraph in the document model.
bool getBrowseMode() const
vcl::RenderContext * GetOut() const
const SwViewOption * GetViewOptions() const
const_iterator begin() const
std::vector< Value >::const_iterator const_iterator
const_iterator find(const Value &x) const
const_iterator end() const
struct _xmlTextWriter * xmlTextWriterPtr
std::vector< SwFootnoteFrame * > SwFootnoteFrames
static SwPageFrame * lcl_GetApproximateFootnotePage(const bool bEnd, const SwPageFrame *pPage, const SwDoc *pDoc, const SwTextFootnote *pAttr)
static tools::Long lcl_Undersize(const SwFrame *pFrame)
static bool lcl_NextFootnoteBoss(SwFootnoteBossFrame *&rpBoss, SwPageFrame *&rpPage, bool bDontLeave)
static void FootnoteInArr(SwFootnoteFrames &rFootnoteArr, SwFootnoteFrame *pFootnote)
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...
static sal_uInt16 lcl_ColumnNum(const SwFrame *pBoss)
void sw_RemoveFootnotes(SwFootnoteBossFrame *pBoss, bool bPageOnly, bool bEndNotes)
remove all footnotes (not the references) and all footnote pages
#define SAL_WARN_IF(condition, area, stream)
tools::Long const nBorder
Dialog to specify the properties of date form field.
SwTwips FootnoteSeparatorHeight(SwPageFootnoteInfo const &rInf)
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
Marks a position in the document model.
@ FootnoteInvalidationGone
@ AdjustSizeWithoutFormatting