LibreOffice Module sw (master)  1
expfld.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_INC_EXPFLD_HXX
20 #define INCLUDED_SW_INC_EXPFLD_HXX
21 
22 #include "swdllapi.h"
23 #include "fldbas.hxx"
24 #include "cellfml.hxx"
25 #include <set>
26 #include <memory>
27 #include <vector>
28 #include <tools/solar.h>
29 
30 class SfxPoolItem;
31 class SwTextNode;
32 class SwFrame;
33 class SwRootFrame;
34 struct SwPosition;
35 class SwTextField;
36 class SwDoc;
37 class SwFormatField;
38 class SetGetExpFields;
39 class SwEditShell;
40 
42 const SwTextNode* GetBodyTextNode( const SwDoc& pDoc, SwPosition& rPos,
43  const SwFrame& rFrame );
44 
45 OUString ReplacePoint(const OUString& sTmpName, bool bWithCommandType = false);
46 
48 {
49  OUString sDlgEntry;
50  sal_uInt16 nSeqNo;
51 
52  SeqFieldLstElem( const OUString& rStr, sal_uInt16 nNo )
53  : sDlgEntry( rStr ), nSeqNo( nNo )
54  {}
55 };
56 
58 {
59  std::vector<SeqFieldLstElem> maData;
60 public:
61  bool InsertSort(SeqFieldLstElem aNew);
62  bool SeekEntry(const SeqFieldLstElem& rNew, size_t* pPos) const;
63 
64  size_t Count() { return maData.size(); }
65  SeqFieldLstElem& operator[](size_t nIndex) { return maData[nIndex]; }
66  const SeqFieldLstElem& operator[](size_t nIndex) const { return maData[nIndex]; }
67  void Clear() { maData.clear(); }
68 };
69 
70 class SAL_DLLPUBLIC_RTTI SwGetExpFieldType final : public SwValueFieldType
71 {
72 public:
73  SwGetExpFieldType(SwDoc* pDoc);
74  virtual std::unique_ptr<SwFieldType> Copy() const override;
75 
78 private:
79  virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ) override;
80 };
81 
83 {
85  OUString m_sExpand;
86  OUString m_sExpandRLHidden;
88  sal_uInt16 m_nSubType;
89 
90  bool m_bLateInitialization; // #i82544#
91 
92  virtual OUString ExpandImpl(SwRootFrame const* pLayout) const override;
93  virtual std::unique_ptr<SwField> Copy() const override;
94  using SwFormulaField::GetValue; // hide it, don't use
95  virtual void SetValue(const double& rVal) override; // hide it
96 
97 public:
98  SwGetExpField( SwGetExpFieldType*, const OUString& rFormel,
99  sal_uInt16 nSubType, sal_uLong nFormat);
100 
101  double GetValue(SwRootFrame const* pLayout) const;
102  void SetValue(const double& rVal, SwRootFrame const* pLayout);
103 
104  virtual void SetLanguage(LanguageType nLng) override;
105 
106  void ChgExpStr(const OUString& rExpand, SwRootFrame const* pLayout);
107 
109  inline bool IsInBodyText() const;
110 
112  inline void ChgBodyTextFlag( bool bIsInBody );
113 
116  void ChangeExpansion( const SwFrame&, const SwTextField& );
117 
118  virtual OUString GetFieldName() const override;
119 
121  virtual OUString GetPar2() const override;
122  virtual void SetPar2(const OUString& rStr) override;
123 
124  virtual sal_uInt16 GetSubType() const override;
125  virtual void SetSubType(sal_uInt16 nType) override;
126  virtual bool QueryValue( css::uno::Any& rVal, sal_uInt16 nWhich ) const override;
127  virtual bool PutValue( const css::uno::Any& rVal, sal_uInt16 nWhich ) override;
128 
129  static sal_Int32 GetReferenceTextPos( const SwFormatField& rFormat, SwDoc& rDoc, sal_Int32 nHint = 0);
130  // #i82544#
131  void SetLateInitialization() { m_bLateInitialization = true;}
132 };
133 
135 inline bool SwGetExpField::IsInBodyText() const
136  { return m_bIsInBodyText; }
137 
139 inline void SwGetExpField::ChgBodyTextFlag( bool bIsInBody )
140  { m_bIsInBodyText = bIsInBody; }
141 
142 class SwSetExpField;
143 
145 {
146  OUString const m_sName;
147  OUString m_sDelim;
148  sal_uInt16 m_nType;
151 
152  virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ) override;
153 
154 public:
155  SwSetExpFieldType( SwDoc* pDoc, const OUString& rName,
156  sal_uInt16 nType = nsSwGetSetExpType::GSE_EXPR );
157  virtual std::unique_ptr<SwFieldType> Copy() const override;
158  virtual OUString GetName() const override;
159 
160  inline void SetType(sal_uInt16 nTyp);
161  inline sal_uInt16 GetType() const;
162 
163  void SetSeqFormat(sal_uLong nFormat);
164  sal_uLong GetSeqFormat() const;
165 
166  bool IsDeleted() const { return m_bDeleted; }
167  void SetDeleted( bool b ) { m_bDeleted = b; }
168 
170  inline const OUString& GetSetRefName() const;
171 
172  void SetSeqRefNo( SwSetExpField& rField );
173 
174  size_t GetSeqFieldList(SwSeqFieldList& rList, SwRootFrame const* pLayout);
175 
177  const OUString& GetDelimiter() const { return m_sDelim; }
178  void SetDelimiter( const OUString& s ) { m_sDelim = s; }
179  sal_uInt8 GetOutlineLvl() const { return m_nLevel; }
180  void SetOutlineLvl( sal_uInt8 n ) { m_nLevel = n; }
181  void SetChapter(SwSetExpField& rField, const SwNode& rNd, SwRootFrame const* pLayout);
182 
183  virtual void QueryValue( css::uno::Any& rVal, sal_uInt16 nWhich ) const override;
184  virtual void PutValue( const css::uno::Any& rVal, sal_uInt16 nWhich ) override;
185 };
186 
187 inline void SwSetExpFieldType::SetType( sal_uInt16 nTyp )
188 {
189  m_nType = nTyp;
191 }
192 
193 inline sal_uInt16 SwSetExpFieldType::GetType() const
194  { return m_nType; }
195 
196 inline const OUString& SwSetExpFieldType::GetSetRefName() const
197  { return m_sName; }
198 
200 {
202  OUString msExpand;
203  OUString msExpandRLHidden;
204  OUString maPText;
205  bool mbInput;
206  sal_uInt16 mnSeqNo;
207  sal_uInt16 mnSubType;
209 
210  virtual OUString ExpandImpl(SwRootFrame const* pLayout) const override;
211  virtual std::unique_ptr<SwField> Copy() const override;
212  using SwFormulaField::GetValue; // hide it, don't use
213  virtual void SetValue(const double& rVal) override; // hide it
214 
215 public:
216  SwSetExpField(SwSetExpFieldType*, const OUString& rFormel, sal_uLong nFormat = 0);
217 
218  void SetFormatField(SwFormatField & rFormatField);
219  SwFormatField* GetFormatField() { return mpFormatField;}
220 
221  double GetValue(SwRootFrame const* pLayout) const;
222  void SetValue(const double& rVal, SwRootFrame const* pLayout);
223 
224  const OUString& GetExpStr(SwRootFrame const* pLayout) const;
225 
226  void ChgExpStr(const OUString& rExpand, SwRootFrame const* pLayout);
227 
228  inline void SetPromptText(const OUString& rStr);
229  inline const OUString& GetPromptText() const;
230 
231  inline void SetInputFlag(bool bInp);
232  inline bool GetInputFlag() const;
233 
234  virtual OUString GetFieldName() const override;
235 
236  virtual sal_uInt16 GetSubType() const override;
237  virtual void SetSubType(sal_uInt16 nType) override;
238 
239  inline bool IsSequenceField() const;
240 
242  void SetSeqNumber( sal_uInt16 n ) { mnSeqNo = n; }
243  sal_uInt16 GetSeqNumber() const { return mnSeqNo; }
244 
246  virtual OUString GetPar1() const override;
247 
249  virtual OUString GetPar2() const override;
250  virtual void SetPar2(const OUString& rStr) override;
251  virtual bool QueryValue( css::uno::Any& rVal, sal_uInt16 nWhich ) const override;
252  virtual bool PutValue( const css::uno::Any& rVal, sal_uInt16 nWhich ) override;
253 };
254 
255 inline void SwSetExpField::SetPromptText(const OUString& rStr)
256  { maPText = rStr; }
257 
258 inline const OUString& SwSetExpField::GetPromptText() const
259  { return maPText; }
260 
261 inline void SwSetExpField::SetInputFlag(bool bInp)
262  { mbInput = bInp; }
263 
264 inline bool SwSetExpField::GetInputFlag() const
265  { return mbInput; }
266 
268  { return 0 != (nsSwGetSetExpType::GSE_SEQ & static_cast<SwSetExpFieldType*>(GetTyp())->GetType()); }
269 
270 class SAL_DLLPUBLIC_RTTI SwInputFieldType final : public SwFieldType
271 {
272  SwDoc* const mpDoc;
273 public:
274  SwInputFieldType( SwDoc* pDoc );
275 
276  virtual std::unique_ptr<SwFieldType> Copy() const override;
277 
278  SwDoc* GetDoc() const { return mpDoc; }
279 };
280 
281 class SW_DLLPUBLIC SwInputField final : public SwField
282 {
283  mutable OUString maContent;
284  OUString maPText;
285  OUString maHelp;
286  OUString maToolTip;
287  sal_uInt16 mnSubType;
288  bool const mbIsFormField;
289 
290  SwFormatField* mpFormatField; // attribute to which the <SwInputField> belongs to
291 
292  virtual OUString ExpandImpl(SwRootFrame const* pLayout) const override;
293  virtual std::unique_ptr<SwField> Copy() const override;
294 
295  // Accessing Input Field's content
296  const OUString& getContent() const { return maContent;}
297 
298 public:
300  SwInputField(
301  SwInputFieldType* pFieldType,
302  const OUString& rContent,
303  const OUString& rPrompt,
304  sal_uInt16 nSubType,
305  sal_uLong nFormat = 0,
306  bool bIsFormField = true );
307  virtual ~SwInputField() override;
308 
309  void SetFormatField( SwFormatField& rFormatField );
310  SwFormatField* GetFormatField() { return mpFormatField;}
311 
312  // Providing new Input Field's content:
313  // Fill Input Field's content depending on <nSupType>.
314  void applyFieldContent( const OUString& rNewFieldContent );
315 
316  bool isFormField() const;
317 
318  virtual OUString GetFieldName() const override;
319 
321  virtual OUString GetPar1() const override;
322  virtual void SetPar1(const OUString& rStr) override;
323 
325  virtual OUString GetPar2() const override;
326  virtual void SetPar2(const OUString& rStr) override;
327 
328  const OUString& GetHelp() const;
329  void SetHelp(const OUString & rStr);
330 
331  const OUString& GetToolTip() const;
332  void SetToolTip(const OUString & rStr);
333 
334  virtual sal_uInt16 GetSubType() const override;
335  virtual void SetSubType(sal_uInt16 nSub) override;
336  virtual bool QueryValue( css::uno::Any& rVal, sal_uInt16 nWhich ) const override;
337  virtual bool PutValue( const css::uno::Any& rVal, sal_uInt16 nWhich ) override;
338 };
339 
340 // Sorted list of input fields and DropDown fields
342 {
343 public:
344  SwInputFieldList( SwEditShell* pShell, bool bBuildTmpLst = false );
346 
347  size_t Count() const;
348  SwField* GetField(size_t nId);
349 
350  void GotoFieldPos(size_t nId);
351  void PushCursor();
352  void PopCursor();
353 
357  bool BuildSortLst();
358 
359 private:
361  std::unique_ptr<SetGetExpFields> mpSrtLst;
362  std::set<const SwTextField*> maTmpLst;
363 };
364 
366 class SwTableFieldType final : public SwValueFieldType
367 {
368 public:
369  SwTableFieldType(SwDoc* pDocPtr);
370  virtual std::unique_ptr<SwFieldType> Copy() const override;
371 };
372 
373 class SwTableField final : public SwValueField, public SwTableFormula
374 {
375  OUString m_sExpand;
376  sal_uInt16 m_nSubType;
377 
378  virtual OUString ExpandImpl(SwRootFrame const* pLayout) const override;
379  virtual std::unique_ptr<SwField> Copy() const override;
380 
382  virtual const SwNode* GetNodeOfFormula() const override;
383 
384  OUString GetCommand();
385 
386 public:
387  SwTableField( SwTableFieldType*, const OUString& rFormel,
388  sal_uInt16 nSubType, sal_uLong nFormat);
389 
390  virtual void SetValue( const double& rVal ) override;
391  virtual sal_uInt16 GetSubType() const override;
392  virtual void SetSubType(sal_uInt16 nType) override;
393 
394  void ChgExpStr(const OUString& rStr) { m_sExpand = rStr; }
395 
396  void CalcField( SwTableCalcPara& rCalcPara );
397 
398  virtual OUString GetFieldName() const override;
399 
401  virtual OUString GetPar2() const override;
402  virtual void SetPar2(const OUString& rStr) override;
403  virtual bool QueryValue( css::uno::Any& rVal, sal_uInt16 nWhich ) const override;
404  virtual bool PutValue( const css::uno::Any& rVal, sal_uInt16 nWhich ) override;
405 };
406 
407 #endif // INCLUDED_SW_INC_EXPFLD_HXX
408 
409 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
OUString msExpandRLHidden
hidden redlines
Definition: expfld.hxx:203
Instances of SwFields and those derived from it occur 0 to n times.
Definition: fldbas.hxx:234
Base class of the Writer layout elements.
Definition: frame.hxx:295
SwInputFieldList(SwEditShell *pShell, bool bBuildTmpLst=false)
Definition: fldlst.cxx:36
void SetDelimiter(const OUString &s)
Definition: expfld.hxx:178
virtual sal_uInt16 GetSubType() const override
Definition: tblcalc.cxx:125
void CalcField(SwTableCalcPara &rCalcPara)
Definition: tblcalc.cxx:44
bool BuildSortLst()
Put all that are new into SortList for updating.
Definition: fldlst.cxx:127
bool mbInput
Definition: expfld.hxx:205
Marks a position in the document model.
Definition: pam.hxx:35
SwDoc * GetDoc() const
Definition: expfld.hxx:278
void SetType(sal_uInt16 nTyp)
Definition: expfld.hxx:187
void EnableFormat(bool bFormat=true)
Definition: fldbas.hxx:420
SeqFieldLstElem(const OUString &rStr, sal_uInt16 nNo)
Definition: expfld.hxx:52
SwField * GetField(size_t nId)
Definition: fldlst.cxx:92
std::set< const SwTextField * > maTmpLst
Definition: expfld.hxx:362
void SetPromptText(const OUString &rStr)
Definition: expfld.hxx:255
sal_uInt16 mnSubType
Definition: expfld.hxx:287
virtual std::unique_ptr< SwFieldType > Copy() const =0
void SetOutlineLvl(sal_uInt8 n)
Definition: expfld.hxx:180
sal_uIntPtr sal_uLong
Base class of all fields.
Definition: fldbas.hxx:280
virtual void SetValue(const double &rVal) override
Definition: tblcalc.cxx:135
Definition: doc.hxx:185
bool IsDeleted() const
Definition: expfld.hxx:166
sal_Int16 nId
OUString sDlgEntry
Definition: expfld.hxx:49
SwTableFieldType(SwDoc *pDocPtr)
Definition: tblcalc.cxx:35
const OUString & GetPromptText() const
Definition: expfld.hxx:258
void SetDeleted(bool b)
Definition: expfld.hxx:167
virtual void SetSubType(sal_uInt16 nType) override
Definition: tblcalc.cxx:130
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt16 nWhich) const override
Definition: tblcalc.cxx:151
The root element of a Writer document layout.
Definition: rootfrm.hxx:79
void PushCursor()
save cursor
Definition: fldlst.cxx:100
double m_fValueRLHidden
SwValueField; hidden redlines.
Definition: expfld.hxx:84
OUString maPText
Definition: expfld.hxx:204
virtual OUString GetPar1() const
Definition: fldbas.cxx:263
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt16 nWhich) override
Definition: tblcalc.cxx:180
size_t Count()
Definition: expfld.hxx:64
OUString GetCommand()
Definition: tblcalc.cxx:93
virtual OUString ExpandImpl(SwRootFrame const *pLayout) const =0
OUString m_sExpand
Definition: expfld.hxx:375
OUString m_sExpandRLHidden
hidden redlines
Definition: expfld.hxx:86
virtual void SetPar2(const OUString &rStr)
Definition: fldbas.cxx:281
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt16 nWhichId)
Definition: fldbas.cxx:306
bool const mbIsFormField
Definition: expfld.hxx:288
SwDoc *const mpDoc
Definition: expfld.hxx:272
virtual void SetLanguage(LanguageType nLng) override
set language of the format
Definition: fldbas.cxx:625
virtual void SetPar2(const OUString &rStr) override
Definition: tblcalc.cxx:146
OUString m_sDelim
Definition: expfld.hxx:147
Implementation in tblcalc.cxx.
Definition: expfld.hxx:366
OUString ReplacePoint(const OUString &sTmpName, bool bWithCommandType=false)
Definition: expfld.cxx:104
sal_uInt16 m_nSubType
Definition: expfld.hxx:376
sal_uInt16 nSeqNo
Definition: expfld.hxx:50
const SwGetSetExpType GSE_EXPR
Expression.
Definition: fldbas.hxx:197
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt16 nWhichId) const
Definition: fldbas.cxx:293
sal_uInt16 GetSeqNumber() const
Definition: expfld.hxx:243
void PopCursor()
get cursor
Definition: fldlst.cxx:107
virtual OUString GetFieldName() const override
get name or content
Definition: tblcalc.cxx:75
virtual void SetPar1(const OUString &rStr)
Definition: fldbas.cxx:278
virtual std::unique_ptr< SwField > Copy() const =0
void GotoFieldPos(size_t nId)
go to position of a field
Definition: fldlst.cxx:113
bool m_bIsInBodyText
Definition: expfld.hxx:87
void ChgBodyTextFlag(bool bIsInBody)
Set by UpdateExpFields where node position is known.
Definition: expfld.hxx:139
bool IsSequenceField() const
Definition: expfld.hxx:267
const OUString & getContent() const
Definition: expfld.hxx:296
OUString const m_sName
Definition: expfld.hxx:146
bool IsInBodyText() const
Called by formatting.
Definition: expfld.hxx:135
virtual OUString GetPar2() const override
The formula.
Definition: tblcalc.cxx:141
SwFormatField * mpFormatField
Definition: expfld.hxx:208
size_t Count() const
Definition: fldlst.cxx:86
sal_uInt16 mnSeqNo
Definition: expfld.hxx:206
virtual OUString GetPar2() const
Definition: fldbas.cxx:268
#define SW_DLLPUBLIC
Definition: swdllapi.h:28
std::vector< SeqFieldLstElem > maData
Definition: expfld.hxx:59
virtual void Modify(const SfxPoolItem *pOld, const SfxPoolItem *pNew) override
Definition: calbck.hxx:183
sal_uInt8 GetOutlineLvl() const
Definition: expfld.hxx:179
SwFormatField * mpFormatField
Definition: expfld.hxx:290
virtual sal_uInt16 GetSubType() const
Definition: fldbas.cxx:284
virtual void QueryValue(css::uno::Any &rVal, sal_uInt16 nWhich) const
Definition: fldbas.cxx:140
virtual std::unique_ptr< SwFieldType > Copy() const override
Definition: tblcalc.cxx:39
SwFieldType * GetTyp() const
Definition: fldbas.hxx:383
bool GetInputFlag() const
Definition: expfld.hxx:264
void SetSeqNumber(sal_uInt16 n)
Logical number, sequence fields.
Definition: expfld.hxx:242
Fields containing values that have to be formatted via number formatter.
Definition: fldbas.hxx:399
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:79
const SeqFieldLstElem & operator[](size_t nIndex) const
Definition: expfld.hxx:66
SwFormatField * GetFormatField()
Definition: expfld.hxx:219
const SwGetSetExpType GSE_SEQ
Sequence.
Definition: fldbas.hxx:198
bool m_bLateInitialization
Definition: expfld.hxx:90
const OUString & GetSetRefName() const
Overlay, because set-field takes care for its being updated by itself.
Definition: expfld.hxx:196
OUString maToolTip
Definition: expfld.hxx:286
virtual OUString GetName() const
Only in derived classes.
Definition: fldbas.cxx:135
sal_uInt16 m_nSubType
Definition: expfld.hxx:88
OUString maPText
Definition: expfld.hxx:284
unsigned char sal_uInt8
SwFormatField * GetFormatField()
Definition: expfld.hxx:310
sal_uInt16 mnSubType
Definition: expfld.hxx:207
void SetInputFlag(bool bInp)
Definition: expfld.hxx:261
SeqFieldLstElem & operator[](size_t nIndex)
Definition: expfld.hxx:65
virtual void PutValue(const css::uno::Any &rVal, sal_uInt16 nWhich)
Definition: fldbas.cxx:143
SwTableField(SwTableFieldType *, const OUString &rFormel, sal_uInt16 nSubType, sal_uLong nFormat)
Definition: tblcalc.cxx:56
virtual OUString GetFieldName() const
get name or content
Definition: fldbas.cxx:247
void InsertSort(std::vector< sal_uInt16 > &rArr, sal_uInt16 nIdx)
Definition: untbl.cxx:3022
virtual OUString ExpandImpl(SwRootFrame const *pLayout) const override
Definition: tblcalc.cxx:109
const SwGetSetExpType GSE_STRING
String.
Definition: fldbas.hxx:196
virtual void SetValue(const double &rVal)
Definition: fldbas.cxx:672
OUString msExpand
Definition: expfld.hxx:202
sal_uInt16 m_nType
Definition: expfld.hxx:148
sal_uInt8 m_nLevel
Definition: expfld.hxx:149
OUString maHelp
Definition: expfld.hxx:285
virtual const SwNode * GetNodeOfFormula() const override
Search TextNode containing the field.
Definition: tblcalc.cxx:81
const OUString & GetDelimiter() const
Number sequence fields chapterwise if required.
Definition: expfld.hxx:177
sal_uInt16 GetType() const
Definition: expfld.hxx:193
virtual void SetSubType(sal_uInt16)
Definition: fldbas.cxx:289
SwEditShell * mpSh
Definition: expfld.hxx:360
double m_fValueRLHidden
SwValueField; hidden redlines.
Definition: expfld.hxx:201
OUString m_sExpand
Definition: expfld.hxx:85
const SwTextNode * GetBodyTextNode(const SwDoc &pDoc, SwPosition &rPos, const SwFrame &rFrame)
Forward declaration: get "BodyTextNode" for exp.fld in Fly's headers/footers/footnotes.
Definition: expfld.cxx:163
virtual double GetValue() const
Definition: fldbas.cxx:667
OUString maContent
Definition: expfld.hxx:283
void ChgExpStr(const OUString &rStr)
Definition: expfld.hxx:394
std::unique_ptr< SetGetExpFields > mpSrtLst
Definition: expfld.hxx:361
void Clear()
Definition: expfld.hxx:67
void SetLateInitialization()
Definition: expfld.hxx:131
virtual std::unique_ptr< SwField > Copy() const override
Definition: tblcalc.cxx:64
Base class of the Writer document model elements.
Definition: node.hxx:79