31 #include <osl/diagnose.h>
92 OSL_ENSURE( pSect,
"Escaping footnote" );
93 if( pSect != pMySect )
122 const SwFrame* pLastFrame = pPrevFrame;
126 pLastFrame =
static_cast<const SwSectionFrame*
>(pPrevFrame)->FindLastContent();
146 fnRectX.
SetTop( aRect, nNewTop );
148 pPrevFrame = pPrevFrame->
GetNext();
165 if ( nMoveAnyway < 3 )
181 const sal_uInt8 nBwdMoveNecessaryResult =
183 const bool bObjsInNewUpper( nBwdMoveNecessaryResult == 2 ||
184 nBwdMoveNecessaryResult == 3 );
186 return WouldFit_( nSpace, pNewUpper, nMoveAnyway == 2,
254 OSL_ENSURE(
GetUpper(),
":-( Layout unstable (Upper gone)." );
261 bool bOldTabLock =
false, bFoll =
false;
267 bOldTabLock =
static_cast<SwTabFrame*
>(
this)->IsJoinLocked();
284 if ( pMaster && pMaster->
IsLocked() )
294 const bool bFormatPrev = !bTab ||
300 while ( pFrame !=
this )
302 OSL_ENSURE( pFrame,
":-( Layout unstable (this not found)." );
316 bool const isLast(pFrame->
GetNext() ==
this);
321 pFrame->
MakeAll(pRenderContext);
322 if(
IsSctFrame() && !static_cast<SwSectionFrame*>(
this)->GetSection() )
355 if( bNoSect && pFrame && pFrame->
IsSctFrame() )
362 OSL_ENSURE(
GetUpper(),
"Layout unstable (Upper gone II)." );
369 OSL_ENSURE(
GetUpper(),
"Layout unstable (Upper gone III)." );
372 if ( bTab && !bOldTabLock )
388 OSL_ENSURE(
GetUpper(),
":-( Layout unstable (Upper gone)." );
412 std::optional<FlowFrameJoinLockGuard> tabGuard;
413 std::optional<SwFrameDeleteGuard> rowGuard;
418 tabGuard.emplace(static_cast<SwTabFrame*>(
this));
423 rowGuard.emplace(
this);
434 OSL_ENSURE(
GetUpper(),
":-( Layout unstable (Upper gone)." );
438 bool const bFoll = pThis && pThis->
IsFollow();
441 while ( pFrame !=
this )
443 OSL_ENSURE( pFrame,
":-( Layout unstable (this not found)." );
457 bool const isLast(pFrame->
GetNext() ==
this);
485 if( bNoSect && pFrame && pFrame->
IsSctFrame() )
492 OSL_ENSURE(
GetUpper(),
"Layout unstable (Upper gone II)." );
498 OSL_ENSURE(
GetUpper(),
"Layout unstable (Upper gone III)." );
532 bool bUseUpper =
false;
556 if ( !bUseUpper && pPrv )
617 if ( !bUseUpper && pPrv )
707 if (
auto pFly = pObj->DynCastFlyFrame() )
709 if( pFly->getFrameArea().Top() !=
FAR_AWAY &&
711 ( pFly->IsFlyAtContentFrame() &&
712 ( pFrame->
IsBodyFrame() ? pFly->GetAnchorFrame()->IsInDocBody() :
713 pFly->GetAnchorFrame()->IsInFootnote() ) ) ) )
715 nTmp = pFly->getFrameArea().Bottom();
719 nTmp = pObj->GetObjRect().Bottom();
720 nMax = std::max( nTmp, nMax );
723 rBot = std::max( rBot, nMax );
729 "SwPageFrame::GetContentHeight(): No support for columns.");
738 while (pCnt && (pCnt->
GetUpper() == pFrame ||
743 static_cast<const SwTextFrame*
>(pCnt)->IsUndersized())
746 nTmp +=
static_cast<const SwTextFrame*
>(pCnt)->GetParHeight()
752 const auto delta =
static_cast<const SwSectionFrame*
>(pCnt)->CalcUndersize();
772 "SwPageFrame::GetContentHeight(): Lower with frame height < printing height");
800 std::optional<SwBorderAttrAccess> oAccess;
832 pAttrs = oAccess->Get();
847 if (nWidth < nDefWidth)
849 nWidth += + 2 * aBorder.
Width();
852 nWidth = std::max(nWidth, 2L * aBorder.
Width() + constTwips_2cm);
856 aFrm.
Width( nWidth );
932 Format( pRenderContext, pAttrs );
941 "Upper (Root) must be wide enough to contain the widest page");
954 std::optional<SwBorderAttrAccess> oAccess;
1023 pAttrs = oAccess->Get();
1043 const size_t nObjs = ( pObjs != nullptr ) ? pObjs->
size( ) : 0;
1045 return pNdBefore!=
nullptr && pNdAfter!=
nullptr && nObjs == 0 && bInTable;
1071 if ( bTextFrame && static_cast<SwTextFrame*>(
this)->IsHiddenNow() )
1073 if ( static_cast<SwTextFrame*>(
this)->
HasFollow() )
1127 nMinWidth = std::max( nMinWidth,
1137 nWidth = std::max( nMinWidth, nWidth );
1151 if( aRectFnSet.
GetLeft(aPrt) > nTmp )
1153 aRectFnSet.
SetLeft( aPrt, nTmp );
1179 aRectFnSet.
SetPosY( aPrt, !aRectFnSet.
IsVert() ? nUpper : nLower);
1196 #define STOP_FLY_FORMAT 10
1211 OSL_ENSURE(
GetUpper(),
"no Upper?" );
1220 OSL_ENSURE( !static_cast<SwTextFrame*>(
this)->IsSwapped(),
"Calculation of a swapped frame" );
1224 if ( static_cast<SwTextFrame*>(
this)->IsLocked() )
1226 OSL_FAIL(
"Format for locked TextFrame." );
1230 std::optional<SwFrameDeleteGuard> oDeleteGuard(std::in_place,
this);
1234 int nConsecutiveFormatsWithoutChange = 0;
1238 std::optional<SwContentNotify> oNotify( std::in_place,
this );
1241 bool bMakePage =
true;
1243 bool bMovedBwd =
false;
1246 bool bMovedFwd =
false;
1251 bool bMustFit =
false;
1253 bool bFitPromise =
false;
1270 oNotify->SetBordersJoinedWithPrev();
1275 std::unique_ptr<SwSaveFootnoteHeight> pSaveFootnote;
1280 if ( !static_cast<SwTextFrame*>(pFootnote->
GetRef())->IsLocked() )
1286 static_cast<SwTextFrame*>(pFootnote->
GetRef())->GetFootnoteLine( pFootnote->
GetAttr() ) ) );
1299 if ( !static_cast<SwTextFrame*>(
this)->
IsFollow() )
1301 sal_uInt32 nToPageNum = 0;
1304 *static_cast<SwTextFrame*>(
this),
1308 if ( bMoveFwdByObjPos &&
1348 if ( pFootnoteBossOfFootnote && pFootnoteBossOfRef &&
1349 pFootnoteBossOfFootnote != pFootnoteBossOfRef &&
1350 pFootnoteBossOfFootnote->
IsBefore( pFootnoteBossOfRef ) )
1360 SwFrame const* pMoveBwdPre(
nullptr);
1361 bool isMoveBwdPreValid(
false);
1363 SwRect aOldFrame_StopFormat, aOldFrame_StopFormat2;
1364 SwRect aOldPrt_StopFormat, aOldPrt_StopFormat2;
1369 aOldFrame_StopFormat2 = aOldFrame_StopFormat;
1370 aOldPrt_StopFormat2 = aOldPrt_StopFormat;
1390 if ((pPre == pMoveBwdPre && isMoveBwdPreValid) && !pPre->
IsSctFrame())
1420 nNewFrameWidth > 0 &&
1429 aRectFnSet.
SetWidth( aFrm, nNewFrameWidth );
1461 const bool bNoPrepAdjustFrame =
1466 if ( !bNoPrepAdjustFrame )
1482 if( bMoveable && !bFormatted &&
1512 if ( nConsecutiveFormatsWithoutChange <=
cnStopFormat )
1516 #if OSL_DEBUG_LEVEL > 0
1519 OSL_FAIL(
"debug assertion: <SwContentFrame::MakeAll()> - format of text frame suppressed by fix b6448963" );
1530 auto const bTemp(pTemp && pTemp->isFrameAreaSizeValid()
1531 && pTemp->isFramePrintAreaValid());
1534 ( bMoveable || ( bFly && !bTab ) ) &&
1539 pMoveBwdPre = pTemp;
1540 isMoveBwdPreValid = bTemp;
1543 if ( bKeep && bMoveable )
1583 if( static_cast<SwSectionFrame*>(pNxt)->GetSection() )
1644 ++nConsecutiveFormatsWithoutChange;
1648 nConsecutiveFormatsWithoutChange = 0;
1672 if( nBottomDist >= 0 )
1674 if ( bKeep && bMoveable )
1689 if( static_cast<SwSectionFrame*>(pNxt)->GetSection() )
1698 const bool bMoveFwdInvalid =
nullptr !=
GetIndNext();
1699 const bool bNxtNew =
1710 oNotify->SetInvaKeep();
1745 bool bMoveOrFit =
false;
1747 if( bDontMoveMe &&
IsInSct() )
1750 bDontMoveMe = !pBoss->
IsInSct() ||
1756 if( bDontMoveMe &&
IsInTab() &&
1758 bDontMoveMe =
false;
1770 if ( nTmp > 0 &&
WouldFit( nTmp, bSplit,
false ) )
1786 else if ( !bFootnote &&
1791 #if OSL_DEBUG_LEVEL > 0
1794 OSL_FAIL(
"+TextFrame didn't respect WouldFit promise." );
1812 static_cast<SwSectionFrame*>(pOldUp->
GetUpper()->
GetUpper())->MoveAllowed(
this) )
1817 const bool bCheckForGrownBody = pOldUp->
IsBodyFrame();
1820 if ( !bMovedFwd && !
MoveFwd( bMakePage,
false ) )
1823 if (!bMovedFwd && bFootnote &&
GetIndPrev() != pPre)
1825 auto const pPrevFootnoteFrame(static_cast<SwFootnoteFrame const*>(
1828 if (pPrevFootnoteFrame)
1830 for (
auto p = pPrevFootnoteFrame->Lower();
p;
p =
p->GetIndNext())
1851 bMovedFwd = !bCheckForGrownBody || bMovedBwd || pOldUp ==
GetUpper() ||
1855 if ( bMoveOrFit &&
GetUpper() == pOldUp )
1858 if ( nConsecutiveFormatsWithoutChange <=
cnStopFormat )
1866 #if OSL_DEBUG_LEVEL > 0
1867 OSL_FAIL(
"LoopControl in SwContentFrame::MakeAll" );
1892 static_cast<SwTextFrame&>(*
this) );
1894 pSaveFootnote.reset();
1897 oDeleteGuard.reset();
1898 if ( bMovedFwd || bMovedBwd )
1899 oNotify->SetInvaKeep();
1902 oNotify->SetInvalidatePrevPrtArea();
1945 SwLayNotify aNotify( static_cast<SwLayoutFrame*>(pNxt) );
1973 assert(pFrame && pNxt &&
"lcl_IsNextFootnoteBoss: No Frames?");
1983 return pFrame && pNxt && pFrame->
GetNext() == pNxt;
1989 const bool bObjsInNewUpper )
2003 bool bSplit = !pNewUpper->
Lower();
2007 pTmpPrev = static_cast<const SwFootnoteFrame*>(pTmpPrev)->Lower();
2008 while ( pTmpPrev && pTmpPrev->
GetNext() )
2009 pTmpPrev = pTmpPrev->
GetNext();
2015 bool bOldSplit = bSplit;
2045 ( !
static_cast<SwTextFrame*
>(pFrame)->HasPara() &&
2055 bRet = pFrame->
WouldFit( nSpace, bSplit,
false );
2063 bRet = pFrame->
WouldFit( nSpace, bSplit,
false );
2064 nSecondCheck = !bSplit ? 1 : 0;
2072 if ( bRet && !bTstMove )
2082 bool bCommonBorder =
true;
2090 nSecondCheck = ( 1 == nSecondCheck &&
2094 !
static_cast<const SwTextFrame*
>(
this)->IsEmpty() ) ?
2098 nUpper += bCommonBorder ?
2121 if ( nSecondCheck > 0 )
2131 nOldSpace -= nSecondCheck;
2132 const bool bSecondRet = nOldSpace >= 0 && pFrame->
WouldFit( nOldSpace, bOldSplit,
false );
2133 if ( bSecondRet && bOldSplit && nOldSpace >= 0 )
2172 OSL_FAIL(
"Only a warning for task 108824:/n<SwContentFrame::WouldFit_(..) - follow not valid!" );
2216 }
while ( bRet && pFrame );
void InsertBefore(SwLayoutFrame *pParent, SwFrame *pBehind)
Insert SwFrame into existing structure.
bool IsAnLower(const SwFrame *) const
vcl::RenderContext * GetOut() const
void SetTop(SwRect &rRect, tools::Long nNew) const
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
sal_uInt16 CalcBottomLine() 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.
tools::Long GetWidth() const
void PrepareLock(SwFlowFrame *pTab)
virtual SwRect GetObjRect() const =0
void InvalidateInfFlags()
SwFrameGet fnGetPrtBottom
Point GetPos(const SwRect &rRect) const
const SwSortedObjs * GetDrawObjs() const
void MakePrtArea(const SwBorderAttrs &)
virtual void MakeAll(vcl::RenderContext *pRenderContext) override
virtual void MakeAll(vcl::RenderContext *pRenderContext)=0
SwTwips Grow(SwTwips, bool bTst=false, bool bInfo=false)
void SetPosY(SwRect &rRect, tools::Long nNew) const
sal_uInt16 GetLower() const
virtual void Format(vcl::RenderContext *pRenderContext, const SwBorderAttrs *pAttrs=nullptr) override
"Formats" the Frame; Frame and PrtArea.
constexpr auto toTwips(N number, Length from)
bool MoveFwd(bool bMakePage, bool bPageBreak, bool bMoveAlways=false)
Return value guarantees that a new page was not created, although false does not NECESSARILY indicate...
tools::Long BottomDist(const SwRect &rRect, tools::Long nPos) const
const OUString & GetText() const
void LOOPING_LOUIE_LIGHT(bool bCondition, const SwTextFrame &rTextFrame)
bool IsBefore(const SwLayoutFrame *_pCheckRefLayFrame) const
method to check relative position of layout frame to a given layout frame.
friend void ValidateSz(SwFrame *pFrame)
bool IsKeep(SvxFormatKeepItem const &rKeep, SvxFormatBreakItem const &rBreak, bool bBreakCheck=false) const
method to determine if a Keep needs to be considered (Breaks!)
void Left(const tools::Long nLeft)
void Refresh(const SwFrame *pFrame)
void SetCompletePaint() const
bool IsInFootnote() const
virtual bool Prepare(const PrepareHint ePrep=PrepareHint::Clear, const void *pVoid=nullptr, bool bNotify=true)
SwFrameType GetType() const
bool IsPrevObjMove() const
void SetFlyLock(bool bNew)
static SwFrame * lcl_Prev(SwFrame *pFrame, bool bSectPrv=true)
const SwRect & getFramePrintArea() const
static SwCache & GetCache()
SwTabFrame is one table in the document layout, containing rows (which contain cells).
tools::Long CalcRight(const SwFrame *pCaller) const
bool JoinedWithPrev(const SwFrame &_rFrame, const SwFrame *_pPrevFrame=nullptr) const
SwContentFrame * getLayoutFrame(const SwRootFrame *, const SwPosition *pPos=nullptr, std::pair< Point, bool > const *pViewPosAndCalcFrame=nullptr) const
SwTwips CalcLowerSpace(const SwBorderAttrs *_pAttrs=nullptr) const
calculation of lower space
bool MoveBwd(bool &rbReformat)
Return value tells whether any changes have been made.
sal_uInt16 CalcTopLine() const
void Pos(const Point &rNew)
virtual void Calc(vcl::RenderContext *pRenderContext) const
Of course Writer needs its own rectangles.
virtual const SvxFormatBreakItem & GetBreakItem() const
const OUString & GetText() const
Returns the text portion we want to edit (for inline see underneath)
tools::Long GetWidth(const SwRect &rRect) const
SwNodeOffset abs(const SwNodeOffset &a)
bool WouldFit_(SwTwips nSpace, SwLayoutFrame *pNewUpper, bool bTstMove, const bool bObjsInNewUpper)
static SwFlowFrame * CastFlowFrame(SwFrame *pFrame)
The root element of a Writer document layout.
void PrepareUnlock(SwFlowFrame *pTab)
bool IsFootnoteFrame() const
void SetXMargins(SwFrame &rFrame, tools::Long nLeft, tools::Long nRight) const
sal_Int32 GetBrowseWidth() const
virtual void MakeAll(vcl::RenderContext *pRenderContext) override
bool isFrameAreaDefinitionValid() const
void ValidateSz(SwFrame *pFrame)
void PrepareMake(vcl::RenderContext *pRenderContext)
Prepares the Frame for "formatting" (MakeAll()).
tools::Long GetTop(const SwRect &rRect) const
constexpr tools::Long Width() const
SwTwips CalcUpperSpace(const SwBorderAttrs *pAttrs=nullptr, const SwFrame *pPr=nullptr, const bool _bConsiderGrid=true) const
method to determine the upper space hold by the frame
sal_uInt16 CalcLeftLine() const
wrapper class for the positioning of Writer fly frames and drawing objects
bool IsMoveable(const SwLayoutFrame *_pLayoutFrame=nullptr) const
determine, if frame is moveable in given environment
virtual bool IsLeaveUpperAllowed() const
const SwRect & getFrameArea() const
bool getBrowseMode() const
virtual Size ChgSize(const Size &aNewSize)
const SwPageFrame * GetLastPage() const
void Width(tools::Long nNew)
void setFramePrintAreaValid(bool bNew)
bool IsPageBodyFrame() const
SwFlyFrame * FindFlyFrame()
tools::Long GetLeft(const SwRect &rRect) const
const SvxFormatKeepItem & GetKeep(bool=true) const
SwLayoutFrame * GetNextCellLeaf()
const SwAttrSet * GetAttrSet() const
WARNING: this may not return correct RES_PAGEDESC/RES_BREAK items for SwTextFrame, use GetBreakItem()/GetPageDescItem() instead.
const SwFrame & GetFrame() const
bool IsFootnoteLock() const
virtual SwTwips GrowFrame(SwTwips, bool bTst=false, bool bInfo=false) override
bool IsColumnFrame() const
SwRectFn fnRectVertL2RB2T
SwFootnoteFrame * FindFootnoteFrame()
SwTextNode const * GetTextNodeForParaProps() const
friend void MakeNxt(SwFrame *pFrame, SwFrame *pNxt)
bool IsContentFrame() const
bool CheckPageHeightValidForHideWhitespace(SwTwips nDiff)
Is bottom-of-page-frame - bottom-of-text-frame difference valid in case whitespace is hidden...
SwFrame * GetIndPrev() const
const SwContentFrame * GetFollow() const
tools::Long GetPrtBottom(const SwFrame &rFrame) const
bool IsFwdMoveAllowed() const
const SwRect & VisArea() const
size_t GetContentHeight(const tools::Long nTop, const tools::Long nBottom) const
Calculate the content height of a page (without columns).
SwTwips CalcAddLowerSpaceAsLastInTableCell(const SwBorderAttrs *_pAttrs=nullptr) const
calculation of the additional space to be considered, if flow frame is the last inside a table cell ...
sal_uInt16 GetBottomLine(const SwFrame &_rFrame) const
tools::Long CalcLeft(const SwFrame *pCaller) const
static bool lcl_IsCalcUpperAllowed(const SwFrame &rFrame)
SwPageFrame * FindPageFrame()
virtual bool IsDeleteForbidden() const
const SwFrame * Lower() const
SwNodeOffset GetIndex() const
bool IsInBalancedSection() const
tools::Long GetHeight(const SwRect &rRect) const
bool IsJoinLocked() const
virtual const SwFlyFrame * DynCastFlyFrame() const
SwLayoutFrame * GetUpper()
bool isFramePrintAreaValid() const
bool IsUndersized() const
SwFootnoteBossFrame * FindFootnoteBossFrame(bool bFootnotes=false)
Provides access to settings of a document.
const SwAttrSet & GetAttrSet() const
virtual void Format(vcl::RenderContext *pRenderContext, const SwBorderAttrs *pAttrs=nullptr)
SwNodes & GetNodes()
Node is in which nodes-array/doc?
bool isFrameAreaPositionValid() const
void SSize(const Size &rNew)
bool isFrameAreaSizeValid() const
A page of the document layout.
const SwFormatFootnote & GetFootnote() const
sal_uInt8 BwdMoveNecessary(const SwPageFrame *pPage, const SwRect &rRect)
method to determine overlapping of an object that requests floating
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper) override
void ResetCompletePaint() const
bool CheckMoveFwd(bool &rbMakePage, bool bKeep, bool bIgnoreMyOwnKeepValue)
Moves the Frame forward if it seems necessary regarding the current conditions and attributes...
SwSectionFrame * FindSctFrame()
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
const IDocumentLayoutAccess & getIDocumentLayoutAccess() const
Provides access to the document layout interface.
void setFrameAreaPositionValid(bool bNew)
static SwFrame * lcl_NotHiddenPrev(SwFrame *pFrame)
void SetPosX(SwRect &rRect, tools::Long nNew) const
SwTextNode is a paragraph in the document model.
bool OverStep(const SwRect &rRect, tools::Long nPos) const
bool Growable() const
checks whether the SectionFrame is still able to grow, as case may be the environment has to be asked...
void MakeNxt(SwFrame *pFrame, SwFrame *pNxt)
void SetWidth(SwRect &rRect, tools::Long nNew) const
static void lcl_CheckObjects(SwSortedObjs &rSortedObjs, const SwFrame *pFrame, tools::Long &rBot)
general base class for all free-flowing frames
virtual bool ShouldBwdMoved(SwLayoutFrame *pNewUpper, bool &) override
Return value tells whether the Frame should be moved.
sal_uInt16 CalcLineSpacing() const
virtual SwFrameFormat & GetFrameFormat()=0
constexpr tools::Long Height() const
sal_uInt16 GetPhyPageNum() const
const SwViewOption * GetViewOptions() const
const SwFrame * ContainsAny(const bool _bInvestigateFootnoteForSections=false) const
Method doesn't investigate content of footnotes by default.
void SetHeight(SwRect &rRect, tools::Long nNew) const
bool IsRightToLeft() const
void Top(const tools::Long nTop)
bool IsColBodyFrame() const
These SwFrame inlines are here, so that frame.hxx does not need to include layfrm.hxx.
virtual bool WouldFit(SwTwips &nMaxHeight, bool &bSplit, bool bTst)
void setFrameAreaSizeValid(bool bNew)
const Size & GetBrowseBorder() const
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
static bool lcl_IsNextFootnoteBoss(const SwFrame *pFrame, const SwFrame *pNxt)
This routine checks whether there are no other FootnoteBosses between the pFrame's FootnoteBoss and t...
bool IsAnFollow(const SwFlowFrame *pFlow) const
virtual SwTwips ShrinkFrame(SwTwips, bool bTst=false, bool bInfo=false) override
const Size & GetSize() const
SwTableNode * FindTableNode()
Search table node, in which it is.
constexpr sal_Int32 COMPLETE_STRING
tools::Long GetBottom(const SwRect &rRect) const
void SetLeft(SwRect &rRect, tools::Long nNew) const
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame...
Ends a section of nodes in the document model.
static bool FrameMovedFwdByObjPos(const SwDoc &_rDoc, const SwTextFrame &_rTextFrame, sal_uInt32 &_ornToPageNum)
bool IsFootnoteContFrame() const
bool IsWhitespaceHidden() const
bool IsNeighbourFrame() const
virtual void MakeAll(vcl::RenderContext *pRenderContext) override
SwViewShell * GetCurrShell() const
o3tl::strong_int< sal_Int32, struct Tag_TextFrameIndex > TextFrameIndex
Denotes a character index in a text frame at a layout level, after extent mapping from a text node at...
class for collecting anchored objects
void Height(tools::Long nNew)
SwContentFrame * JoinFrame()
bool IsFooterFrame() const
SwRootFrame * getRootFrame()
std::unique_ptr< SwSortedObjs > m_pSortedObjs
bool IsHeaderFrame() const
virtual const SwFrameFormat * GetFormat() const
#define PROTOCOL_ENTER(pFrame, nFunc, nAct, pPar)
const SvxULSpaceItem & GetULSpace() const
SwTabFrame * FindTabFrame()
sal_uInt16 CalcRightLine() const
static bool IsMoveBwdJump()