Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*
3 : : * This file is part of the LibreOffice project.
4 : : *
5 : : * This Source Code Form is subject to the terms of the Mozilla Public
6 : : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : : *
9 : : * This file incorporates work covered by the following license notice:
10 : : *
11 : : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : : * contributor license agreements. See the NOTICE file distributed
13 : : * with this work for additional information regarding copyright
14 : : * ownership. The ASF licenses this file to you under the Apache
15 : : * License, Version 2.0 (the "License"); you may not use this file
16 : : * except in compliance with the License. You may obtain a copy of
17 : : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : : */
19 : :
20 : : #include <ooxml/resourceids.hxx>
21 : : #include <resourcemodel/QNameToString.hxx>
22 : : #include "Handler.hxx"
23 : :
24 : : namespace writerfilter {
25 : : namespace ooxml
26 : : {
27 : :
28 : : /*
29 : : class OOXMLFootnoteHandler
30 : : */
31 : 0 : OOXMLFootnoteHandler::OOXMLFootnoteHandler(OOXMLFastContextHandler * pContext)
32 : 0 : : mpFastContext(pContext)
33 : : {
34 : 0 : }
35 : :
36 : 0 : OOXMLFootnoteHandler::~OOXMLFootnoteHandler()
37 : : {
38 [ # # ]: 0 : }
39 : :
40 : 0 : void OOXMLFootnoteHandler::attribute(Id name, Value & val)
41 : : {
42 [ # # ]: 0 : switch (name)
43 : : {
44 : : case NS_ooxml::LN_CT_FtnEdnRef_id:
45 : 0 : mpFastContext->resolveFootnote(sal_Int32(val.getInt()));
46 : 0 : break;
47 : : default:
48 : 0 : break;
49 : : }
50 : 0 : }
51 : :
52 : 0 : void OOXMLFootnoteHandler::sprm(Sprm & /*sprm*/)
53 : : {
54 : 0 : }
55 : :
56 : : /*
57 : : class OOXMLEndnoteHandler
58 : : */
59 : 0 : OOXMLEndnoteHandler::OOXMLEndnoteHandler(OOXMLFastContextHandler * pContext)
60 : 0 : : mpFastContext(pContext)
61 : : {
62 : 0 : }
63 : :
64 : 0 : OOXMLEndnoteHandler::~OOXMLEndnoteHandler()
65 : : {
66 [ # # ]: 0 : }
67 : :
68 : 0 : void OOXMLEndnoteHandler::attribute(Id name, Value & val)
69 : : {
70 [ # # ]: 0 : switch (name)
71 : : {
72 : : case NS_ooxml::LN_CT_FtnEdnRef_id:
73 : 0 : mpFastContext->resolveEndnote(sal_Int32(val.getInt()));
74 : 0 : break;
75 : : default:
76 : 0 : break;
77 : : }
78 : 0 : }
79 : :
80 : 0 : void OOXMLEndnoteHandler::sprm(Sprm & /*sprm*/)
81 : : {
82 : 0 : }
83 : :
84 : : /*
85 : : class OOXMLCommentHandler
86 : : */
87 : 6 : OOXMLCommentHandler::OOXMLCommentHandler(OOXMLFastContextHandler * pContext)
88 : 6 : : mpFastContext(pContext)
89 : : {
90 : 6 : }
91 : :
92 : 6 : OOXMLCommentHandler::~OOXMLCommentHandler()
93 : : {
94 [ - + ]: 6 : }
95 : :
96 : 6 : void OOXMLCommentHandler::attribute(Id name, Value & val)
97 : : {
98 [ + - ]: 6 : switch (name)
99 : : {
100 : : case NS_ooxml::LN_CT_Markup_id:
101 : 6 : mpFastContext->resolveComment(val.getInt());
102 : 6 : break;
103 : : default:
104 : : ;
105 : : }
106 : 6 : }
107 : :
108 : 0 : void OOXMLCommentHandler::sprm(Sprm & /*sprm*/)
109 : : {
110 : 0 : }
111 : :
112 : : /*
113 : : class OOXMLOLEHandler
114 : : */
115 : 0 : OOXMLOLEHandler::OOXMLOLEHandler(OOXMLFastContextHandler * pContext)
116 : 0 : : mpFastContext(pContext)
117 : : {
118 : 0 : }
119 : :
120 : 0 : OOXMLOLEHandler::~OOXMLOLEHandler()
121 : : {
122 [ # # ]: 0 : }
123 : :
124 : 0 : void OOXMLOLEHandler::attribute(Id name, Value & val)
125 : : {
126 [ # # ]: 0 : switch (name)
127 : : {
128 : : case NS_ooxml::LN_CT_OLEObject_r_id:
129 [ # # ]: 0 : mpFastContext->resolveOLE(val.getString());
130 : 0 : break;
131 : : default:
132 : : ;
133 : : }
134 : 0 : }
135 : :
136 : 0 : void OOXMLOLEHandler::sprm(Sprm & /*sprm*/)
137 : : {
138 : 0 : }
139 : :
140 : : /*
141 : : class OOXMLFooterHandler
142 : : */
143 : 9 : OOXMLFooterHandler::OOXMLFooterHandler(OOXMLFastContextHandler * pContext)
144 : 9 : : mpFastContext(pContext), msStreamId(), mnType(0)
145 : : {
146 : 9 : }
147 : :
148 : 9 : OOXMLFooterHandler::~OOXMLFooterHandler()
149 : : {
150 [ + - ]: 9 : mpFastContext->resolveFooter(mnType, msStreamId);
151 [ - + ]: 9 : }
152 : :
153 : 18 : void OOXMLFooterHandler::attribute(Id name, Value & val)
154 : : {
155 [ + + - ]: 18 : switch (name)
156 : : {
157 : : case NS_ooxml::LN_CT_HdrFtrRef_id:
158 : 9 : msStreamId = val.getString();
159 : 9 : break;
160 : : case NS_ooxml::LN_CT_HdrFtrRef_type:
161 : 9 : mnType = val.getInt();
162 : 9 : break;
163 : : default:
164 : 0 : break;
165 : : }
166 : 18 : }
167 : :
168 : 0 : void OOXMLFooterHandler::sprm(Sprm & /*sprm*/)
169 : : {
170 : 0 : }
171 : :
172 : : /*
173 : : class OOXMLHeaderHandler
174 : : */
175 : 21 : OOXMLHeaderHandler::OOXMLHeaderHandler(OOXMLFastContextHandler * pContext)
176 : 21 : : mpFastContext(pContext), msStreamId(), mnType(0)
177 : : {
178 : 21 : }
179 : :
180 : 21 : OOXMLHeaderHandler::~OOXMLHeaderHandler()
181 : : {
182 [ + - ]: 21 : mpFastContext->resolveHeader(mnType, msStreamId);
183 [ - + ]: 21 : }
184 : :
185 : 42 : void OOXMLHeaderHandler::attribute(Id name, Value & val)
186 : : {
187 [ + + - ]: 42 : switch (name)
188 : : {
189 : : case NS_ooxml::LN_CT_HdrFtrRef_id:
190 : 21 : msStreamId = val.getString();
191 : 21 : break;
192 : : case NS_ooxml::LN_CT_HdrFtrRef_type:
193 : 21 : mnType = val.getInt();
194 : 21 : break;
195 : : default:
196 : 0 : break;
197 : : }
198 : 42 : }
199 : :
200 : 0 : void OOXMLHeaderHandler::sprm(Sprm & /*sprm*/)
201 : : {
202 : 0 : }
203 : :
204 : : /*
205 : : class OOXMLBreakHandler
206 : : */
207 : 0 : OOXMLBreakHandler::OOXMLBreakHandler(Stream &rStream,
208 : : OOXMLFastContextHandler * pContext)
209 : : : mpFastContext(pContext), mnType(0), mnClear(0),
210 : 0 : mrStream(rStream)
211 : : {
212 : 0 : }
213 : :
214 : 0 : OOXMLBreakHandler::~OOXMLBreakHandler()
215 : : {
216 : : sal_uInt8 tmpBreak[1];
217 [ # # # ]: 0 : switch (mnType)
218 : : {
219 : : case NS_ooxml::LN_Value_ST_BrType_column:
220 : 0 : tmpBreak[0] = 0x0E;
221 : 0 : break;
222 : : case NS_ooxml::LN_Value_ST_BrType_page:
223 : 0 : tmpBreak[0] = 0x0C;
224 : 0 : break;
225 : : case NS_ooxml::LN_Value_ST_BrType_textWrapping:
226 : : default: // when no attribute type is present, the spec assume textWrapping
227 : 0 : tmpBreak[0] = 0x0A;
228 : 0 : break;
229 : : }
230 [ # # ]: 0 : mrStream.text(&tmpBreak[0], 1);
231 [ # # ]: 0 : }
232 : :
233 : 0 : void OOXMLBreakHandler::attribute(Id name, Value & val)
234 : : {
235 [ # # # ]: 0 : switch (name)
236 : : {
237 : : case NS_ooxml::LN_CT_Br_type:
238 : 0 : mnType = val.getInt();
239 : 0 : break;
240 : : case NS_ooxml::LN_CT_Br_clear:
241 : 0 : mnClear = val.getInt();
242 : 0 : break;
243 : : default:
244 : 0 : break;
245 : : }
246 : 0 : }
247 : :
248 : 0 : void OOXMLBreakHandler::sprm(Sprm & /*sprm*/)
249 : : {
250 : 0 : }
251 : :
252 : : /*
253 : : class OOXMLPictureHandler
254 : : */
255 : 15 : OOXMLPictureHandler::OOXMLPictureHandler(OOXMLFastContextHandler * pContext)
256 : 15 : : mpFastContext(pContext)
257 : : {
258 : 15 : }
259 : :
260 : 15 : OOXMLPictureHandler::~OOXMLPictureHandler()
261 : : {
262 [ - + ]: 15 : }
263 : :
264 : 285 : void OOXMLPictureHandler::attribute(Id name, Value & val)
265 : : {
266 [ - + ]: 285 : if (name == NS_ooxml::LN_AG_Blob_r_embed)
267 [ # # ]: 0 : mpFastContext->resolvePicture(val.getString());
268 : : else
269 : : {
270 : : writerfilter::Reference<Properties>::Pointer_t pProps
271 [ + - ]: 285 : (val.getProperties());
272 [ - + ]: 285 : if (pProps.get() != NULL)
273 [ # # ][ + - ]: 285 : pProps->resolve(*this);
274 : : }
275 : 285 : }
276 : :
277 : 204 : void OOXMLPictureHandler::sprm(Sprm & rSprm)
278 : : {
279 : : writerfilter::Reference<Properties>::Pointer_t pProps
280 [ + - ]: 204 : (rSprm.getProps());
281 : :
282 [ + + ]: 204 : if (pProps.get() != NULL)
283 [ + - ][ + - ]: 204 : pProps->resolve(*this);
284 : 204 : }
285 : :
286 : : /**
287 : : class OOXMLHyperlinkHandler
288 : : */
289 : :
290 : 0 : OOXMLHyperlinkHandler::OOXMLHyperlinkHandler(OOXMLFastContextHandler * pContext)
291 : 0 : : mpFastContext(pContext)
292 : : {
293 : 0 : }
294 : :
295 : 0 : OOXMLHyperlinkHandler::~OOXMLHyperlinkHandler()
296 : : {
297 : 0 : OUString sReturn(" HYPERLINK \"");
298 : :
299 : 0 : sReturn += mURL;
300 : 0 : sReturn += "\"";
301 : 0 : sReturn += mFieldCode;
302 : :
303 [ # # ]: 0 : mpFastContext->text(sReturn);
304 [ # # ]: 0 : }
305 : :
306 : 0 : void OOXMLHyperlinkHandler::attribute(Id name, Value & val)
307 : : {
308 [ # # # # : 0 : switch (name)
# # # ]
309 : : {
310 : : case NS_ooxml::LN_CT_Hyperlink_tgtFrame:
311 : 0 : mFieldCode += " \\t \"";
312 : 0 : mFieldCode += val.getString();
313 : 0 : mFieldCode += "\"";
314 : 0 : break;
315 : : case NS_ooxml::LN_CT_Hyperlink_tooltip:
316 : 0 : mFieldCode += " \\o \"";
317 : 0 : mFieldCode += val.getString();
318 : 0 : mFieldCode += "\"";
319 : 0 : break;
320 : : case NS_ooxml::LN_CT_Hyperlink_docLocation:
321 : 0 : break;
322 : : case NS_ooxml::LN_CT_Hyperlink_history:
323 : 0 : break;
324 : : case NS_ooxml::LN_CT_Hyperlink_anchor:
325 : 0 : mFieldCode += " \\l \"";
326 : 0 : mFieldCode += val.getString();
327 : 0 : mFieldCode += "\"";
328 : 0 : break;
329 : : case NS_ooxml::LN_CT_Hyperlink_r_id:
330 [ # # ]: 0 : mURL = mpFastContext->getTargetForId(val.getString());
331 : 0 : break;
332 : : default:
333 : 0 : break;
334 : : }
335 : 0 : }
336 : :
337 : 0 : void OOXMLHyperlinkHandler::sprm(Sprm & /*rSprm*/)
338 : : {
339 : 0 : }
340 [ + - ][ + - ]: 60 : }}
341 : :
342 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|