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( o3tl::narrowing<sal_uInt16>(nListLevel) );
169 const bool bLabelAlignmentActive = IsLabelAlignmentActive( *pTextNode );
171 const bool bListLevelIndentsApplicableAndLabelAlignmentActive = bListLevelIndentsApplicable && bLabelAlignmentActive;
201 if ( bListLevelIndentsApplicableAndLabelAlignmentActive ||
228 (bListLevelIndentsApplicable && nLMWithNum == rTextLeftMargin.
GetTextLeft())
229 || (!bLabelAlignmentActive && nLMWithNum == 0)))
260 case SvxLineSpaceRule::Auto:
262 case SvxLineSpaceRule::Min:
268 case SvxLineSpaceRule::Fix:
271 default: OSL_FAIL(
": unknown LineSpaceRule" );
275 case SvxInterLineSpaceRule::Off:
277 case SvxInterLineSpaceRule::Prop:
283 nTmp = nTmp ? 50 : 100;
285 nTmp *= nFirstLineOfs;
289 nFirstLineOfs = nTmp;
292 case SvxInterLineSpaceRule::Fix:
297 default: OSL_FAIL(
": unknown InterLineSpaceRule" );
303 nFirstLineOfs = nFLOfst;
308 bListLevelIndentsApplicableAndLabelAlignmentActive ||
311 if ( nFirstLineOfs < 0 && m_pFrame->IsInTab() &&
314 !bListLevelIndentsApplicableAndLabelAlignmentActive )
326 std::max(rTextLeftMargin.
GetTextLeft() + nLMWithNum + nFirstLineOfs,
347 else if ( SvxAdjust::Right ==
mnAdjust )
389 else if(
GetAdjust() == SvxAdjust::Center )
454 SwTwips nTmpHeight, nTmpAscent;
456 sal_uInt16 nPorHeight = nTmpHeight;
457 sal_uInt16 nPorAscent = nTmpAscent;
462 nX = nX + pPor->
Width();
467 nPorHeight = pPor->
Height();
473 const Size aCharSize( 1, nTmpHeight );
475 pOrig->
SSize( aCharSize );
476 pOrig->
Pos().AdjustX(nLast );
478 if( pOrig->
Left() > nTmpRight )
479 pOrig->
Pos().setX( nTmpRight );
483 if ( nTmpAscent > nPorAscent )
487 OSL_ENSURE( nPorHeight,
"GetCharRect: Missing Portion-Height" );
505 SwTwips nTmpAscent, nTmpHeight;
507 const Size aCharSize( 1, nTmpHeight );
508 const Point aCharPos;
509 pOrig->
Pos( aCharPos );
510 pOrig->
SSize( aCharSize );
515 const bool bInsideFirstField = pCMS && pCMS->
m_pSpecialPos &&
531 SwTwips nPorHeight = nTmpHeight;
532 SwTwips nPorAscent = nTmpAscent;
540 sal_uInt16 nSpaceIdx = 0;
551 while( pPor && !pPor->
GetLen() && ! bInsideFirstField )
569 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
575 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
587 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
593 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
610 nPorHeight = pPor->
Height();
619 nPorHeight = pPor->
Height();
644 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
651 ( nKanaIdx + 1 ) < pKanaComp->size()
665 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
671 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
683 nLastBidiIdx = aInf.
GetIdx();
684 nLastBidiPorWidth = pLastBidiPor->
Width() +
698 pOrig->
Pos().AdjustY(nTmpAscent - nPorAscent );
751 const sal_uInt16 nRubyHeight = bHasGrid ?
764 nOffset = nRubyHeight;
768 pOrig->
Pos().AdjustY(nOffset );
773 ChgSpaceAdd(
m_pCurr, nSpaceAdd );
782 const bool bChgHeight =
795 aLayoutModeModifier.
Modify(
840 nTmp = pOrig->
Left() - aOldPos.
X();
848 pOrig->
Pos().setX( nX + aOldPos.
X() );
850 pOrig->
Pos().setY( aOldPos.
Y() + nTmp );
852 pOrig->
Pos().setY( aOldPos.
Y()
879 pOrig->
Pos().AdjustY(aOldPos.
Y() );
885 pOrig->
Pos().setX( nX + nPorWidth -
886 nInsideOfst - pOrig->
Width() );
889 pOrig->
Pos().AdjustX(nX );
892 pOrig->
Pos().AdjustX(
926 const bool bOldOnWin = aInf.
OnWin();
949 pOrig->
Width( nTmp - nX );
964 while( pCurrPart && (nSumLength += pCurrPart->
GetLen()) < nOfst - aInf.
GetIdx() )
968 if( pCurrPart && nSumLength != nOfst - aInf.
GetIdx() &&
988 OSL_ENSURE( !pPor->
InNumberGrp() || bInsideFirstField,
"Number surprise" );
989 bool bEmptyField =
false;
995 sal_uInt16 nAddX = pTmp->
Width();
999 OSL_ENSURE( !pNext->
GetLen(),
"Where's my field follow?" );
1000 nAddX = nAddX + pNext->
Width();
1006 nPorHeight = pTmp->
Height();
1013 while( pPor && !pPor->
GetLen() && ! bInsideFirstField &&
1027 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
1033 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
1045 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
1051 if( pKanaComp && ( nKanaIdx + 1 ) < pKanaComp->size() )
1056 nPorHeight = pPor->
Height();
1069 while( pPor && !pPor->
GetLen() )
1071 nX += pPor->
Width();
1074 nPorHeight = pPor->
Height();
1090 nPorAscent = pPor->
Height();
1091 nPorHeight = nPorAscent;
1092 pOrig->
Height( nPorHeight +
1094 if( nTmpHeight < pOrig->
Height() )
1096 nTmpAscent = nPorAscent;
1097 nTmpHeight = sal_uInt16( pOrig->
Height() );
1106 nPorHeight = pPor->
Height();
1112 nTmp = pPor->
Width();
1118 const bool bOldOnWin = aInf.
OnWin();
1138 pOrig->
Width( nTmp );
1169 pOrig->
Pos().AdjustX( -nLastBidiPorWidth );
1182 "Non-BidiPortion inside BidiPortion" );
1185 aInf.
SetIdx(nLastBidiIdx);
1186 pOrig->
Pos().AdjustX(pLast->
Width() +
1200 pOrig->
Pos().AdjustX(pPor->
Width() +
1206 pOrig->
Pos().AdjustX(nX );
1211 if ( nTmpAscent > nPorAscent )
1215 OSL_ENSURE( nPorHeight,
"GetCharRect: Missing Portion-Height" );
1216 if ( nTmpHeight > nPorHeight )
1239 "LineOffset AND Number Portion?" );
1257 pOrig->
Pos().AdjustX(aCharPos.
X() );
1258 pOrig->
Pos().AdjustY(aCharPos.
Y() );
1262 pCMS->
m_p2Lines->aLine.Pos().AdjustX(aCharPos.
X() );
1263 pCMS->
m_p2Lines->aLine.Pos().AdjustY(aCharPos.
Y() );
1264 pCMS->
m_p2Lines->aPortion.Pos().AdjustX(aCharPos.
X() );
1265 pCMS->
m_p2Lines->aPortion.Pos().AdjustY(aCharPos.
Y() );
1270 if( pOrig->
Top() + pOrig->
Height() > nMax )
1272 if( pOrig->
Top() > nMax )
1354 bool bHolePortion =
false;
1355 bool bLastHyph =
false;
1359 sal_uInt16 nSpaceIdx = 0;
1360 size_t nKanaIdx = 0;
1362 short nKanaComp = pKanaComp ? (*pKanaComp)[0] : 0;
1381 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
1389 if ( nKanaIdx + 1 < pKanaComp->size() )
1390 nKanaComp = (*pKanaComp)[++nKanaIdx];
1408 nCurrStart = nCurrStart + pPor->
GetLen();
1411 nWidth = pPor->
Width();
1426 if ( ++nSpaceIdx < m_pCurr->GetLLSpaceAddCount() )
1434 if( nKanaIdx + 1 < pKanaComp->size() )
1435 nKanaComp = (*pKanaComp)[++nKanaIdx];
1459 nCurrStart = nCurrStart + pPor->
GetLen();
1473 if( bFieldInfo && ( nWidth30 < nX || bRightOver || bLeftOver ||
1495 if (!bRightOver && nX)
1510 if( bHolePortion || ( !bRightAllowed && bLastHyph ) ||
1523 sal_uInt16 nHeight = pPor->
Height();
1524 if ( !nHeight || nHeight > nWidth )
1526 if( bChgNode && nWidth - nHeight/2 > nX )
1545 sal_uInt16 nHeight = 0;
1548 nHeight = pPor->
Height();
1549 if ( !nHeight || nHeight > nWidth )
1553 if( nWidth - nHeight/2 <= nX &&
1570 && ( nWidth/2 < nX ) &&
1574 && ( bRightAllowed || !bLastHyph ))
1586 if (pPostItsPortion)
1591 nCurrStart += pPor->
GetLen();
1609 && rText[sal_Int32(nCurrStart +
nLength) - 1] ==
' ' )
1636 nTmpY, nX, nCurrStart, nSpaceAdd );
1642 aLayoutModeModifier.
Modify( nBidiLevel % 2 );
1649 nTmpY = pPor->
Height() - nTmpY;
1652 nX = o3tl::narrowing<sal_uInt16>(nTmpY);
1658 if ( nX > nPreWidth )
1659 nX = nX - nPreWidth;
1680 SwTextSlot aDiffText( &aSizeInf, pPor,
false,
false );
1685 OSL_ENSURE( pPara,
"No paragraph!" );
1703 sal_uInt16 nSumWidth = 0;
1704 sal_uInt16 nSumBorderWidth = 0;
1706 while (pCurrPart && nSumWidth <= nX - sal_Int32(nCurrStart))
1708 nSumWidth += pCurrPart->
GetWidth();
1720 nX = std::max(
static_cast<SwTwips>(0), nX - nSumBorderWidth);
1774 const_cast<SwFont*
>(
GetFnt())->SetProportion( nOldProp );
1788 bool bChgNodeInner = pLower
1790 Point aTmpPoint( rPoint );
1816 nOffset = nCurrStart +
nLength;
1854 SwRect aRect( aTmpFrame );
1877 while( nY < nTop && aLine.
Next() )
1882 bool bLastLine =
false;
1883 if( nY < nTop && !aLine.
GetNext() )
1898 if( aRectFnSet.
IsVert() )
1900 aPoint.
setX( nLastY );
1901 aPoint.
setY( nLeft );
1905 aPoint.
setX( nLeft );
1906 aPoint.
setY( nLastY );
1913 if( aRectFnSet.
IsVert() )
1915 aPoint.
setX( nLastY );
1916 aPoint.
setY( nRight );
1920 aPoint.
setX( nRight );
1921 aPoint.
setY( nLastY );
1941 else if( !bLastLine )
1949 }
while( nLastY < nBottom );
@ IGNORE_FIRST_LINE_INDENT_IN_NUMBERING
@ AUTO_FIRST_LINE_INDENT_DISREGARD_LINE_SPACE
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 bool get(DocumentSettingId id) const =0
Return the specified document setting.
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
constexpr tools::Long X() const
constexpr tools::Long Height() const
SvxAdjust GetLastBlock() const
SvxAdjust GetAdjust() const
SvxAdjust GetOneWord() const
sal_uInt16 GetPropLineSpace() const
SvxInterLineSpaceRule GetInterLineSpaceRule() const
SvxLineSpaceRule GetLineSpaceRule() const
sal_uInt16 GetLineHeight() const
short GetInterLineSpace() const
tools::Long GetLeft(SvxFirstLineIndentItem const &rFirstLine) const
tools::Long GetTextLeft() const
wrapper class for the positioning of Writer fly frames and drawing objects
void SetPropFont(const sal_uInt8 nNew)
sal_uInt8 GetPropFont() const
bool Seek(TextFrameIndex nPos)
Enables the attributes used at char pos nPos in the logical font.
const SvxAdjustItem & GetAdjust(bool=true) const
const SvxFirstLineIndentItem & GetFirstLineIndent(bool=true) const
const SvxTextLeftMarginItem & GetTextLeftMargin(bool=true) const
virtual tools::Long CalcSpacing(tools::Long nSpaceAdd, const SwTextSizeInfo &rInf) const override
sal_uInt8 GetLevel() const
const SwAttrSet & GetSwAttrSet() const
Does node has already its own auto-attributes? Access to SwAttrSet.
static void ResetSpaceAdd(SwLineLayout *pCurr)
void SetPosMatchesBounds(bool bNew)
void SetNumberOfBlanks(TextFrameIndex const nNew)
void SetSnapToGrid(bool bNew)
void SetOffset(sal_Int32 nNew)
sal_uInt8 GetCursorBidiLevel() const
void SetFont(SwFont *pNew)
void SetKanaComp(short nNew)
void SetLen(TextFrameIndex const nNew)
void SetFrame(const SwTextFrame *pNewFrame)
void SetSpace(tools::Long nNew)
bool GetJoinBorderWithPrev() const
bool GetJoinBorderWithNext() const
TextFrameIndex GetLen() const
SwDropPortionPart * GetFollow() const
sal_uInt16 GetWidth() const
Text portion for the Format -> Paragraph -> Drop Caps functionality.
sal_uInt16 GetDropHeight() const
sal_uInt16 GetDropDescent() const
sal_uInt16 GetLines() const
sal_uInt16 GetDropLeft() const
SwDropPortionPart * GetPart() const
const OUString & GetExp() const
general base class for all free-flowing frames
virtual const SwFlyFrame * DynCastFlyFrame() const override
bool IsFlyInContentFrame() const
Flys that are anchored as a character in the content.
To take Asian or other languages into consideration, an SwFont object consists of 3 SwSubFonts (Latin...
const std::optional< editeng::SvxBorderLine > & GetRightBorder() const
const Size & GetSize(SwFontScript nWhich) const
sal_uInt16 GetRightBorderSpace() const
void SetProportion(const sal_uInt8 nNewPropr)
SwFontScript GetActual() const
sal_uInt8 GetPropr() const
TextFrameIndex GetModelPositionForViewPoint_(SwDrawTextInfo &rInf)
const std::optional< editeng::SvxBorderLine > & GetLeftBorder() const
sal_uInt16 GetLeftBorderSpace() const
void SetActual(SwFontScript nNew)
const SwRect & getFrameArea() const
const SwRect & getFramePrintArea() const
Base class of the Writer layout elements.
SwRect GetPaintArea() const
|* The paintarea is the area, in which the content of a frame is allowed |* to be displayed.
const SwSortedObjs * GetDrawObjs() const
bool IsProtected() const
Is the Frame or rather the Section in which it lies protected?
bool IsRightToLeft() const
bool IsNoTextFrame() const
bool IsLayoutFrame() const
virtual bool FillSelection(SwSelectionList &rList, const SwRect &rRect) const override
void Modify(bool bChgToRTL)
const SvxLineSpacingItem * GetLineSpacing() const
Collection of SwLinePortion instances, representing one line of text.
SwLinePortion * GetFirstPortion() const
tools::Long GetLLSpaceAdd(sal_uInt16 nIdx)
virtual void Height(const SwTwips nNew, const bool bText=true) override
SwTwips GetHangingMargin() const
void SetRealHeight(SwTwips nNew)
SwTwips GetRealHeight() const
std::deque< sal_uInt16 > * GetpKanaComp() const
Base class for anything that can be part of a line in the Writer layout.
bool InToxRefOrFieldGrp() const
void PrtWidth(SwTwips nNewWidth)
bool IsBlankPortion() const
bool IsTextPortion() const
bool IsMarginPortion() const
virtual TextFrameIndex GetModelPositionForViewPoint(sal_uInt16 nOfst) const
the parameter is actually SwTwips apparently?
SwLinePortion * GetNextPortion() const
bool GetJoinBorderWithPrev() const
bool IsPostItsPortion() const
TextFrameIndex GetLen() const
SwLinePortion * FindLastPortion()
bool IsKernPortion() const
bool GetJoinBorderWithNext() const
bool IsDropPortion() const
virtual tools::Long CalcSpacing(tools::Long nSpaceAdd, const SwTextSizeInfo &rInf) const
bool IsBreakPortion() const
void SetLen(TextFrameIndex const nLen)
bool IsMultiPortion() const
bool IsHolePortion() const
virtual SwPosSize GetTextSize(const SwTextSizeInfo &rInfo) const
bool IsFlyPortion() const
bool IsFootnoteNumPortion() const
SwTwips ExtraBlankWidth() const
bool IsFlyCntPortion() const
bool InFixMargGrp() const
bool HasTabulator() const
const IDocumentSettingAccess * getIDocumentSettingAccess() const
Provides access to the document setting interface.
SwNode & GetEndOfContent() const
Regular ContentSection (i.e. the BodyText).
const SwNumFormat & Get(sal_uInt16 i) const
PaM is Point and Mark: a selection of the document model.
Collection of SwLineLayout instances, represents the paragraph text in Writer layout.
const SwDropPortion * FindDropPortion() const
SwScriptInfo & GetScriptInfo()
tools::Long GetTop(const SwRect &rRect) const
tools::Long GetLeft(const SwRect &rRect) const
tools::Long GetBottom(const SwRect &rRect) const
tools::Long GetRight(const SwRect &rRect) const
Of course Writer needs its own rectangles.
SwRect & Intersection(const SwRect &rRect)
void Height(tools::Long nNew)
void Top(const tools::Long nTop)
void Pos(const Point &rNew)
void SSize(const Size &rNew)
bool Contains(const Point &rPOINT) const
bool Overlaps(const SwRect &rRect) const
void Left(const tools::Long nLeft)
void Width(tools::Long nNew)
SwFontScript WhichFont(TextFrameIndex nIdx) const
size_t CountCompChg() const
This class is used as parameter for creation of a block cursor selection.
void insertPaM(SwPaM *pPam)
Adds a text portion to the selection list.
bool checkContext(const SwFrame *pCheck)
Checks if the context of the list is equal to the context of the frame.
class for collecting anchored objects
const SwLineLayout * CharCursorToLine(TextFrameIndex const nPos)
TextFrameIndex GetModelPositionForViewPoint(SwPosition *pPos, const Point &rPoint, bool bChgNode, SwCursorMoveState *=nullptr) const
static bool s_bRightMargin
void GetCharRect_(SwRect *, TextFrameIndex, SwCursorMoveState *)
SwTwips AdjustBaseLine(const SwLineLayout &rLine, const SwLinePortion *pPor, SwTwips nPorHeight=0, SwTwips nAscent=0, const bool bAutoToCentered=false) const
void AddExtraBlankWidth()
void GetCharRect(SwRect *, TextFrameIndex, SwCursorMoveState *=nullptr, const tools::Long nMax=0)
void GetEndCharRect(SwRect *, TextFrameIndex, SwCursorMoveState *=nullptr, const tools::Long nMax=0)
void CtorInitTextCursor(SwTextFrame *pFrame, SwTextSizeInfo *pInf)
Represents the visualization of a paragraph.
SwTextFrame * GetFollow()
SwPosition MapViewToModelPos(TextFrameIndex nIndex) const
LanguageType GetLangOfChar(TextFrameIndex nIndex, sal_uInt16 nScript, bool bNoChar=false) const
TextFrameIndex GetOffset() const
void SwitchLTRtoRTL(SwRect &rRect) const
Calculates the coordinates of a rectangle when switching from LTR to RTL layout.
SwTwips GetAdditionalFirstLineOffset() const
void SwitchHorizontalToVertical(SwRect &rRect) const
Calculates the coordinates of a rectangle when switching from horizontal to vertical layout.
virtual bool FillSelection(SwSelectionList &rList, const SwRect &rRect) const override
Looks for text portions which are inside the given rectangle.
SwTextNode const * GetTextNodeForParaProps() 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...
sal_uInt16 GetRubyHeight() const
SwParaPortion * GetParaPortion()
TextFrameIndex GetEnd() const
const SwLineLayout * GetNext() const
TextFrameIndex GetStart() const
const SwLineLayout * PrevLine()
SwTwips GetLineHeight() const
const SwLineLayout * Next()
const SwLineLayout * GetCurr() const
SwTextFrame * GetTextFrame()
void CalcAscentAndHeight(SwTwips &rAscent, SwTwips &rHeight) const
const SwLineInfo & GetLineInfo() const
const SwLineLayout * GetPrev()
bool SeekAndChg(SwTextSizeInfo &rInf)
void CtorInitTextIter(SwTextFrame *pFrame, SwTextInfo *pInf)
SwTwips GetLineEnd() const
void CtorInitTextMargin(SwTextFrame *pFrame, SwTextSizeInfo *pInf)
SwTextSizeInfo & GetInfo()
SwTwips GetLeftMargin() const
sal_uInt16 GetDropHeight() const
SwTwips CurrWidth() const
SvxAdjust GetAdjust() const
SwTwips GetLineStart() const
sal_uInt16 GetLineWidth() const
SwTextNode is a paragraph in the document model.
tools::Long GetLeftMarginWithNum(bool bTextLeft=false) const
Returns the additional indents of this text node and its numbering.
::sw::ListLevelIndents AreListLevelIndentsApplicable() const
Determines, if the list level indent attributes can be applied to the paragraph.
SwNumRule * GetNumRule(bool bInParent=true) const
Returns numbering rule of this text node.
int GetActualListLevel(SwListRedlineType eRedline=SwListRedlineType::SHOW) const
Returns the actual list level of this text node, when it is a list item.
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
This portion represents a part of the paragraph string.
TextFrameIndex GetSpaceCnt(const SwTextSizeInfo &rInf, TextFrameIndex &rCnt) const
vcl::RenderContext * GetOut()
void SetMulti(const bool bNew)
void SetLen(const TextFrameIndex nNew)
TextFrameIndex GetMeasureLen() const
void SetMeasureLen(const TextFrameIndex nNew)
void SetIdx(const TextFrameIndex nNew)
void SetFont(SwFont *pNew)
void SetKanaIdx(sal_uInt16 nNew)
void SetFirstMulti(const bool bNew)
void SetKanaComp(std::deque< sal_uInt16 > *pNew)
TextFrameIndex GetLen() const
void SetOnWin(const bool bNew)
const OUString & GetText() const
TextFrameIndex GetIdx() const
For the text replacement and restoration of SwTextSizeInfo.
void GetFlyCursorOfst(Point &rPoint, SwPosition &rPos, SwCursorMoveState *pCMS) const
SwFlyInContentFrame * GetFlyFrame()
SwSPExtendRange
SwSpecialPos.
static bool ConsiderNextPortionForCursorOffset(const SwLinePortion *pPor, SwTwips nWidth30, sal_uInt16 nX)
Determines if SwTextCursor::GetModelPositionForViewPoint() should consider the next portion when calc...
static void lcl_GetCharRectInsideField(SwTextSizeInfo &rInf, SwRect &rOrig, const SwCursorMoveState &rCMS, const SwLinePortion &rPor)
#define LANGUAGE_JAPANESE
#define SAL_WARN_IF(condition, area, stream)
if(aStr !=aBuf) UpdateName_Impl(m_xFollowLb.get()
tools::Long const nRightMargin
tools::Long const nLeftMargin
double getLength(const B2DPolygon &rCandidate)
vcl::Font GetFont(vcl::Font const &rFont, DrawModeFlags nDrawMode, StyleSettings const &rStyleSettings)
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
SwTextGridItem const * GetGridItem(SwPageFrame const *const)
bool m_bPosCorr
Point had to be corrected.
bool m_bInNumPortion
point is in number portion #i23726#
bool m_bFootnoteNoInfo
recognized footnote numbering
int m_nInNumPortionOffset
distance from number portion's start
bool m_b2Lines
Check 2line portions and fill p2Lines.
sal_uInt8 m_nCursorBidiLevel
bool m_bRealHeight
should the real height be calculated?
std::unique_ptr< Sw2LinesPos > m_p2Lines
for selections inside/around 2line portions
SwSpecialPos * m_pSpecialPos
for positions inside fields
bool m_bRealWidth
Calculation of the width required.
bool m_bFieldInfo
should be fields recognized?
bool m_bInFrontOfLabel
cursor in front of label
Point m_aRealHeight
contains then the position/height of the cursor
bool m_bPosMatchesBounds
GetModelPositionForViewPoint should not return the next position if screen position is inside second ...
Marks a position in the document model.
const SwNodes & GetNodes() const
SwSPExtendRange nExtendRange
UNDERLYING_TYPE get() const
tools::Long GetLen(const Point &rPnt)
constexpr sal_Int32 COMPLETE_STRING
constexpr sal_uInt8 MAXLEVEL
HFONT SelectFont(HDC hDC, HFONT hFont)