44 #include <com/sun/star/i18n/ScriptType.hpp>
57 OSL_ENSURE( rCMS.
m_pSpecialPos,
"Information about special pos missing" );
62 sal_Int32 nFieldIdx = 0;
63 sal_Int32 nFieldLen = 0;
66 const OUString* pString =
nullptr;
74 nFieldLen = pString->getLength();
82 if ( ! pPor->
GetNextPortion() || nFieldIdx + nFieldLen > nCharOfst )
85 nFieldIdx = nFieldIdx + nFieldLen;
91 OSL_ENSURE( nCharOfst >= nFieldIdx,
"Request of position inside field failed" );
92 sal_Int32 nLen = nCharOfst - nFieldIdx + 1;
114 rOrig.
Pos().AdjustX(nX1 );
115 rOrig.
Width( ( nX2 > nX1 ) ?
130 bool IsLabelAlignmentActive(
const SwTextNode& rTextNode )
145 rTextNode.
GetNumRule()->
Get( static_cast<sal_uInt16>(nListLevel) );
168 const bool bLabelAlignmentActive = IsLabelAlignmentActive( *pTextNode );
170 const bool bListLevelIndentsApplicableAndLabelAlignmentActive = bListLevelIndentsApplicable && bLabelAlignmentActive;
194 ( bListLevelIndentsApplicableAndLabelAlignmentActive
202 if ( bListLevelIndentsApplicableAndLabelAlignmentActive ||
212 ( bListLevelIndentsApplicableAndLabelAlignmentActive
231 ( !nLMWithNum && (!bLabelAlignmentActive || bListLevelIndentsApplicable) ) ) )
258 case SvxLineSpaceRule::Auto:
260 case SvxLineSpaceRule::Min:
266 case SvxLineSpaceRule::Fix:
269 default: OSL_FAIL(
": unknown LineSpaceRule" );
273 case SvxInterLineSpaceRule::Off:
275 case SvxInterLineSpaceRule::Prop:
281 nTmp = nTmp ? 50 : 100;
283 nTmp *= nFirstLineOfs;
287 nFirstLineOfs = nTmp;
290 case SvxInterLineSpaceRule::Fix:
295 default: OSL_FAIL(
": unknown InterLineSpaceRule" );
300 nFirstLineOfs = nFLOfst;
305 bListLevelIndentsApplicableAndLabelAlignmentActive ||
308 if ( nFirstLineOfs < 0 && m_pFrame->IsInTab() &&
311 !bListLevelIndentsApplicableAndLabelAlignmentActive )
323 std::max( rSpace.
GetTextLeft() + nLMWithNum+ nFirstLineOfs,
344 else if ( SvxAdjust::Right ==
mnAdjust )
386 else if(
GetAdjust() == SvxAdjust::Center )
431 sal_uInt16 nTmpHeight, nTmpAscent;
433 sal_uInt16 nPorHeight = nTmpHeight;
434 sal_uInt16 nPorAscent = nTmpAscent;
439 nX = nX + pPor->
Width();
444 nPorHeight = pPor->
Height();
450 const Size aCharSize( 1, nTmpHeight );
452 pOrig->
SSize( aCharSize );
453 pOrig->
Pos().AdjustX(nLast );
455 if( pOrig->
Left() > nTmpRight )
456 pOrig->
Pos().setX( nTmpRight );
460 if ( nTmpAscent > nPorAscent )
464 OSL_ENSURE( nPorHeight,
"GetCharRect: Missing Portion-Height" );
482 sal_uInt16 nTmpAscent, nTmpHeight;
484 const Size aCharSize( 1, nTmpHeight );
485 const Point aCharPos;
486 pOrig->
Pos( aCharPos );
487 pOrig->
SSize( aCharSize );
492 const bool bInsideFirstField = pCMS && pCMS->
m_pSpecialPos &&
508 sal_uInt16 nPorHeight = nTmpHeight;
509 sal_uInt16 nPorAscent = nTmpAscent;
517 sal_uInt16 nSpaceIdx = 0;
528 while( pPor && !pPor->
GetLen() && ! bInsideFirstField )
546 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
552 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
564 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
570 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
587 nPorHeight = pPor->
Height();
596 nPorHeight = pPor->
Height();
621 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
628 ( nKanaIdx + 1 ) < pKanaComp->size()
638 if ( static_cast<SwMultiPortion*>(pPor)->HasTabulator() )
642 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
648 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
656 if ( static_cast<SwMultiPortion*>(pPor)->IsBidi() &&
660 nLastBidiIdx = aInf.
GetIdx();
661 nLastBidiPorWidth = pLastBidiPor->
Width() +
675 pOrig->
Pos().AdjustY(nTmpAscent - nPorAscent );
686 if( static_cast<SwMultiPortion*>(pPor)->HasRotation() )
688 if( static_cast<SwMultiPortion*>(pPor)->IsRevers() )
693 else if( static_cast<SwMultiPortion*>(pPor)->IsDouble() )
695 else if( static_cast<SwMultiPortion*>(pPor)->IsBidi() )
722 if( static_cast<SwMultiPortion*>(pPor)->IsDouble() )
728 const sal_uInt16 nRubyHeight = bHasGrid ?
739 static_cast<SwMultiPortion*>(pPor)->IsRuby() &&
741 nOffset = nRubyHeight;
745 pOrig->
Pos().AdjustY(nOffset );
750 ChgSpaceAdd(
m_pCurr, nSpaceAdd );
759 const bool bChgHeight =
770 if ( static_cast<SwMultiPortion*>(pPor)->IsBidi() )
772 aLayoutModeModifier.
Modify(
773 static_cast<SwBidiPortion*>(pPor)->GetLevel() % 2 );
787 if ( static_cast<SwMultiPortion*>(pPor)->IsDouble() )
793 if (
m_pCurr == &static_cast<SwMultiPortion*>(pPor)->GetRoot() )
806 else if( static_cast<SwMultiPortion*>(pPor)->IsRuby() ||
807 static_cast<SwMultiPortion*>(pPor)->IsBidi() )
811 if( static_cast<SwMultiPortion*>(pPor)->HasRotation() )
817 nTmp = pOrig->
Left() - aOldPos.X();
825 pOrig->
Pos().setX( nX + aOldPos.X() );
826 if( static_cast<SwMultiPortion*>(pPor)->IsRevers() )
827 pOrig->
Pos().setY( aOldPos.Y() + nTmp );
829 pOrig->
Pos().setY( aOldPos.Y()
836 if( static_cast<SwMultiPortion*>(pPor)->IsRevers() )
856 pOrig->
Pos().AdjustY(aOldPos.Y() );
857 if ( static_cast<SwMultiPortion*>(pPor)->IsBidi() )
862 pOrig->
Pos().setX( nX + nPorWidth -
863 nInsideOfst - pOrig->
Width() );
866 pOrig->
Pos().AdjustX(nX );
868 if( static_cast<SwMultiPortion*>(pPor)->HasBrackets() )
869 pOrig->
Pos().AdjustX(
870 static_cast<SwDoubleLinePortion*>(pPor)->PreWidth() );
891 const bool bOldOnWin = aInf.
OnWin();
909 pOrig->
Width( nTmp - nX );
924 while( pCurrPart && (nSumLength += pCurrPart->
GetLen()) < nOfst - aInf.
GetIdx() )
928 if( pCurrPart && nSumLength != nOfst - aInf.
GetIdx() &&
948 OSL_ENSURE( !pPor->
InNumberGrp() || bInsideFirstField,
"Number surprise" );
949 bool bEmptyField =
false;
955 sal_uInt16 nAddX = pTmp->
Width();
959 OSL_ENSURE( !pNext->
GetLen(),
"Where's my field follow?" );
960 nAddX = nAddX + pNext->
Width();
966 nPorHeight = pTmp->
Height();
973 while( pPor && !pPor->
GetLen() && ! bInsideFirstField &&
987 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
993 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
1005 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
1011 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
1016 nPorHeight = pPor->
Height();
1029 while( pPor && !pPor->
GetLen() )
1031 nX += pPor->
Width();
1034 nPorHeight = pPor->
Height();
1050 nPorAscent = pPor->
Height();
1051 nPorHeight = nPorAscent;
1052 pOrig->
Height( nPorHeight +
1054 if( nTmpHeight < pOrig->
Height() )
1056 nTmpAscent = nPorAscent;
1057 nTmpHeight = sal_uInt16( pOrig->
Height() );
1066 nPorHeight = pPor->
Height();
1072 nTmp = pPor->
Width();
1078 const bool bOldOnWin = aInf.
OnWin();
1092 pOrig->
Width( nTmp );
1123 pOrig->
Pos().AdjustX( -nLastBidiPorWidth );
1135 OSL_ENSURE( static_cast<const SwMultiPortion*>(pLast)->IsBidi(),
1136 "Non-BidiPortion inside BidiPortion" );
1139 aInf.
SetIdx(nLastBidiIdx);
1140 pOrig->
Pos().AdjustX(pLast->
Width() +
1154 pOrig->
Pos().AdjustX(pPor->
Width() +
1160 pOrig->
Pos().AdjustX(nX );
1165 if ( nTmpAscent > nPorAscent )
1169 OSL_ENSURE( nPorHeight,
"GetCharRect: Missing Portion-Height" );
1170 if ( nTmpHeight > nPorHeight )
1193 "LineOffset AND Number Portion?" );
1215 pOrig->
Pos().AdjustX(aCharPos.X() );
1216 pOrig->
Pos().AdjustY(aCharPos.Y() );
1220 pCMS->
m_p2Lines->aLine.Pos().AdjustX(aCharPos.X() );
1221 pCMS->
m_p2Lines->aLine.Pos().AdjustY(aCharPos.Y() );
1222 pCMS->
m_p2Lines->aPortion.Pos().AdjustX(aCharPos.X() );
1223 pCMS->
m_p2Lines->aPortion.Pos().AdjustY(aCharPos.Y() );
1228 if( pOrig->
Left() > nTmpRight && !bTabOverMargin)
1229 pOrig->
Pos().setX( nTmpRight );
1233 if( pOrig->
Top() + pOrig->
Height() > nMax )
1235 if( pOrig->
Top() > nMax )
1259 pOrig->
Pos().AdjustX( -(nOut + 10) );
1309 if( nRightMargin == nLeftMargin )
1312 const bool bLeftOver = x < nLeftMargin;
1315 const bool bRightOver = x > nRightMargin;
1324 sal_uInt16 nX = sal_uInt16( x );
1330 bool bHolePortion =
false;
1331 bool bLastHyph =
false;
1335 sal_uInt16 nSpaceIdx = 0;
1336 size_t nKanaIdx = 0;
1338 short nKanaComp = pKanaComp ? (*pKanaComp)[0] : 0;
1343 sal_uInt16 nWidth = pPor->
Width();
1357 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
1365 if ( nKanaIdx + 1 < pKanaComp->size() )
1366 nKanaComp = (*pKanaComp)[++nKanaIdx];
1373 sal_uInt16 nWidth30;
1384 nCurrStart = nCurrStart + pPor->
GetLen();
1387 nWidth = pPor->
Width();
1402 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
1410 if( nKanaIdx + 1 < pKanaComp->size() )
1411 nKanaComp = (*pKanaComp)[++nKanaIdx];
1435 nCurrStart = nCurrStart + pPor->
GetLen();
1449 if( bFieldInfo && ( nWidth30 < nX || bRightOver || bLeftOver ||
1471 if (!bRightOver && nX)
1486 if( bHolePortion || ( !bRightAllowed && bLastHyph ) ||
1499 sal_uInt16 nHeight = pPor->
Height();
1500 if ( !nHeight || nHeight > nWidth )
1502 if( bChgNode && nWidth - nHeight/2 > nX )
1521 sal_uInt16 nHeight = 0;
1524 nHeight = pPor->
Height();
1525 if ( !nHeight || nHeight > nWidth )
1529 if( nWidth - nHeight/2 <= nX &&
1546 && ( nWidth/2 < nX ) &&
1550 && ( bRightAllowed || !bLastHyph ))
1562 if (pPostItsPortion)
1567 nCurrStart += pPor->
GetLen();
1574 if( bRightOver && !static_cast<SwFieldPortion*>(pPor)->HasFollow() )
1585 && rText[sal_Int32(nCurrStart + nLength) - 1] ==
' ' )
1598 if ( ( static_cast<SwTextSizeInfo*>(
m_pInf)->IsMulti() &&
1599 static_cast<SwTextSizeInfo*>(
m_pInf)->IsFirstMulti() ) ||
1600 ( static_cast<SwMultiPortion*>(pPor)->IsRuby() &&
1601 static_cast<SwMultiPortion*>(pPor)->OnTop() ) )
1607 if ( static_cast<SwMultiPortion*>(pPor)->IsRuby() &&
1611 SwTextCursorSave aSave( const_cast<SwTextCursor*>(
this), static_cast<SwMultiPortion*>(pPor),
1612 nTmpY, nX, nCurrStart, nSpaceAdd );
1615 if ( static_cast<SwMultiPortion*>(pPor)->IsBidi() )
1618 aLayoutModeModifier.
Modify( nBidiLevel % 2 );
1621 if( static_cast<SwMultiPortion*>(pPor)->HasRotation() )
1624 if( !static_cast<SwMultiPortion*>(pPor)->IsRevers() )
1625 nTmpY = pPor->
Height() - nTmpY;
1628 nX =
static_cast<sal_uInt16
>(nTmpY);
1631 if( static_cast<SwMultiPortion*>(pPor)->HasBrackets() )
1634 if ( nX > nPreWidth )
1635 nX = nX - nPreWidth;
1656 SwTextSlot aDiffText( &aSizeInf, static_cast<SwTextPortion*>(pPor),
false,
false );
1661 OSL_ENSURE( pPara,
"No paragraph!" );
1665 &pPara->GetScriptInfo(),
1675 sal_uInt16 nSumWidth = 0;
1676 sal_uInt16 nSumBorderWidth = 0;
1678 while (pCurrPart && nSumWidth <= nX - sal_Int32(nCurrStart))
1680 nSumWidth += pCurrPart->
GetWidth();
1692 nX = std::max(0, nX - nSumBorderWidth);
1697 nX = std::max(0, nX -
GetInfo().GetFont()->GetLeftBorderSpace());
1700 aDrawInf.SetOffset( nX );
1707 aDrawInf.SetNumberOfBlanks( pPor->
InTextGrp() ?
1708 static_cast<const SwTextPortion*
>(pPor)->GetSpaceCnt( aSizeInf, nCharCnt ) :
1715 aDrawInf.SetSpace( nSpaceAdd );
1716 aDrawInf.SetFont( aSizeInf.
GetFont() );
1718 aDrawInf.SetSnapToGrid( aSizeInf.
SnapToGrid() );
1722 pPara->GetScriptInfo().CountCompChg() &&
1724 aDrawInf.SetKanaComp( nKanaComp );
1738 aDrawInf.GetCursorBidiLevel();
1740 if( bFieldInfo && nLength == pPor->
GetLen() &&
1746 const_cast<SwFont*
>(
GetFnt())->SetProportion( nOldProp );
1751 if(bChgNode && pPos && (pFlyPor = dynamic_cast<sw::FlyContentPortion*>(pPor)))
1758 bool bChgNodeInner = pLower
1760 Point aTmpPoint( rPoint );
1786 nOffset = nCurrStart + nLength;
1820 if( !rRect.
IsOver( aTmpFrame ) )
1824 SwRect aRect( aTmpFrame );
1837 SwTextInfo aInf( const_cast<SwTextFrame*>(
this) );
1838 SwTextIter aLine( const_cast<SwTextFrame*>(
this), &aInf );
1847 while( nY < nTop && aLine.
Next() )
1852 bool bLastLine =
false;
1853 if( nY < nTop && !aLine.
GetNext() )
1868 if( aRectFnSet.
IsVert() )
1870 aPoint.setX( nLastY );
1871 aPoint.setY( nLeft );
1875 aPoint.setX( nLeft );
1876 aPoint.setY( nLastY );
1883 if( aRectFnSet.
IsVert() )
1885 aPoint.setX( nLastY );
1886 aPoint.setY( nRight );
1890 aPoint.setX( nRight );
1891 aPoint.setY( nLastY );
1911 else if( !bLastLine )
1919 }
while( nLastY < nBottom );
TextFrameIndex GetModelPositionForViewPoint(SwPosition *pPos, const Point &rPoint, bool bChgNode, SwCursorMoveState *=nullptr) const
void CtorInitTextIter(SwTextFrame *pFrame, SwTextInfo *pInf)
std::deque< sal_uInt16 > * GetpKanaComp() const
Base class of the Writer layout elements.
Represents the visualization of a paragraph.
const SvxLRSpaceItem & GetLRSpace(bool=true) const
tools::Long GetRight(const SwRect &rRect) const
sal_uInt16 GetLeftBorderSpace() const
SwFontScript WhichFont(TextFrameIndex nIdx) const
bool m_bFieldInfo
should be fields recognized?
void Right(const tools::Long nRight)
const SwSortedObjs * GetDrawObjs() const
sal_uInt16 GetPropLineSpace() const
virtual bool FillSelection(SwSelectionList &rList, const SwRect &rRect) const override
Looks for text portions which are inside the given rectangle.
Marks a position in the document model.
sal_uInt16 GetDropDescent() const
sal_uInt16 GetLines() const
static bool ConsiderNextPortionForCursorOffset(const SwLinePortion *pPor, sal_uInt16 nWidth30, sal_uInt16 nX)
Determines if SwTextCursor::GetModelPositionForViewPoint() should consider the next portion when calc...
SvxAdjust GetAdjust() const
LanguageType GetLangOfChar(TextFrameIndex nIndex, sal_uInt16 nScript, bool bNoChar=false) const
bool m_bRealHeight
should the real height be calculated?
sal_uInt16 Height() const
sal_uInt16 GetDropLeft() const
TextFrameIndex GetStart() const
void Left(const tools::Long nLeft)
virtual tools::Long CalcSpacing(tools::Long nSpaceAdd, const SwTextSizeInfo &rInf) const
bool IsTextPortion() const
sal_uInt8 GetPropr() const
bool GetJoinBorderWithPrev() const
tools::Long const nLeftMargin
void SwitchHorizontalToVertical(SwRect &rRect) const
Calculates the coordinates of a rectangle when switching from horizontal to vertical layout...
sal_uInt16 GetRightBorderSpace() const
bool GetFirstLineOfsWithNum(short &rFirstOffset) const
Returns the combined first line indent of this text node and its numbering.
tools::Long GetLeftMarginForTabCalculation() const
return left margin for tab stop position calculation
void SetPropFont(const sal_uInt8 nNew)
SwTwips GetHangingMargin() const
const SwRect & getFramePrintArea() const
void SetOnWin(const bool bNew)
sal_uInt8 m_nCursorBidiLevel
bool m_bRealWidth
Calculation of the width required.
tools::Long GetLen(const Point &rPnt)
sal_uInt16 GetDropHeight() const
virtual bool GetModelPositionForViewPoint(SwPosition *, Point &, SwCursorMoveState *=nullptr, bool bTestBackground=false) const override
In nOffset returns the offset of the char within the set text buffer, which is closest to the positio...
void SetLen(TextFrameIndex const nLen)
bool SeekAndChg(SwTextSizeInfo &rInf)
SwDropPortionPart * GetPart() const
This class is used as parameter for creation of a block cursor selection.
const SwLineLayout * Next()
void Pos(const Point &rNew)
bool AreListLevelIndentsApplicable() const
Determines, if the list level indent attributes can be applied to the paragraph.
const Size & GetSize(SwFontScript nWhich) const
bool checkContext(const SwFrame *pCheck)
Checks if the context of the list is equal to the context of the frame.
void SetKanaComp(std::deque< sal_uInt16 > *pNew)
void SetMulti(const bool bNew)
Of course Writer needs its own rectangles.
Collection of SwLineLayout instances, represents the paragraph text in Writer layout.
int GetActualListLevel() const
Returns the actual list level of this text node, when it is a list item.
tools::Long GetLLSpaceAdd(sal_uInt16 nIdx)
const SvxLineSpacingItem * GetLineSpacing() const
SvxAdjust GetOneWord() const
bool Seek(TextFrameIndex nPos)
Enables the attributes used at char pos nPos in the logical font.
SvxLineSpaceRule GetLineSpaceRule() const
void GetCharRect_(SwRect *, TextFrameIndex, SwCursorMoveState *)
SwFlyInContentFrame * GetFlyFrame()
tools::Long GetTop(const SwRect &rRect) const
bool IsMarginPortion() const
SwRect GetPaintArea() const
|* The paintarea is the area, in which the content of a frame is allowed |* to be displayed...
bool InToxRefOrFieldGrp() const
wrapper class for the positioning of Writer fly frames and drawing objects
void GetFlyCursorOfst(Point &rPoint, SwPosition &rPos, SwCursorMoveState *pCMS) const
sal_uInt16 GetLineHeight() const
bool IsBreakPortion() const
const SwRect & getFrameArea() const
int m_nInNumPortionOffset
distance from number portion's start
SwRect & Intersection(const SwRect &rRect)
void SetKanaIdx(sal_uInt16 nNew)
void Width(tools::Long nNew)
tools::Long GetLeft(const SwRect &rRect) const
static bool s_bRightMargin
bool IsFlyInContentFrame() const
void insertPaM(SwPaM *pPam)
Adds a text portion to the selection list.
SwFontScript GetActual() const
SwTextFrame * GetFollow()
bool InFixMargGrp() const
TextFrameIndex GetOffset() const
const std::optional< editeng::SvxBorderLine > & GetRightBorder() const
This portion represents a part of the paragraph string.
SwNode & GetEndOfContent() const
Regular ContentSection (i.e. the BodyText).
SwTwips CurrWidth() const
void CalcAscentAndHeight(sal_uInt16 &rAscent, sal_uInt16 &rHeight) const
PaM is Point and Mark: a selection of the document model.
void SetRealHeight(sal_uInt16 nNew)
const OUString & GetExp() const
SwTextNode const * GetTextNodeForParaProps() const
sal_uInt8 GetLevel() const
tools::Long GetTextLeft() const
bool IsFootnoteNumPortion() const
virtual void Height(const sal_uInt16 nNew, const bool bText=true) override
virtual TextFrameIndex GetModelPositionForViewPoint(sal_uInt16 nOfst) const
the parameter is actually SwTwips apparently?
sal_uInt16 AdjustBaseLine(const SwLineLayout &rLine, const SwLinePortion *pPor, sal_uInt16 nPorHeight=0, sal_uInt16 nAscent=0, const bool bAutoToCentered=false) const
sal_uInt16 GetDropDescent() const
SwTwips GetLineStart() const
Collection of SwLinePortion instances, representing one line of text.
const SwLineInfo & GetLineInfo() const
vcl::RenderContext * GetOut()
static void ResetSpaceAdd(SwLineLayout *pCurr)
void SetFont(SwFont *pNew)
SwParaPortion * GetParaPortion()
bool IsFlyPortion() const
SwTextGridItem const * GetGridItem(SwPageFrame const *const)
SwLinePortion * GetFirstPortion() const
bool IsKernPortion() const
tools::Long GetLeft() const
SvxAdjust GetLastBlock() const
const SvxAdjustItem & GetAdjust(bool=true) const
void CtorInitTextMargin(SwTextFrame *pFrame, SwTextSizeInfo *pInf)
SwTwips GetLeftMargin() const
SwNumRule * GetNumRule(bool bInParent=true) const
Returns numbering rule of this text node.
const SwLineLayout * GetPrev()
SvxInterLineSpaceRule GetInterLineSpaceRule() const
const std::optional< editeng::SvxBorderLine > & GetLeftBorder() const
void Modify(bool bChgToRTL)
sal_uInt16 GetLineHeight() const
TextFrameIndex GetIdx() const
const IDocumentSettingAccess * getIDocumentSettingAccess() const
Provides access to the document setting interface.
bool IsDropPortion() const
tools::Long GetLeftMarginWithNum(bool bTextLeft=false) const
Returns the additional indents of this text node and its numbering.
bool m_bInFrontOfLabel
cursor in front of label
void SSize(const Size &rNew)
Point m_aRealHeight
contains then the position/height of the cursor
SwTwips GetLineEnd() const
TextFrameIndex GetLen() const
bool m_b2Lines
Check 2line portions and fill p2Lines.
const OUString & GetText() const
short GetInterLineSpace() const
std::unique_ptr< Sw2LinesPos > m_p2Lines
for selections inside/around 2line portions
bool IsHolePortion() const
sal_uInt16 GetWidth() const
void GetEndCharRect(SwRect *, TextFrameIndex, SwCursorMoveState *=nullptr, const tools::Long nMax=0)
bool IsMultiPortion() const
bool m_bFootnoteNoInfo
recognized footnote numbering
void SwitchLTRtoRTL(SwRect &rRect) const
Calculates the coordinates of a rectangle when switching from LTR to RTL layout.
Base class for anything that can be part of a line in the Writer layout.
const SwNumFormat & Get(sal_uInt16 i) const
bool m_bInNumPortion
point is in number portion #i23726#
void CtorInitTextCursor(SwTextFrame *pFrame, SwTextSizeInfo *pInf)
bool IsLayoutFrame() const
HFONT SelectFont(HDC hDC, HFONT hFont)
SwTextNode is a paragraph in the document model.
void SetLen(const TextFrameIndex nNew)
TextFrameIndex GetLen() const
For the text replacement and restoration of SwTextSizeInfo.
general base class for all free-flowing frames
void SetFirstMulti(const bool bNew)
constexpr tools::Long Height() const
sal_uInt8 GetPropFont() const
const SwNodes & GetNodes() const
bool GetJoinBorderWithNext() const
SwLinePortion * FindLastPortion()
bool IsInside(const Point &rPOINT) const
void GetCharRect(SwRect *, TextFrameIndex, SwCursorMoveState *=nullptr, const tools::Long nMax=0)
void SetActual(SwFontScript nNew)
IDocumentSettingAccess const & getIDocumentSettingAccess() const
SvxAdjust GetAdjust() const
SwTextSizeInfo & GetInfo()
SwTwips GetAdditionalFirstLineOffset() const
bool IsRightToLeft() const
virtual SwPosSize GetTextSize(const SwTextSizeInfo &rInfo) const
TextFrameIndex GetModelPositionForViewPoint_(SwDrawTextInfo &rInf)
void Top(const tools::Long nTop)
virtual tools::Long CalcSpacing(tools::Long nSpaceAdd, const SwTextSizeInfo &rInf) const override
SwSpecialPos * m_pSpecialPos
for positions inside fields
tools::Long const nRightMargin
const SwLineLayout * PrevLine()
double getLength(const B2DPolygon &rCandidate)
SwSPExtendRange
SwSpecialPos.
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
const SwAttrSet & GetSwAttrSet() const
Does node has already its own auto-attributes? Access to SwAttrSet.
bool m_bPosMatchesBounds
GetModelPositionForViewPoint should not return the next position if screen position is inside second ...
bool m_bPosCorr
Point had to be corrected.
const SwDropPortion * FindDropPortion() const
sal_uInt16 GetRealHeight() const
const SwLineLayout * GetNext() const
sal_uInt16 GetLineWidth() const
const SwLineLayout * GetCurr() const
tools::Long GetBottom(const SwRect &rRect) const
SwDropPortionPart * GetFollow() const
SwSPExtendRange nExtendRange
const SwLineLayout * CharCursorToLine(TextFrameIndex const nPos)
if(!pCandidateA->getEnd().equal(pCandidateB->getStart()))
SwTextFrame * GetTextFrame()
void PrtWidth(sal_uInt16 nNewWidth)
TextFrameIndex GetEnd() const
void SetProportion(const sal_uInt8 nNewPropr)
bool IsOver(const SwRect &rRect) const
bool GetJoinBorderWithNext() const
SwLinePortion * GetNextPortion() const
void SetIdx(const TextFrameIndex nNew)
SvxParaVertAlignItem::Align GetVertAlign() 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)
SwPosition MapViewToModelPos(TextFrameIndex nIndex) const
#define LANGUAGE_JAPANESE
bool IsFlyCntPortion() const
sal_uInt16 GetRubyHeight() const
const sal_Int32 COMPLETE_STRING
static void lcl_GetCharRectInsideField(SwTextSizeInfo &rInf, SwRect &rOrig, const SwCursorMoveState &rCMS, const SwLinePortion &rPor)
bool IsPostItsPortion() const
virtual bool FillSelection(SwSelectionList &rList, const SwRect &rRect) const override
sal_uInt16 GetDropHeight() const
bool IsProtected() const
Is the Frame or rather the Section in which it lies protected?
bool IsBlankPortion() const
bool GetJoinBorderWithPrev() const