31#include <osl/diagnose.h>
56 if ( SwFlowFrame::IsMoveBwdJump() || !IsPrevObjMove() )
80 if ( SwFlowFrame::IsMoveBwdJump() )
92 OSL_ENSURE( pSect,
"Escaping footnote" );
93 if( pSect != pMySect )
106 nMoveAnyway |= BwdMoveNecessary( pOldPage,
getFrameArea() );
122 const SwFrame* pLastFrame = pPrevFrame;
126 pLastFrame =
static_cast<const SwSectionFrame*
>(pPrevFrame)->FindLastContent();
146 fnRectX.
SetTop( aRect, nNewTop );
148 pPrevFrame = pPrevFrame->
GetNext();
151 nMoveAnyway |= BwdMoveNecessary( pNewPage, aRect);
165 if ( nMoveAnyway < 3 )
181 const sal_uInt8 nBwdMoveNecessaryResult =
182 BwdMoveNecessary( pNewPage, aRect);
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();
269 bFoll = pThis->IsFollow();
274 bFoll = pThis->IsFollow();
279 bFoll = pThis->IsFollow();
284 if ( pMaster && pMaster->
IsLocked() )
294 const bool bFormatPrev = !bTab ||
300 while ( pFrame !=
this )
302 OSL_ENSURE( pFrame,
":-( Layout unstable (this not found)." );
313 SwFlowFrame::CastFlowFrame(pFrame)->IsAnFollow( pThis ) )
316 bool const isLast(pFrame->
GetNext() ==
this);
321 pFrame->
MakeAll(pRenderContext);
330 || ( SwFlowFrame::CastFlowFrame(pFrame)
332 && SwFlowFrame::CastFlowFrame(pFrame)->IsAnFollow(
336 || (SwFlowFrame::CastFlowFrame(
GetUpper()->
Lower())->GetFollow()
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)." );
454 SwFlowFrame::CastFlowFrame(pFrame)->IsAnFollow( pThis ) )
457 bool const isLast(pFrame->
GetNext() ==
this);
465 || ( SwFlowFrame::CastFlowFrame(pFrame)
467 && SwFlowFrame::CastFlowFrame(pFrame)->IsAnFollow(
471 || (SwFlowFrame::CastFlowFrame(
GetUpper()->
Lower())->GetFollow()
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;
1024 pAttrs = oAccess->Get();
1044 const size_t nObjs = ( pObjs != nullptr ) ? pObjs->
size( ) : 0;
1046 return pNdBefore!=
nullptr && pNdAfter!=
nullptr && nObjs == 0 && bInTable;
1072 if ( bTextFrame &&
static_cast<SwTextFrame*
>(
this)->IsHiddenNow() )
1074 if (
static_cast<SwTextFrame*
>(
this)->HasFollow() )
1128 nMinWidth = std::max( nMinWidth,
1138 nWidth = std::max( nMinWidth, nWidth );
1152 if( aRectFnSet.
GetLeft(aPrt) > nTmp )
1154 aRectFnSet.
SetLeft( aPrt, nTmp );
1170 nUpper = CalcUpperSpace( &rAttrs );
1172 SwTwips nLower = CalcLowerSpace( &rAttrs );
1180 aRectFnSet.
SetPosY( aPrt, !aRectFnSet.
IsVert() ? nUpper : nLower);
1197#define STOP_FLY_FORMAT 10
1212 OSL_ENSURE(
GetUpper(),
"no Upper?" );
1218 if ( IsJoinLocked() )
1221 OSL_ENSURE( !
static_cast<SwTextFrame*
>(
this)->IsSwapped(),
"Calculation of a swapped frame" );
1225 if (
static_cast<SwTextFrame*
>(
this)->IsLocked() )
1227 OSL_FAIL(
"Format for locked TextFrame." );
1231 std::optional<SwFrameDeleteGuard> oDeleteGuard(std::in_place,
this);
1235 int nConsecutiveFormatsWithoutChange = 0;
1239 std::optional<SwContentNotify> oNotify( std::in_place,
this );
1242 bool bMakePage =
true;
1244 bool bMovedBwd =
false;
1247 bool bMovedFwd =
false;
1252 bool bMustFit =
false;
1254 bool bFitPromise =
false;
1271 oNotify->SetBordersJoinedWithPrev();
1276 std::unique_ptr<SwSaveFootnoteHeight> pSaveFootnote;
1300 if ( !
static_cast<SwTextFrame*
>(
this)->IsFollow() )
1302 sal_uInt32 nToPageNum = 0;
1309 if ( bMoveFwdByObjPos &&
1349 if ( pFootnoteBossOfFootnote && pFootnoteBossOfRef &&
1350 pFootnoteBossOfFootnote != pFootnoteBossOfRef &&
1351 pFootnoteBossOfFootnote->
IsBefore( pFootnoteBossOfRef ) )
1361 SwFrame const* pMoveBwdPre(
nullptr);
1362 bool isMoveBwdPreValid(
false);
1364 SwRect aOldFrame_StopFormat, aOldFrame_StopFormat2;
1365 SwRect aOldPrt_StopFormat, aOldPrt_StopFormat2;
1370 aOldFrame_StopFormat2 = aOldFrame_StopFormat;
1371 aOldPrt_StopFormat2 = aOldPrt_StopFormat;
1379 if ( CheckMoveFwd( bMakePage, bKeep, bMovedBwd ) )
1391 if ((pPre == pMoveBwdPre && isMoveBwdPreValid) && !pPre->
IsSctFrame())
1421 nNewFrameWidth > 0 &&
1430 aRectFnSet.
SetWidth( aFrm, nNewFrameWidth );
1462 const bool bNoPrepAdjustFrame =
1466 GetFollow()->CalcAddLowerSpaceAsLastInTableCell() == nHDiff;
1467 if ( !bNoPrepAdjustFrame )
1483 if( bMoveable && !bFormatted &&
1513 if ( nConsecutiveFormatsWithoutChange <=
cnStopFormat )
1517#if OSL_DEBUG_LEVEL > 0
1520 OSL_FAIL(
"debug assertion: <SwContentFrame::MakeAll()> - format of text frame suppressed by fix b6448963" );
1531 auto const bTemp(pTemp && pTemp->isFrameAreaSizeValid()
1532 && pTemp->isFramePrintAreaValid());
1535 ( bMoveable || ( bFly && !bTab ) ) &&
1537 && MoveBwd( bDummy ) )
1540 pMoveBwdPre = pTemp;
1541 isMoveBwdPreValid = bTemp;
1544 if ( bKeep && bMoveable )
1546 if( CheckMoveFwd( bMakePage,
false, bMovedBwd ) )
1604 if( pNxtSct && pSct->IsAnFollow( pNxtSct ) )
1645 ++nConsecutiveFormatsWithoutChange;
1649 nConsecutiveFormatsWithoutChange = 0;
1673 if( nBottomDist >= 0 )
1675 if ( bKeep && bMoveable )
1699 const bool bMoveFwdInvalid =
nullptr !=
GetIndNext();
1700 const bool bNxtNew =
1711 oNotify->SetInvaKeep();
1725 if ( !bMoveable || IsUndersized() )
1739 bool bMoveOrFit =
false;
1741 if( bDontMoveMe &&
IsInSct() )
1744 bDontMoveMe = !pBoss->
IsInSct() ||
1750 if( bDontMoveMe &&
IsInTab() &&
1752 bDontMoveMe =
false;
1763 bool bSplit = !IsFwdMoveAllowed();
1764 if (nTmp > 0 &&
WouldFit(nTmp, bSplit,
false,
false))
1785#if OSL_DEBUG_LEVEL > 0
1788 OSL_FAIL(
"+TextFrame didn't respect WouldFit promise." );
1811 const bool bCheckForGrownBody = pOldUp->
IsBodyFrame();
1814 if ( !bMovedFwd && !
MoveFwd( bMakePage,
false ) )
1822 if (pPrevFootnoteFrame)
1824 for (
auto p = pPrevFootnoteFrame->Lower();
p;
p =
p->GetIndNext())
1845 bMovedFwd = !bCheckForGrownBody || bMovedBwd || pOldUp ==
GetUpper() ||
1849 if ( bMoveOrFit &&
GetUpper() == pOldUp )
1852 if ( nConsecutiveFormatsWithoutChange <=
cnStopFormat )
1860#if OSL_DEBUG_LEVEL > 0
1861 OSL_FAIL(
"LoopControl in SwContentFrame::MakeAll" );
1888 pSaveFootnote.reset();
1891 oDeleteGuard.reset();
1892 if ( bMovedFwd || bMovedBwd )
1893 oNotify->SetInvaKeep();
1896 oNotify->SetInvalidatePrevPrtArea();
1899 SetFlyLock(
false );
1967 assert(pFrame && pNxt &&
"lcl_IsNextFootnoteBoss: No Frames?");
1977 return pFrame && pNxt && pFrame->
GetNext() == pNxt;
1983 const bool bObjsInNewUpper )
1997 bool bSplit = !pNewUpper->
Lower();
2002 while ( pTmpPrev && pTmpPrev->
GetNext() )
2003 pTmpPrev = pTmpPrev->
GetNext();
2009 bool bOldSplit = bSplit;
2039 ( !
static_cast<SwTextFrame*
>(pFrame)->HasPara() &&
2049 bRet = pFrame->
WouldFit(nSpace, bSplit,
false,
true);
2057 bRet = pFrame->
WouldFit(nSpace, bSplit,
false,
true);
2058 nSecondCheck = !bSplit ? 1 : 0;
2066 if ( bRet && !bTstMove )
2072 nUpper = CalcUpperSpace(
nullptr, pTmpPrev );
2076 bool bCommonBorder =
true;
2084 nSecondCheck = ( 1 == nSecondCheck &&
2088 !
static_cast<const SwTextFrame*
>(
this)->IsEmpty() ) ?
2092 nUpper += bCommonBorder ?
2115 if ( nSecondCheck > 0 )
2125 nOldSpace -= nSecondCheck;
2126 const bool bSecondRet = nOldSpace >= 0 && pFrame->
WouldFit(nOldSpace, bOldSplit,
false,
true);
2127 if ( bSecondRet && bOldSplit && nOldSpace >= 0 )
2166 OSL_FAIL(
"Only a warning for task 108824:/n<SwContentFrame::WouldFit_(..) - follow not valid!" );
2210 }
while ( bRet && pFrame );
@ COLLAPSE_EMPTY_CELL_PARA
@ ADD_PARA_SPACING_TO_TABLE_CELLS
@ ADD_PARA_LINE_SPACING_TO_TABLE_CELLS
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...
void PrepareLock(SwFlowFrame *pTab)
static SwFrame * lcl_Prev(SwFrame *pFrame, bool bSectPrv=true)
void PrepareUnlock(SwFlowFrame *pTab)
static SwFrame * lcl_NotHiddenPrev(SwFrame *pFrame)
void MakeNxt(SwFrame *pFrame, SwFrame *pNxt)
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...
void ValidateSz(SwFrame *pFrame)
static void lcl_CheckObjects(SwSortedObjs &rSortedObjs, const SwFrame *pFrame, tools::Long &rBot)
static bool lcl_IsCalcUpperAllowed(const SwFrame &rFrame)
Provides access to settings of a document.
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
constexpr tools::Long Height() const
constexpr tools::Long Width() const
tools::Long GetWidth() const
sal_uInt16 GetLower() const
wrapper class for the positioning of Writer fly frames and drawing objects
virtual SwFrameFormat & GetFrameFormat()=0
virtual const SwFlyFrame * DynCastFlyFrame() const
virtual SwRect GetObjRect() const =0
const SvxFormatKeepItem & GetKeep(bool=true) const
sal_uInt16 CalcRightLine() const
bool JoinedWithPrev(const SwFrame &_rFrame, const SwFrame *_pPrevFrame=nullptr) const
const Size & GetSize() const
tools::Long CalcLeft(const SwFrame *pCaller) const
sal_uInt16 CalcTopLine() const
const SvxULSpaceItem & GetULSpace() const
sal_uInt16 CalcLeftLine() const
sal_uInt16 GetBottomLine(const SwFrame &_rFrame) const
const SwAttrSet & GetAttrSet() const
sal_uInt16 CalcBottomLine() const
tools::Long CalcRight(const SwFrame *pCaller) const
sal_uInt16 CalcLineSpacing() const
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
virtual bool ShouldBwdMoved(SwLayoutFrame *pNewUpper, bool &) override
Return value tells whether the Frame should be moved.
virtual void MakeAll(vcl::RenderContext *pRenderContext) override
friend void MakeNxt(SwFrame *pFrame, SwFrame *pNxt)
const SwContentFrame * GetFollow() const
void MakePrtArea(const SwBorderAttrs &)
bool WouldFit_(SwTwips nSpace, SwLayoutFrame *pNewUpper, bool bTstMove, const bool bObjsInNewUpper)
virtual bool WouldFit(SwTwips &nMaxHeight, bool &bSplit, bool bTst, bool)
virtual SwTwips ShrinkFrame(SwTwips, bool bTst=false, bool bInfo=false) override
virtual SwTwips GrowFrame(SwTwips, bool bTst=false, bool bInfo=false) override
SwContentFrame * getLayoutFrame(const SwRootFrame *, const SwPosition *pPos=nullptr, std::pair< Point, bool > const *pViewPosAndCalcFrame=nullptr) const
Ends a section of nodes in the document model.
Flys that are anchored to content (at-para, at-char) but not in content (as-char).
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)
bool IsInBalancedSection() const
void InvalidateInfFlags()
bool IsFootnoteContFrame() const
virtual bool Prepare(const PrepareHint ePrep=PrepareHint::Clear, const void *pVoid=nullptr, bool bNotify=true)
SwFrame * GetIndPrev() const
SwFlyFrame * FindFlyFrame()
SwSectionFrame * FindSctFrame()
SwTabFrame * FindTabFrame()
void ResetCompletePaint() const
bool IsColumnFrame() const
void PrepareMake(vcl::RenderContext *pRenderContext)
Prepares the Frame for "formatting" (MakeAll()).
SwFrameType GetType() const
bool IsInFootnote() const
bool IsHeaderFrame() const
virtual void Calc(vcl::RenderContext *pRenderContext) const
const SwSortedObjs * GetDrawObjs() const
virtual void MakePos()
Calculates the frame area position, in case it's invalid.
static SwCache & GetCache()
bool IsRightToLeft() const
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,...
friend void ValidateSz(SwFrame *pFrame)
bool IsMoveable(const SwLayoutFrame *_pLayoutFrame=nullptr) const
determine, if frame is moveable in given environment
SwLayoutFrame * GetNextCellLeaf()
bool IsFooterFrame() const
bool IsFootnoteFrame() const
SwLayoutFrame * GetUpper()
virtual void Format(vcl::RenderContext *pRenderContext, const SwBorderAttrs *pAttrs=nullptr)
Calculates the frame area size and the print area, in case they are invalid.
virtual bool IsLeaveUpperAllowed() const
SwRootFrame * getRootFrame()
void SetCompletePaint() const
virtual const SvxFormatBreakItem & GetBreakItem() const
bool IsContentFrame() const
SwPageFrame * FindPageFrame()
SwFootnoteFrame * FindFootnoteFrame()
SwFootnoteBossFrame * FindFootnoteBossFrame(bool bFootnotes=false)
virtual Size ChgSize(const Size &aNewSize)
sal_uInt16 GetPhyPageNum() const
virtual void MakeAll(vcl::RenderContext *pRenderContext)=0
bool IsNeighbourFrame() 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.
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.
bool IsBefore(const SwLayoutFrame *_pCheckRefLayFrame) const
method to check relative position of layout frame to a given layout frame.
const SwFrame * Lower() const
static bool FrameMovedFwdByObjPos(const SwDoc &_rDoc, const SwTextFrame &_rTextFrame, sal_uInt32 &_ornToPageNum)
SwNodeOffset GetIndex() const
SwNodes & GetNodes()
Node is in which nodes-array/doc?
SwTableNode * FindTableNode()
Search table node, in which it is.
const IDocumentLayoutAccess & getIDocumentLayoutAccess() const
Provides access to the document layout interface.
A page of the document layout.
virtual void MakeAll(vcl::RenderContext *pRenderContext) override
bool CheckPageHeightValidForHideWhitespace(SwTwips nDiff)
Is bottom-of-page-frame - bottom-of-text-frame difference valid in case whitespace is hidden?...
std::unique_ptr< SwSortedObjs > m_pSortedObjs
size_t GetContentHeight(const tools::Long nTop, const tools::Long nBottom) const
Calculate the content height of a page (without columns).
tools::Long GetHeight(const SwRect &rRect) const
void SetWidth(SwRect &rRect, tools::Long nNew) const
void SetPosX(SwRect &rRect, tools::Long nNew) const
tools::Long GetWidth(const SwRect &rRect) const
void SetHeight(SwRect &rRect, tools::Long nNew) const
tools::Long GetTop(const SwRect &rRect) const
Point GetPos(const SwRect &rRect) const
void SetXMargins(SwFrame &rFrame, tools::Long nLeft, tools::Long nRight) const
void SetPosY(SwRect &rRect, tools::Long nNew) const
bool OverStep(const SwRect &rRect, tools::Long nPos) const
tools::Long GetLeft(const SwRect &rRect) 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
void Refresh(const SwFrame *pFrame)
tools::Long GetPrtBottom(const SwFrame &rFrame) const
void SetLeft(SwRect &rRect, tools::Long nNew) const
Of course Writer needs its own rectangles.
void Height(tools::Long nNew)
void Top(const tools::Long nTop)
void Pos(const Point &rNew)
void SSize(const Size &rNew)
void Left(const tools::Long nLeft)
void Width(tools::Long nNew)
The root element of a Writer document layout.
SwViewShell * GetCurrShell() const
const SwPageFrame * GetLastPage() const
bool MoveAllowed(const SwFrame *) const
bool Growable() const
checks whether the SectionFrame is still able to grow, as case may be the environment has to be asked
bool IsFootnoteLock() const
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.
SwContentFrame * JoinFrame()
SwTwips GetFootnoteLine(const SwTextFootnote *pFootnote) const
If we're a Footnote that grows towards its reference ... public, because it's needed by SwContentFram...
bool IsHiddenNow() const
Hidden.
const OUString & GetText() const
Returns the text portion we want to edit (for inline see underneath)
SwTextNode const * GetTextNodeForParaProps() const
SwTextNode is a paragraph in the document model.
const OUString & GetText() const
bool getBrowseMode() const
bool IsWhitespaceHidden() const
vcl::RenderContext * GetOut() const
const SwViewOption * GetViewOptions() const
const SwRect & VisArea() const
sal_Int32 GetBrowseWidth() const
const Size & GetBrowseBorder() const
#define PROTOCOL_ENTER(pFrame, nFunc, nAct, pPar)
virtual SotClipboardFormatId GetFormat(const TransferableDataHelper &aHelper) override
SwRectFn fnRectVertL2RB2T
void LOOPING_LOUIE_LIGHT(bool bCondition, const SwTextFrame &rTextFrame)
constexpr auto toTwips(N number, Length from)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
SwNodeOffset abs(const SwNodeOffset &a)
SwFrameGet fnGetPrtBottom
constexpr sal_Int32 COMPLETE_STRING
@ AdjustSizeWithoutFormatting