Coverage Report

Created: 2026-09-06 07:18

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libabw/src/lib/ABWOutputElements.cpp
Line
Count
Source
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/*
3
 * This file is part of the libabw 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
10
#include "ABWOutputElements.h"
11
12
namespace
13
{
14
15
typedef libabw::ABWOutputElements::OutputElements_t OutputElements_t;
16
typedef libabw::ABWOutputElements::OutputElementsMap_t OutputElementsMap_t;
17
18
template<typename T, typename... Args>
19
std::unique_ptr<T> make_unique(Args &&... args)
20
0
{
21
0
  return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
22
0
}
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseEndnoteElement, std::__1::default_delete<libabw::ABWCloseEndnoteElement> > (anonymous namespace)::make_unique<libabw::ABWCloseEndnoteElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseFooterElement, std::__1::default_delete<libabw::ABWCloseFooterElement> > (anonymous namespace)::make_unique<libabw::ABWCloseFooterElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseFootnoteElement, std::__1::default_delete<libabw::ABWCloseFootnoteElement> > (anonymous namespace)::make_unique<libabw::ABWCloseFootnoteElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseFrameElement, std::__1::default_delete<libabw::ABWCloseFrameElement> > (anonymous namespace)::make_unique<libabw::ABWCloseFrameElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseHeaderElement, std::__1::default_delete<libabw::ABWCloseHeaderElement> > (anonymous namespace)::make_unique<libabw::ABWCloseHeaderElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseLinkElement, std::__1::default_delete<libabw::ABWCloseLinkElement> > (anonymous namespace)::make_unique<libabw::ABWCloseLinkElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseListElementElement, std::__1::default_delete<libabw::ABWCloseListElementElement> > (anonymous namespace)::make_unique<libabw::ABWCloseListElementElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseOrderedListLevelElement, std::__1::default_delete<libabw::ABWCloseOrderedListLevelElement> > (anonymous namespace)::make_unique<libabw::ABWCloseOrderedListLevelElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWClosePageSpanElement, std::__1::default_delete<libabw::ABWClosePageSpanElement> > (anonymous namespace)::make_unique<libabw::ABWClosePageSpanElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseParagraphElement, std::__1::default_delete<libabw::ABWCloseParagraphElement> > (anonymous namespace)::make_unique<libabw::ABWCloseParagraphElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseSectionElement, std::__1::default_delete<libabw::ABWCloseSectionElement> > (anonymous namespace)::make_unique<libabw::ABWCloseSectionElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseSpanElement, std::__1::default_delete<libabw::ABWCloseSpanElement> > (anonymous namespace)::make_unique<libabw::ABWCloseSpanElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseTableElement, std::__1::default_delete<libabw::ABWCloseTableElement> > (anonymous namespace)::make_unique<libabw::ABWCloseTableElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseTableCellElement, std::__1::default_delete<libabw::ABWCloseTableCellElement> > (anonymous namespace)::make_unique<libabw::ABWCloseTableCellElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseTableRowElement, std::__1::default_delete<libabw::ABWCloseTableRowElement> > (anonymous namespace)::make_unique<libabw::ABWCloseTableRowElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseTextBoxElement, std::__1::default_delete<libabw::ABWCloseTextBoxElement> > (anonymous namespace)::make_unique<libabw::ABWCloseTextBoxElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWCloseUnorderedListLevelElement, std::__1::default_delete<libabw::ABWCloseUnorderedListLevelElement> > (anonymous namespace)::make_unique<libabw::ABWCloseUnorderedListLevelElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWInsertBinaryObjectElement, std::__1::default_delete<libabw::ABWInsertBinaryObjectElement> > (anonymous namespace)::make_unique<libabw::ABWInsertBinaryObjectElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWInsertFieldElement, std::__1::default_delete<libabw::ABWInsertFieldElement> > (anonymous namespace)::make_unique<libabw::ABWInsertFieldElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWInsertCoveredTableCellElement, std::__1::default_delete<libabw::ABWInsertCoveredTableCellElement> > (anonymous namespace)::make_unique<libabw::ABWInsertCoveredTableCellElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWInsertLineBreakElement, std::__1::default_delete<libabw::ABWInsertLineBreakElement> > (anonymous namespace)::make_unique<libabw::ABWInsertLineBreakElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWInsertSpaceElement, std::__1::default_delete<libabw::ABWInsertSpaceElement> > (anonymous namespace)::make_unique<libabw::ABWInsertSpaceElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWInsertTabElement, std::__1::default_delete<libabw::ABWInsertTabElement> > (anonymous namespace)::make_unique<libabw::ABWInsertTabElement>()
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWInsertTextElement, std::__1::default_delete<libabw::ABWInsertTextElement> > (anonymous namespace)::make_unique<libabw::ABWInsertTextElement, librevenge::RVNGString const&>(librevenge::RVNGString const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenEndnoteElement, std::__1::default_delete<libabw::ABWOpenEndnoteElement> > (anonymous namespace)::make_unique<libabw::ABWOpenEndnoteElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenFooterElement, std::__1::default_delete<libabw::ABWOpenFooterElement> > (anonymous namespace)::make_unique<libabw::ABWOpenFooterElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenFootnoteElement, std::__1::default_delete<libabw::ABWOpenFootnoteElement> > (anonymous namespace)::make_unique<libabw::ABWOpenFootnoteElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenFrameElement, std::__1::default_delete<libabw::ABWOpenFrameElement> > (anonymous namespace)::make_unique<libabw::ABWOpenFrameElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenHeaderElement, std::__1::default_delete<libabw::ABWOpenHeaderElement> > (anonymous namespace)::make_unique<libabw::ABWOpenHeaderElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenListElementElement, std::__1::default_delete<libabw::ABWOpenListElementElement> > (anonymous namespace)::make_unique<libabw::ABWOpenListElementElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenLinkElement, std::__1::default_delete<libabw::ABWOpenLinkElement> > (anonymous namespace)::make_unique<libabw::ABWOpenLinkElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenOrderedListLevelElement, std::__1::default_delete<libabw::ABWOpenOrderedListLevelElement> > (anonymous namespace)::make_unique<libabw::ABWOpenOrderedListLevelElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenPageSpanElement, std::__1::default_delete<libabw::ABWOpenPageSpanElement> > (anonymous namespace)::make_unique<libabw::ABWOpenPageSpanElement, librevenge::RVNGPropertyList const&, int&, int&, int&, int&, int&, int&, int&, int&>(librevenge::RVNGPropertyList const&, int&, int&, int&, int&, int&, int&, int&, int&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenParagraphElement, std::__1::default_delete<libabw::ABWOpenParagraphElement> > (anonymous namespace)::make_unique<libabw::ABWOpenParagraphElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenSectionElement, std::__1::default_delete<libabw::ABWOpenSectionElement> > (anonymous namespace)::make_unique<libabw::ABWOpenSectionElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenSpanElement, std::__1::default_delete<libabw::ABWOpenSpanElement> > (anonymous namespace)::make_unique<libabw::ABWOpenSpanElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenTableElement, std::__1::default_delete<libabw::ABWOpenTableElement> > (anonymous namespace)::make_unique<libabw::ABWOpenTableElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenTableCellElement, std::__1::default_delete<libabw::ABWOpenTableCellElement> > (anonymous namespace)::make_unique<libabw::ABWOpenTableCellElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenTableRowElement, std::__1::default_delete<libabw::ABWOpenTableRowElement> > (anonymous namespace)::make_unique<libabw::ABWOpenTableRowElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenTextBoxElement, std::__1::default_delete<libabw::ABWOpenTextBoxElement> > (anonymous namespace)::make_unique<libabw::ABWOpenTextBoxElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
Unexecuted instantiation: ABWOutputElements.cpp:std::__1::unique_ptr<libabw::ABWOpenUnorderedListLevelElement, std::__1::default_delete<libabw::ABWOpenUnorderedListLevelElement> > (anonymous namespace)::make_unique<libabw::ABWOpenUnorderedListLevelElement, librevenge::RVNGPropertyList const&>(librevenge::RVNGPropertyList const&)
23
24
}
25
26
namespace libabw
27
{
28
29
class ABWOutputElement
30
{
31
public:
32
0
  ABWOutputElement() {}
33
0
  virtual ~ABWOutputElement() {}
34
  virtual void write(librevenge::RVNGTextInterface *iface,
35
                     const OutputElementsMap_t *footers,
36
                     const OutputElementsMap_t *headers) const = 0;
37
};
38
39
class ABWCloseEndnoteElement : public ABWOutputElement
40
{
41
public:
42
0
  ABWCloseEndnoteElement() {}
43
0
  ~ABWCloseEndnoteElement() override {}
44
  void write(librevenge::RVNGTextInterface *iface,
45
             const OutputElementsMap_t *footers,
46
             const OutputElementsMap_t *headers) const override;
47
};
48
49
class ABWCloseFooterElement : public ABWOutputElement
50
{
51
public:
52
0
  ABWCloseFooterElement() {}
53
0
  ~ABWCloseFooterElement() override {}
54
  void write(librevenge::RVNGTextInterface *iface,
55
             const OutputElementsMap_t *footers,
56
             const OutputElementsMap_t *headers) const override;
57
};
58
59
class ABWCloseFootnoteElement : public ABWOutputElement
60
{
61
public:
62
0
  ABWCloseFootnoteElement() {}
63
0
  ~ABWCloseFootnoteElement() override {}
64
  void write(librevenge::RVNGTextInterface *iface,
65
             const OutputElementsMap_t *footers,
66
             const OutputElementsMap_t *headers) const override;
67
};
68
69
class ABWCloseFrameElement : public ABWOutputElement
70
{
71
public:
72
0
  ABWCloseFrameElement() {}
73
0
  ~ABWCloseFrameElement() override {}
74
  void write(librevenge::RVNGTextInterface *iface,
75
             const OutputElementsMap_t *footers,
76
             const OutputElementsMap_t *headers) const override;
77
};
78
79
class ABWCloseHeaderElement : public ABWOutputElement
80
{
81
public:
82
0
  ABWCloseHeaderElement() {}
83
0
  ~ABWCloseHeaderElement() override {}
84
  void write(librevenge::RVNGTextInterface *iface,
85
             const OutputElementsMap_t *footers,
86
             const OutputElementsMap_t *headers) const override;
87
};
88
89
class ABWCloseLinkElement : public ABWOutputElement
90
{
91
public:
92
0
  ABWCloseLinkElement() {}
93
0
  ~ABWCloseLinkElement() override {}
94
  void write(librevenge::RVNGTextInterface *iface,
95
             const OutputElementsMap_t *footers,
96
             const OutputElementsMap_t *headers) const override;
97
};
98
99
class ABWCloseListElementElement : public ABWOutputElement
100
{
101
public:
102
0
  ABWCloseListElementElement() {}
103
0
  ~ABWCloseListElementElement() override {}
104
  void write(librevenge::RVNGTextInterface *iface,
105
             const OutputElementsMap_t *footers,
106
             const OutputElementsMap_t *headers) const override;
107
};
108
109
class ABWCloseOrderedListLevelElement : public ABWOutputElement
110
{
111
public:
112
0
  ABWCloseOrderedListLevelElement() {}
113
0
  ~ABWCloseOrderedListLevelElement() override {}
114
  void write(librevenge::RVNGTextInterface *iface,
115
             const OutputElementsMap_t *footers,
116
             const OutputElementsMap_t *headers) const override;
117
};
118
119
class ABWClosePageSpanElement : public ABWOutputElement
120
{
121
public:
122
0
  ABWClosePageSpanElement() {}
123
0
  ~ABWClosePageSpanElement() override {}
124
  void write(librevenge::RVNGTextInterface *iface,
125
             const OutputElementsMap_t *footers,
126
             const OutputElementsMap_t *headers) const override;
127
};
128
129
class ABWCloseParagraphElement : public ABWOutputElement
130
{
131
public:
132
0
  ABWCloseParagraphElement() {}
133
0
  ~ABWCloseParagraphElement() override {}
134
  void write(librevenge::RVNGTextInterface *iface,
135
             const OutputElementsMap_t *footers,
136
             const OutputElementsMap_t *headers) const override;
137
};
138
139
class ABWCloseSectionElement : public ABWOutputElement
140
{
141
public:
142
0
  ABWCloseSectionElement() {}
143
0
  ~ABWCloseSectionElement() override {}
144
  void write(librevenge::RVNGTextInterface *iface,
145
             const OutputElementsMap_t *footers,
146
             const OutputElementsMap_t *headers) const override;
147
};
148
149
class ABWCloseSpanElement : public ABWOutputElement
150
{
151
public:
152
0
  ABWCloseSpanElement() {}
153
0
  ~ABWCloseSpanElement() override {}
154
  void write(librevenge::RVNGTextInterface *iface,
155
             const OutputElementsMap_t *footers,
156
             const OutputElementsMap_t *headers) const override;
157
};
158
159
class ABWCloseTableElement : public ABWOutputElement
160
{
161
public:
162
0
  ABWCloseTableElement() {}
163
0
  ~ABWCloseTableElement() override {}
164
  void write(librevenge::RVNGTextInterface *iface,
165
             const OutputElementsMap_t *footers,
166
             const OutputElementsMap_t *headers) const override;
167
};
168
169
class ABWCloseTableCellElement : public ABWOutputElement
170
{
171
public:
172
0
  ABWCloseTableCellElement() {}
173
0
  ~ABWCloseTableCellElement() override {}
174
  void write(librevenge::RVNGTextInterface *iface,
175
             const OutputElementsMap_t *footers,
176
             const OutputElementsMap_t *headers) const override;
177
};
178
179
class ABWCloseTableRowElement : public ABWOutputElement
180
{
181
public:
182
0
  ABWCloseTableRowElement() {}
183
0
  ~ABWCloseTableRowElement() override {}
184
  void write(librevenge::RVNGTextInterface *iface,
185
             const OutputElementsMap_t *footers,
186
             const OutputElementsMap_t *headers) const override;
187
};
188
189
class ABWCloseTextBoxElement : public ABWOutputElement
190
{
191
public:
192
0
  ABWCloseTextBoxElement() {}
193
0
  ~ABWCloseTextBoxElement() override {}
194
  void write(librevenge::RVNGTextInterface *iface,
195
             const OutputElementsMap_t *footers,
196
             const OutputElementsMap_t *headers) const override;
197
};
198
199
class ABWCloseUnorderedListLevelElement : public ABWOutputElement
200
{
201
public:
202
0
  ABWCloseUnorderedListLevelElement() {}
203
0
  ~ABWCloseUnorderedListLevelElement() override {}
204
  void write(librevenge::RVNGTextInterface *iface,
205
             const OutputElementsMap_t *footers,
206
             const OutputElementsMap_t *headers) const override;
207
};
208
209
class ABWInsertBinaryObjectElement : public ABWOutputElement
210
{
211
public:
212
  ABWInsertBinaryObjectElement(const librevenge::RVNGPropertyList &propList) :
213
0
    m_propList(propList) {}
214
0
  ~ABWInsertBinaryObjectElement() override {}
215
  void write(librevenge::RVNGTextInterface *iface,
216
             const OutputElementsMap_t *footers,
217
             const OutputElementsMap_t *headers) const override;
218
private:
219
  librevenge::RVNGPropertyList m_propList;
220
};
221
222
class ABWInsertFieldElement : public ABWOutputElement
223
{
224
public:
225
  ABWInsertFieldElement(const librevenge::RVNGPropertyList &propList) :
226
0
    m_propList(propList) {}
227
0
  ~ABWInsertFieldElement() override {}
228
  void write(librevenge::RVNGTextInterface *iface,
229
             const OutputElementsMap_t *footers,
230
             const OutputElementsMap_t *headers) const override;
231
private:
232
  librevenge::RVNGPropertyList m_propList;
233
};
234
235
class ABWInsertCoveredTableCellElement : public ABWOutputElement
236
{
237
public:
238
  ABWInsertCoveredTableCellElement(const librevenge::RVNGPropertyList &propList) :
239
0
    m_propList(propList) {}
240
0
  ~ABWInsertCoveredTableCellElement() override {}
241
  void write(librevenge::RVNGTextInterface *iface,
242
             const OutputElementsMap_t *footers,
243
             const OutputElementsMap_t *headers) const override;
244
private:
245
  librevenge::RVNGPropertyList m_propList;
246
};
247
248
class ABWInsertLineBreakElement : public ABWOutputElement
249
{
250
public:
251
0
  ABWInsertLineBreakElement() {}
252
0
  ~ABWInsertLineBreakElement() override {}
253
  void write(librevenge::RVNGTextInterface *iface,
254
             const OutputElementsMap_t *footers,
255
             const OutputElementsMap_t *headers) const override;
256
};
257
258
class ABWInsertSpaceElement : public ABWOutputElement
259
{
260
public:
261
0
  ABWInsertSpaceElement() {}
262
0
  ~ABWInsertSpaceElement() override {}
263
  void write(librevenge::RVNGTextInterface *iface,
264
             const OutputElementsMap_t *footers,
265
             const OutputElementsMap_t *headers) const override;
266
};
267
268
class ABWInsertTabElement : public ABWOutputElement
269
{
270
public:
271
0
  ABWInsertTabElement() {}
272
0
  ~ABWInsertTabElement() override {}
273
  void write(librevenge::RVNGTextInterface *iface,
274
             const OutputElementsMap_t *footers,
275
             const OutputElementsMap_t *headers) const override;
276
};
277
278
class ABWInsertTextElement : public ABWOutputElement
279
{
280
public:
281
  ABWInsertTextElement(const librevenge::RVNGString &text) :
282
0
    m_text(text) {}
283
0
  ~ABWInsertTextElement() override {}
284
  void write(librevenge::RVNGTextInterface *iface,
285
             const OutputElementsMap_t *footers,
286
             const OutputElementsMap_t *headers) const override;
287
private:
288
  librevenge::RVNGString m_text;
289
};
290
291
class ABWOpenEndnoteElement : public ABWOutputElement
292
{
293
public:
294
  ABWOpenEndnoteElement(const librevenge::RVNGPropertyList &propList) :
295
0
    m_propList(propList) {}
296
0
  ~ABWOpenEndnoteElement() override {}
297
  void write(librevenge::RVNGTextInterface *iface,
298
             const OutputElementsMap_t *footers,
299
             const OutputElementsMap_t *headers) const override;
300
private:
301
  librevenge::RVNGPropertyList m_propList;
302
};
303
304
class ABWOpenFooterElement : public ABWOutputElement
305
{
306
public:
307
  ABWOpenFooterElement(const librevenge::RVNGPropertyList &propList) :
308
0
    m_propList(propList) {}
309
0
  ~ABWOpenFooterElement() override {}
310
  void write(librevenge::RVNGTextInterface *iface,
311
             const OutputElementsMap_t *footers,
312
             const OutputElementsMap_t *headers) const override;
313
private:
314
  librevenge::RVNGPropertyList m_propList;
315
};
316
317
class ABWOpenFootnoteElement : public ABWOutputElement
318
{
319
public:
320
  ABWOpenFootnoteElement(const librevenge::RVNGPropertyList &propList) :
321
0
    m_propList(propList) {}
322
0
  ~ABWOpenFootnoteElement() override {}
323
  void write(librevenge::RVNGTextInterface *iface,
324
             const OutputElementsMap_t *footers,
325
             const OutputElementsMap_t *headers) const override;
326
private:
327
  librevenge::RVNGPropertyList m_propList;
328
};
329
330
class ABWOpenFrameElement : public ABWOutputElement
331
{
332
public:
333
  ABWOpenFrameElement(const librevenge::RVNGPropertyList &propList) :
334
0
    m_propList(propList) {}
335
0
  ~ABWOpenFrameElement() override {}
336
  void write(librevenge::RVNGTextInterface *iface,
337
             const OutputElementsMap_t *footers,
338
             const OutputElementsMap_t *headers) const override;
339
private:
340
  librevenge::RVNGPropertyList m_propList;
341
};
342
343
class ABWOpenHeaderElement : public ABWOutputElement
344
{
345
public:
346
  ABWOpenHeaderElement(const librevenge::RVNGPropertyList &propList) :
347
0
    m_propList(propList) {}
348
0
  ~ABWOpenHeaderElement() override {}
349
  void write(librevenge::RVNGTextInterface *iface,
350
             const OutputElementsMap_t *footers,
351
             const OutputElementsMap_t *headers) const override;
352
private:
353
  librevenge::RVNGPropertyList m_propList;
354
};
355
356
class ABWOpenLinkElement : public ABWOutputElement
357
{
358
public:
359
  ABWOpenLinkElement(const librevenge::RVNGPropertyList &propList) :
360
0
    m_propList(propList) {}
361
0
  ~ABWOpenLinkElement() override {}
362
  void write(librevenge::RVNGTextInterface *iface,
363
             const OutputElementsMap_t *footers,
364
             const OutputElementsMap_t *headers) const override;
365
private:
366
  librevenge::RVNGPropertyList m_propList;
367
};
368
369
class ABWOpenListElementElement : public ABWOutputElement
370
{
371
public:
372
  ABWOpenListElementElement(const librevenge::RVNGPropertyList &propList) :
373
0
    m_propList(propList) {}
374
0
  ~ABWOpenListElementElement() override {}
375
  void write(librevenge::RVNGTextInterface *iface,
376
             const OutputElementsMap_t *footers,
377
             const OutputElementsMap_t *headers) const override;
378
private:
379
  librevenge::RVNGPropertyList m_propList;
380
};
381
382
class ABWOpenOrderedListLevelElement : public ABWOutputElement
383
{
384
public:
385
  ABWOpenOrderedListLevelElement(const librevenge::RVNGPropertyList &propList) :
386
0
    m_propList(propList) {}
387
0
  ~ABWOpenOrderedListLevelElement() override {}
388
  void write(librevenge::RVNGTextInterface *iface,
389
             const OutputElementsMap_t *footers,
390
             const OutputElementsMap_t *headers) const override;
391
private:
392
  librevenge::RVNGPropertyList m_propList;
393
};
394
395
class ABWOpenPageSpanElement : public ABWOutputElement
396
{
397
public:
398
  ABWOpenPageSpanElement(const librevenge::RVNGPropertyList &propList,
399
                         int footer, int footerLeft, int footerFirst, int footerLast,
400
                         int header, int headerLeft, int headerFirst, int headerLast) :
401
0
    m_propList(propList),
402
0
    m_footer(footer),
403
0
    m_footerLeft(footerLeft),
404
0
    m_footerFirst(footerFirst),
405
0
    m_footerLast(footerLast),
406
0
    m_header(header),
407
0
    m_headerLeft(headerLeft),
408
0
    m_headerFirst(headerFirst),
409
0
    m_headerLast(headerLast) {}
410
0
  ~ABWOpenPageSpanElement() override {}
411
  void write(librevenge::RVNGTextInterface *iface,
412
             const OutputElementsMap_t *footers,
413
             const OutputElementsMap_t *headers) const override;
414
private:
415
  void _writeElements(librevenge::RVNGTextInterface *iface, int id,
416
                      const OutputElementsMap_t *elements) const;
417
  librevenge::RVNGPropertyList m_propList;
418
  int m_footer;
419
  int m_footerLeft;
420
  int m_footerFirst;
421
  int m_footerLast;
422
  int m_header;
423
  int m_headerLeft;
424
  int m_headerFirst;
425
  int m_headerLast;
426
};
427
428
class ABWOpenParagraphElement : public ABWOutputElement
429
{
430
public:
431
  ABWOpenParagraphElement(const librevenge::RVNGPropertyList &propList) :
432
0
    m_propList(propList) {}
433
0
  ~ABWOpenParagraphElement() override {}
434
  void write(librevenge::RVNGTextInterface *iface,
435
             const OutputElementsMap_t *footers,
436
             const OutputElementsMap_t *headers) const override;
437
private:
438
  librevenge::RVNGPropertyList m_propList;
439
};
440
441
class ABWOpenSectionElement : public ABWOutputElement
442
{
443
public:
444
  ABWOpenSectionElement(const librevenge::RVNGPropertyList &propList) :
445
0
    m_propList(propList) {}
446
0
  ~ABWOpenSectionElement() override {}
447
  void write(librevenge::RVNGTextInterface *iface,
448
             const OutputElementsMap_t *footers,
449
             const OutputElementsMap_t *headers) const override;
450
private:
451
  librevenge::RVNGPropertyList m_propList;
452
};
453
454
class ABWOpenSpanElement : public ABWOutputElement
455
{
456
public:
457
  ABWOpenSpanElement(const librevenge::RVNGPropertyList &propList) :
458
0
    m_propList(propList) {}
459
0
  ~ABWOpenSpanElement() override {}
460
  void write(librevenge::RVNGTextInterface *iface,
461
             const OutputElementsMap_t *footers,
462
             const OutputElementsMap_t *headers) const override;
463
private:
464
  librevenge::RVNGPropertyList m_propList;
465
};
466
467
class ABWOpenTableElement : public ABWOutputElement
468
{
469
public:
470
  ABWOpenTableElement(const librevenge::RVNGPropertyList &propList) :
471
0
    m_propList(propList) {}
472
0
  ~ABWOpenTableElement() override {}
473
  void write(librevenge::RVNGTextInterface *iface,
474
             const OutputElementsMap_t *footers,
475
             const OutputElementsMap_t *headers) const override;
476
private:
477
  librevenge::RVNGPropertyList m_propList;
478
};
479
480
class ABWOpenTableCellElement : public ABWOutputElement
481
{
482
public:
483
  ABWOpenTableCellElement(const librevenge::RVNGPropertyList &propList) :
484
0
    m_propList(propList) {}
485
0
  ~ABWOpenTableCellElement() override {}
486
  void write(librevenge::RVNGTextInterface *iface,
487
             const OutputElementsMap_t *footers,
488
             const OutputElementsMap_t *headers) const override;
489
private:
490
  librevenge::RVNGPropertyList m_propList;
491
};
492
493
class ABWOpenTableRowElement : public ABWOutputElement
494
{
495
public:
496
  ABWOpenTableRowElement(const librevenge::RVNGPropertyList &propList) :
497
0
    m_propList(propList) {}
498
0
  ~ABWOpenTableRowElement() override {}
499
  void write(librevenge::RVNGTextInterface *iface,
500
             const OutputElementsMap_t *footers,
501
             const OutputElementsMap_t *headers) const override;
502
private:
503
  librevenge::RVNGPropertyList m_propList;
504
};
505
506
class ABWOpenTextBoxElement : public ABWOutputElement
507
{
508
public:
509
  ABWOpenTextBoxElement(const librevenge::RVNGPropertyList &propList) :
510
0
    m_propList(propList) {}
511
0
  ~ABWOpenTextBoxElement() override {}
512
  void write(librevenge::RVNGTextInterface *iface,
513
             const OutputElementsMap_t *footers,
514
             const OutputElementsMap_t *headers) const override;
515
private:
516
  librevenge::RVNGPropertyList m_propList;
517
};
518
519
class ABWOpenUnorderedListLevelElement : public ABWOutputElement
520
{
521
public:
522
  ABWOpenUnorderedListLevelElement(const librevenge::RVNGPropertyList &propList) :
523
0
    m_propList(propList) {}
524
0
  ~ABWOpenUnorderedListLevelElement() override {}
525
  void write(librevenge::RVNGTextInterface *iface,
526
             const OutputElementsMap_t *footers,
527
             const OutputElementsMap_t *headers) const override;
528
private:
529
  librevenge::RVNGPropertyList m_propList;
530
};
531
532
} // namespace libabw
533
534
void libabw::ABWCloseEndnoteElement::write(librevenge::RVNGTextInterface *iface,
535
                                           const OutputElementsMap_t *,
536
                                           const OutputElementsMap_t *) const
537
0
{
538
0
  if (iface)
539
0
    iface->closeEndnote();
540
0
}
541
542
void libabw::ABWCloseFooterElement::write(librevenge::RVNGTextInterface *iface,
543
                                          const OutputElementsMap_t *,
544
                                          const OutputElementsMap_t *) const
545
0
{
546
0
  if (iface)
547
0
    iface->closeFooter();
548
0
}
549
550
void libabw::ABWCloseFootnoteElement::write(librevenge::RVNGTextInterface *iface,
551
                                            const OutputElementsMap_t *,
552
                                            const OutputElementsMap_t *) const
553
0
{
554
0
  if (iface)
555
0
    iface->closeFootnote();
556
0
}
557
558
void libabw::ABWCloseFrameElement::write(librevenge::RVNGTextInterface *iface,
559
                                         const OutputElementsMap_t *,
560
                                         const OutputElementsMap_t *) const
561
0
{
562
0
  if (iface)
563
0
    iface->closeFrame();
564
0
}
565
566
void libabw::ABWCloseHeaderElement::write(librevenge::RVNGTextInterface *iface,
567
                                          const OutputElementsMap_t *,
568
                                          const OutputElementsMap_t *) const
569
0
{
570
0
  if (iface)
571
0
    iface->closeHeader();
572
0
}
573
574
void libabw::ABWCloseLinkElement::write(librevenge::RVNGTextInterface *iface,
575
                                        const OutputElementsMap_t *,
576
                                        const OutputElementsMap_t *) const
577
0
{
578
0
  if (iface)
579
0
    iface->closeLink();
580
0
}
581
582
void libabw::ABWCloseListElementElement::write(librevenge::RVNGTextInterface *iface,
583
                                               const OutputElementsMap_t *,
584
                                               const OutputElementsMap_t *) const
585
0
{
586
0
  if (iface)
587
0
    iface->closeListElement();
588
0
}
589
590
void libabw::ABWCloseOrderedListLevelElement::write(librevenge::RVNGTextInterface *iface,
591
                                                    const OutputElementsMap_t *,
592
                                                    const OutputElementsMap_t *) const
593
0
{
594
0
  if (iface)
595
0
    iface->closeOrderedListLevel();
596
0
}
597
598
void libabw::ABWClosePageSpanElement::write(librevenge::RVNGTextInterface *iface,
599
                                            const OutputElementsMap_t *,
600
                                            const OutputElementsMap_t *) const
601
0
{
602
0
  if (iface)
603
0
    iface->closePageSpan();
604
0
}
605
606
void libabw::ABWCloseParagraphElement::write(librevenge::RVNGTextInterface *iface,
607
                                             const OutputElementsMap_t *,
608
                                             const OutputElementsMap_t *) const
609
0
{
610
0
  if (iface)
611
0
    iface->closeParagraph();
612
0
}
613
614
void libabw::ABWCloseSectionElement::write(librevenge::RVNGTextInterface *iface,
615
                                           const OutputElementsMap_t *,
616
                                           const OutputElementsMap_t *) const
617
0
{
618
0
  if (iface)
619
0
    iface->closeSection();
620
0
}
621
622
void libabw::ABWCloseSpanElement::write(librevenge::RVNGTextInterface *iface,
623
                                        const OutputElementsMap_t *,
624
                                        const OutputElementsMap_t *) const
625
0
{
626
0
  if (iface)
627
0
    iface->closeSpan();
628
0
}
629
630
void libabw::ABWCloseTableElement::write(librevenge::RVNGTextInterface *iface,
631
                                         const OutputElementsMap_t *,
632
                                         const OutputElementsMap_t *) const
633
0
{
634
0
  if (iface)
635
0
    iface->closeTable();
636
0
}
637
638
void libabw::ABWCloseTableCellElement::write(librevenge::RVNGTextInterface *iface,
639
                                             const OutputElementsMap_t *,
640
                                             const OutputElementsMap_t *) const
641
0
{
642
0
  if (iface)
643
0
    iface->closeTableCell();
644
0
}
645
646
void libabw::ABWCloseTableRowElement::write(librevenge::RVNGTextInterface *iface,
647
                                            const OutputElementsMap_t *,
648
                                            const OutputElementsMap_t *) const
649
0
{
650
0
  if (iface)
651
0
    iface->closeTableRow();
652
0
}
653
654
void libabw::ABWCloseTextBoxElement::write(librevenge::RVNGTextInterface *iface,
655
                                           const OutputElementsMap_t *,
656
                                           const OutputElementsMap_t *) const
657
0
{
658
0
  if (iface)
659
0
    iface->closeTextBox();
660
0
}
661
662
void libabw::ABWCloseUnorderedListLevelElement::write(librevenge::RVNGTextInterface *iface,
663
                                                      const OutputElementsMap_t *,
664
                                                      const OutputElementsMap_t *) const
665
0
{
666
0
  if (iface)
667
0
    iface->closeUnorderedListLevel();
668
0
}
669
670
void libabw::ABWInsertBinaryObjectElement::write(librevenge::RVNGTextInterface *iface,
671
                                                 const OutputElementsMap_t *,
672
                                                 const OutputElementsMap_t *) const
673
0
{
674
0
  if (iface)
675
0
    iface->insertBinaryObject(m_propList);
676
0
}
677
678
void libabw::ABWInsertFieldElement::write(librevenge::RVNGTextInterface *iface,
679
                                          const OutputElementsMap_t *,
680
                                          const OutputElementsMap_t *) const
681
0
{
682
0
  if (iface)
683
0
    iface->insertField(m_propList);
684
0
}
685
686
void libabw::ABWInsertCoveredTableCellElement::write(librevenge::RVNGTextInterface *iface,
687
                                                     const OutputElementsMap_t *,
688
                                                     const OutputElementsMap_t *) const
689
0
{
690
0
  if (iface)
691
0
    iface->insertCoveredTableCell(m_propList);
692
0
}
693
694
void libabw::ABWInsertLineBreakElement::write(librevenge::RVNGTextInterface *iface,
695
                                              const OutputElementsMap_t *,
696
                                              const OutputElementsMap_t *) const
697
0
{
698
0
  if (iface)
699
0
    iface->insertLineBreak();
700
0
}
701
702
void libabw::ABWInsertSpaceElement::write(librevenge::RVNGTextInterface *iface,
703
                                          const OutputElementsMap_t *,
704
                                          const OutputElementsMap_t *) const
705
0
{
706
0
  if (iface)
707
0
    iface->insertSpace();
708
0
}
709
710
void libabw::ABWInsertTabElement::write(librevenge::RVNGTextInterface *iface,
711
                                        const OutputElementsMap_t *,
712
                                        const OutputElementsMap_t *) const
713
0
{
714
0
  if (iface)
715
0
    iface->insertTab();
716
0
}
717
718
void libabw::ABWInsertTextElement::write(librevenge::RVNGTextInterface *iface,
719
                                         const OutputElementsMap_t *,
720
                                         const OutputElementsMap_t *) const
721
0
{
722
0
  if (iface)
723
0
    iface->insertText(m_text);
724
0
}
725
726
void libabw::ABWOpenEndnoteElement::write(librevenge::RVNGTextInterface *iface,
727
                                          const OutputElementsMap_t *,
728
                                          const OutputElementsMap_t *) const
729
0
{
730
0
  if (iface)
731
0
    iface->openEndnote(m_propList);
732
0
}
733
734
void libabw::ABWOpenFooterElement::write(librevenge::RVNGTextInterface *iface,
735
                                         const OutputElementsMap_t *,
736
                                         const OutputElementsMap_t *) const
737
0
{
738
0
  if (iface)
739
0
    iface->openFooter(m_propList);
740
0
}
741
742
void libabw::ABWOpenFootnoteElement::write(librevenge::RVNGTextInterface *iface,
743
                                           const OutputElementsMap_t *,
744
                                           const OutputElementsMap_t *) const
745
0
{
746
0
  if (iface)
747
0
    iface->openFootnote(m_propList);
748
0
}
749
750
void libabw::ABWOpenFrameElement::write(librevenge::RVNGTextInterface *iface,
751
                                        const OutputElementsMap_t *,
752
                                        const OutputElementsMap_t *) const
753
0
{
754
0
  if (iface)
755
0
    iface->openFrame(m_propList);
756
0
}
757
758
void libabw::ABWOpenHeaderElement::write(librevenge::RVNGTextInterface *iface,
759
                                         const OutputElementsMap_t *,
760
                                         const OutputElementsMap_t *) const
761
0
{
762
0
  if (iface)
763
0
    iface->openHeader(m_propList);
764
0
}
765
766
void libabw::ABWOpenListElementElement::write(librevenge::RVNGTextInterface *iface,
767
                                              const OutputElementsMap_t *,
768
                                              const OutputElementsMap_t *) const
769
0
{
770
0
  if (iface)
771
0
    iface->openListElement(m_propList);
772
0
}
773
774
void libabw::ABWOpenLinkElement::write(librevenge::RVNGTextInterface *iface,
775
                                       const OutputElementsMap_t *,
776
                                       const OutputElementsMap_t *) const
777
0
{
778
0
  if (iface)
779
0
    iface->openLink(m_propList);
780
0
}
781
782
void libabw::ABWOpenOrderedListLevelElement::write(librevenge::RVNGTextInterface *iface,
783
                                                   const OutputElementsMap_t *,
784
                                                   const OutputElementsMap_t *) const
785
0
{
786
0
  if (iface)
787
0
    iface->openOrderedListLevel(m_propList);
788
0
}
789
790
void libabw::ABWOpenPageSpanElement::write(librevenge::RVNGTextInterface *iface,
791
                                           const OutputElementsMap_t *footers,
792
                                           const OutputElementsMap_t *headers) const
793
0
{
794
0
  if (iface)
795
0
  {
796
    // open the page span
797
0
    iface->openPageSpan(m_propList);
798
    // write out the footers
799
0
    _writeElements(iface, m_footer, footers);
800
0
    _writeElements(iface, m_footerLeft, footers);
801
0
    _writeElements(iface, m_footerFirst, footers);
802
0
    _writeElements(iface, m_footerLast, footers);
803
    // write out the headers
804
0
    _writeElements(iface, m_header, headers);
805
0
    _writeElements(iface, m_headerLeft, headers);
806
0
    _writeElements(iface, m_headerFirst, headers);
807
0
    _writeElements(iface, m_headerLast, headers);
808
    // and continue with writing out the other stuff
809
0
  }
810
811
0
}
812
813
void libabw::ABWOpenPageSpanElement::_writeElements(librevenge::RVNGTextInterface *iface, int id,
814
                                                    const OutputElementsMap_t *elements) const
815
0
{
816
0
  if (!elements || id < 0 || !iface)
817
0
    return;
818
819
0
  auto iterMap = elements->find(id);
820
0
  if (iterMap == elements->end() || iterMap->second.empty())
821
0
    return;
822
823
0
  for (const auto &iterVec : iterMap->second)
824
0
    iterVec->write(iface, nullptr, nullptr);
825
0
}
826
827
void libabw::ABWOpenParagraphElement::write(librevenge::RVNGTextInterface *iface,
828
                                            const OutputElementsMap_t *,
829
                                            const OutputElementsMap_t *) const
830
0
{
831
0
  if (iface)
832
0
    iface->openParagraph(m_propList);
833
0
}
834
835
void libabw::ABWOpenSectionElement::write(librevenge::RVNGTextInterface *iface,
836
                                          const OutputElementsMap_t *,
837
                                          const OutputElementsMap_t *) const
838
0
{
839
0
  if (iface)
840
0
    iface->openSection(m_propList);
841
0
}
842
843
void libabw::ABWOpenSpanElement::write(librevenge::RVNGTextInterface *iface,
844
                                       const OutputElementsMap_t *,
845
                                       const OutputElementsMap_t *) const
846
0
{
847
0
  if (iface)
848
0
    iface->openSpan(m_propList);
849
0
}
850
851
void libabw::ABWOpenTableElement::write(librevenge::RVNGTextInterface *iface,
852
                                        const OutputElementsMap_t *,
853
                                        const OutputElementsMap_t *) const
854
0
{
855
0
  if (iface)
856
0
    iface->openTable(m_propList);
857
0
}
858
859
void libabw::ABWOpenTableCellElement::write(librevenge::RVNGTextInterface *iface,
860
                                            const OutputElementsMap_t *,
861
                                            const OutputElementsMap_t *) const
862
0
{
863
0
  if (iface)
864
0
    iface->openTableCell(m_propList);
865
0
}
866
867
void libabw::ABWOpenTableRowElement::write(librevenge::RVNGTextInterface *iface,
868
                                           const OutputElementsMap_t *,
869
                                           const OutputElementsMap_t *) const
870
0
{
871
0
  if (iface)
872
0
    iface->openTableRow(m_propList);
873
0
}
874
875
void libabw::ABWOpenTextBoxElement::write(librevenge::RVNGTextInterface *iface,
876
                                          const OutputElementsMap_t *,
877
                                          const OutputElementsMap_t *) const
878
0
{
879
0
  if (iface)
880
0
    iface->openTextBox(m_propList);
881
0
}
882
883
void libabw::ABWOpenUnorderedListLevelElement::write(librevenge::RVNGTextInterface *iface,
884
                                                     const OutputElementsMap_t *,
885
                                                     const OutputElementsMap_t *) const
886
0
{
887
0
  if (iface)
888
0
    iface->openUnorderedListLevel(m_propList);
889
0
}
890
891
// ABWOutputElements
892
893
libabw::ABWOutputElements::ABWOutputElements()
894
0
  : m_bodyElements(), m_headerElements(), m_footerElements(), m_elements(nullptr)
895
0
{
896
0
  m_elements = &m_bodyElements;
897
0
}
898
899
libabw::ABWOutputElements::~ABWOutputElements()
900
0
{
901
0
}
902
903
void libabw::ABWOutputElements::splice(ABWOutputElements &elements)
904
0
{
905
0
  m_bodyElements.splice(m_bodyElements.end(), elements.m_bodyElements);
906
0
}
907
908
void libabw::ABWOutputElements::write(librevenge::RVNGTextInterface *iface) const
909
0
{
910
0
  OutputElements_t::const_iterator iter;
911
0
  for (iter = m_bodyElements.begin(); iter != m_bodyElements.end(); ++iter)
912
0
    (*iter)->write(iface, &m_footerElements, &m_headerElements);
913
0
}
914
915
void libabw::ABWOutputElements::addCloseEndnote()
916
0
{
917
0
  if (m_elements)
918
0
    m_elements->push_back(make_unique<ABWCloseEndnoteElement>());
919
0
}
920
921
void libabw::ABWOutputElements::addCloseFooter()
922
0
{
923
0
  if (m_elements)
924
0
    m_elements->push_back(make_unique<ABWCloseFooterElement>());
925
0
  m_elements = &m_bodyElements;
926
0
}
927
928
void libabw::ABWOutputElements::addCloseFootnote()
929
0
{
930
0
  if (m_elements)
931
0
    m_elements->push_back(make_unique<ABWCloseFootnoteElement>());
932
0
}
933
934
void libabw::ABWOutputElements::addCloseFrame()
935
0
{
936
0
  if (m_elements)
937
0
    m_elements->push_back(make_unique<ABWCloseFrameElement>());
938
0
}
939
940
void libabw::ABWOutputElements::addCloseHeader()
941
0
{
942
0
  if (m_elements)
943
0
    m_elements->push_back(make_unique<ABWCloseHeaderElement>());
944
0
  m_elements = &m_bodyElements;
945
0
}
946
947
void libabw::ABWOutputElements::addCloseLink()
948
0
{
949
0
  if (m_elements)
950
0
    m_elements->push_back(make_unique<ABWCloseLinkElement>());
951
0
}
952
953
void libabw::ABWOutputElements::addCloseListElement()
954
0
{
955
0
  if (m_elements)
956
0
    m_elements->push_back(make_unique<ABWCloseListElementElement>());
957
0
}
958
959
void libabw::ABWOutputElements::addCloseOrderedListLevel()
960
0
{
961
0
  if (m_elements)
962
0
    m_elements->push_back(make_unique<ABWCloseOrderedListLevelElement>());
963
0
}
964
965
void libabw::ABWOutputElements::addClosePageSpan()
966
0
{
967
0
  if (m_elements)
968
0
    m_elements->push_back(make_unique<ABWClosePageSpanElement>());
969
0
}
970
971
void libabw::ABWOutputElements::addCloseParagraph()
972
0
{
973
0
  if (m_elements)
974
0
    m_elements->push_back(make_unique<ABWCloseParagraphElement>());
975
0
}
976
977
void libabw::ABWOutputElements::addCloseSection()
978
0
{
979
0
  if (m_elements)
980
0
    m_elements->push_back(make_unique<ABWCloseSectionElement>());
981
0
}
982
983
void libabw::ABWOutputElements::addCloseSpan()
984
0
{
985
0
  if (m_elements)
986
0
    m_elements->push_back(make_unique<ABWCloseSpanElement>());
987
0
}
988
989
void libabw::ABWOutputElements::addCloseTable()
990
0
{
991
0
  if (m_elements)
992
0
    m_elements->push_back(make_unique<ABWCloseTableElement>());
993
0
}
994
995
void libabw::ABWOutputElements::addCloseTableCell()
996
0
{
997
0
  if (m_elements)
998
0
    m_elements->push_back(make_unique<ABWCloseTableCellElement>());
999
0
}
1000
1001
void libabw::ABWOutputElements::addCloseTableRow()
1002
0
{
1003
0
  if (m_elements)
1004
0
    m_elements->push_back(make_unique<ABWCloseTableRowElement>());
1005
0
}
1006
1007
void libabw::ABWOutputElements::addCloseTextBox()
1008
0
{
1009
0
  if (m_elements)
1010
0
    m_elements->push_back(make_unique<ABWCloseTextBoxElement>());
1011
0
}
1012
1013
void libabw::ABWOutputElements::addCloseUnorderedListLevel()
1014
0
{
1015
0
  if (m_elements)
1016
0
    m_elements->push_back(make_unique<ABWCloseUnorderedListLevelElement>());
1017
0
}
1018
1019
void libabw::ABWOutputElements::addInsertBinaryObject(const librevenge::RVNGPropertyList &propList)
1020
0
{
1021
0
  if (m_elements)
1022
0
    m_elements->push_back(make_unique<ABWInsertBinaryObjectElement>(propList));
1023
0
}
1024
1025
void libabw::ABWOutputElements::addInsertField(const librevenge::RVNGPropertyList &propList)
1026
0
{
1027
0
  if (m_elements)
1028
0
    m_elements->push_back(make_unique<ABWInsertFieldElement>(propList));
1029
0
}
1030
1031
void libabw::ABWOutputElements::addInsertCoveredTableCell(const librevenge::RVNGPropertyList &propList)
1032
0
{
1033
0
  if (m_elements)
1034
0
    m_elements->push_back(make_unique<ABWInsertCoveredTableCellElement>(propList));
1035
0
}
1036
1037
void libabw::ABWOutputElements::addInsertLineBreak()
1038
0
{
1039
0
  if (m_elements)
1040
0
    m_elements->push_back(make_unique<ABWInsertLineBreakElement>());
1041
0
}
1042
1043
void libabw::ABWOutputElements::addInsertSpace()
1044
0
{
1045
0
  if (m_elements)
1046
0
    m_elements->push_back(make_unique<ABWInsertSpaceElement>());
1047
0
}
1048
1049
void libabw::ABWOutputElements::addInsertTab()
1050
0
{
1051
0
  if (m_elements)
1052
0
    m_elements->push_back(make_unique<ABWInsertTabElement>());
1053
0
}
1054
1055
void libabw::ABWOutputElements::addInsertText(const librevenge::RVNGString &text)
1056
0
{
1057
0
  if (m_elements)
1058
0
    m_elements->push_back(make_unique<ABWInsertTextElement>(text));
1059
0
}
1060
1061
void libabw::ABWOutputElements::addOpenEndnote(const librevenge::RVNGPropertyList &propList)
1062
0
{
1063
0
  if (m_elements)
1064
0
    m_elements->push_back(make_unique<ABWOpenEndnoteElement>(propList));
1065
0
}
1066
1067
void libabw::ABWOutputElements::addOpenFooter(const librevenge::RVNGPropertyList &propList, int id)
1068
0
{
1069
  // if the corresponding element of the map does not exist, this will default-construct it.
1070
  // In that case we will get an empty list to fill with the footer content. If the element
1071
  // already exists, this might be a footer with different occurrence and we will add it to
1072
  // the existing one.
1073
0
  m_elements = &m_footerElements[id];
1074
0
  if (m_elements)
1075
0
    m_elements->push_back(make_unique<ABWOpenFooterElement>(propList));
1076
0
}
1077
1078
void libabw::ABWOutputElements::addOpenFootnote(const librevenge::RVNGPropertyList &propList)
1079
0
{
1080
0
  if (m_elements)
1081
0
    m_elements->push_back(make_unique<ABWOpenFootnoteElement>(propList));
1082
0
}
1083
1084
void libabw::ABWOutputElements::addOpenFrame(const librevenge::RVNGPropertyList &propList)
1085
0
{
1086
0
  if (m_elements)
1087
0
    m_elements->push_back(make_unique<ABWOpenFrameElement>(propList));
1088
0
}
1089
1090
void libabw::ABWOutputElements::addOpenHeader(const librevenge::RVNGPropertyList &propList, int id)
1091
0
{
1092
  // Check the comment in addOpenFooter to see what happens here
1093
0
  m_elements = &m_headerElements[id];
1094
0
  if (m_elements)
1095
0
    m_elements->push_back(make_unique<ABWOpenHeaderElement>(propList));
1096
0
}
1097
1098
void libabw::ABWOutputElements::addOpenListElement(const librevenge::RVNGPropertyList &propList)
1099
0
{
1100
0
  if (m_elements)
1101
0
    m_elements->push_back(make_unique<ABWOpenListElementElement>(propList));
1102
0
}
1103
1104
void libabw::ABWOutputElements::addOpenLink(const librevenge::RVNGPropertyList &propList)
1105
0
{
1106
0
  if (m_elements)
1107
0
    m_elements->push_back(make_unique<ABWOpenLinkElement>(propList));
1108
0
}
1109
1110
void libabw::ABWOutputElements::addOpenOrderedListLevel(const librevenge::RVNGPropertyList &propList)
1111
0
{
1112
0
  if (m_elements)
1113
0
    m_elements->push_back(make_unique<ABWOpenOrderedListLevelElement>(propList));
1114
0
}
1115
1116
void libabw::ABWOutputElements::addOpenPageSpan(const librevenge::RVNGPropertyList &propList,
1117
                                                int footer, int footerLeft, int footerFirst, int footerLast,
1118
                                                int header, int headerLeft, int headerFirst, int headerLast)
1119
0
{
1120
0
  if (m_elements)
1121
0
    m_elements->push_back(make_unique<ABWOpenPageSpanElement>(propList, footer, footerLeft, footerFirst, footerLast,
1122
0
                                                              header, headerLeft, headerFirst, headerLast));
1123
0
}
1124
1125
void libabw::ABWOutputElements::addOpenParagraph(const librevenge::RVNGPropertyList &propList)
1126
0
{
1127
0
  if (m_elements)
1128
0
    m_elements->push_back(make_unique<ABWOpenParagraphElement>(propList));
1129
0
}
1130
1131
void libabw::ABWOutputElements::addOpenSection(const librevenge::RVNGPropertyList &propList)
1132
0
{
1133
0
  if (m_elements)
1134
0
    m_elements->push_back(make_unique<ABWOpenSectionElement>(propList));
1135
0
}
1136
1137
void libabw::ABWOutputElements::addOpenSpan(const librevenge::RVNGPropertyList &propList)
1138
0
{
1139
0
  if (m_elements)
1140
0
    m_elements->push_back(make_unique<ABWOpenSpanElement>(propList));
1141
0
}
1142
1143
void libabw::ABWOutputElements::addOpenTable(const librevenge::RVNGPropertyList &propList)
1144
0
{
1145
0
  if (m_elements)
1146
0
    m_elements->push_back(make_unique<ABWOpenTableElement>(propList));
1147
0
}
1148
1149
void libabw::ABWOutputElements::addOpenTableCell(const librevenge::RVNGPropertyList &propList)
1150
0
{
1151
0
  if (m_elements)
1152
0
    m_elements->push_back(make_unique<ABWOpenTableCellElement>(propList));
1153
0
}
1154
1155
void libabw::ABWOutputElements::addOpenTableRow(const librevenge::RVNGPropertyList &propList)
1156
0
{
1157
0
  if (m_elements)
1158
0
    m_elements->push_back(make_unique<ABWOpenTableRowElement>(propList));
1159
0
}
1160
1161
void libabw::ABWOutputElements::addOpenTextBox(const librevenge::RVNGPropertyList &propList)
1162
0
{
1163
0
  if (m_elements)
1164
0
    m_elements->push_back(make_unique<ABWOpenTextBoxElement>(propList));
1165
0
}
1166
1167
void libabw::ABWOutputElements::addOpenUnorderedListLevel(const librevenge::RVNGPropertyList &propList)
1168
0
{
1169
0
  if (m_elements)
1170
0
    m_elements->push_back(make_unique<ABWOpenUnorderedListLevelElement>(propList));
1171
0
}
1172
1173
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */