23#include <com/sun/star/beans/PropertyValues.hpp>
51namespace sw {
class WrongListIterator; }
53#define ARROW_WIDTH 200
54#define DIR_LEFT2RIGHT 0
55#define DIR_BOTTOM2TOP 1
56#define DIR_RIGHT2LEFT 2
57#define DIR_TOP2BOTTOM 3
254 sal_uInt16& nMinSize, sal_uInt16& nMaxSizeDiff,
262 const sal_uInt16 nComp,
266 const sal_uInt16 nComp,
300 m_aMaxWidth.insert( std::make_pair( nKey, nVal ) );
304 SwTextPortionMap::iterator it =
m_aMaxWidth.find( nKey );
336 void SetCachedVclData(std::shared_ptr<const vcl::text::TextLayoutCache>
const& pCachedVclData)
356 const bool bKern,
const bool bWrong =
false,
357 const bool bSmartTag =
false,
358 const bool bGrammarCheck =
false );
392 const bool bKern =
false)
const;
394 const bool bKern =
false )
const;
397 const bool bSmartTags,
398 const bool bGrammarCheck )
const;
430 SwRect* pIntersect =
nullptr,
const bool bInsideBox =
false )
const;
519 bool InitHyph(
const bool bAuto =
false );
524 const bool bQuick =
false,
const bool bTst =
false );
526 const bool bQuickL =
false,
const bool bTst =
false);
642 bool ChgHyph(
const bool bNew );
650 css::uno::Reference< css::linguistic2::XHyphenatedWord >
651 HyphWord(
const OUString &rText,
const sal_Int32 nMinTrail );
698 bool bExgLists, OUString
const & rCh = OUString() );
756 const bool bKern )
const
770 const bool bSmartTags,
771 const bool bGrammarCheck )
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...
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
constexpr tools::Long X() const
const SwAttrSet & GetSwAttrSet() const
Does node has already its own auto-attributes? Access to SwAttrSet.
SwFontSave(const SwTextSizeInfo &rInf, SwFont *pFnt, SwAttrIter *pItr=nullptr)
To take Asian or other languages into consideration, an SwFont object consists of 3 SwSubFonts (Latin...
rtl_TextEncoding GetCharSet(const SwFontScript nWhich) const
SwFontScript GetActual() const
void SetDefTabStop(sal_uInt16 nNew) const
void CtorInitLineInfo(const SwAttrSet &rAttrSet, const SwTextNode &rTextNode)
const SvxLineSpacingItem * GetLineSpacing() const
tools::Long m_nListTabStopPosition
bool HasSpecialAlign(bool bVert) const
sal_uInt16 GetDefTabStop() const
tools::Long GetListTabStopPosition() const
sal_uInt16 NumberOfTabStops() const
const SvxTabStop * GetTabStop(const SwTwips nSearchPos, SwTwips &nRight) const
#i24363# tab stops relative to indent
bool IsListTabStopIncluded() const
const SvxLineSpacingItem * m_pSpace
bool m_bListTabStopIncluded
std::optional< SvxTabStopItem > m_oRuler
SvxParaVertAlignItem::Align GetVertAlign() const
SvxParaVertAlignItem::Align m_nVertAlign
Collection of SwLinePortion instances, representing one line of text.
Base class for anything that can be part of a line in the Writer layout.
Collection of SwLineLayout instances, represents the paragraph text in Writer layout.
SwCharRange & GetReformat()
Of course Writer needs its own rectangles.
SwTwips GetOffset() const
void SetOffset(const SwTwips nNew)
The purpose of this class is to be the universal interface between formatting/text output and the pos...
void SetArrowDone(const bool bNew)
TextFrameIndex m_nLastBookmarkPos
need to check for bookmarks at every portion
SwLinePortion * GetLast()
void SetStop(const bool bNew)
const SwLineLayout * GetRoot() const
SwTabPortion * GetLastTab()
void SetFly(SwFlyPortion *pNew)
void SetErgoDone(const bool bNew)
void CtorInitTextFormatInfo(OutputDevice *pRenderContext, SwTextFrame *pFrame, const bool bInterHyph=false, const bool bQuick=false, const bool bTst=false)
void ChkNoHyph(const sal_uInt8 bEnd, const sal_uInt8 bMid)
bool IsFakeLineStart() const
void SetUnderScorePos(TextFrameIndex const nNew)
const SwFormatDrop * GetDropFormat() const
void SetRoot(SwLineLayout *pNew)
css::uno::Reference< css::linguistic2::XHyphenatedWord > HyphWord(const OUString &rText, const sal_Int32 nMinTrail)
SwLinePortion * m_pUnderflow
void SetRest(SwLinePortion *pNewRest)
sal_uInt16 ForcedLeftMargin() const
bool CheckFootnotePortion(SwLineLayout const *pCurr)
void SetShift(const bool bNew)
void SetLineStart(TextFrameIndex const nNew)
bool InitHyph(const bool bAuto=false)
void SetDropInit(const bool bNew)
sal_uInt16 RealWidth() const
void SetTabOverflow(bool bOverflow)
TextFrameIndex GetLineStart() const
sal_uInt16 m_nLineNetHeight
void SetLineNetHeight(const sal_uInt16 nNew)
bool CheckFootnotePortion_(SwLineLayout const *pCurr)
const SwLinePortion * GetUnderflow() const
sal_Unicode GetHookChar() const
void SetLineHeight(const sal_uInt16 nNew)
TextFrameIndex m_nUnderScorePos
enlarge repaint if underscore has been found
TextFrameIndex ScanPortionEnd(TextFrameIndex nStart, TextFrameIndex nEnd)
TextFrameIndex m_nSoftHyphPos
SoftHyphPos for Hyphenation.
sal_uInt16 GetLineNetHeight() const
sal_Unicode m_cTabDecimal
SwTabPortion * m_pLastTab
sal_uInt16 GetLineHeight() const
void RealWidth(const sal_uInt16 nNew)
void SetLast(SwLinePortion *pNewLast)
void SetIgnoreFly(const bool bNew)
SwLinePortion * GetRest()
const sal_uInt8 & MaxHyph() const
sal_uInt16 m_nForcedLeftMargin
const SwAttrSet & GetCharAttr() const
void Left(const SwTwips nNew)
SwTwips m_nLeftMargin
First or left margin, depending on context.
bool IsFootnoteDone() const
TextFrameIndex m_nLineStart
Current line start in rText.
SwLinePortion * GetUnderflow()
TextFrameIndex GetSoftHyphPos() const
sal_Unicode GetTabDecimal() const
void SetNumDone(const bool bNew)
void SetNewLine(const bool bNew)
void SetTabDecimal(const sal_Unicode cNew)
void Width(const sal_uInt16 nNew)
void SetLastTab(SwTabPortion *pNew)
void SetFakeLineStart(const bool bNew)
bool IsHyphenate() const
If the Hyphenator returns ERROR or the language is set to NOLANGUAGE we do not hyphenate.
bool CheckCurrentPosBookmark()
TextFrameIndex GetUnderScorePos() const
void SetFootnoteDone(const bool bNew)
void Right(const SwTwips nNew)
bool IsTabOverflow() const
void First(const SwTwips nNew)
SwTwips GetLineWidth()
Returns the distance between the current horizontal position and the end of the line.
void SetHookChar(const sal_Unicode cNew)
void ForcedLeftMargin(const sal_uInt16 nN)
const css::beans::PropertyValues & GetHyphValues() const
bool IsHyphForbud() const
SwTextFormatInfo(OutputDevice *pRenderContext, SwTextFrame *pFrame, const bool bInterHyphL=false, const bool bQuickL=false, const bool bTst=false)
void SetUnderflow(SwLinePortion *pNew)
TextFrameIndex GetReformatStart() const
void LeftMargin(const SwTwips nNew)
void SetFull(const bool bNew)
void SetSoftHyphPos(TextFrameIndex const nNew)
bool ChgHyph(const bool bNew)
css::beans::PropertyValues m_aHyphVals
Represents the visualization of a paragraph.
void SetFootnote(const bool bNew)
Will be moved soon.
SwTextNode const * GetTextNodeForParaProps() const
SwTextInfo(SwTextFrame *pFrame)
SwParaPortion * GetParaPortion()
TextFrameIndex m_nTextStart
TextFrameIndex GetTextStart() const
friend void SetParaPortion(SwTextInfo *pInf, SwParaPortion *pRoot)
We format a row for interactive hyphenation We can assume that we've already formatted.
const SwParaPortion * GetParaPortion() const
void CtorInitTextInfo(SwTextFrame *pFrame)
SwTextNode is a paragraph in the document model.
void DrawCSDFHighlighting(const SwLinePortion &rPor) const
const SvxBrushItem * GetBrushItem() const
void SetpSpaceAdd(std::vector< tools::Long > *pNew)
const SvxBrushItem * m_pBrushItem
void DrawMarkedText(const SwLinePortion &rPor, TextFrameIndex nLen, const bool bWrong, const bool bSmartTags, const bool bGrammarCheck) const
void SetPaintOfst(const SwTwips nNew)
SwTextPaintInfo & operator=(const SwTextPaintInfo &)=delete
void DrawText_(const OUString &rText, const SwLinePortion &rPor, const TextFrameIndex nIdx, const TextFrameIndex nLen, const bool bKern, const bool bWrong=false, const bool bSmartTag=false, const bool bGrammarCheck=false)
sw::WrongListIterator * GetpWrongList() const
void DrawTab(const SwLinePortion &rPor) const
void DrawText(const OUString &rText, const SwLinePortion &rPor, TextFrameIndex nIdx=TextFrameIndex(0), TextFrameIndex nLen=TextFrameIndex(COMPLETE_STRING), const bool bKern=false) const
const SwRect & GetPaintRect() const
std::vector< tools::Long > * GetpSpaceAdd() const
void DrawBackground(const SwLinePortion &rPor, const Color *pColor=nullptr) const
sal_uInt16 GetSpaceIdx() const
void SetSmartTags(sw::WrongListIterator *const pNew)
const SwTextFly & GetTextFly() const
void RemoveFirstSpaceAdd()
void SetPos(const Point &rNew)
SwTwips GetPaintOfst() const
const Point & GetPos() const
sw::WrongListIterator * m_pSmartTags
void CalcRect(const SwLinePortion &rPor, SwRect *pRect, SwRect *pIntersect=nullptr, const bool bInsideBox=false) const
Calculate the rectangular area where the portion takes place.
void DrawRect(const SwRect &rRect, bool bRetouche) const
void DrawBackBrush(const SwLinePortion &rPor) const
void SetWrongList(sw::WrongListIterator *const pNew)
std::vector< tools::Long > * m_pSpaceAdd
void Y(const SwTwips nNew)
void SetGrammarCheckList(sw::WrongListIterator *const pNew)
sw::WrongListIterator * GetGrammarCheckList() const
void DrawPostIts(bool bScript) const
void SetSpaceIdx(sal_uInt16 nNew)
void DrawViewOpt(const SwLinePortion &rPor, PortionType nWhich, const Color *pColor=nullptr) const
void DrawCheckBox(const SwFieldFormCheckboxPortion &rPor, bool bChecked) const
void DrawRedArrow(const SwLinePortion &rPor) const
void X(const tools::Long nNew)
sw::WrongListIterator * m_pGrammarCheckList
tools::Long GetSpaceAdd() const
sw::WrongListIterator * m_pWrongList
void DrawBorder(const SwLinePortion &rPor) const
Draw character border around a line portion.
void DrawLineBreak(const SwLinePortion &rPor) const
void CtorInitTextPaintInfo(OutputDevice *pRenderContext, SwTextFrame *pFrame, const SwRect &rPaint)
sw::WrongListIterator * GetSmartTags() const
SwTextFrame * GetTextFrame()
vcl::RenderContext * GetOut()
void CtorInitTextSizeInfo(OutputDevice *pRenderContext, SwTextFrame *pFrame, TextFrameIndex nIdx)
sal_uInt16 GetHangingBaseline() const
const vcl::RenderContext * GetRefDev() const
sal_uInt8 GetDirection() const
const SwViewOption & GetOpt() const
void SetMulti(const bool bNew)
VclPtr< OutputDevice > m_pOut
void SetUnderFnt(SwUnderlineFont *pNew)
const SwViewShell * GetVsh() const
void SetLen(const TextFrameIndex nNew)
VclPtr< OutputDevice > m_pRef
void SetMaxWidthDiff(const SwLinePortion *nKey, sal_uInt16 nVal)
void SetSnapToGrid(const bool bN)
const SwFont * GetFont() const
TextFrameIndex GetTextBreak(const tools::Long nLineWidth, const TextFrameIndex nMaxLen, const sal_uInt16 nComp, vcl::text::TextLayoutCache const *) const
sal_uInt16 GetTextHeight() const
TextFrameIndex GetMeasureLen() const
sal_uInt16 GetKanaIdx() const
void SetMeasureLen(const TextFrameIndex nNew)
const std::shared_ptr< const vcl::text::TextLayoutCache > & GetCachedVclData() const
void SetCachedVclData(std::shared_ptr< const vcl::text::TextLayoutCache > const &pCachedVclData)
void NoteAnimation() const
const SwTextFrame * GetTextFrame() const
void SetForbiddenChars(const bool bN)
vcl::RenderContext * GetRefDev()
void SetIdx(const TextFrameIndex nNew)
void SetFont(SwFont *pNew)
bool HasScriptSpace() const
TextFrameIndex m_nMeasureLen
bool m_bOtherThanFootnoteInside
sal_uInt16 GetMaxWidthDiff(const SwLinePortion *nKey)
bool StopUnderflow() const
SwUnderlineFont * GetUnderFnt() const
void SetKanaIdx(sal_uInt16 nNew)
void SetDirection(const sal_uInt8 nNew)
std::map< SwLinePortion const *, sal_uInt16 > SwTextPortionMap
void SetFirstMulti(const bool bNew)
void SetRuby(const bool bNew)
sal_uInt16 GetAscent() const
sal_Unicode GetChar(TextFrameIndex const nPos) const
std::deque< sal_uInt16 > * m_pKanaComp
void SetText(const OUString &rNew)
void SetKanaComp(std::deque< sal_uInt16 > *pNew)
TextFrameIndex GetLen() const
const vcl::RenderContext * GetOut() const
void SetNotEOL(const bool bNew)
std::shared_ptr< const vcl::text::TextLayoutCache > m_pCachedVclData
bool IsOtherThanFootnoteInside() const
void SetFootnoteInside(const bool bNew)
void SetOnWin(const bool bNew)
bool IsFootnoteInside() const
std::optional< SwMultiCreator > GetMultiCreator(TextFrameIndex &rPos, SwMultiPortion const *pM) const
bool IsFirstMulti() const
const OUString & GetText() const
SwTextPortionMap m_aMaxWidth
SwPosSize GetTextSize() const
TextFrameIndex GetIdx() const
std::deque< sal_uInt16 > * GetpKanaComp() const
void SetOut(OutputDevice *pNewOut)
bool HasForbiddenChars() const
void SetOtherThanFootnoteInside(const bool bNew)
void SetHanging(const bool bNew)
bool HasHint(TextFrameIndex nPos) const
void SetScriptSpace(const bool bNew)
sal_uInt16 GetKanaComp() const
void SetStopUnderflow(const bool bNew)
const SwViewOption * m_pOpt
SwUnderlineFont * m_pUnderFnt
For the text replacement and restoration of SwTextSizeInfo.
sw::WrongListIterator * m_pOldSmartTagList
TextFrameIndex nMeasureLen
SwTextSlot(const SwTextSizeInfo *pNew, const SwLinePortion *pPor, bool bTextLen, bool bExgLists, OUString const &rCh=OUString())
std::unique_ptr< SwWrongList > m_pTempList
sw::WrongListIterator * m_pOldGrammarCheckList
const OUString * pOldText
std::unique_ptr< sw::WrongListIterator > m_pTempIter
std::shared_ptr< const vcl::text::TextLayoutCache > m_pOldCachedVclData
Dialog to specify the properties of date form field.
constexpr sal_Int32 COMPLETE_STRING