Coverage Report

Created: 2026-03-12 06:42

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