LibreOffice Module sw (master)  1
itrtxt.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 #ifndef INCLUDED_SW_SOURCE_CORE_TEXT_ITRTXT_HXX
20 #define INCLUDED_SW_SOURCE_CORE_TEXT_ITRTXT_HXX
21 #include <swtypes.hxx>
22 #include "itratr.hxx"
23 #include "inftxt.hxx"
24 
25 struct SwPosition;
26 struct SwCursorMoveState;
27 class SwMarginPortion;
28 class SwFlyPortion;
29 
30 class SwTextIter : public SwAttrIter
31 {
32 protected:
40  SwTwips m_nRegStart; // The register's start position (Y)
41  TextFrameIndex m_nStart; // Start in the text string, end = pCurr->GetLen()
42  sal_uInt16 m_nRegDiff; // Register's line distance
43  sal_uInt16 m_nLineNr; // Line number
44  bool m_bPrev : 1;
45  bool m_bRegisterOn : 1; // Keep in register
46  bool m_bOneBlock : 1; // Justified text: Dispose single words
47  bool m_bLastBlock : 1; // Justified text: Also the last line
48  bool m_bLastCenter : 1; // Justified text: Center last line
49 
51 
52  // Reset in the first line
53  void Init();
54  void CtorInitTextIter( SwTextFrame *pFrame, SwTextInfo *pInf );
55  explicit SwTextIter(SwTextNode const * pTextNode)
56  : SwAttrIter(pTextNode)
57  , m_pFrame(nullptr)
58  , m_pInf(nullptr)
59  , m_pCurr(nullptr)
60  , m_pPrev(nullptr)
61  , m_nFrameStart(0)
62  , m_nY(0)
63  , m_nRegStart(0)
64  , m_nStart(0)
65  , m_nRegDiff(0)
66  , m_nLineNr(0)
67  , m_bPrev(false)
68  , m_bRegisterOn(false)
69  , m_bOneBlock(false)
70  , m_bLastBlock(false)
71  , m_bLastCenter(false)
72  {
73  }
74 public:
75  SwTextIter(SwTextFrame *pTextFrame, SwTextInfo *pTextInf)
76  : SwAttrIter(pTextFrame->GetTextNodeFirst())
77  , m_bOneBlock(false)
78  , m_bLastBlock(false)
79  , m_bLastCenter(false)
80  {
81  CtorInitTextIter(pTextFrame, pTextInf);
82  }
83  const SwLineLayout *GetCurr() const { return m_pCurr; } // NEVER 0!
84  const SwLineLayout *GetNext() const { return m_pCurr->GetNext(); }
85  const SwLineLayout *GetPrev();
86  TextFrameIndex GetLength() const { return m_pCurr->GetLen(); }
87  sal_uInt16 GetLineNr() const { return m_nLineNr; }
88  TextFrameIndex GetStart() const { return m_nStart; }
89  TextFrameIndex GetEnd() const { return GetStart() + GetLength(); }
90  SwTwips Y() const { return m_nY; }
91 
92  SwTwips RegStart() const { return m_nRegStart; }
93  sal_uInt16 RegDiff() const { return m_nRegDiff; }
94  bool IsRegisterOn() const { return m_bRegisterOn; }
95 
96  SwTextInfo &GetInfo() { return *m_pInf; }
97  const SwTextInfo &GetInfo() const { return *m_pInf; }
98 
99  void Top() { Init(); }
100  void Bottom();
101  const SwLineLayout *Next();
102  const SwLineLayout *Prev();
103 
104  // Skips the FlyFrames dummy line
105  const SwLineLayout *NextLine();
106  const SwLineLayout *PrevLine();
107  const SwLineLayout *GetNextLine() const;
108  const SwLineLayout *GetPrevLine();
109 
111  void TwipsToLine(const SwTwips);
112 
113  // Truncates all after pCurr
114  void TruncLines( bool bNoteFollow = false );
115 
116  sal_uInt16 GetLineHeight() const { return m_pCurr->GetRealHeight(); }
117  void CalcAscentAndHeight( sal_uInt16 &rAscent, sal_uInt16 &rHeight ) const;
118 
119  // Lots of trouble for querying pCurr == pPara
120  bool IsFirstTextLine() const
121  { return m_nStart == GetInfo().GetTextStart() &&
122  !( m_pCurr->IsDummy() && GetNextLine() ); }
123 
124  // Replacement for the old IsFirstLine()
125  bool IsParaLine() const
126  { return m_pCurr == m_pInf->GetParaPortion(); }
127 
128  const SwLineInfo &GetLineInfo() const { return m_aLineInf; }
129  SwTwips GetFirstPos() const { return m_nFrameStart; }
130  inline bool SeekAndChg( SwTextSizeInfo &rInf );
131  inline bool SeekAndChgBefore( SwTextSizeInfo &rInf );
132  inline bool SeekStartAndChg( SwTextSizeInfo &rInf, const bool bPara=false );
133 
135  const SwTextFrame *GetTextFrame() const { return m_pFrame; }
136 
137  // Counts consecutive hyphens in order to be within the boundary given by MaxHyphens
138  void CntHyphens( sal_uInt8 &nEndCnt, sal_uInt8 &nMidCnt) const;
139 };
140 
141 class SwTextMargin : public SwTextIter
142 {
143 private:
147  sal_uInt16 nDropLeft;
148  sal_uInt16 nDropHeight;
149  sal_uInt16 nDropDescent;
150  sal_uInt16 nDropLines;
152  // #i91133#
154 
155 protected:
156  // For FormatQuoVadis
157  void Right( const SwTwips nNew ) { nRight = nNew; }
158 
159  void CtorInitTextMargin( SwTextFrame *pFrame, SwTextSizeInfo *pInf );
160  explicit SwTextMargin(SwTextNode const * pTextNode)
161  : SwTextIter(pTextNode)
162  , nLeft(0)
163  , nRight(0)
164  , nFirst(0)
165  , nDropLeft(0)
166  , nDropHeight(0)
167  , nDropDescent(0)
168  , nDropLines(0)
169  , nAdjust(SvxAdjust::Left)
170  , mnTabLeft(0)
171  {
172  }
173 public:
174  SwTextMargin(SwTextFrame *pTextFrame, SwTextSizeInfo *pTextSizeInf)
175  : SwTextIter(pTextFrame->GetTextNodeFirst())
176  {
177  CtorInitTextMargin( pTextFrame, pTextSizeInf );
178  }
179  inline SwTwips GetLeftMargin() const;
180  inline SwTwips Left() const;
181  SwTwips Right() const { return nRight; }
182  SwTwips FirstLeft() const { return nFirst; }
183  SwTwips CurrWidth() const { return m_pCurr->PrtWidth(); }
184  SwTwips GetLineStart() const;
185  SwTwips GetLineEnd() const { return GetLineStart() + CurrWidth(); }
186  Point GetTopLeft() const { return Point( GetLineStart(), Y() ); }
187  bool IsOneBlock() const { return m_bOneBlock; }
188  bool IsLastBlock() const { return m_bLastBlock; }
189  bool IsLastCenter() const { return m_bLastCenter; }
190  SvxAdjust GetAdjust() const { return nAdjust; }
191  sal_uInt16 GetLineWidth() const
192  { return sal_uInt16( Right() - GetLeftMargin() + 1 ); }
193  SwTwips GetLeftMin() const { return std::min(nFirst, nLeft); }
194  bool HasNegFirst() const { return nFirst < nLeft; }
195 
196  // #i91133#
198  {
199  return mnTabLeft;
200  }
201  // DropCaps
202  sal_uInt16 GetDropLines() const { return nDropLines; }
203  void SetDropLines( const sal_uInt16 nNew ) { nDropLines = nNew; }
204  sal_uInt16 GetDropLeft() const { return nDropLeft; }
205  sal_uInt16 GetDropHeight() const { return nDropHeight; }
206  void SetDropHeight( const sal_uInt16 nNew ) { nDropHeight = nNew; }
207  sal_uInt16 GetDropDescent() const { return nDropDescent; }
208  void SetDropDescent( const sal_uInt16 nNew ) { nDropDescent = nNew; }
209  void DropInit();
210 
211  // Returns the TextPos for start and end of the current line without whitespace
212  // Implemented in frminf.cxx
214  TextFrameIndex GetTextEnd() const;
215 
217  { return static_cast<SwTextSizeInfo&>(SwTextIter::GetInfo()); }
218  const SwTextSizeInfo &GetInfo() const
219  { return static_cast<const SwTextSizeInfo&>(SwTextIter::GetInfo()); }
220 
221 };
222 
224 {
225  // Adjusts the portion, if we have adjustment and FlyFrames
226  void CalcFlyAdjust( SwLineLayout *pCurr );
227 
228  // Calls SplitGlues and CalcBlockAdjust
229  void FormatBlock( );
230 
231  // Creates the glue chain for short lines
232  SwMarginPortion* CalcRightMargin( SwLineLayout *pCurr, SwTwips nReal = 0 );
233 
234  // Calculate the adjustment (FlyPortions)
235  SwFlyPortion *CalcFlyPortion( const long nRealWidth,
236  const SwRect &rCurrRect );
237 
238 protected:
239  explicit SwTextAdjuster(SwTextNode const * pTextNode) : SwTextMargin(pTextNode) { }
240  // Creates the Glues for adjusted paragraphs
241  void CalcNewBlock( SwLineLayout *pCurr, const SwLinePortion *pStopAt,
242  SwTwips nReal = 0, bool bSkipKashida = false );
243  SwTwips CalcKanaAdj( SwLineLayout *pCurr );
244 
245 public:
246  // Is overloaded by SwTextFormatter due to UpdatePos
247  void CalcAdjLine( SwLineLayout *pCurr );
248 
249  // For adjusting afterwards
250  void GetAdjusted() const
251  {
252  if( m_pCurr->IsFormatAdj() )
253  const_cast<SwTextAdjuster*>(this)->CalcAdjLine( m_pCurr );
254  }
255 
256  // Special treatment for DropCaps
257  void CalcDropAdjust();
258  void CalcDropRepaint();
259 };
260 
262 {
263  // A small helper-class to save SwTextCursor member, manipulate them
264  // and to restore them
265  friend class SwTextCursorSave;
266 
267  // Ambiguities
268  static bool bRightMargin;
270 protected:
271  void CtorInitTextCursor( SwTextFrame *pFrame, SwTextSizeInfo *pInf );
272  explicit SwTextCursor(SwTextNode const * pTextNode) : SwTextAdjuster(pTextNode) { }
273 public:
274  SwTextCursor( SwTextFrame *pTextFrame, SwTextSizeInfo *pTextSizeInf )
275  : SwTextAdjuster(pTextFrame->GetTextNodeFirst())
276  {
277  CtorInitTextCursor(pTextFrame, pTextSizeInf);
278  }
280  const long nMax = 0 );
282  const long nMax = 0 );
283  TextFrameIndex GetCursorOfst( SwPosition *pPos, const Point &rPoint,
284  bool bChgNode, SwCursorMoveState* = nullptr ) const;
285  // Respects ambiguities: For the implementation see below
286  const SwLineLayout *CharCursorToLine(TextFrameIndex const nPos);
287 
288  // calculates baseline for portion rPor
289  // bAutoToCentered indicates, if AUTOMATIC mode means CENTERED or BASELINE
290  sal_uInt16 AdjustBaseLine( const SwLineLayout& rLine, const SwLinePortion* pPor,
291  sal_uInt16 nPorHeight = 0, sal_uInt16 nAscent = 0,
292  const bool bAutoToCentered = false ) const;
293 
294  static void SetRightMargin( const bool bNew ){ bRightMargin = bNew; }
295  static bool IsRightMargin() { return bRightMargin; }
296 };
297 
298 // Change current output device to printer, this has to be done before
299 // formatting.
301 {
304  bool const bOnWin;
305 public:
306  explicit SwHookOut( SwTextSizeInfo& rInfo );
307  ~SwHookOut();
308 };
309 
311 {
312  return SeekAndChgAttrIter( rInf.GetIdx(), rInf.GetOut() );
313 }
314 
316 {
317  if ( rInf.GetIdx() )
318  return SeekAndChgAttrIter(rInf.GetIdx() - TextFrameIndex(1), rInf.GetOut());
319  else
320  return SeekAndChgAttrIter( rInf.GetIdx(), rInf.GetOut() );
321 }
322 
323 inline bool SwTextIter::SeekStartAndChg( SwTextSizeInfo &rInf, const bool bPara )
324 {
325  return SeekStartAndChgAttrIter( rInf.GetOut(), bPara );
326 }
327 
329 {
330  return IsFirstTextLine() ? nFirst : Left();
331 }
332 
334 {
335  return (nDropLines >= m_nLineNr && 1 != m_nLineNr) ? nFirst + nDropLeft : nLeft;
336 }
337 
338 #endif
339 
340 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
~SwHookOut()
Definition: itrtxt.cxx:418
bool IsParaLine() const
Definition: itrtxt.hxx:125
void CtorInitTextIter(SwTextFrame *pFrame, SwTextInfo *pInf)
Definition: itrtxt.cxx:37
bool SeekAndChgAttrIter(TextFrameIndex nPos, OutputDevice *pOut)
Executes ChgPhysFnt if Seek() returns true and change font to merge character border with neighbours...
Definition: itratr.cxx:155
Represents the visualization of a paragraph.
Definition: txtfrm.hxx:149
bool IsRegisterOn() const
Definition: itrtxt.hxx:94
void Right(const SwTwips nNew)
Definition: itrtxt.hxx:157
void CalcDropRepaint()
Definition: itradj.cxx:813
void GetAdjusted() const
Definition: itrtxt.hxx:250
sal_uInt16 GetLineNr() const
Definition: itrtxt.hxx:87
Marks a position in the document model.
Definition: pam.hxx:35
sal_uInt16 GetDropDescent() const
Definition: itrtxt.hxx:207
static bool bRightMargin
Definition: itrtxt.hxx:268
SwHookOut(SwTextSizeInfo &rInfo)
Definition: itrtxt.cxx:406
sal_uInt16 nDropHeight
Definition: itrtxt.hxx:148
void CalcNewBlock(SwLineLayout *pCurr, const SwLinePortion *pStopAt, SwTwips nReal=0, bool bSkipKashida=false)
Definition: itradj.cxx:250
SwLineLayout * GetNext()
Definition: porlay.hxx:143
bool SeekStartAndChg(SwTextSizeInfo &rInf, const bool bPara=false)
Definition: itrtxt.hxx:323
sal_uInt16 m_nLineNr
Definition: itrtxt.hxx:43
static bool IsRightMargin()
Definition: itrtxt.hxx:295
const SwLineLayout * NextLine()
Definition: itrtxt.cxx:125
TextFrameIndex GetStart() const
Definition: itrtxt.hxx:88
SwTwips GetTabLeft() const
Definition: itrtxt.hxx:197
bool m_bRegisterOn
Definition: itrtxt.hxx:45
bool IsFirstTextLine() const
Definition: itrtxt.hxx:120
sal_uInt16 GetDropHeight() const
Definition: itrtxt.hxx:205
bool SeekAndChg(SwTextSizeInfo &rInf)
Definition: itrtxt.hxx:310
long SwTwips
Definition: swtypes.hxx:49
void CharToLine(TextFrameIndex)
Definition: itrtxt.cxx:194
void CalcDropAdjust()
Definition: itradj.cxx:730
static void SetRightMargin(const bool bNew)
Definition: itrtxt.hxx:294
const SwLineLayout * Next()
Definition: itrtxt.cxx:109
SwLineInfo m_aLineInf
Definition: itrtxt.hxx:33
SwTwips FirstLeft() const
Definition: itrtxt.hxx:182
SwTwips CalcKanaAdj(SwLineLayout *pCurr)
Definition: itradj.cxx:397
Of course Writer needs its own rectangles.
Definition: swrect.hxx:34
bool m_bLastCenter
Definition: itrtxt.hxx:48
const SwTextFrame * GetTextFrame() const
Definition: itrtxt.hxx:135
SwTwips Y() const
Definition: itrtxt.hxx:90
SwTwips RegStart() const
Definition: itrtxt.hxx:92
TextFrameIndex GetTextEnd() const
Definition: frminf.cxx:38
sal_uInt16 m_nRegDiff
Definition: itrtxt.hxx:42
void GetCharRect_(SwRect *, TextFrameIndex, SwCursorMoveState *)
Definition: itrcrsr.cxx:469
bool IsLastBlock() const
Definition: itrtxt.hxx:188
sal_uInt16 RegDiff() const
Definition: itrtxt.hxx:93
void CalcAdjLine(SwLineLayout *pCurr)
Definition: itradj.cxx:655
void SetDropDescent(const sal_uInt16 nNew)
Definition: itrtxt.hxx:208
SwTwips Right() const
Definition: itrtxt.hxx:181
const SwLineLayout * GetNextLine() const
Definition: itrtxt.cxx:135
const SwTextSizeInfo & GetInfo() const
Definition: itrtxt.hxx:218
SwTwips nRight
Definition: itrtxt.hxx:145
SwLineLayout * GetPrev_()
Definition: itrtxt.cxx:72
SwTextCursor(SwTextFrame *pTextFrame, SwTextSizeInfo *pTextSizeInf)
Definition: itrtxt.hxx:274
bool SeekStartAndChgAttrIter(OutputDevice *pOut, const bool bParaFont)
Definition: itratr.cxx:197
void CalcFlyAdjust(SwLineLayout *pCurr)
Definition: itradj.cxx:580
SwTwips CurrWidth() const
Definition: itrtxt.hxx:183
void CalcAscentAndHeight(sal_uInt16 &rAscent, sal_uInt16 &rHeight) const
Definition: itrtxt.cxx:66
bool m_bPrev
Definition: itrtxt.hxx:44
void SetDropLines(const sal_uInt16 nNew)
Definition: itrtxt.hxx:203
SwTextAdjuster(SwTextNode const *pTextNode)
Definition: itrtxt.hxx:239
SwTextInfo * m_pInf
Definition: itrtxt.hxx:35
void Bottom()
Definition: itrtxt.cxx:186
SwTwips GetFirstPos() const
Definition: itrtxt.hxx:129
sal_uInt16 AdjustBaseLine(const SwLineLayout &rLine, const SwLinePortion *pPor, sal_uInt16 nPorHeight=0, sal_uInt16 nAscent=0, const bool bAutoToCentered=false) const
Definition: itrtxt.cxx:215
bool IsDummy() const
Definition: porlay.hxx:135
TextFrameIndex GetCursorOfst(SwPosition *pPos, const Point &rPoint, bool bChgNode, SwCursorMoveState *=nullptr) const
Definition: itrcrsr.cxx:1279
SwTwips Left() const
Definition: itrtxt.hxx:333
SwTwips GetLineStart() const
Definition: itrcrsr.cxx:370
const SwLineLayout * GetPrevLine()
Definition: itrtxt.cxx:145
SvxAdjust
void FormatBlock()
Definition: itradj.cxx:39
Collection of SwLinePortion instances, representing one line of text.
Definition: porlay.hxx:78
const SwLineInfo & GetLineInfo() const
Definition: itrtxt.hxx:128
void Top()
Definition: itrtxt.hxx:99
vcl::RenderContext * GetOut()
Definition: inftxt.hxx:231
SwParaPortion * GetParaPortion()
Definition: inftxt.hxx:128
sal_uInt16 nDropDescent
Definition: itrtxt.hxx:149
SwTextMargin(SwTextNode const *pTextNode)
Definition: itrtxt.hxx:160
bool const bOnWin
Definition: itrtxt.hxx:304
SwTextMargin(SwTextFrame *pTextFrame, SwTextSizeInfo *pTextSizeInf)
Definition: itrtxt.hxx:174
void Init()
Definition: itrtxt.cxx:56
void TwipsToLine(const SwTwips)
Definition: itrtxt.cxx:301
void CtorInitTextMargin(SwTextFrame *pFrame, SwTextSizeInfo *pInf)
Definition: itrcrsr.cxx:162
SwTwips GetLeftMargin() const
Definition: itrtxt.hxx:328
SvxAdjust nAdjust
Definition: itrtxt.hxx:151
const SwTextInfo & GetInfo() const
Definition: itrtxt.hxx:97
const SwLineLayout * GetPrev()
Definition: itrtxt.cxx:84
SwFlyPortion * CalcFlyPortion(const long nRealWidth, const SwRect &rCurrRect)
Definition: itradj.cxx:685
SwTwips m_nFrameStart
Definition: itrtxt.hxx:38
sal_uInt16 GetLineHeight() const
Definition: itrtxt.hxx:116
TextFrameIndex GetIdx() const
Definition: inftxt.hxx:278
bool IsOneBlock() const
Definition: itrtxt.hxx:187
SwTextIter(SwTextFrame *pTextFrame, SwTextInfo *pTextInf)
Definition: itrtxt.hxx:75
void TruncLines(bool bNoteFollow=false)
Definition: itrtxt.cxx:324
bool IsFormatAdj() const
Definition: porlay.hxx:111
TextFrameIndex GetTextStart() const
Definition: frminf.cxx:24
SwTwips GetLineEnd() const
Definition: itrtxt.hxx:185
TextFrameIndex GetLen() const
Definition: porlin.hxx:73
sal_uInt16 nDropLines
Definition: itrtxt.hxx:150
bool m_bLastBlock
Definition: itrtxt.hxx:47
Point GetTopLeft() const
Definition: itrtxt.hxx:186
bool m_bOneBlock
Definition: itrtxt.hxx:46
bool HasNegFirst() const
Definition: itrtxt.hxx:194
SwTextFrame * m_pFrame
Definition: itrtxt.hxx:34
Base class for anything that can be part of a line in the Writer layout.
Definition: porlin.hxx:49
const SwLineLayout * Prev()
Definition: itrtxt.cxx:91
void CtorInitTextCursor(SwTextFrame *pFrame, SwTextSizeInfo *pInf)
Definition: itrcrsr.cxx:386
bool SeekAndChgBefore(SwTextSizeInfo &rInf)
Definition: itrtxt.hxx:315
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:79
TextFrameIndex m_nStart
Definition: itrtxt.hxx:41
SwTwips nLeft
Definition: itrtxt.hxx:144
sal_uInt16 GetDropLeft() const
Definition: itrtxt.hxx:204
SwTextIter(SwTextNode const *pTextNode)
Definition: itrtxt.hxx:55
SwTwips mnTabLeft
Definition: itrtxt.hxx:153
TextFrameIndex GetLength() const
Definition: itrtxt.hxx:86
unsigned char sal_uInt8
SwTextCursor(SwTextNode const *pTextNode)
Definition: itrtxt.hxx:272
void GetEndCharRect(SwRect *, TextFrameIndex, SwCursorMoveState *=nullptr, const long nMax=0)
Definition: itrcrsr.cxx:394
void SetDropHeight(const sal_uInt16 nNew)
Definition: itrtxt.hxx:206
SwTwips nFirst
Definition: itrtxt.hxx:146
SwTextSizeInfo * pInf
Definition: itrtxt.hxx:302
SvxAdjust GetAdjust() const
Definition: itrtxt.hxx:190
bool IsLastCenter() const
Definition: itrtxt.hxx:189
SwTextSizeInfo & GetInfo()
Definition: itrtxt.hxx:216
SwLineLayout * m_pPrev
Definition: itrtxt.hxx:37
const SwLineLayout * PrevLine()
Definition: itrtxt.cxx:171
void GetCharRect(SwRect *, TextFrameIndex, SwCursorMoveState *=nullptr, const long nMax=0)
Definition: itrcrsr.cxx:1172
SwTwips m_nY
Definition: itrtxt.hxx:39
SwMarginPortion * CalcRightMargin(SwLineLayout *pCurr, SwTwips nReal=0)
Definition: itradj.cxx:529
void CntHyphens(sal_uInt8 &nEndCnt, sal_uInt8 &nMidCnt) const
Definition: itrtxt.cxx:381
sal_uInt16 GetRealHeight() const
Definition: porlay.hxx:153
const SwLineLayout * GetNext() const
Definition: itrtxt.hxx:84
sal_uInt16 GetLineWidth() const
Definition: itrtxt.hxx:191
const SwLineLayout * GetCurr() const
Definition: itrtxt.hxx:83
SwTextInfo & GetInfo()
Definition: itrtxt.hxx:96
const SwLineLayout * CharCursorToLine(TextFrameIndex const nPos)
Definition: itrtxt.cxx:203
SwTextFrame * GetTextFrame()
Definition: itrtxt.hxx:134
VclPtr< OutputDevice > pOut
Definition: itrtxt.hxx:303
SwLineLayout * m_pCurr
Definition: itrtxt.hxx:36
void PrtWidth(sal_uInt16 nNewWidth)
Definition: porlin.hxx:79
TextFrameIndex GetEnd() const
Definition: itrtxt.hxx:89
SwTwips m_nRegStart
Definition: itrtxt.hxx:40
sal_uInt16 GetDropLines() const
Definition: itrtxt.hxx:202
void DropInit()
Definition: itrcrsr.cxx:352
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...
sal_uInt16 nDropLeft
Definition: itrtxt.hxx:147
TextFrameIndex GetTextStart() const
Definition: inftxt.hxx:130
SwTwips GetLeftMin() const
Definition: itrtxt.hxx:193