/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: */ |