20#include <config_wasm_strip.h>
60 static sal_uInt16 s_nLevel;
62 FormatLevel() { ++s_nLevel; }
63 ~FormatLevel() { --s_nLevel; }
64 static sal_uInt16 GetLevel() {
return s_nLevel; }
65 static bool LastLevel() {
return 10 < s_nLevel; }
70sal_uInt16 FormatLevel::s_nLevel = 0;
102 pUp->
Calc(pRenderContext);
109 assert(
HasPara() &&
"ResetPreps(), missing ParaPortion, SwCache bug?");
128 pFrame->
Calc(pRenderContext);
131 const bool bOld =
static_cast<SwSectionFrame*
>(pFrame)->IsContentLocked();
133 pFrame->
Calc(pRenderContext);
153 OSL_ENSURE(
HasPara(),
"SwTextFrame::GetDropRect_: try again next year." );
158 rRect.
Top( aLine.
Y() );
179 OSL_ENSURE( HasFollow(),
"CalcFollow: missing Follow." );
191#if OSL_DEBUG_LEVEL > 0
200 bool bOldInvaContent =
true;
237 if( !FormatLevel::LastLevel() )
259 bool bIsFollowInColumn =
false;
261 while ( pFollowUpper )
265 bIsFollowInColumn =
true;
273 pFollowUpper = pFollowUpper->
GetUpper();
275 if ( bIsFollowInColumn )
281 pMyFollow->
Calc(pRenderContext);
283 OSL_ENSURE( !pMyFollow->
GetPrev(),
"SwTextFrame::CalcFollow: cheesy follow" );
287 pMyFollow->
Calc(pRenderContext);
288 OSL_ENSURE( !pMyFollow->
GetPrev(),
"SwTextFrame::CalcFollow: very cheesy follow" );
319 if ( pPage && !bOldInvaContent )
322#if OSL_DEBUG_LEVEL > 0
323 OSL_ENSURE( pOldUp ==
GetUpper(),
"SwTextFrame::CalcFollow: heavy follow" );
328 if ( nRemaining > 0 &&
329 nRemaining != ( aRectFnSet.
IsVert() ?
356 && pRedln->
GetType() == RedlineType::Delete
372 SetUndersized( nChgHght == 0 || bHasToFit );
385 if( nChgHght && !bHasToFit )
390 if( nReal < nChgHght )
430 { pPre->
Calc(pRenderContext);
432 }
while ( pPre && pPre !=
this );
451 OSL_ENSURE( !
IsSwapped(),
"Swapped frame while calculating nRstHeight" );
477 OSL_ENSURE( nAdd >= 0,
"Ey" );
488 if( nRstHeight < nFrameHeight )
492 nRstHeight +=
GetUpper()->
Grow( nFrameHeight - nRstHeight );
496 if ( nRstHeight < nFrameHeight )
501 SetUndersized(
true );
505 SetUndersized(
false );
508 else if( nChgHeight )
510 if( nRstHeight - nFrameHeight < nChgHeight )
511 nChgHeight = nRstHeight - nFrameHeight;
528 CurrentPos -= aCharPos.X();
539 css::style::TabStop ts;
545 case SvxTabAdjust::Left : ts.Alignment = css::style::TabAlign_LEFT;
break;
546 case SvxTabAdjust::Center : ts.Alignment = css::style::TabAlign_CENTER;
break;
547 case SvxTabAdjust::Right : ts.Alignment = css::style::TabAlign_RIGHT;
break;
548 case SvxTabAdjust::Decimal: ts.Alignment = css::style::TabAlign_DECIMAL;
break;
549 case SvxTabAdjust::Default: ts.Alignment = css::style::TabAlign_DEFAULT;
break;
570 if( HasFollow() && !(nMode & 1) && nOffset == nEnd )
577 SAL_INFO(
"sw.core",
"+SwTextFrame::JoinFrame: Follow is locked." );
618 OSL_ENSURE(
GetFollow(),
"+SwTextFrame::JoinFrame: no follow" );
636 if (pHt->GetFootnote().IsEndNote())
658 OSL_ENSURE( !pFoll->
HasFootnote(),
"Missing FootnoteFlag." );
669#if !ENABLE_WASM_STRIP_ACCESSIBILITY
672 if ( pViewShell && pViewShell->
GetLayout() &&
677 pNext ? pNext->DynCastTextFrame() :
nullptr,
707#if !ENABLE_WASM_STRIP_ACCESSIBILITY
710 if ( pViewShell && pViewShell->
GetLayout() &&
715 pNext ? pNext->DynCastTextFrame() :
nullptr,
734 if (pHt->GetFootnote().IsEndNote())
755 OSL_ENSURE( !
HasFootnote(),
"Missing FootnoteFlag." );
785 OSL_ENSURE( !
IsVertical() || !
IsSwapped(),
"SwTextFrame::CalcPreps with swapped frame" );
791 const bool bPrep = pPara->
IsPrep();
806 OSL_ENSURE(
GetFollow(),
"+SwTextFrame::CalcPreps: no credits" );
824 else if ( aRectFnSet.
IsVert() )
867 "+SwTextFrame::CalcPrep: want to shrink" );
876 if ( aRectFnSet.
IsVert() )
885 if( 0 >= rRepaint.
Width() )
890 else if ( bPrepAdjust )
924 while( !bBreak && aLine.
Next() )
966 if( aRectFnSet.
IsVert() && nIs < nMust )
976 SetUndersized(
true );
978 else if ( ! aRectFnSet.
IsVert() && nIs > nMust )
988 SetUndersized(
true );
1033 bool bOnlyContainsAsCharAnchoredObj =
1036 (*
GetDrawObjs())[0]->GetFrameFormat().GetAnchor().GetAnchorId() == RndStdIds::FLY_AS_CHAR;
1040 bOnlyContainsAsCharAnchoredObj =
false;
1042 if ( nNew && bOnlyContainsAsCharAnchoredObj )
1061 bool bDelta = pPara->
GetDelta() != 0;
1071 if( !rFrameBreak.
FindBreak(
this, rLine, bHasToFit ) )
1080 if( nNew && nOld < nEnd )
1121 if (nNew && nOld < nEnd)
1135 bHasVisibleNumRule =
false;
1142 if ( !bOnlyContainsAsCharAnchoredObj &&
1144 bHasVisibleNumRule )
1153 if( bDummy && pBodyFrame &&
1168 if ( nChg < 0 && !bDelta && bOnlyContainsAsCharAnchoredObj )
1182 rRepaint.
Left( rRepaint.
Left() - nChg );
1199 "SwTextFrame::FormatLine( rLine, bPrev) with unswapped frame" );
1206 const bool bOldHyph = pOldCur->
IsEndHyph();
1215 "SwTextFrame::FormatLine: frame leaves orbit." );
1217 "SwTextFrame::FormatLine: line height is zero" );
1222 bool bUnChg = nOldLen == pNew->
GetLen() &&
1224 if ( bUnChg && !bPrev )
1227 ? nOldWidth - pNew->
Width()
1228 : pNew->
Width() - nOldWidth;
1232 bUnChg = nOldHeight == pNew->
Height() &&
1241 if( bUnChg && rRepaint.
Top() == rLine.
Y()
1242 && (bPrev || nNewStart <= pPara->GetReformat().
Start())
1245 rRepaint.
Top( nBottom );
1252 if( nOldTop < rRepaint.
Top() )
1253 rRepaint.
Top( nOldTop );
1256 rRepaint.
Bottom( nOldBottom - 1 );
1264 if( nTmpTop < rRepaint.
Top() )
1265 rRepaint.
Top( nTmpTop );
1268 rRepaint.
Bottom( nTmpBottom - 1 );
1276 rRepaint.
Bottom( nBottom - 1 );
1285 nRght += ( std::max( nOldAscent, pNew->
GetAscent() ) );
1287 nRght += ( std::max( nOldAscent, pNew->
GetAscent() ) / 4);
1294 const bool bHasUnderscore =
1303 const sal_Int32 nDiff = sal_Int32(pNew->
GetLen()) - sal_Int32(nOldLen);
1325 if( nNewStart <= nEnd )
1332 const bool bAdjust )
1339 const OUString & rString =
GetText();
1344 std::unique_ptr<SwRepaint> pFreeze;
1348 if( rReformat.
Len() > nStrLen )
1349 rReformat.
Len() = nStrLen;
1351 if( rReformat.
Start() + rReformat.
Len() > nStrLen )
1352 rReformat.
Len() = nStrLen - rReformat.
Start();
1358 nOldBottom = rLine.
Y();
1380 bool bPrev = rLine.
GetPrev() &&
1384 >= rReformat.
Start() ||
1388 while( rLine.
Prev() )
1399 if (
CH_BREAK == rString[sal_Int32(nNew)])
1406 rReformat.
Len() += rReformat.
Start() - nNew;
1407 rReformat.
Start() = nNew;
1415 rRepaint.
Top( rLine.
Y() );
1416 if( 0 >= rRepaint.
Width() )
1425 bool bFormat =
true;
1436 bool bPrevDone =
nullptr != rLine.
Prev();
1438 bPrevDone =
nullptr != rLine.
Prev();
1464 bool bJumpEndHyph =
false;
1465 bool bWatchEndHyph =
false;
1466 bool bJumpMidHyph =
false;
1467 bool bWatchMidHyph =
false;
1471 bool bMaxHyph = 0 != rInf.
MaxHyph();
1478 OSL_ENSURE( pMaster,
"SwTextFrame::Format: homeless follow" );
1484 SAL_WARN(
"sw",
"SwTextFrame::Format_: master not formatted!");
1491 pLine = aMasterLine.
GetCurr();
1542 if ( !bFormat && bMaxHyph &&
1543 (bWatchEndHyph || bJumpEndHyph || bWatchMidHyph || bJumpMidHyph) )
1547 if ( bWatchEndHyph )
1552 bFormat = bJumpEndHyph;
1553 bWatchEndHyph =
false;
1554 bJumpEndHyph =
false;
1558 if ( bWatchMidHyph && !bFormat )
1563 bFormat |= bJumpMidHyph;
1564 bWatchMidHyph =
false;
1565 bJumpMidHyph =
false;
1579 bWatchEndHyph = !bOldEndHyph;
1580 bJumpEndHyph = bOldEndHyph;
1584 bWatchMidHyph = !bOldMidHyph;
1585 bJumpMidHyph = bOldMidHyph;
1593 bFormat =
nullptr != rInf.
GetRest();
1596 if( !bFormat && ( !bMaxHyph || ( !bWatchEndHyph &&
1597 !bJumpEndHyph && !bWatchMidHyph && !bJumpMidHyph ) ) )
1601 while( rLine.
Next() )
1603 pFreeze.reset(
new SwRepaint( rRepaint ));
1614 rRepaint = *pFreeze;
1623 bool bTruncLines =
false;
1637 nLen += pLine->GetLen();
1639 bTruncLines = nLen > nStrLen;
1665 if( nNewBottom < nOldBottom )
1673 "A frame is not swapped in SwTextFrame::FormatOnceMore" );
1680 sal_uInt16 nOld =
static_cast<const SwTextMargin&
>(rLine).GetDropHeight();
1681 bool bShrink =
false;
1699 const sal_uInt16 nNew =
static_cast<const SwTextMargin&
>(rLine).GetDropHeight();
1709 if( bShrink == bGrow || 5 < nGo )
1734 const bool bIsEmpty =
GetText().isEmpty();
1752 OSL_ENSURE( !
IsSwapped(),
"A frame is swapped before Format_" );
1770 OSL_ENSURE( !
IsSwapped(),
"A frame is swapped after Format_" );
1775 if( SvxAdjust::Left != aLine.
GetAdjust() &&
1816 if( nTop > nFrameHeight )
1836 if( 12 == FormatLevel::GetLevel() )
1878 SAL_WARN(
"sw",
"SwTextFrame::Format: failed to format master!");
1891 const bool bSetOffset =
1908 else if( bSetOffset && IsFollow() )
1911 OSL_ENSURE( pMaster,
"SwTextFrame::Format: homeless follow" );
1918 aRectFnSet.
SetLimit( *
this, nMaxY );
1932 const bool bOrphan =
IsWidow();
1943 if( pFootnoteBoss && nFootnoteHeight )
1949 if( nNewHeight < nFootnoteHeight )
1950 nFootnoteHeight = nNewHeight;
1956 }
while ( pFootnoteBoss );
1991 SAL_INFO(
"sw.core",
"Warn: Cell content has greater size than cell height!");
2014 "SwTextFrame::FormatQuick with swapped frame" );
2048 int nLoopProtection = 0;
2052 if (nNewStart == nStart)
2055 nLoopProtection = 0;
2057 const bool bWillEndlessInsert = nLoopProtection > 250;
2058 SAL_WARN_IF(bWillEndlessInsert,
"sw",
"loop detection triggered");
2059 if ((!bWillEndlessInsert)
2063 }
while( aLine.
Next() );
2071 if( !bForceQuickFormat && nNewHeight != nOldHeight && !IsUndersized() )
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...
virtual const SwRedlineTable & GetRedlineTable() const =0
sal_uInt8 & GetMaxHyphens()
sal_Unicode & GetDecimal()
SvxTabAdjust & GetAdjustment()
const SvxFormatKeepItem & GetKeep(bool=true) const
const SvxHyphenZoneItem & GetHyphenZone(bool=true) const
const SwRegisterItem & GetRegister(bool=true) const
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
virtual void Cut() override
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr) override
SwTextFrame * FindMaster() const
const SwAttrSet & GetSwAttrSet() const
Does node has already its own auto-attributes? Access to SwAttrSet.
const SwRect & getFrameArea() const
bool isFrameAreaDefinitionValid() const
const SwRect & getFramePrintArea() const
bool isFramePrintAreaValid() const
bool isFrameAreaSizeValid() const
void setFrameAreaSizeValid(bool bNew)
Helper class which can be used instead of the macros if a function has too many returns.
Base class of the Writer layout elements.
SwTwips Grow(SwTwips, bool bTst=false, bool bInfo=false)
const SwBodyFrame * FindBodyFrame() const
SwFrame * GetIndPrev() const
SwTwips Shrink(SwTwips, bool bTst=false, bool bInfo=false)
SwSectionFrame * FindSctFrame()
SwTabFrame * FindTabFrame()
bool IsColumnFrame() const
bool IsInFootnote() const
virtual void Calc(vcl::RenderContext *pRenderContext) const
void InvalidateObjs(const bool _bNoInvaOfAsCharAnchoredObjs=true)
const SwSortedObjs * GetDrawObjs() const
bool IsRightToLeft() const
virtual bool IsDeleteForbidden() const
const SwAttrSet * GetAttrSet() const
WARNING: this may not return correct RES_PAGEDESC/RES_BREAK items for SwTextFrame,...
bool IsMoveable(const SwLayoutFrame *_pLayoutFrame=nullptr) const
determine, if frame is moveable in given environment
SwLayoutFrame * GetUpper()
SwRootFrame * getRootFrame()
void SetCompletePaint() const
friend void ValidateText(SwFrame *pFrame)
SwContentFrame * FindNextCnt(const bool _bInSameFootnote=false)
SwPageFrame * FindPageFrame()
SwFootnoteFrame * FindFootnoteFrame()
SwFootnoteBossFrame * FindFootnoteBossFrame(bool bFootnotes=false)
static void DestroyFrame(SwFrame *const pFrame)
this is the only way to delete a SwFrame instance
tools::Long GetTopMargin() const
bool IsAnLower(const SwFrame *) const
const SwFrame * Lower() const
const SvxTabStop * GetTabStop(const SwTwips nSearchPos, SwTwips &nRight) const
#i24363# tab stops relative to indent
Collection of SwLinePortion instances, representing one line of text.
virtual void Height(const SwTwips nNew, const bool bText=true) override
SwTwips GetHangingMargin() const
bool HasUnderscore() const
Base class for anything that can be part of a line in the Writer layout.
TextFrameIndex GetLen() const
const IDocumentRedlineAccess & getIDocumentRedlineAccess() const
Provides access to the document redline interface.
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
SwNodeOffset GetIndex() const
const SwPosition * GetMark() const
const SwPosition * End() const
const SwPosition * GetPoint() const
A page of the document layout.
void ValidateContent() const
bool IsInvalidContent() const
Collection of SwLineLayout instances, represents the paragraph text in Writer layout.
bool IsPrepMustFit() const
bool IsPrepWidows() const
bool IsPrepAdjust() const
SwCharRange & GetReformat()
void SetDelta(tools::Long nDelta)
bool IsFollowField() const
void SetPrepMustFit(const bool bNew)
tools::Long GetDelta() const
void MaybeNotifyRedlinePositionModification(tools::Long nTop)
RedlineType GetType(sal_uInt16 nPos=0) const
tools::Long GetHeight(const SwRect &rRect) const
tools::Long YInc(tools::Long n1, tools::Long n2) const
tools::Long GetTopMargin(const SwFrame &rFrame) 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 SetLimit(SwFrame &rFrame, tools::Long nNew) const
void AddBottom(SwRect &rRect, tools::Long nNew) const
bool OverStep(const SwRect &rRect, tools::Long nPos) 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
tools::Long GetPrtBottom(const SwFrame &rFrame) const
Of course Writer needs its own rectangles.
void Chg(const Point &rNP, const Size &rNS)
void Height(tools::Long nNew)
void Top(const tools::Long nTop)
void SetTopAndHeight(tools::Long nTop, tools::Long nNew)
void Bottom(const tools::Long nBottom)
void Pos(const Point &rNew)
void SSize(const Size &rNew)
void AddHeight(const tools::Long nAdd)
void AddWidth(const tools::Long nAdd)
void Left(const tools::Long nLeft)
void Width(tools::Long nNew)
vector_type::size_type size_type
void SetRightOfst(const SwTwips nNew)
SwTwips GetOffset() const
SwTwips GetRightOfst() const
void SetOffset(const SwTwips nNew)
SwViewShell * GetCurrShell() const
bool IsAnyShellAccessible() const
const SwSectionFrame * GetFollow() const
A wrapper around SfxPoolItem to store the start position of (usually) a text portion,...
void CtorInitTextFormatInfo(OutputDevice *pRenderContext, SwTextFrame *pFrame, const bool bInterHyph=false, const bool bQuick=false, const bool bTst=false)
void SetRest(SwLinePortion *pNewRest)
SwLinePortion * GetRest()
TextFrameIndex GetUnderScorePos() const
bool IsFlyInCntBase() const
void SetUnclipped(bool bNew)
const sal_uInt8 & CntMidHyph() const
const sal_uInt8 & CntEndHyph() const
void SetOnceMore(bool bNew)
void MakeDummyLine()
This function creates a Line that reaches to the other Page Margin.
void SetTruncLines(bool bNew)
void CalcUnclipped(SwTwips &rTop, SwTwips &rBottom)
void CalcDropHeight(const sal_uInt16 nLines)
void CtorInitTextFormatter(SwTextFrame *pFrame, SwTextFormatInfo *pInf)
const SwFormatDrop * GetDropFormat() const
TextFrameIndex FormatQuoVadis(TextFrameIndex nStart)
SwLinePortion * MakeRestPortion(const SwLineLayout *pLine, TextFrameIndex nPos)
TextFrameIndex FormatLine(TextFrameIndex nStart)
SwTwips CalcBottomLine() const
SwTextFormatInfo & GetInfo()
void Insert(SwLineLayout *pLine)
bool IsBreakNow(SwTextMargin &rLine)
void SetRstHeight(const SwTextMargin &rLine)
void SetKeep(const bool bNew)
bool IsKeepAlways() const
bool IsInside(SwTextMargin const &rLine) const
BP 18.6.93: Widows.
Represents the visualization of a paragraph.
void FormatOnceMore(SwTextFormatter &rLine, SwTextFormatInfo &rInf)
void Format_(vcl::RenderContext *pRenderContext, SwParaPortion *pPara)
SwTextFrame * GetFormatted(bool bForceQuickFormat=false)
In case the SwLineLayout was cleared out of the s_pTextCache, recreate it.
void SwitchVerticalToHorizontal(SwRect &rRect) const
Calculates the coordinates of a rectangle when switching from vertical to horizontal layout.
bool CalcPrepFootnoteAdjust()
bool FollowFormatAllowed() const
void SetOffset(TextFrameIndex nNewOfst)
SwTextFrame * GetFollow()
void CalcFootnoteFlag(TextFrameIndex nStop=TextFrameIndex(COMPLETE_STRING))
Does the Frame have a local footnote (in this Frame or Follow)?
void HideAndShowObjects()
Hides respectively shows objects, which are anchored at paragraph, at/as a character of the paragraph...
TextFrameIndex GetOffset() const
void FormatAdjust(SwTextFormatter &rLine, WidowsAndOrphans &rFrameBreak, TextFrameIndex nStrLen, const bool bDummy)
void SwitchLTRtoRTL(SwRect &rRect) const
Calculates the coordinates of a rectangle when switching from LTR to RTL layout.
bool FormatQuick(bool bForceQuickFormat)
void RemoveFootnote(TextFrameIndex nStart, TextFrameIndex nLen=TextFrameIndex(COMPLETE_STRING))
Footnote.
void HideHidden()
Removes Textfrm's attachments, when it's hidden.
void CalcBaseOfstForFly()
void SetFootnote(const bool bNew)
Will be moved soon.
bool CalcFollow(TextFrameIndex nTextOfst)
bool IsEmptyMaster() const
If there's a Follow and we don't contain text ourselves.
virtual void Format(vcl::RenderContext *pRenderContext, const SwBorderAttrs *pAttrs=nullptr) override
sw::MergedPara * GetMergedPara()
bool FormatLine(SwTextFormatter &rLine, const bool bPrev)
void AdjustFrame(const SwTwips nChgHeight, bool bHasToFit=false)
SwContentFrame * JoinFrame()
void SetWidow(const bool bNew)
void CalcHeightOfLastLine(const bool _bUseFont=false)
method to determine height of last line, needed for proportional line spacing
void CalcAdditionalFirstLineOffset()
Simulate format for a list item paragraph, whose list level attributes are in LABEL_ALIGNMENT mode,...
SwTwips GetParHeight() const
Returns the sum of line height in pLine.
SwParaPortion * GetPara()
TextFrameIndex MapModelToView(SwTextNode const *pNode, sal_Int32 nIndex) const
bool IsFieldFollow() const
virtual void MakePos() override
bool GetDropRect_(SwRect &rRect) const
void InvalidateRange_(const SwCharRange &, const tools::Long=0)
void SwitchHorizontalToVertical(SwRect &rRect) const
Calculates the coordinates of a rectangle when switching from horizontal to vertical layout.
void SetFieldFollow(const bool bNew)
static TextFrameIndex FindBrk(std::u16string_view aText, TextFrameIndex nStart, TextFrameIndex nEnd)
Returns the first possible break point in the current line.
bool IsHiddenNow() const
Hidden.
void SetJustWidow(const bool bNew)
void ChangeOffset(SwTextFrame *pFrame, TextFrameIndex nNew)
void AdjustFollow_(SwTextFormatter &rLine, TextFrameIndex nOffset, TextFrameIndex nStrEnd, const sal_uInt8 nMode)
void ForbidFollowFormat()
void MoveFlyInCnt(SwTextFrame *pNew, TextFrameIndex nStart, TextFrameIndex nEnd)
Rewires FlyInContentFrame, if nEnd > Index >= nStart.
SwTextNode * GetTextNodeFirst()
void SetOffset_(TextFrameIndex nNewOfst)
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!...
void ManipOfst(TextFrameIndex const nNewOfst)
css::uno::Sequence< css::style::TabStop > GetTabStopInfo(SwTwips CurrentPos) override
void SwapWidthAndHeight()
Swaps width and height of the text frame.
const OUString & GetText() const
Returns the text portion we want to edit (for inline see underneath)
SwTextNode const * GetTextNodeForParaProps() const
void SplitFrame(TextFrameIndex nTextPos)
Methods to manage the FollowFrame.
void SetEmpty(const bool bNew)
SwParaPortion * GetParaPortion()
TextFrameIndex GetLength() const
TextFrameIndex GetEnd() const
TextFrameIndex GetStart() const
void TruncLines(bool bNoteFollow=false)
SwTwips GetLineHeight() const
const SwLineLayout * Next()
SwTwips GetFirstPos() const
void CharToLine(TextFrameIndex)
const SwLineLayout * GetCurr() const
const SwLineLayout * Prev()
sal_uInt16 GetLineNr() const
const SwLineInfo & GetLineInfo() const
const SwLineLayout * GetPrev()
SwParaPortion * GetPara()
sal_uInt16 GetDropLeft() const
sal_uInt16 GetDropLines() const
SwTwips GetLeftMargin() const
void SetDropLines(const sal_uInt16 nNew)
sal_uInt16 GetDropHeight() const
SvxAdjust GetAdjust() const
SwTwips GetLineStart() const
void Right(const SwTwips nNew)
SwTextNode is a paragraph in the document model.
virtual SwContentFrame * MakeFrame(SwFrame *) override
Virtual methods from ContentNode.
bool HasVisibleNumberingOrBullet() const
Returns if the paragraph has a visible numbering or bullet.
SwNumRule * GetNumRule(bool bInParent=true) const
Returns numbering rule of this text node.
void SetPaintDrop(const bool bNew)
sal_Unicode GetChar(TextFrameIndex const nPos) const
const OUString & GetText() const
TextFrameIndex GetIdx() const
bool IsParagraph(bool bHard=false) const
bool IsLineBreak(bool bHard=false) const
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
bool FindBreak(SwTextFrame *pFrame, SwTextMargin &rLine, bool bHasToFit)
The Find*-Methods do not only search, but adjust the SwTextMargin to the line where the paragraph sho...
bool IsBreakNowWidAndOrp(SwTextMargin &rLine)
SwTextAttr const * NextAttr(SwTextNode const **ppNode=nullptr)
constexpr TypedWhichId< SwFormatFootnote > RES_TXTATR_FTN(59)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
SwNumRule * GetNumRule(SwTextFormatColl &rTextFormatColl)
determines the list style, which directly set at the given paragraph style
double getLength(const B2DPolygon &rCandidate)
void swap(cow_wrapper< T, P > &a, cow_wrapper< T, P > &b)
const SwTwips WIDOW_MAGIC
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
const sal_Unicode CH_BREAK
constexpr sal_Int32 COMPLETE_STRING