40 const std::vector<ExtTextInputAttr> &
m_rArr;
49 bool Inside()
const {
return (m_nPos >= m_nStart && m_nPos < m_nEnd); }
52 SwExtend(
const std::vector<ExtTextInputAttr> &rArr,
58 , m_nEnd(m_nStart + rArr.
size())
60 bool IsOn()
const {
return m_pFont !=
nullptr; }
63 {
return m_pFont &&
Leave_(rFnt, nNode, nNew); }
94 if (m_pExt)
return m_pExt->Enter(rFnt, nNode, nNew);
98 if (m_pExt)
return m_pExt->Next(nNode, nNext);
103 sal_Int32 nRedlPos,
Mode mode,
104 const std::vector<ExtTextInputAttr> *pArr =
nullptr,
108 bool IsOn()
const {
return m_bOn || (m_pExt && m_pExt->IsOn()); }
114 if (m_pExt) m_pExt->Reset();
116 std::pair<sal_Int32, std::pair<SwRangeRedline const*, size_t>>
GetNextRedln(
121 sal_Int32 nChkEnd, OUString& rRedlineText,
bool& bRedlineEnd,
122 RedlineType& eRedlineEnd,
size_t* pAuthorAtPos =
nullptr);
124 {
return m_pExt->Leave(rFnt, nNode, nNew); }
126 if (m_pExt)
return m_pExt->IsOn();
130 OSL_ENSURE(
ExtOn(),
"UpdateExtFont without ExtOn" );
131 m_pExt->UpdateFont( rFnt );
SwRedlineTable::size_type GetAct() const
std::deque< SwTextAttr * > m_Hints
void UpdateFont(SwFont &rFont)
Marks a position in the document model.
bool ChkSpecialUnderline() const
std::unique_ptr< SwFont > m_pFont
void UpdateExtFont(SwFont &rFnt)
SwExtend(const std::vector< ExtTextInputAttr > &rArr, SwNodeOffset const nNode, sal_Int32 const nStart)
SwNodeOffset const m_nNdIdx
SwRedlineTable::size_type m_nAct
void FillHints(std::size_t nAuthor, RedlineType eType)
A wrapper around SfxPoolItem to store the start position of (usually) a text portion, with an optional end.
Used by Attribute Iterators to organize attributes on stacks to find the valid attribute in each cate...
sal_Int32 NextExtend(SwNodeOffset const nNode, sal_Int32 const nNext)
short Enter(SwFont &rFnt, SwNodeOffset nNode, sal_Int32 nNew)
sal_Int32 m_nPos
current position (inside)
bool LeaveExtend(SwFont &rFnt, SwNodeOffset const nNode, sal_Int32 const nNew)
std::unique_ptr< SfxItemSet > m_pSet
bool Leave(SwFont &rFnt, SwNodeOffset const nNode, sal_Int32 const nNew)
SwNodeOffset const m_nNode
position of start of SwExtTextInput
short EnterExtend(SwFont &rFnt, SwNodeOffset const nNode, sal_Int32 const nNew)
vector_type::size_type size_type
std::unique_ptr< SwExtend > m_pExt
sal_Int32 const m_nEnd
position of end of SwExtTextInput (in same node as start)
~SwRedlineItr() COVERITY_NOEXCEPT_FALSE
bool Leave_(SwFont &rFnt, SwNodeOffset nNode, sal_Int32 nNew)
SwRedlineTable::size_type const m_nFirst
SwTextNode is a paragraph in the document model.
void Clear_(SwFont *pFnt)
bool CheckLine(SwNodeOffset nStartNode, sal_Int32 nChkStart, SwNodeOffset nEndNode, sal_Int32 nChkEnd, OUString &rRedlineText, bool &bRedlineEnd, RedlineType &eRedlineEnd, size_t *pAuthorAtPos=nullptr)
std::pair< sal_Int32, std::pair< SwRangeRedline const *, size_t > > GetNextRedln(sal_Int32 nNext, SwTextNode const *pNode, SwRedlineTable::size_type &rAct)
Ignore mode: does nothing.
bool ChkSpecialUnderline_() const
void ChangeTextAttr(SwFont *pFnt, SwTextAttr const &rHt, bool bChg)
constexpr sal_Int32 COMPLETE_STRING
const std::vector< ExtTextInputAttr > & m_rArr
short Seek(SwFont &rFnt, SwNodeOffset nNode, sal_Int32 nNew, sal_Int32 nOld)
SwRedlineItr(const SwTextNode &rTextNd, SwFont &rFnt, SwAttrHandler &rAH, sal_Int32 nRedlPos, Mode mode, const std::vector< ExtTextInputAttr > *pArr=nullptr, SwPosition const *pExtInputStart=nullptr)
SwAttrHandler & m_rAttrHandler
static constexpr size_type npos
static void ActualizeFont(SwFont &rFnt, ExtTextInputAttr nAttr)
sal_Int32 Next(SwNodeOffset nNode, sal_Int32 nNext)