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#pragma once
20
21#include <swtypes.hxx>
22#include "itratr.hxx"
23#include "inftxt.hxx"
24
25struct SwPosition;
27class SwMarginPortion;
28class SwFlyPortion;
29
30class SwTextIter : public SwAttrIter
31{
32protected:
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_Int32 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 }
74public:
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_Int32 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
117 void CalcAscentAndHeight( SwTwips &rAscent, SwTwips &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; }
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
142{
143private:
147 sal_uInt16 mnDropLeft;
148 sal_uInt16 mnDropHeight;
149 sal_uInt16 mnDropDescent;
150 sal_uInt16 mnDropLines;
152 // #i91133#
154
155protected:
156 // For FormatQuoVadis
157 void Right( const SwTwips nNew ) { mnRight = nNew; }
158
159 void CtorInitTextMargin( SwTextFrame *pFrame, SwTextSizeInfo *pInf );
160 explicit SwTextMargin(SwTextNode const * pTextNode)
161 : SwTextIter(pTextNode)
162 , mnLeft(0)
163 , mnRight(0)
164 , mnFirst(0)
165 , mnDropLeft(0)
166 , mnDropHeight(0)
167 , mnDropDescent(0)
168 , mnDropLines(0)
170 , mnTabLeft(0)
171 {
172 }
173public:
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 mnRight; }
182 SwTwips FirstLeft() const { return mnFirst; }
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 mnAdjust; }
191 sal_uInt16 GetLineWidth() const
192 { return sal_uInt16( Right() - GetLeftMargin() + 1 ); }
194 bool HasNegFirst() const { return mnFirst < mnLeft; }
195
196 // #i91133#
198 {
199 return mnTabLeft;
200 }
201 // DropCaps
202 sal_uInt16 GetDropLines() const { return mnDropLines; }
203 void SetDropLines( const sal_uInt16 nNew ) { mnDropLines = nNew; }
204 sal_uInt16 GetDropLeft() const { return mnDropLeft; }
205 sal_uInt16 GetDropHeight() const { return mnDropHeight; }
206 void SetDropHeight( const sal_uInt16 nNew ) { mnDropHeight = nNew; }
207 sal_uInt16 GetDropDescent() const { return mnDropDescent; }
208 void SetDropDescent( const sal_uInt16 nNew ) { mnDropDescent = nNew; }
209 void DropInit();
210
211 // Returns the TextPos for start and end of the current line without whitespace
212 // Implemented in frminf.cxx
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
233
234 // Calculate the adjustment (FlyPortions)
235 SwFlyPortion *CalcFlyPortion( const tools::Long nRealWidth,
236 const SwRect &rCurrRect );
237
238protected:
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 );
244
245public:
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 s_bRightMargin;
270protected:
271 void CtorInitTextCursor( SwTextFrame *pFrame, SwTextSizeInfo *pInf );
272 explicit SwTextCursor(SwTextNode const * pTextNode) : SwTextAdjuster(pTextNode) { }
273 void AddExtraBlankWidth();
274public:
275 SwTextCursor( SwTextFrame *pTextFrame, SwTextSizeInfo *pTextSizeInf )
276 : SwTextAdjuster(pTextFrame->GetTextNodeFirst())
277 {
278 CtorInitTextCursor(pTextFrame, pTextSizeInf);
279 }
281 const tools::Long nMax = 0 );
283 const tools::Long nMax = 0 );
285 bool bChgNode, SwCursorMoveState* = nullptr ) const;
286 // Respects ambiguities: For the implementation see below
288
289 // calculates baseline for portion rPor
290 // bAutoToCentered indicates, if AUTOMATIC mode means CENTERED or BASELINE
291 SwTwips AdjustBaseLine( const SwLineLayout& rLine, const SwLinePortion* pPor,
292 SwTwips nPorHeight = 0, SwTwips nAscent = 0,
293 const bool bAutoToCentered = false ) const;
294
295 static void SetRightMargin( const bool bNew ){ s_bRightMargin = bNew; }
296 static bool IsRightMargin() { return s_bRightMargin; }
297};
298
299// Change current output device to printer, this has to be done before
300// formatting.
302{
305 bool bOnWin;
306public:
307 explicit SwHookOut( SwTextSizeInfo& rInfo );
308 ~SwHookOut();
309};
310
312{
313 return SeekAndChgAttrIter( rInf.GetIdx(), rInf.GetOut() );
314}
315
317{
318 if ( rInf.GetIdx() )
319 return SeekAndChgAttrIter(rInf.GetIdx() - TextFrameIndex(1), rInf.GetOut());
320 else
321 return SeekAndChgAttrIter( rInf.GetIdx(), rInf.GetOut() );
322}
323
324inline bool SwTextIter::SeekStartAndChg( SwTextSizeInfo &rInf, const bool bPara )
325{
326 return SeekStartAndChgAttrIter( rInf.GetOut(), bPara );
327}
328
330{
331 return IsFirstTextLine() ? mnFirst : Left();
332}
333
335{
336 return (mnDropLines >= m_nLineNr && 1 != m_nLineNr) ? mnFirst + mnDropLeft : mnLeft;
337}
338
339
340
341/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
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
bool SeekStartAndChgAttrIter(OutputDevice *pOut, const bool bParaFont)
Definition: itratr.cxx:197
SwTextSizeInfo * pInf
Definition: itrtxt.hxx:303
VclPtr< OutputDevice > pOut
Definition: itrtxt.hxx:304
~SwHookOut()
Definition: itrtxt.cxx:459
bool bOnWin
Definition: itrtxt.hxx:305
SwHookOut(SwTextSizeInfo &rInfo)
Definition: itrtxt.cxx:447
Collection of SwLinePortion instances, representing one line of text.
Definition: porlay.hxx:79
SwLineLayout * GetNext()
Definition: porlay.hxx:159
bool IsFormatAdj() const
Definition: porlay.hxx:121
bool IsDummy() const
Definition: porlay.hxx:151
SwTwips GetRealHeight() const
Definition: porlay.hxx:169
Base class for anything that can be part of a line in the Writer layout.
Definition: porlin.hxx:52
void PrtWidth(SwTwips nNewWidth)
Definition: porlin.hxx:83
TextFrameIndex GetLen() const
Definition: porlin.hxx:77
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
void GetAdjusted() const
Definition: itrtxt.hxx:250
void CalcDropRepaint()
Definition: itradj.cxx:828
SwMarginPortion * CalcRightMargin(SwLineLayout *pCurr, SwTwips nReal=0)
Definition: itradj.cxx:544
void CalcAdjLine(SwLineLayout *pCurr)
Definition: itradj.cxx:670
void CalcDropAdjust()
Definition: itradj.cxx:745
SwFlyPortion * CalcFlyPortion(const tools::Long nRealWidth, const SwRect &rCurrRect)
Definition: itradj.cxx:700
void CalcFlyAdjust(SwLineLayout *pCurr)
Definition: itradj.cxx:595
void CalcNewBlock(SwLineLayout *pCurr, const SwLinePortion *pStopAt, SwTwips nReal=0, bool bSkipKashida=false)
Definition: itradj.cxx:250
SwTwips CalcKanaAdj(SwLineLayout *pCurr)
Definition: itradj.cxx:412
void FormatBlock()
Definition: itradj.cxx:39
SwTextAdjuster(SwTextNode const *pTextNode)
Definition: itrtxt.hxx:239
SwTextCursor(SwTextNode const *pTextNode)
Definition: itrtxt.hxx:272
const SwLineLayout * CharCursorToLine(TextFrameIndex const nPos)
Definition: itrtxt.cxx:203
TextFrameIndex GetModelPositionForViewPoint(SwPosition *pPos, const Point &rPoint, bool bChgNode, SwCursorMoveState *=nullptr) const
Definition: itrcrsr.cxx:1322
SwTextCursor(SwTextFrame *pTextFrame, SwTextSizeInfo *pTextSizeInf)
Definition: itrtxt.hxx:275
static bool s_bRightMargin
Definition: itrtxt.hxx:268
void GetCharRect_(SwRect *, TextFrameIndex, SwCursorMoveState *)
Definition: itrcrsr.cxx:498
SwTwips AdjustBaseLine(const SwLineLayout &rLine, const SwLinePortion *pPor, SwTwips nPorHeight=0, SwTwips nAscent=0, const bool bAutoToCentered=false) const
Definition: itrtxt.cxx:215
void AddExtraBlankWidth()
Definition: itrcrsr.cxx:404
void GetCharRect(SwRect *, TextFrameIndex, SwCursorMoveState *=nullptr, const tools::Long nMax=0)
Definition: itrcrsr.cxx:1224
void GetEndCharRect(SwRect *, TextFrameIndex, SwCursorMoveState *=nullptr, const tools::Long nMax=0)
Definition: itrcrsr.cxx:423
void CtorInitTextCursor(SwTextFrame *pFrame, SwTextSizeInfo *pInf)
Definition: itrcrsr.cxx:395
static bool IsRightMargin()
Definition: itrtxt.hxx:296
static void SetRightMargin(const bool bNew)
Definition: itrtxt.hxx:295
Represents the visualization of a paragraph.
Definition: txtfrm.hxx:168
SwParaPortion * GetParaPortion()
Definition: inftxt.hxx:121
TextFrameIndex GetTextStart() const
Definition: inftxt.hxx:123
const SwLineLayout * NextLine()
Definition: itrtxt.cxx:125
SwTwips m_nRegStart
Definition: itrtxt.hxx:40
void Init()
Definition: itrtxt.cxx:54
TextFrameIndex GetLength() const
Definition: itrtxt.hxx:86
TextFrameIndex GetEnd() const
Definition: itrtxt.hxx:89
SwTextIter(SwTextFrame *pTextFrame, SwTextInfo *pTextInf)
Definition: itrtxt.hxx:75
SwTwips Y() const
Definition: itrtxt.hxx:90
bool SeekAndChgBefore(SwTextSizeInfo &rInf)
Definition: itrtxt.hxx:316
const SwLineLayout * GetNext() const
Definition: itrtxt.hxx:84
TextFrameIndex GetStart() const
Definition: itrtxt.hxx:88
SwTwips m_nY
Definition: itrtxt.hxx:39
void TruncLines(bool bNoteFollow=false)
Definition: itrtxt.cxx:365
bool SeekStartAndChg(SwTextSizeInfo &rInf, const bool bPara=false)
Definition: itrtxt.hxx:324
void Bottom()
Definition: itrtxt.cxx:186
const SwLineLayout * PrevLine()
Definition: itrtxt.cxx:171
void TwipsToLine(const SwTwips)
Definition: itrtxt.cxx:342
bool m_bLastCenter
Definition: itrtxt.hxx:48
SwTwips m_nFrameStart
Definition: itrtxt.hxx:38
const SwLineLayout * GetPrevLine()
Definition: itrtxt.cxx:145
bool IsFirstTextLine() const
Definition: itrtxt.hxx:120
SwLineLayout * m_pCurr
Definition: itrtxt.hxx:36
void Top()
Definition: itrtxt.hxx:99
SwTwips GetLineHeight() const
Definition: itrtxt.hxx:116
const SwLineLayout * Next()
Definition: itrtxt.cxx:108
sal_Int32 m_nLineNr
Definition: itrtxt.hxx:43
SwTwips GetFirstPos() const
Definition: itrtxt.hxx:129
SwLineLayout * m_pPrev
Definition: itrtxt.hxx:37
SwTextFrame * m_pFrame
Definition: itrtxt.hxx:34
SwTextIter(SwTextNode const *pTextNode)
Definition: itrtxt.hxx:55
void CharToLine(TextFrameIndex)
Definition: itrtxt.cxx:194
sal_uInt16 RegDiff() const
Definition: itrtxt.hxx:93
SwTextInfo & GetInfo()
Definition: itrtxt.hxx:96
const SwTextFrame * GetTextFrame() const
Definition: itrtxt.hxx:135
const SwLineLayout * GetCurr() const
Definition: itrtxt.hxx:83
const SwLineLayout * Prev()
Definition: itrtxt.cxx:90
sal_Int32 GetLineNr() const
Definition: itrtxt.hxx:87
SwTextFrame * GetTextFrame()
Definition: itrtxt.hxx:134
TextFrameIndex m_nStart
Definition: itrtxt.hxx:41
SwTwips RegStart() const
Definition: itrtxt.hxx:92
void CalcAscentAndHeight(SwTwips &rAscent, SwTwips &rHeight) const
Definition: itrtxt.cxx:64
const SwLineInfo & GetLineInfo() const
Definition: itrtxt.hxx:128
const SwLineLayout * GetNextLine() const
Definition: itrtxt.cxx:135
bool m_bLastBlock
Definition: itrtxt.hxx:47
bool m_bRegisterOn
Definition: itrtxt.hxx:45
void CntHyphens(sal_uInt8 &nEndCnt, sal_uInt8 &nMidCnt) const
Definition: itrtxt.cxx:422
SwTextInfo * m_pInf
Definition: itrtxt.hxx:35
sal_uInt16 m_nRegDiff
Definition: itrtxt.hxx:42
bool m_bPrev
Definition: itrtxt.hxx:44
bool IsParaLine() const
Definition: itrtxt.hxx:125
SwLineInfo m_aLineInf
Definition: itrtxt.hxx:33
bool m_bOneBlock
Definition: itrtxt.hxx:46
const SwLineLayout * GetPrev()
Definition: itrtxt.cxx:83
SwLineLayout * GetPrev_()
Definition: itrtxt.cxx:70
bool SeekAndChg(SwTextSizeInfo &rInf)
Definition: itrtxt.hxx:311
bool IsRegisterOn() const
Definition: itrtxt.hxx:94
const SwTextInfo & GetInfo() const
Definition: itrtxt.hxx:97
void CtorInitTextIter(SwTextFrame *pFrame, SwTextInfo *pInf)
Definition: itrtxt.cxx:35
SwTextMargin(SwTextNode const *pTextNode)
Definition: itrtxt.hxx:160
sal_uInt16 GetDropLeft() const
Definition: itrtxt.hxx:204
sal_uInt16 GetDropLines() const
Definition: itrtxt.hxx:202
SwTwips GetLineEnd() const
Definition: itrtxt.hxx:185
void CtorInitTextMargin(SwTextFrame *pFrame, SwTextSizeInfo *pInf)
Definition: itrcrsr.cxx:156
SwTwips mnLeft
Definition: itrtxt.hxx:144
SwTextSizeInfo & GetInfo()
Definition: itrtxt.hxx:216
TextFrameIndex GetTextStart() const
Definition: frminf.cxx:25
sal_uInt16 GetDropDescent() const
Definition: itrtxt.hxx:207
bool IsOneBlock() const
Definition: itrtxt.hxx:187
SwTwips mnTabLeft
Definition: itrtxt.hxx:153
sal_uInt16 mnDropDescent
Definition: itrtxt.hxx:149
sal_uInt16 mnDropHeight
Definition: itrtxt.hxx:148
SwTwips mnFirst
Definition: itrtxt.hxx:146
void DropInit()
Definition: itrcrsr.cxx:361
Point GetTopLeft() const
Definition: itrtxt.hxx:186
SwTwips Right() const
Definition: itrtxt.hxx:181
SvxAdjust mnAdjust
Definition: itrtxt.hxx:151
sal_uInt16 mnDropLeft
Definition: itrtxt.hxx:147
sal_uInt16 mnDropLines
Definition: itrtxt.hxx:150
bool IsLastCenter() const
Definition: itrtxt.hxx:189
bool IsLastBlock() const
Definition: itrtxt.hxx:188
SwTwips GetLeftMargin() const
Definition: itrtxt.hxx:329
void SetDropLines(const sal_uInt16 nNew)
Definition: itrtxt.hxx:203
TextFrameIndex GetTextEnd() const
Definition: frminf.cxx:39
void SetDropHeight(const sal_uInt16 nNew)
Definition: itrtxt.hxx:206
sal_uInt16 GetDropHeight() const
Definition: itrtxt.hxx:205
void SetDropDescent(const sal_uInt16 nNew)
Definition: itrtxt.hxx:208
SwTwips Left() const
Definition: itrtxt.hxx:334
SwTwips FirstLeft() const
Definition: itrtxt.hxx:182
SwTwips CurrWidth() const
Definition: itrtxt.hxx:183
bool HasNegFirst() const
Definition: itrtxt.hxx:194
SvxAdjust GetAdjust() const
Definition: itrtxt.hxx:190
SwTwips GetLineStart() const
Definition: itrcrsr.cxx:379
void Right(const SwTwips nNew)
Definition: itrtxt.hxx:157
SwTwips GetTabLeft() const
Definition: itrtxt.hxx:197
SwTextMargin(SwTextFrame *pTextFrame, SwTextSizeInfo *pTextSizeInf)
Definition: itrtxt.hxx:174
const SwTextSizeInfo & GetInfo() const
Definition: itrtxt.hxx:218
SwTwips GetLeftMin() const
Definition: itrtxt.hxx:193
sal_uInt16 GetLineWidth() const
Definition: itrtxt.hxx:191
SwTwips mnRight
Definition: itrtxt.hxx:145
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:112
vcl::RenderContext * GetOut()
Definition: inftxt.hxx:225
TextFrameIndex GetIdx() const
Definition: inftxt.hxx:273
long Long
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
Definition: nodeoffset.hxx:35
Marks a position in the document model.
Definition: pam.hxx:38
SvxAdjust
tools::Long SwTwips
Definition: swtypes.hxx:51
unsigned char sal_uInt8