LibreOffice Module sw (master) 1
porlay.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19#pragma once
20
21#include <scriptinfo.hxx>
22
23#include <swrect.hxx>
24#include <swtypes.hxx>
25#include "portxt.hxx"
26#include <svx/ctredlin.hxx>
27
28#include <vector>
29#include <deque>
30
31class SwMarginPortion;
32class SwDropPortion;
33class SwTextFormatter;
34
36{
37private:
40
41public:
43 TextFrameIndex const nInitLen = TextFrameIndex(0))
44 : m_nStart( nInitStart ), m_nLen(nInitLen) {}
46 TextFrameIndex const& Start() const { return m_nStart; }
47 void LeftMove(TextFrameIndex const nNew)
48 { if ( nNew < m_nStart ) { m_nLen += m_nStart-nNew; m_nStart = nNew; } }
49 TextFrameIndex & Len() { return m_nLen; }
50 TextFrameIndex const& Len() const { return m_nLen; }
51 bool operator<(const SwCharRange &rRange) const
52 { return m_nStart < rRange.m_nStart; }
53 bool operator>(const SwCharRange &rRange) const
54 { return m_nStart + m_nLen > rRange.m_nStart + rRange.m_nLen; }
55 bool operator!=(const SwCharRange &rRange) const
56 { return *this < rRange || *this > rRange; }
57 SwCharRange &operator+=(const SwCharRange &rRange);
58};
59
60// SwRepaint is a document-global SwRect
61// nOfst states from where in the first line should be painted
62// nRightOfst gives the right margin
63class SwRepaint : public SwRect
64{
67public:
69
70 SwTwips GetOffset() const { return m_nOffset; }
71 void SetOffset( const SwTwips nNew ) { m_nOffset = nNew; }
73 void SetRightOfst( const SwTwips nNew ) { m_nRightOffset = nNew; }
74};
75
79{
80private:
81 SwLineLayout *m_pNext; // The next Line
82 std::unique_ptr<std::vector<tools::Long>> m_pLLSpaceAdd; // Used for justified alignment
83 std::unique_ptr<std::deque<sal_uInt16>> m_pKanaComp; // Used for Kana compression
84 SwTwips m_nRealHeight; // The height resulting from line spacing and register
85 SwTwips m_nTextHeight; // The max height of all non-FlyCnt portions in this Line
86 bool m_bFormatAdj : 1;
87 bool m_bDummy : 1;
88 bool m_bEndHyph : 1;
89 bool m_bMidHyph : 1;
90 bool m_bFly : 1;
91 bool m_bRest : 1;
92 bool m_bBlinking : 1;
93 bool m_bClipping : 1; // Clipping needed for exact line height
94 bool m_bContent : 1; // Text for line numbering
95 bool m_bRedline : 1; // The Redlining
96 bool m_bRedlineEnd: 1; // Redlining for paragraph mark: tracked change at the end
97 bool m_bForcedLeftMargin : 1; // Left adjustment moved by the Fly
98 bool m_bHanging : 1; // Contains a hanging portion in the margin
99 bool m_bUnderscore : 1;
100
101 enum RedlineType m_eRedlineEnd; // redline type of pilcrow and line break symbols
102
103 OUString m_sRedlineText; // shortened text of (first) tracked deletion shown in margin
104
105 SwTwips GetHangingMargin_() const;
106
107 void DeleteNext();
108public:
109 // From SwPosSize
110 using SwPosSize::Height;
111 virtual void Height(const SwTwips nNew, const bool bText = true) override;
112
113 // From SwLinePortion
114 virtual SwLinePortion *Insert( SwLinePortion *pPortion ) override;
115 virtual SwLinePortion *Append( SwLinePortion *pPortion ) override;
116 SwLinePortion *GetFirstPortion() const;
117
118 // Flags
119 void ResetFlags();
120 void SetFormatAdj( const bool bNew ) { m_bFormatAdj = bNew; }
121 bool IsFormatAdj() const { return m_bFormatAdj; }
122 void SetEndHyph( const bool bNew ) { m_bEndHyph = bNew; }
123 bool IsEndHyph() const { return m_bEndHyph; }
124 void SetMidHyph( const bool bNew ) { m_bMidHyph = bNew; }
125 bool IsMidHyph() const { return m_bMidHyph; }
126 void SetFly( const bool bNew ) { m_bFly = bNew; }
127 bool IsFly() const { return m_bFly; }
128 void SetRest( const bool bNew ) { m_bRest = bNew; }
129 bool IsRest() const { return m_bRest; }
130 void SetBlinking( const bool bNew ) { m_bBlinking = bNew; }
131 bool IsBlinking() const { return m_bBlinking; }
132 void SetContent( const bool bNew ) { m_bContent = bNew; }
133 bool HasContent() const { return m_bContent; }
134 void SetRedline( const bool bNew ) { m_bRedline = bNew; }
135 bool HasRedline() const { return m_bRedline; }
136 void SetRedlineEnd( const bool bNew ) { m_bRedlineEnd = bNew; }
137 bool HasRedlineEnd() const { return m_bRedlineEnd; }
138 void SetRedlineEndType( const enum RedlineType eNew ) { m_eRedlineEnd = eNew; }
139 RedlineType GetRedlineEndType() const { return m_eRedlineEnd; }
140 void SetRedlineText ( const OUString& sText ) { m_sRedlineText = sText; }
141 const OUString* GetRedlineText() const { return &m_sRedlineText; }
142 void SetForcedLeftMargin() { m_bForcedLeftMargin = true; }
143 bool HasForcedLeftMargin() const { return m_bForcedLeftMargin; }
144 void SetHanging( const bool bNew ) { m_bHanging = bNew; }
145 bool IsHanging() const { return m_bHanging; }
146 void SetUnderscore( const bool bNew ) { m_bUnderscore = bNew; }
147 bool HasUnderscore() const { return m_bUnderscore; }
148
149 // Respecting empty dummy lines
150 void SetDummy( const bool bNew ) { m_bDummy = bNew; }
151 bool IsDummy() const { return m_bDummy; }
152
153 void SetClipping( const bool bNew ) { m_bClipping = bNew; }
154 bool IsClipping() const { return m_bClipping; }
155
156 SwLineLayout();
157 virtual ~SwLineLayout() override;
158
159 SwLineLayout *GetNext() { return m_pNext; }
160 const SwLineLayout *GetNext() const { return m_pNext; }
161 void SetNext( SwLineLayout *pNew ) { m_pNext = pNew; }
162
163 void Init( SwLinePortion *pNextPortion = nullptr);
164
165 // Collects the data for the line
166 void CalcLine( SwTextFormatter &rLine, SwTextFormatInfo &rInf );
167
168 void SetRealHeight( SwTwips nNew ) { m_nRealHeight = nNew; }
169 SwTwips GetRealHeight() const { return m_nRealHeight; }
170
171 SwTwips GetTextHeight() const { return m_nTextHeight; }
172
173 // Creates the glue chain for short lines
174 SwMarginPortion *CalcLeftMargin();
175
177 { return GetHangingMargin_(); }
178
179 // For special treatment for empty lines
180 virtual bool Format( SwTextFormatInfo &rInf ) override;
181
182 // Stuff for justified alignment
183 bool IsSpaceAdd() const { return m_pLLSpaceAdd != nullptr; }
184 void InitSpaceAdd(); // Creates pLLSpaceAdd if necessary
185 void CreateSpaceAdd( const tools::Long nInit = 0 );
186 void FinishSpaceAdd() { m_pLLSpaceAdd.reset(); }
187 sal_uInt16 GetLLSpaceAddCount() const { return sal::static_int_cast< sal_uInt16 >(m_pLLSpaceAdd->size()); }
188 void SetLLSpaceAdd( tools::Long nNew, sal_uInt16 nIdx )
189 {
190 if ( nIdx == GetLLSpaceAddCount() )
191 m_pLLSpaceAdd->push_back( nNew );
192 else
193 (*m_pLLSpaceAdd)[ nIdx ] = nNew;
194 }
195 tools::Long GetLLSpaceAdd( sal_uInt16 nIdx ) { return (*m_pLLSpaceAdd)[ nIdx ]; }
196 void RemoveFirstLLSpaceAdd() { m_pLLSpaceAdd->erase( m_pLLSpaceAdd->begin() ); }
197 std::vector<tools::Long>* GetpLLSpaceAdd() const { return m_pLLSpaceAdd.get(); }
198
199 // Stuff for Kana compression
200 void SetKanaComp( std::unique_ptr<std::deque<sal_uInt16>> pNew ){ m_pKanaComp = std::move(pNew); }
201 void FinishKanaComp() { m_pKanaComp.reset(); }
202 std::deque<sal_uInt16>* GetpKanaComp() const { return m_pKanaComp.get(); }
203 std::deque<sal_uInt16>& GetKanaComp() { return *m_pKanaComp; }
204
237 void MaxAscentDescent( SwTwips& _orAscent,
238 SwTwips& _orDescent,
239 SwTwips& _orObjAscent,
240 SwTwips& _orObjDescent,
241 const SwLinePortion* _pDontConsiderPortion = nullptr,
242 const bool _bNoFlyCntPorAndLinePor = false ) const;
243
244 void dumpAsXml(xmlTextWriterPtr pWriter, const OUString& rText,
245 TextFrameIndex& nOffset) const override;
246};
247
251{
252 // Area that needs repainting
254 // Area that needs reformatting
257
258 // Fraction aZoom;
260
261 // If a SwTextFrame is locked, no changes occur to the formatting data (under
262 // pLine) (compare with Orphans)
263 bool m_bFlys : 1; // Overlapping Flys?
264 bool m_bPrep : 1; // PREP_*
265 bool m_bPrepWidows : 1; // PrepareHint::Widows
266 bool m_bPrepAdjust : 1; // PrepareHint::AdjustSizeWithoutFormatting
267 bool m_bPrepMustFit : 1; // PrepareHint::MustFit
268 bool m_bFollowField : 1; // We have a bit of field left for the Follow
269
270 bool m_bFixLineHeight : 1; // Fixed line height
271 bool m_bFootnoteNum : 1; // is the frame that may contain a footnotenumberportion
272 bool m_bMargin : 1; // contains a hanging punctuation in the margin
273
274public:
276 virtual ~SwParaPortion() override;
277
278 // Resets all formatting information (except for bFlys)
279 inline void FormatReset();
280
281 // Resets the Flags
282 inline void ResetPreps();
283
284 // Get/Set methods
286 const SwRepaint& GetRepaint() const { return m_aRepaint; }
288 const SwCharRange& GetReformat() const { return m_aReformat; }
289 void SetDelta(tools::Long nDelta) { m_nDelta = nDelta; }
290 tools::Long GetDelta() const { return m_nDelta; }
292 const SwScriptInfo& GetScriptInfo() const { return m_aScriptInfo; }
293
294 // For SwTextFrame::Format: returns the paragraph's current length
296
297 // For Prepare()
298 bool UpdateQuoVadis( std::u16string_view rQuo );
299
300 // Flags
301 void SetFly() { m_bFlys = true; }
302 bool HasFly() const { return m_bFlys; }
303
304 // Preps
305 void SetPrep() { m_bPrep = true; }
306 bool IsPrep() const { return m_bPrep; }
307 void SetPrepWidows() { m_bPrepWidows = true; }
308 bool IsPrepWidows() const { return m_bPrepWidows; }
309 void SetPrepMustFit( const bool bNew ) { m_bPrepMustFit = bNew; }
310 bool IsPrepMustFit() const { return m_bPrepMustFit; }
311 void SetPrepAdjust() { m_bPrepAdjust = true; }
312 bool IsPrepAdjust() const { return m_bPrepAdjust; }
313 void SetFollowField( const bool bNew ) { m_bFollowField = bNew; }
314 bool IsFollowField() const { return m_bFollowField; }
316 bool IsFixLineHeight() const { return m_bFixLineHeight; }
317
318 void SetFootnoteNum( const bool bNew ) { m_bFootnoteNum = bNew; }
319 bool IsFootnoteNum() const { return m_bFootnoteNum; }
320 void SetMargin( const bool bNew = true ) { m_bMargin = bNew; }
321 bool IsMargin() const { return m_bMargin; }
324 bool HasContentPortions() const;
325
326 // Set nErgo in the QuoVadisPortion
327 void SetErgoSumNum( const OUString &rErgo );
328
329 const SwDropPortion *FindDropPortion() const;
330
331 void dumpAsXml(xmlTextWriterPtr pWriter, const OUString& rText,
332 TextFrameIndex& nOffset) const override;
333};
334
336{
338}
339
341{
342 m_nDelta = 0;
344 // bFlys needs to be retained in SwTextFrame::Format_() so that empty
345 // paragraphs that needed to avoid Frames with no flow, reformat
346 // when the Frame disappears from the Area
347 // bFlys = false;
348 ResetPreps();
350}
351
352/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
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...
TextFrameIndex m_nLen
Definition: porlay.hxx:39
TextFrameIndex & Len()
Definition: porlay.hxx:49
TextFrameIndex m_nStart
Definition: porlay.hxx:38
bool operator>(const SwCharRange &rRange) const
Definition: porlay.hxx:53
SwCharRange & operator+=(const SwCharRange &rRange)
Definition: porlay.cxx:847
bool operator<(const SwCharRange &rRange) const
Definition: porlay.hxx:51
bool operator!=(const SwCharRange &rRange) const
Definition: porlay.hxx:55
TextFrameIndex const & Start() const
Definition: porlay.hxx:46
TextFrameIndex const & Len() const
Definition: porlay.hxx:50
TextFrameIndex & Start()
Definition: porlay.hxx:45
void LeftMove(TextFrameIndex const nNew)
Definition: porlay.hxx:47
SwCharRange(TextFrameIndex const nInitStart=TextFrameIndex(0), TextFrameIndex const nInitLen=TextFrameIndex(0))
Definition: porlay.hxx:42
Text portion for the Format -> Paragraph -> Drop Caps functionality.
Definition: pordrop.hxx:65
Collection of SwLinePortion instances, representing one line of text.
Definition: porlay.hxx:79
bool HasRedline() const
Definition: porlay.hxx:135
bool m_bClipping
Definition: porlay.hxx:93
std::unique_ptr< std::deque< sal_uInt16 > > m_pKanaComp
Definition: porlay.hxx:83
bool IsHanging() const
Definition: porlay.hxx:145
void SetBlinking(const bool bNew)
Definition: porlay.hxx:130
SwLineLayout * m_pNext
Definition: porlay.hxx:81
std::unique_ptr< std::vector< tools::Long > > m_pLLSpaceAdd
Definition: porlay.hxx:82
void SetKanaComp(std::unique_ptr< std::deque< sal_uInt16 > > pNew)
Definition: porlay.hxx:200
std::deque< sal_uInt16 > & GetKanaComp()
Definition: porlay.hxx:203
bool m_bMidHyph
Definition: porlay.hxx:89
void SetRedline(const bool bNew)
Definition: porlay.hxx:134
void SetUnderscore(const bool bNew)
Definition: porlay.hxx:146
void SetFormatAdj(const bool bNew)
Definition: porlay.hxx:120
void SetRedlineEndType(const enum RedlineType eNew)
Definition: porlay.hxx:138
enum RedlineType m_eRedlineEnd
Definition: porlay.hxx:101
void SetMidHyph(const bool bNew)
Definition: porlay.hxx:124
bool m_bRedlineEnd
Definition: porlay.hxx:96
bool IsRest() const
Definition: porlay.hxx:129
void SetForcedLeftMargin()
Definition: porlay.hxx:142
sal_uInt16 GetLLSpaceAddCount() const
Definition: porlay.hxx:187
SwTwips GetTextHeight() const
Definition: porlay.hxx:171
SwTwips m_nTextHeight
Definition: porlay.hxx:85
void SetHanging(const bool bNew)
Definition: porlay.hxx:144
void FinishSpaceAdd()
Definition: porlay.hxx:186
SwLineLayout * GetNext()
Definition: porlay.hxx:159
OUString m_sRedlineText
Definition: porlay.hxx:103
bool HasForcedLeftMargin() const
Definition: porlay.hxx:143
SwTwips m_nRealHeight
Definition: porlay.hxx:84
void RemoveFirstLLSpaceAdd()
Definition: porlay.hxx:196
bool m_bContent
Definition: porlay.hxx:94
bool m_bFormatAdj
Definition: porlay.hxx:86
void SetClipping(const bool bNew)
Definition: porlay.hxx:153
bool m_bForcedLeftMargin
Definition: porlay.hxx:97
void SetLLSpaceAdd(tools::Long nNew, sal_uInt16 nIdx)
Definition: porlay.hxx:188
void FinishKanaComp()
Definition: porlay.hxx:201
bool m_bHanging
Definition: porlay.hxx:98
const SwLineLayout * GetNext() const
Definition: porlay.hxx:160
bool IsFormatAdj() const
Definition: porlay.hxx:121
tools::Long GetLLSpaceAdd(sal_uInt16 nIdx)
Definition: porlay.hxx:195
void SetFly(const bool bNew)
Definition: porlay.hxx:126
bool HasContent() const
Definition: porlay.hxx:133
bool IsMidHyph() const
Definition: porlay.hxx:125
bool IsBlinking() const
Definition: porlay.hxx:131
bool IsFly() const
Definition: porlay.hxx:127
SwTwips GetHangingMargin() const
Definition: porlay.hxx:176
bool m_bRedline
Definition: porlay.hxx:95
bool IsClipping() const
Definition: porlay.hxx:154
void SetRedlineText(const OUString &sText)
Definition: porlay.hxx:140
bool m_bUnderscore
Definition: porlay.hxx:99
bool IsDummy() const
Definition: porlay.hxx:151
bool HasUnderscore() const
Definition: porlay.hxx:147
void SetRedlineEnd(const bool bNew)
Definition: porlay.hxx:136
void SetRealHeight(SwTwips nNew)
Definition: porlay.hxx:168
bool m_bFly
Definition: porlay.hxx:90
RedlineType GetRedlineEndType() const
Definition: porlay.hxx:139
bool m_bEndHyph
Definition: porlay.hxx:88
bool m_bRest
Definition: porlay.hxx:91
SwTwips GetRealHeight() const
Definition: porlay.hxx:169
bool IsEndHyph() const
Definition: porlay.hxx:123
void SetContent(const bool bNew)
Definition: porlay.hxx:132
void SetEndHyph(const bool bNew)
Definition: porlay.hxx:122
void SetNext(SwLineLayout *pNew)
Definition: porlay.hxx:161
bool IsSpaceAdd() const
Definition: porlay.hxx:183
void SetDummy(const bool bNew)
Definition: porlay.hxx:150
void SetRest(const bool bNew)
Definition: porlay.hxx:128
const OUString * GetRedlineText() const
Definition: porlay.hxx:141
bool HasRedlineEnd() const
Definition: porlay.hxx:137
std::vector< tools::Long > * GetpLLSpaceAdd() const
Definition: porlay.hxx:197
bool m_bBlinking
Definition: porlay.hxx:92
bool m_bDummy
Definition: porlay.hxx:87
std::deque< sal_uInt16 > * GetpKanaComp() const
Definition: porlay.hxx:202
Base class for anything that can be part of a line in the Writer layout.
Definition: porlin.hxx:52
virtual SwLinePortion * Append(SwLinePortion *pPortion)
Definition: porlin.cxx:190
virtual void dumpAsXml(xmlTextWriterPtr pWriter, const OUString &rText, TextFrameIndex &rOffset) const
Definition: porlin.cxx:324
virtual SwLinePortion * Insert(SwLinePortion *pPortion)
Definition: porlin.cxx:169
Collection of SwLineLayout instances, represents the paragraph text in Writer layout.
Definition: porlay.hxx:251
bool HasContentPortions() const
Definition: porlay.cxx:2679
bool m_bFlys
Definition: porlay.hxx:263
bool m_bPrepWidows
Definition: porlay.hxx:265
SwRepaint m_aRepaint
Definition: porlay.hxx:253
bool IsMargin() const
Definition: porlay.hxx:321
bool IsPrepMustFit() const
Definition: porlay.hxx:310
void SetErgoSumNum(const OUString &rErgo)
Definition: txtftn.cxx:1547
void SetFootnoteNum(const bool bNew)
Definition: porlay.hxx:318
bool HasNumberingPortion(FootnoteOrNot) const
Definition: porlay.cxx:2659
TextFrameIndex GetParLen() const
Definition: porlay.cxx:2647
const SwDropPortion * FindDropPortion() const
Definition: porlay.cxx:2693
bool IsPrepWidows() const
Definition: porlay.hxx:308
bool IsPrepAdjust() const
Definition: porlay.hxx:312
bool IsPrep() const
Definition: porlay.hxx:306
const SwScriptInfo & GetScriptInfo() const
Definition: porlay.hxx:292
bool m_bPrepMustFit
Definition: porlay.hxx:267
SwCharRange & GetReformat()
Definition: porlay.hxx:287
void ResetPreps()
Definition: porlay.hxx:335
SwCharRange m_aReformat
Definition: porlay.hxx:255
SwScriptInfo m_aScriptInfo
Definition: porlay.hxx:256
void FormatReset()
Definition: porlay.hxx:340
void SetDelta(tools::Long nDelta)
Definition: porlay.hxx:289
bool m_bMargin
Definition: porlay.hxx:272
void SetPrepAdjust()
Definition: porlay.hxx:311
void dumpAsXml(xmlTextWriterPtr pWriter, const OUString &rText, TextFrameIndex &nOffset) const override
Definition: porlay.cxx:2710
void SetPrep()
Definition: porlay.hxx:305
bool IsFollowField() const
Definition: porlay.hxx:314
void SetPrepMustFit(const bool bNew)
Definition: porlay.hxx:309
bool m_bFollowField
Definition: porlay.hxx:268
bool HasFly() const
Definition: porlay.hxx:302
bool m_bFootnoteNum
Definition: porlay.hxx:271
void SetPrepWidows()
Definition: porlay.hxx:307
const SwCharRange & GetReformat() const
Definition: porlay.hxx:288
bool m_bFixLineHeight
Definition: porlay.hxx:270
bool m_bPrep
Definition: porlay.hxx:264
void SetFollowField(const bool bNew)
Definition: porlay.hxx:313
bool IsFootnoteNum() const
Definition: porlay.hxx:319
tools::Long m_nDelta
Definition: porlay.hxx:259
void SetMargin(const bool bNew=true)
Definition: porlay.hxx:320
bool m_bPrepAdjust
Definition: porlay.hxx:266
bool IsFixLineHeight() const
Definition: porlay.hxx:316
void SetFly()
Definition: porlay.hxx:301
bool UpdateQuoVadis(std::u16string_view rQuo)
Is called in SwTextFrame::Prepare()
Definition: txtftn.cxx:1569
const SwRepaint & GetRepaint() const
Definition: porlay.hxx:286
virtual ~SwParaPortion() override
Definition: porlay.cxx:2643
void SetFixLineHeight()
Definition: porlay.hxx:315
SwRepaint & GetRepaint()
Definition: porlay.hxx:285
tools::Long GetDelta() const
Definition: porlay.hxx:290
SwScriptInfo & GetScriptInfo()
Definition: porlay.hxx:291
SwTwips Height() const
Definition: possiz.hxx:49
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
void SetRightOfst(const SwTwips nNew)
Definition: porlay.hxx:73
SwRepaint()
Definition: porlay.hxx:68
SwTwips m_nOffset
Definition: porlay.hxx:65
SwTwips GetOffset() const
Definition: porlay.hxx:70
SwTwips GetRightOfst() const
Definition: porlay.hxx:72
SwTwips m_nRightOffset
Definition: porlay.hxx:66
void SetOffset(const SwTwips nNew)
Definition: porlay.hxx:71
This portion represents a part of the paragraph string.
Definition: portxt.hxx:27
virtual bool Format(SwTextFormatInfo &rInf) override
Definition: portxt.cxx:442
void Init()
RedlineType
struct _xmlTextWriter * xmlTextWriterPtr
long Long
#define SW_DLLPUBLIC
Definition: swdllapi.h:28
tools::Long SwTwips
Definition: swtypes.hxx:51
constexpr sal_Int32 COMPLETE_STRING
Definition: swtypes.hxx:57