1 /*
2 * Copyright (c) 2011 Lukáš Tvrdý lukas.tvrdy@ixonos.com
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18 #include "ODrawToOdf.h"
19
20 #include "drawstyle.h"
21 #include "writeodf/writeodfdraw.h"
22
23 using namespace MSO;
24 using namespace writeodf;
25
26 namespace
27 {
equation(Writer & out,const char * name,const char * formula)28 void equation(Writer& out, const char* name, const char* formula)
29 {
30 draw_equation eq(&out.xml);
31 eq.set_draw_name(name);
32 eq.set_draw_formula(formula);
33 }
equation(draw_enhanced_geometry & eg,const char * name,const char * formula)34 void equation(draw_enhanced_geometry& eg, const char* name, const char* formula)
35 {
36 draw_equation eq(eg.add_draw_equation());
37 eq.set_draw_name(name);
38 eq.set_draw_formula(formula);
39 }
40
41 }
42
43
44 /*void ODrawToOdf::processRectangle(const MSO::OfficeArtSpContainer& o, Writer& out) {
45 out.xml.startElement("draw:custom-shape");
46 processStyleAndText(o, out);
47
48 out.xml.startElement("draw:enhanced-geometry");
49 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
50 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N");
51 out.xml.addAttribute("draw:type", "rectangle");
52 setShapeMirroring(o, out);
53 out.xml.endElement(); // enhanced geometry
54 out.xml.endElement(); // custom shape
55 }*/
56
57
processParallelogram(const MSO::OfficeArtSpContainer & o,Writer & out)58 void ODrawToOdf::processParallelogram(const MSO::OfficeArtSpContainer& o, Writer& out) {
59 draw_custom_shape shape(&out.xml);
60 processStyleAndText(o, out);
61
62 draw_enhanced_geometry eg(shape.add_draw_enhanced_geometry());
63 eg.set_draw_glue_points("?f6 0 10800 ?f8 ?f11 10800 ?f9 21600 10800 ?f10 ?f5 10800");
64 processModifiers(o, out, QList<int>() << 5400);
65 eg.set_svg_viewBox("0 0 21600 21600");
66 eg.set_draw_enhanced_path("M ?f0 0 L 21600 0 ?f1 21600 0 21600 Z N");
67 eg.set_draw_type("parallelogram");
68 eg.set_draw_text_areas("?f3 ?f3 ?f4 ?f4");
69 setShapeMirroring(o, out);
70 equation(eg,"f0","$0 ");
71 equation(eg,"f1","21600-$0 ");
72 equation(eg,"f2","$0 *10/24");
73 equation(eg,"f3","?f2 +1750");
74 equation(eg,"f4","21600-?f3 ");
75 equation(eg,"f5","?f0 /2");
76 equation(eg,"f6","10800+?f5 ");
77 equation(eg,"f7","?f0 -10800");
78 equation(eg,"f8","if(?f7 ,?f13 ,0)");
79 equation(eg,"f9","10800-?f5 ");
80 equation(eg,"f10","if(?f7 ,?f12 ,21600)");
81 equation(eg,"f11","21600-?f5 ");
82 equation(eg,"f12","21600*10800/?f0 ");
83 equation(eg,"f13","21600-?f12 ");
84 draw_handle handle(eg.add_draw_handle("$0 top"));
85 handle.set_draw_handle_radius_range_maximum("21000");
86 handle.set_draw_handle_radius_range_minimum("0");
87 }
88
89
processTrapezoid(const MSO::OfficeArtSpContainer & o,Writer & out)90 void ODrawToOdf::processTrapezoid(const MSO::OfficeArtSpContainer& o, Writer& out) {
91 draw_custom_shape shape(&out.xml);
92 processStyleAndText(o, out);
93
94 draw_enhanced_geometry eg(shape.add_draw_enhanced_geometry());
95 eg.set_draw_glue_points("?f6 10800 10800 21600 ?f5 10800 10800 0");
96 processModifiers(o, out, QList<int>() << 5400);
97 eg.set_svg_viewBox("0 0 21600 21600");
98 eg.set_draw_enhanced_path("M 0 0 L 21600 0 ?f0 21600 ?f1 21600 Z N");
99 eg.set_draw_type("trapezoid");
100 eg.set_draw_text_areas("?f3 ?f3 ?f4 ?f4");
101 setShapeMirroring(o, out);
102 equation(eg,"f0","21600-$0 ");
103 equation(eg,"f1","$0 ");
104 equation(eg,"f2","$0 *10/18");
105 equation(eg,"f3","?f2 +1750");
106 equation(eg,"f4","21600-?f3 ");
107 equation(eg,"f5","$0 /2");
108 equation(eg,"f6","21600-?f5 ");
109 draw_handle handle(eg.add_draw_handle("$0 bottom"));
110 handle.set_draw_handle_radius_range_maximum("10000");
111 handle.set_draw_handle_radius_range_minimum("0");
112 }
113
114
processDiamond(const MSO::OfficeArtSpContainer & o,Writer & out)115 void ODrawToOdf::processDiamond(const MSO::OfficeArtSpContainer& o, Writer& out) {
116 out.xml.startElement("draw:custom-shape");
117 processStyleAndText(o, out);
118
119 out.xml.startElement("draw:enhanced-geometry");
120 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
121 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
122 out.xml.addAttribute("draw:enhanced-path", "M 10800 0 L 21600 10800 10800 21600 0 10800 10800 0 Z N");
123 out.xml.addAttribute("draw:type", "diamond");
124 out.xml.addAttribute("draw:text-areas", "5400 5400 16200 16200");
125 setShapeMirroring(o, out);
126 out.xml.endElement(); // enhanced geometry
127 out.xml.endElement(); // custom shape
128 }
129
130
processRoundRectangle(const MSO::OfficeArtSpContainer & o,Writer & out)131 void ODrawToOdf::processRoundRectangle(const MSO::OfficeArtSpContainer& o, Writer& out) {
132 out.xml.startElement("draw:custom-shape");
133 processStyleAndText(o, out);
134
135 out.xml.startElement("draw:enhanced-geometry");
136 processModifiers(o, out, QList<int>() << 3600);
137 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
138 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
139 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
140 out.xml.addAttribute("draw:enhanced-path", "M ?f7 0 X 0 ?f8 L 0 ?f9 Y ?f7 21600 L ?f10 21600 X 21600 ?f9 L 21600 ?f8 Y ?f10 0 Z N");
141 out.xml.addAttribute("draw:type", "round-rectangle");
142 out.xml.addAttribute("draw:text-areas", "?f3 ?f4 ?f5 ?f6");
143 setShapeMirroring(o, out);
144 equation(out,"f0","45");
145 equation(out,"f1","$0 *sin(?f0 *(pi/180))");
146 equation(out,"f2","?f1 *3163/7636");
147 equation(out,"f3","left+?f2 ");
148 equation(out,"f4","top+?f2 ");
149 equation(out,"f5","right-?f2 ");
150 equation(out,"f6","bottom-?f2 ");
151 equation(out,"f7","left+$0 ");
152 equation(out,"f8","top+$0 ");
153 equation(out,"f9","bottom-$0 ");
154 equation(out,"f10","right-$0 ");
155 out.xml.startElement("draw:handle");
156 out.xml.addAttribute("draw:handle-position", "$0 top");
157 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
158 out.xml.addAttribute("draw:handle-switched", "true");
159 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
160 out.xml.endElement(); // draw:handle
161 out.xml.endElement(); // enhanced geometry
162 out.xml.endElement(); // custom shape
163 }
164
165
processOctagon(const MSO::OfficeArtSpContainer & o,Writer & out)166 void ODrawToOdf::processOctagon(const MSO::OfficeArtSpContainer& o, Writer& out) {
167 out.xml.startElement("draw:custom-shape");
168 processStyleAndText(o, out);
169
170 out.xml.startElement("draw:enhanced-geometry");
171 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
172 processModifiers(o, out, QList<int>() << 5000);
173 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
174 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
175 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
176 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 L ?f2 0 21600 ?f1 21600 ?f3 ?f2 21600 ?f0 21600 0 ?f3 0 ?f1 Z N");
177 out.xml.addAttribute("draw:type", "octagon");
178 out.xml.addAttribute("draw:text-areas", "?f5 ?f6 ?f7 ?f8");
179 setShapeMirroring(o, out);
180 equation(out,"f0","left+$0 ");
181 equation(out,"f1","top+$0 ");
182 equation(out,"f2","right-$0 ");
183 equation(out,"f3","bottom-$0 ");
184 equation(out,"f4","$0 /2");
185 equation(out,"f5","left+?f4 ");
186 equation(out,"f6","top+?f4 ");
187 equation(out,"f7","right-?f4 ");
188 equation(out,"f8","bottom-?f4 ");
189 out.xml.startElement("draw:handle");
190 out.xml.addAttribute("draw:handle-position", "$0 top");
191 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
192 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
193 out.xml.endElement(); // draw:handle
194 out.xml.endElement(); // enhanced geometry
195 out.xml.endElement(); // custom shape
196 }
197
198
processIsocelesTriangle(const MSO::OfficeArtSpContainer & o,Writer & out)199 void ODrawToOdf::processIsocelesTriangle(const MSO::OfficeArtSpContainer& o, Writer& out) {
200 out.xml.startElement("draw:custom-shape");
201 processStyleAndText(o, out);
202
203 out.xml.startElement("draw:enhanced-geometry");
204 out.xml.addAttribute("draw:glue-points", "10800 0 ?f1 10800 0 21600 10800 21600 21600 21600 ?f7 10800");
205 processModifiers(o, out, QList<int>() << 10800);
206 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
207 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 L 21600 21600 0 21600 Z N");
208 out.xml.addAttribute("draw:type", "isosceles-triangle");
209 out.xml.addAttribute("draw:text-areas", "?f1 10800 ?f2 18000 ?f3 7200 ?f4 21600");
210 setShapeMirroring(o, out);
211 equation(out,"f0","$0 ");
212 equation(out,"f1","$0 /2");
213 equation(out,"f2","?f1 +10800");
214 equation(out,"f3","$0 *2/3");
215 equation(out,"f4","?f3 +7200");
216 equation(out,"f5","21600-?f0 ");
217 equation(out,"f6","?f5 /2");
218 equation(out,"f7","21600-?f6 ");
219 out.xml.startElement("draw:handle");
220 out.xml.addAttribute("draw:handle-position", "$0 top");
221 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
222 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
223 out.xml.endElement(); // draw:handle
224 out.xml.endElement(); // enhanced geometry
225 out.xml.endElement(); // custom shape
226 }
227
228
processRightTriangle(const MSO::OfficeArtSpContainer & o,Writer & out)229 void ODrawToOdf::processRightTriangle(const MSO::OfficeArtSpContainer& o, Writer& out) {
230 out.xml.startElement("draw:custom-shape");
231 processStyleAndText(o, out);
232
233 out.xml.startElement("draw:enhanced-geometry");
234 out.xml.addAttribute("draw:glue-points", "10800 0 5400 10800 0 21600 10800 21600 21600 21600 16200 10800");
235 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
236 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 21600 0 21600 0 0 Z N");
237 out.xml.addAttribute("draw:type", "right-triangle");
238 out.xml.addAttribute("draw:text-areas", "1900 12700 12700 19700");
239 setShapeMirroring(o, out);
240 out.xml.endElement(); // enhanced geometry
241 out.xml.endElement(); // custom shape
242 }
243
244
processEllipse(const MSO::OfficeArtSpContainer & o,Writer & out)245 void ODrawToOdf::processEllipse(const MSO::OfficeArtSpContainer& o, Writer& out)
246 {
247 out.xml.startElement("draw:ellipse");
248 processStyleAndText(o, out);
249 out.xml.endElement(); // draw:ellipse
250 }
251
252 /*
253 void ODrawToOdf::processEllipse(const MSO::OfficeArtSpContainer& o, Writer& out) {
254 out.xml.startElement("draw:custom-shape");
255 processStyleAndText(o, out);
256
257 out.xml.startElement("draw:enhanced-geometry");
258 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163");
259 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
260 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z N");
261 out.xml.addAttribute("draw:type", "ellipse");
262 out.xml.addAttribute("draw:text-areas", "3163 3163 18437 18437");
263 setShapeMirroring(o, out);
264 out.xml.endElement(); // enhanced geometry
265 out.xml.endElement(); // custom shape
266 }
267 */
268
processHexagon(const MSO::OfficeArtSpContainer & o,Writer & out)269 void ODrawToOdf::processHexagon(const MSO::OfficeArtSpContainer& o, Writer& out) {
270 out.xml.startElement("draw:custom-shape");
271 processStyleAndText(o, out);
272
273 out.xml.startElement("draw:enhanced-geometry");
274 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
275 processModifiers(o, out, QList<int>() << 5400);
276 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
277 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 L ?f1 0 21600 10800 ?f1 21600 ?f0 21600 0 10800 Z N");
278 out.xml.addAttribute("draw:type", "hexagon");
279 out.xml.addAttribute("draw:text-areas", "?f3 ?f3 ?f4 ?f4");
280 setShapeMirroring(o, out);
281 equation(out,"f0","$0 ");
282 equation(out,"f1","21600-$0 ");
283 equation(out,"f2","$0 *100/234");
284 equation(out,"f3","?f2 +1700");
285 equation(out,"f4","21600-?f3 ");
286 out.xml.startElement("draw:handle");
287 out.xml.addAttribute("draw:handle-position", "$0 top");
288 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
289 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
290 out.xml.endElement(); // draw:handle
291 out.xml.endElement(); // enhanced geometry
292 out.xml.endElement(); // custom shape
293 }
294
295
processPlus(const MSO::OfficeArtSpContainer & o,Writer & out)296 void ODrawToOdf::processPlus(const MSO::OfficeArtSpContainer& o, Writer& out) {
297 out.xml.startElement("draw:custom-shape");
298 processStyleAndText(o, out);
299
300 out.xml.startElement("draw:enhanced-geometry");
301 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
302 processModifiers(o, out, QList<int>() << 5400);
303 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
304 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
305 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
306 out.xml.addAttribute("draw:enhanced-path", "M ?f1 0 L ?f2 0 ?f2 ?f1 21600 ?f1 21600 ?f3 ?f2 ?f3 ?f2 21600 ?f1 21600 ?f1 ?f3 0 ?f3 0 ?f1 ?f1 ?f1 ?f1 0 Z N");
307 out.xml.addAttribute("draw:type", "cross");
308 out.xml.addAttribute("draw:text-areas", "?f1 ?f1 ?f2 ?f3");
309 setShapeMirroring(o, out);
310 equation(out,"f0","$0 *10799/10800");
311 equation(out,"f1","?f0 ");
312 equation(out,"f2","right-?f0 ");
313 equation(out,"f3","bottom-?f0 ");
314 out.xml.startElement("draw:handle");
315 out.xml.addAttribute("draw:handle-position", "$0 top");
316 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
317 out.xml.addAttribute("draw:handle-switched", "true");
318 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
319 out.xml.endElement(); // draw:handle
320 out.xml.endElement(); // enhanced geometry
321 out.xml.endElement(); // custom shape
322 }
323
324
processPentagon(const MSO::OfficeArtSpContainer & o,Writer & out)325 void ODrawToOdf::processPentagon(const MSO::OfficeArtSpContainer& o, Writer& out) {
326 out.xml.startElement("draw:custom-shape");
327 processStyleAndText(o, out);
328
329 out.xml.startElement("draw:enhanced-geometry");
330 out.xml.addAttribute("draw:glue-points", "10800 0 0 8260 4230 21600 10800 21600 17370 21600 21600 8260");
331 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
332 out.xml.addAttribute("draw:enhanced-path", "M 10800 0 L 0 8260 4230 21600 17370 21600 21600 8260 10800 0 Z N");
333 out.xml.addAttribute("draw:type", "pentagon");
334 out.xml.addAttribute("draw:text-areas", "4230 5080 17370 21600");
335 setShapeMirroring(o, out);
336 out.xml.endElement(); // enhanced geometry
337 out.xml.endElement(); // custom shape
338 }
339
340
processCan(const MSO::OfficeArtSpContainer & o,Writer & out)341 void ODrawToOdf::processCan(const MSO::OfficeArtSpContainer& o, Writer& out) {
342 out.xml.startElement("draw:custom-shape");
343 processStyleAndText(o, out);
344
345 out.xml.startElement("draw:enhanced-geometry");
346 out.xml.addAttribute("draw:glue-points", "44 ?f6 44 0 0 10800 44 21600 88 10800");
347 processModifiers(o, out, QList<int>() << 5400);
348 out.xml.addAttribute("svg:viewBox", "0 0 88 21600");
349 out.xml.addAttribute("draw:enhanced-path", "M 44 0 C 20 0 0 ?f2 0 ?f0 L 0 ?f3 C 0 ?f4 20 21600 44 21600 68 21600 88 ?f4 88 ?f3 L 88 ?f0 C 88 ?f2 68 0 44 0 Z N M 44 0 C 20 0 0 ?f2 0 ?f0 0 ?f5 20 ?f6 44 ?f6 68 ?f6 88 ?f5 88 ?f0 88 ?f2 68 0 44 0 Z N");
350 out.xml.addAttribute("draw:type", "can");
351 out.xml.addAttribute("draw:text-areas", "0 ?f6 88 ?f3");
352 setShapeMirroring(o, out);
353 equation(out,"f0","$0 *2/4");
354 equation(out,"f1","?f0 *6/11");
355 equation(out,"f2","?f0 -?f1 ");
356 equation(out,"f3","21600-?f0 ");
357 equation(out,"f4","?f3 +?f1 ");
358 equation(out,"f5","?f0 +?f1 ");
359 equation(out,"f6","$0 *2/2");
360 equation(out,"f7","44");
361 out.xml.startElement("draw:handle");
362 out.xml.addAttribute("draw:handle-position", "?f7 $0");
363 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
364 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
365 out.xml.endElement(); // draw:handle
366 out.xml.endElement(); // enhanced geometry
367 out.xml.endElement(); // custom shape
368 }
369
370
processCube(const MSO::OfficeArtSpContainer & o,Writer & out)371 void ODrawToOdf::processCube(const MSO::OfficeArtSpContainer& o, Writer& out) {
372 out.xml.startElement("draw:custom-shape");
373 processStyleAndText(o, out);
374
375 out.xml.startElement("draw:enhanced-geometry");
376 out.xml.addAttribute("draw:glue-points", "?f7 0 ?f6 ?f1 0 ?f10 ?f6 21600 ?f4 ?f10 21600 ?f9");
377 processModifiers(o, out, QList<int>() << 5400);
378 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
379 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
380 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
381 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f12 L 0 ?f1 ?f2 0 ?f11 0 ?f11 ?f3 ?f4 ?f12 Z N M 0 ?f1 L ?f2 0 ?f11 0 ?f4 ?f1 Z N M ?f4 ?f12 L ?f4 ?f1 ?f11 0 ?f11 ?f3 Z N");
382 out.xml.addAttribute("draw:type", "cube");
383 out.xml.addAttribute("draw:text-areas", "0 ?f1 ?f4 ?f12");
384 setShapeMirroring(o, out);
385 equation(out,"f0","$0 ");
386 equation(out,"f1","top+?f0 ");
387 equation(out,"f2","left+?f0 ");
388 equation(out,"f3","bottom-?f0 ");
389 equation(out,"f4","right-?f0 ");
390 equation(out,"f5","right-?f2 ");
391 equation(out,"f6","?f5 /2");
392 equation(out,"f7","?f2 +?f6 ");
393 equation(out,"f8","bottom-?f1 ");
394 equation(out,"f9","?f8 /2");
395 equation(out,"f10","?f1 +?f9 ");
396 equation(out,"f11","right");
397 equation(out,"f12","bottom");
398 out.xml.startElement("draw:handle");
399 out.xml.addAttribute("draw:handle-position", "left $0");
400 out.xml.addAttribute("draw:handle-switched", "true");
401 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
402 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
403 out.xml.endElement(); // draw:handle
404 out.xml.endElement(); // enhanced geometry
405 out.xml.endElement(); // custom shape
406 }
407
408
processBevel(const MSO::OfficeArtSpContainer & o,Writer & out)409 void ODrawToOdf::processBevel(const MSO::OfficeArtSpContainer& o, Writer& out) {
410 out.xml.startElement("draw:custom-shape");
411 processStyleAndText(o, out);
412
413 out.xml.startElement("draw:enhanced-geometry");
414 processModifiers(o, out, QList<int>() << 2700);
415 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
416 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
417 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
418 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f1 ?f0 ?f0 ?f0 Z N M 21600 0 L 21600 21600 ?f1 ?f2 ?f1 ?f0 Z N M 21600 21600 L 0 21600 ?f0 ?f2 ?f1 ?f2 Z N M 0 21600 L 0 0 ?f0 ?f0 ?f0 ?f2 Z N");
419 out.xml.addAttribute("draw:type", "quad-bevel");
420 out.xml.addAttribute("draw:text-areas", "?f0 ?f0 ?f1 ?f2");
421 setShapeMirroring(o, out);
422 equation(out,"f0","$0 *21599/21600");
423 equation(out,"f1","right-?f0 ");
424 equation(out,"f2","bottom-?f0 ");
425 out.xml.startElement("draw:handle");
426 out.xml.addAttribute("draw:handle-position", "$0 top");
427 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
428 out.xml.addAttribute("draw:handle-switched", "true");
429 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
430 out.xml.endElement(); // draw:handle
431 out.xml.endElement(); // enhanced geometry
432 out.xml.endElement(); // custom shape
433 }
434
435
processFoldedCorner(const MSO::OfficeArtSpContainer & o,Writer & out)436 void ODrawToOdf::processFoldedCorner(const MSO::OfficeArtSpContainer& o, Writer& out) {
437 out.xml.startElement("draw:custom-shape");
438 processStyleAndText(o, out);
439
440 out.xml.startElement("draw:enhanced-geometry");
441 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
442 processModifiers(o, out, QList<int>() << 18900);
443 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
444 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 ?f0 ?f0 21600 0 21600 Z N M ?f0 21600 L ?f3 ?f0 C ?f8 ?f9 ?f10 ?f11 21600 ?f0 Z N");
445 out.xml.addAttribute("draw:type", "paper");
446 out.xml.addAttribute("draw:text-areas", "0 0 21600 ?f11");
447 setShapeMirroring(o, out);
448 equation(out,"f0","$0 ");
449 equation(out,"f1","21600-?f0 ");
450 equation(out,"f2","?f1 *8000/10800");
451 equation(out,"f3","21600-?f2 ");
452 equation(out,"f4","?f1 /2");
453 equation(out,"f5","?f1 /4");
454 equation(out,"f6","?f1 /7");
455 equation(out,"f7","?f1 /16");
456 equation(out,"f8","?f3 +?f5 ");
457 equation(out,"f9","?f0 +?f6 ");
458 equation(out,"f10","21600-?f4 ");
459 equation(out,"f11","?f0 +?f7 ");
460 out.xml.startElement("draw:handle");
461 out.xml.addAttribute("draw:handle-position", "$0 bottom");
462 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
463 out.xml.addAttribute("draw:handle-range-x-minimum", "10800");
464 out.xml.endElement(); // draw:handle
465 out.xml.endElement(); // enhanced geometry
466 out.xml.endElement(); // custom shape
467 }
468
469
processSmileyFace(const MSO::OfficeArtSpContainer & o,Writer & out)470 void ODrawToOdf::processSmileyFace(const MSO::OfficeArtSpContainer& o, Writer& out) {
471 out.xml.startElement("draw:custom-shape");
472 processStyleAndText(o, out);
473
474 out.xml.startElement("draw:enhanced-geometry");
475 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163");
476 processModifiers(o, out, QList<int>() << 17520);
477 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
478 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z N U 7305 7515 1165 1165 0 360 Z N U 14295 7515 1165 1165 0 360 Z N M 4870 ?f1 C 8680 ?f2 12920 ?f2 16730 ?f1 F N");
479 out.xml.addAttribute("draw:type", "smiley");
480 out.xml.addAttribute("draw:text-areas", "3163 3163 18437 18437");
481 setShapeMirroring(o, out);
482 equation(out,"f0","$0 -15510");
483 equation(out,"f1","17520-?f0 ");
484 equation(out,"f2","15510+?f0 ");
485 out.xml.startElement("draw:handle");
486 out.xml.addAttribute("draw:handle-position", "10800 $0");
487 out.xml.addAttribute("draw:handle-range-y-minimum", "15510");
488 out.xml.addAttribute("draw:handle-range-y-maximum", "17520");
489 out.xml.endElement(); // draw:handle
490 out.xml.endElement(); // enhanced geometry
491 out.xml.endElement(); // custom shape
492 }
493
494
processDonut(const MSO::OfficeArtSpContainer & o,Writer & out)495 void ODrawToOdf::processDonut(const MSO::OfficeArtSpContainer& o, Writer& out) {
496 out.xml.startElement("draw:custom-shape");
497 processStyleAndText(o, out);
498
499 out.xml.startElement("draw:enhanced-geometry");
500 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163");
501 processModifiers(o, out, QList<int>() << 5400);
502 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
503 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z U 10800 10800 ?f1 ?f1 0 360 N");
504 out.xml.addAttribute("draw:type", "ring");
505 out.xml.addAttribute("draw:text-areas", "3163 3163 18437 18437");
506 setShapeMirroring(o, out);
507 equation(out,"f0","$0 ");
508 equation(out,"f1","10800-$0 ");
509 out.xml.startElement("draw:handle");
510 out.xml.addAttribute("draw:handle-position", "$0 10800");
511 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
512 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
513 out.xml.endElement(); // draw:handle
514 out.xml.endElement(); // enhanced geometry
515 out.xml.endElement(); // custom shape
516 }
517
518
processNoSmoking(const MSO::OfficeArtSpContainer & o,Writer & out)519 void ODrawToOdf::processNoSmoking(const MSO::OfficeArtSpContainer& o, Writer& out) {
520 out.xml.startElement("draw:custom-shape");
521 processStyleAndText(o, out);
522
523 out.xml.startElement("draw:enhanced-geometry");
524 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163");
525 processModifiers(o, out, QList<int>() << 2700);
526 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
527 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z B ?f0 ?f0 ?f1 ?f1 ?f9 ?f10 ?f11 ?f12 Z B ?f0 ?f0 ?f1 ?f1 ?f13 ?f14 ?f15 ?f16 Z N");
528 out.xml.addAttribute("draw:type", "forbidden");
529 out.xml.addAttribute("draw:text-areas", "3163 3163 18437 18437");
530 setShapeMirroring(o, out);
531 equation(out,"f0","$0 ");
532 equation(out,"f1","21600-$0 ");
533 equation(out,"f2","10800-$0 ");
534 equation(out,"f3","$0 /2");
535 equation(out,"f4","sqrt(?f2 *?f2 -?f3 *?f3 )");
536 equation(out,"f5","10800-?f3 ");
537 equation(out,"f6","10800+?f3 ");
538 equation(out,"f7","10800-?f4 ");
539 equation(out,"f8","10800+?f4 ");
540 equation(out,"f9","(cos(45*(pi/180))*(?f5 -10800)+sin(45*(pi/180))*(?f7 -10800))+10800");
541 equation(out,"f10","-(sin(45*(pi/180))*(?f5 -10800)-cos(45*(pi/180))*(?f7 -10800))+10800");
542 equation(out,"f11","(cos(45*(pi/180))*(?f5 -10800)+sin(45*(pi/180))*(?f8 -10800))+10800");
543 equation(out,"f12","-(sin(45*(pi/180))*(?f5 -10800)-cos(45*(pi/180))*(?f8 -10800))+10800");
544 equation(out,"f13","(cos(45*(pi/180))*(?f6 -10800)+sin(45*(pi/180))*(?f8 -10800))+10800");
545 equation(out,"f14","-(sin(45*(pi/180))*(?f6 -10800)-cos(45*(pi/180))*(?f8 -10800))+10800");
546 equation(out,"f15","(cos(45*(pi/180))*(?f6 -10800)+sin(45*(pi/180))*(?f7 -10800))+10800");
547 equation(out,"f16","-(sin(45*(pi/180))*(?f6 -10800)-cos(45*(pi/180))*(?f7 -10800))+10800");
548 out.xml.startElement("draw:handle");
549 out.xml.addAttribute("draw:handle-position", "$0 10800");
550 out.xml.addAttribute("draw:handle-range-x-maximum", "7200");
551 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
552 out.xml.endElement(); // draw:handle
553 out.xml.endElement(); // enhanced geometry
554 out.xml.endElement(); // custom shape
555 }
556
557
processBlockArc(const MSO::OfficeArtSpContainer & o,Writer & out)558 void ODrawToOdf::processBlockArc(const MSO::OfficeArtSpContainer& o, Writer& out) {
559 out.xml.startElement("draw:custom-shape");
560 processStyleAndText(o, out);
561
562 out.xml.startElement("draw:enhanced-geometry");
563 processModifiers(o, out, QList<int>() << 180<< 5400);
564 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
565 out.xml.addAttribute("draw:enhanced-path", "B 0 0 21600 21600 ?f4 ?f3 ?f2 ?f3 W ?f5 ?f5 ?f6 ?f6 ?f2 ?f3 ?f4 ?f3 Z N");
566 out.xml.addAttribute("draw:type", "block-arc");
567 setShapeMirroring(o, out);
568 equation(out,"f0","10800*cos($0 *(pi/180))");
569 equation(out,"f1","10800*sin($0 *(pi/180))");
570 equation(out,"f2","?f0 +10800");
571 equation(out,"f3","?f1 +10800");
572 equation(out,"f4","21600-?f2 ");
573 equation(out,"f5","10800-$1 ");
574 equation(out,"f6","10800+$1 ");
575 equation(out,"f7","?f5 *cos($0 *(pi/180))");
576 equation(out,"f8","?f5 *sin($0 *(pi/180))");
577 out.xml.startElement("draw:handle");
578 out.xml.addAttribute("draw:handle-position", "$1 $0");
579 out.xml.addAttribute("draw:handle-radius-range-minimum", "0");
580 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800");
581 out.xml.addAttribute("draw:handle-polar", "10800 10800");
582 out.xml.endElement(); // draw:handle
583 out.xml.endElement(); // enhanced geometry
584 out.xml.endElement(); // custom shape
585 }
586
587
processHeart(const MSO::OfficeArtSpContainer & o,Writer & out)588 void ODrawToOdf::processHeart(const MSO::OfficeArtSpContainer& o, Writer& out) {
589 out.xml.startElement("draw:custom-shape");
590 processStyleAndText(o, out);
591
592 out.xml.startElement("draw:enhanced-geometry");
593 out.xml.addAttribute("draw:glue-points", "10800 2180 3090 10800 10800 21600 18490 10800");
594 out.xml.addAttribute("svg:viewBox", "0 0 21615 21602");
595 out.xml.addAttribute("draw:enhanced-path", "M 10800 21599 L 321 6886 70 6036 C -9 5766 -1 5474 2 5192 6 4918 43 4641 101 4370 159 4103 245 3837 353 3582 460 3326 591 3077 741 2839 892 2598 1066 2369 1253 2155 1443 1938 1651 1732 1874 1543 2097 1351 2337 1174 2587 1014 2839 854 3106 708 3380 584 3656 459 3945 350 4237 264 4533 176 4838 108 5144 66 5454 22 5771 1 6086 3 6407 7 6731 35 7048 89 7374 144 7700 226 8015 335 8344 447 8667 590 8972 756 9297 932 9613 1135 9907 1363 10224 1609 10504 1900 10802 2169 L 11697 1363 C 11971 1116 12304 934 12630 756 12935 590 13528 450 13589 335 13901 226 14227 144 14556 89 14872 35 15195 7 15517 3 15830 0 16147 22 16458 66 16764 109 17068 177 17365 264 17658 349 17946 458 18222 584 18496 708 18762 854 19015 1014 19264 1172 19504 1349 19730 1543 19950 1731 20158 1937 20350 2155 20536 2369 20710 2598 20861 2839 21010 3074 21143 3323 21251 3582 21357 3835 21443 4099 21502 4370 21561 4639 21595 4916 21600 5192 21606 5474 21584 5760 21532 6036 21478 6326 21366 6603 21282 6887 L 10802 21602 Z N");
596 out.xml.addAttribute("draw:type", "heart");
597 out.xml.addAttribute("draw:text-areas", "5080 2540 16520 13550");
598 setShapeMirroring(o, out);
599 out.xml.endElement(); // enhanced geometry
600 out.xml.endElement(); // custom shape
601 }
602
603
processLightningBolt(const MSO::OfficeArtSpContainer & o,Writer & out)604 void ODrawToOdf::processLightningBolt(const MSO::OfficeArtSpContainer& o, Writer& out) {
605 out.xml.startElement("draw:custom-shape");
606 processStyleAndText(o, out);
607
608 out.xml.startElement("draw:enhanced-geometry");
609 out.xml.addAttribute("draw:glue-points", "8458 0 0 3923 4993 9720 9987 14934 21600 21600 16558 12016 12831 6120");
610 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
611 out.xml.addAttribute("draw:enhanced-path", "M 8458 0 L 0 3923 7564 8416 4993 9720 12197 13904 9987 14934 21600 21600 14768 12911 16558 12016 11030 6840 12831 6120 8458 0 Z N");
612 out.xml.addAttribute("draw:type", "lightning");
613 out.xml.addAttribute("draw:text-areas", "8680 7410 13970 14190");
614 setShapeMirroring(o, out);
615 out.xml.endElement(); // enhanced geometry
616 out.xml.endElement(); // custom shape
617 }
618
619
processSun(const MSO::OfficeArtSpContainer & o,Writer & out)620 void ODrawToOdf::processSun(const MSO::OfficeArtSpContainer& o, Writer& out) {
621 out.xml.startElement("draw:custom-shape");
622 processStyleAndText(o, out);
623
624 out.xml.startElement("draw:enhanced-geometry");
625 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
626 processModifiers(o, out, QList<int>() << 5400);
627 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
628 out.xml.addAttribute("draw:enhanced-path", "M 0 10800 L ?f4 ?f8 ?f4 ?f9 Z N M ?f10 ?f11 L ?f12 ?f13 ?f14 ?f15 Z N M ?f16 ?f17 L ?f18 ?f19 ?f20 ?f21 Z N M ?f22 ?f23 L ?f24 ?f25 ?f26 ?f27 Z N M ?f28 ?f29 L ?f30 ?f31 ?f32 ?f33 Z N M ?f34 ?f35 L ?f36 ?f37 ?f38 ?f39 Z N M ?f40 ?f41 L ?f42 ?f43 ?f44 ?f45 Z N M ?f46 ?f47 L ?f48 ?f49 ?f50 ?f51 Z N U 10800 10800 ?f54 ?f54 0 360 Z N");
629 out.xml.addAttribute("draw:type", "sun");
630 out.xml.addAttribute("draw:text-areas", "?f52 ?f52 ?f53 ?f53");
631 setShapeMirroring(o, out);
632 equation(out,"f0","$0 ");
633 equation(out,"f1","21600-$0 ");
634 equation(out,"f2","$0 -2700");
635 equation(out,"f3","?f2 *5080/7425");
636 equation(out,"f4","?f3 +2540");
637 equation(out,"f5","10125-$0 ");
638 equation(out,"f6","?f5 *2120/7425");
639 equation(out,"f7","?f6 +210");
640 equation(out,"f8","10800+?f7 ");
641 equation(out,"f9","10800-?f7 ");
642 equation(out,"f10","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800");
643 equation(out,"f11","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800");
644 equation(out,"f12","(cos(45*(pi/180))*(?f4 -10800)+sin(45*(pi/180))*(?f8 -10800))+10800");
645 equation(out,"f13","-(sin(45*(pi/180))*(?f4 -10800)-cos(45*(pi/180))*(?f8 -10800))+10800");
646 equation(out,"f14","(cos(45*(pi/180))*(?f4 -10800)+sin(45*(pi/180))*(?f9 -10800))+10800");
647 equation(out,"f15","-(sin(45*(pi/180))*(?f4 -10800)-cos(45*(pi/180))*(?f9 -10800))+10800");
648 equation(out,"f16","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800");
649 equation(out,"f17","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800");
650 equation(out,"f18","(cos(90*(pi/180))*(?f4 -10800)+sin(90*(pi/180))*(?f8 -10800))+10800");
651 equation(out,"f19","-(sin(90*(pi/180))*(?f4 -10800)-cos(90*(pi/180))*(?f8 -10800))+10800");
652 equation(out,"f20","(cos(90*(pi/180))*(?f4 -10800)+sin(90*(pi/180))*(?f9 -10800))+10800");
653 equation(out,"f21","-(sin(90*(pi/180))*(?f4 -10800)-cos(90*(pi/180))*(?f9 -10800))+10800");
654 equation(out,"f22","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800");
655 equation(out,"f23","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800");
656 equation(out,"f24","(cos(135*(pi/180))*(?f4 -10800)+sin(135*(pi/180))*(?f8 -10800))+10800");
657 equation(out,"f25","-(sin(135*(pi/180))*(?f4 -10800)-cos(135*(pi/180))*(?f8 -10800))+10800");
658 equation(out,"f26","(cos(135*(pi/180))*(?f4 -10800)+sin(135*(pi/180))*(?f9 -10800))+10800");
659 equation(out,"f27","-(sin(135*(pi/180))*(?f4 -10800)-cos(135*(pi/180))*(?f9 -10800))+10800");
660 equation(out,"f28","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800");
661 equation(out,"f29","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800");
662 equation(out,"f30","(cos(180*(pi/180))*(?f4 -10800)+sin(180*(pi/180))*(?f8 -10800))+10800");
663 equation(out,"f31","-(sin(180*(pi/180))*(?f4 -10800)-cos(180*(pi/180))*(?f8 -10800))+10800");
664 equation(out,"f32","(cos(180*(pi/180))*(?f4 -10800)+sin(180*(pi/180))*(?f9 -10800))+10800");
665 equation(out,"f33","-(sin(180*(pi/180))*(?f4 -10800)-cos(180*(pi/180))*(?f9 -10800))+10800");
666 equation(out,"f34","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800");
667 equation(out,"f35","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800");
668 equation(out,"f36","(cos(225*(pi/180))*(?f4 -10800)+sin(225*(pi/180))*(?f8 -10800))+10800");
669 equation(out,"f37","-(sin(225*(pi/180))*(?f4 -10800)-cos(225*(pi/180))*(?f8 -10800))+10800");
670 equation(out,"f38","(cos(225*(pi/180))*(?f4 -10800)+sin(225*(pi/180))*(?f9 -10800))+10800");
671 equation(out,"f39","-(sin(225*(pi/180))*(?f4 -10800)-cos(225*(pi/180))*(?f9 -10800))+10800");
672 equation(out,"f40","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800");
673 equation(out,"f41","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800");
674 equation(out,"f42","(cos(270*(pi/180))*(?f4 -10800)+sin(270*(pi/180))*(?f8 -10800))+10800");
675 equation(out,"f43","-(sin(270*(pi/180))*(?f4 -10800)-cos(270*(pi/180))*(?f8 -10800))+10800");
676 equation(out,"f44","(cos(270*(pi/180))*(?f4 -10800)+sin(270*(pi/180))*(?f9 -10800))+10800");
677 equation(out,"f45","-(sin(270*(pi/180))*(?f4 -10800)-cos(270*(pi/180))*(?f9 -10800))+10800");
678 equation(out,"f46","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800");
679 equation(out,"f47","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800");
680 equation(out,"f48","(cos(315*(pi/180))*(?f4 -10800)+sin(315*(pi/180))*(?f8 -10800))+10800");
681 equation(out,"f49","-(sin(315*(pi/180))*(?f4 -10800)-cos(315*(pi/180))*(?f8 -10800))+10800");
682 equation(out,"f50","(cos(315*(pi/180))*(?f4 -10800)+sin(315*(pi/180))*(?f9 -10800))+10800");
683 equation(out,"f51","-(sin(315*(pi/180))*(?f4 -10800)-cos(315*(pi/180))*(?f9 -10800))+10800");
684 equation(out,"f52","(cos(45*(pi/180))*($0 -10800)+sin(45*(pi/180))*(10800-10800))+10800");
685 equation(out,"f53","(cos(225*(pi/180))*($0 -10800)+sin(225*(pi/180))*(10800-10800))+10800");
686 equation(out,"f54","10800-$0 ");
687 out.xml.startElement("draw:handle");
688 out.xml.addAttribute("draw:handle-position", "$0 10800");
689 out.xml.addAttribute("draw:handle-range-x-maximum", "10125");
690 out.xml.addAttribute("draw:handle-range-x-minimum", "2700");
691 out.xml.endElement(); // draw:handle
692 out.xml.endElement(); // enhanced geometry
693 out.xml.endElement(); // custom shape
694 }
695
696
processMoon(const MSO::OfficeArtSpContainer & o,Writer & out)697 void ODrawToOdf::processMoon(const MSO::OfficeArtSpContainer& o, Writer& out) {
698 out.xml.startElement("draw:custom-shape");
699 processStyleAndText(o, out);
700
701 out.xml.startElement("draw:enhanced-geometry");
702 out.xml.addAttribute("draw:glue-points", "21600 0 0 10800 21600 21600 ?f0 10800");
703 processModifiers(o, out, QList<int>() << 10800);
704 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
705 out.xml.addAttribute("draw:enhanced-path", "M 21600 0 C ?f3 ?f4 ?f0 5080 ?f0 10800 ?f0 16520 ?f3 ?f5 21600 21600 9740 21600 0 16730 0 10800 0 4870 9740 0 21600 0 Z N");
706 out.xml.addAttribute("draw:type", "moon");
707 out.xml.addAttribute("draw:text-areas", "?f9 ?f8 ?f0 ?f10");
708 setShapeMirroring(o, out);
709 equation(out,"f0","$0 ");
710 equation(out,"f1","21600-$0 ");
711 equation(out,"f2","?f1 /2");
712 equation(out,"f3","?f2 +$0 ");
713 equation(out,"f4","$0 *1794/10000");
714 equation(out,"f5","21600-?f4 ");
715 equation(out,"f6","$0 *400/18900");
716 equation(out,"f7","(cos(?f6 *(pi/180))*(0-10800)+sin(?f6 *(pi/180))*(10800-10800))+10800");
717 equation(out,"f8","-(sin(?f6 *(pi/180))*(0-10800)-cos(?f6 *(pi/180))*(10800-10800))+10800");
718 equation(out,"f9","?f7 +?f7 ");
719 equation(out,"f10","21600-?f8 ");
720 out.xml.startElement("draw:handle");
721 out.xml.addAttribute("draw:handle-position", "$0 10800");
722 out.xml.addAttribute("draw:handle-range-x-maximum", "18900");
723 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
724 out.xml.endElement(); // draw:handle
725 out.xml.endElement(); // enhanced geometry
726 out.xml.endElement(); // custom shape
727 }
728
processNotchedCircularArrow(const MSO::OfficeArtSpContainer & o,Writer & out)729 void ODrawToOdf::processNotchedCircularArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
730 out.xml.startElement("draw:custom-shape");
731 processStyleAndText(o, out);
732
733 out.xml.startElement("draw:enhanced-geometry");
734
735 // custom way for processing modifieres as this shape
736 // return the AdjustValue, AdjustValue2 16-bit shifted
737 const AdjustValue* val1 = get<AdjustValue>(o);
738 const Adjust2Value* val2 = get<Adjust2Value>(o);
739 QString modifiers = QString::number(val1 ? val1->adjustvalue >> 16 : 270);
740 modifiers += QString(" %1").arg(val2 ? val2->adjust2value >> 16 : 0);
741 out.xml.addAttribute("draw:modifiers", modifiers);
742
743 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
744 out.xml.addAttribute("draw:enhanced-path", "W 0 0 21600 21600 ?f3 ?f1 ?f7 ?f5 S L 10800 10800 Z N W 0 0 21600 21600 ?f3 ?f1 ?f7 ?f5 F N");
745 out.xml.addAttribute("draw:type", "mso-spt100");
746 out.xml.addAttribute("draw:text-areas", "10799 0 21599 10799");
747 setShapeMirroring(o, out);
748 equation(out,"f0","10800*sin($0 *(pi/180))");
749 equation(out,"f1","?f0 +10800");
750 equation(out,"f2","10800*cos($0 *(pi/180))");
751 equation(out,"f3","?f2 +10800");
752 equation(out,"f4","10800*sin($1 *(pi/180))");
753 equation(out,"f5","?f4 +10800");
754 equation(out,"f6","10800*cos($1 *(pi/180))");
755 equation(out,"f7","?f6 +10800");
756 out.xml.startElement("draw:handle");
757 out.xml.addAttribute("draw:handle-position", "10800 $0");
758 out.xml.addAttribute("draw:handle-radius-range-minimum", "10800");
759 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800");
760 out.xml.addAttribute("draw:handle-polar", "10800 10800");
761 out.xml.endElement(); // draw:handle
762 out.xml.startElement("draw:handle");
763 out.xml.addAttribute("draw:handle-position", "10800 $1");
764 out.xml.addAttribute("draw:handle-radius-range-minimum", "10800");
765 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800");
766 out.xml.addAttribute("draw:handle-polar", "10800 10800");
767 out.xml.endElement(); // draw:handle
768 out.xml.endElement(); // enhanced geometry
769 out.xml.endElement(); // custom shape
770 }
771
processBracketPair(const MSO::OfficeArtSpContainer & o,Writer & out)772 void ODrawToOdf::processBracketPair(const MSO::OfficeArtSpContainer& o, Writer& out) {
773 out.xml.startElement("draw:custom-shape");
774 processStyleAndText(o, out);
775
776 out.xml.startElement("draw:enhanced-geometry");
777 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
778 processModifiers(o, out, QList<int>() << 3700);
779 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
780 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
781 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 X 0 ?f1 L 0 ?f2 Y ?f0 21600 N M ?f3 21600 X 21600 ?f2 L 21600 ?f1 Y ?f3 0 N");
782 out.xml.addAttribute("draw:type", "bracket-pair");
783 out.xml.addAttribute("draw:text-areas", "?f8 ?f9 ?f10 ?f11");
784 setShapeMirroring(o, out);
785 equation(out,"f0","left+$0 ");
786 equation(out,"f1","top+$0 ");
787 equation(out,"f2","bottom-$0 ");
788 equation(out,"f3","right-$0 ");
789 equation(out,"f4","-(sin(45*(pi/180))*($0 -10800)-cos(45*(pi/180))*(0-10800))+10800");
790 equation(out,"f5","?f4 -10800");
791 equation(out,"f6","-$0 ");
792 equation(out,"f7","?f6 -?f5 ");
793 equation(out,"f8","left-?f7 ");
794 equation(out,"f9","top-?f7 ");
795 equation(out,"f10","right+?f7 ");
796 equation(out,"f11","bottom+?f7 ");
797 equation(out,"f12","left-?f5 ");
798 equation(out,"f13","top-?f5 ");
799 equation(out,"f14","right+?f5 ");
800 equation(out,"f15","bottom+?f5 ");
801 out.xml.startElement("draw:handle");
802 out.xml.addAttribute("draw:handle-position", "$0 top");
803 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
804 out.xml.addAttribute("draw:handle-switched", "true");
805 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
806 out.xml.endElement(); // draw:handle
807 out.xml.endElement(); // enhanced geometry
808 out.xml.endElement(); // custom shape
809 }
810
811
processBracePair(const MSO::OfficeArtSpContainer & o,Writer & out)812 void ODrawToOdf::processBracePair(const MSO::OfficeArtSpContainer& o, Writer& out) {
813 out.xml.startElement("draw:custom-shape");
814 processStyleAndText(o, out);
815
816 out.xml.startElement("draw:enhanced-geometry");
817 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
818 processModifiers(o, out, QList<int>() << 1800);
819 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
820 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
821 out.xml.addAttribute("draw:enhanced-path", "M ?f4 0 X ?f0 ?f1 L ?f0 ?f6 Y 0 10800 X ?f0 ?f7 L ?f0 ?f2 Y ?f4 21600 N M ?f8 21600 X ?f3 ?f2 L ?f3 ?f7 Y 21600 10800 X ?f3 ?f6 L ?f3 ?f1 Y ?f8 0 N");
822 out.xml.addAttribute("draw:type", "brace-pair");
823 out.xml.addAttribute("draw:text-areas", "?f11 ?f12 ?f13 ?f14");
824 setShapeMirroring(o, out);
825 equation(out,"f0","left+$0 ");
826 equation(out,"f1","top+$0 ");
827 equation(out,"f2","bottom-$0 ");
828 equation(out,"f3","right-$0 ");
829 equation(out,"f4","?f0 *2");
830 equation(out,"f5","$0 *2");
831 equation(out,"f6","10800-$0 ");
832 equation(out,"f7","21600-?f6 ");
833 equation(out,"f8","right-?f5 ");
834 equation(out,"f9","$0 /3");
835 equation(out,"f10","?f9 +$0 ");
836 equation(out,"f11","left+?f10 ");
837 equation(out,"f12","top+?f9 ");
838 equation(out,"f13","right-?f10 ");
839 equation(out,"f14","bottom-?f9 ");
840 out.xml.startElement("draw:handle");
841 out.xml.addAttribute("draw:handle-position", "left $0");
842 out.xml.addAttribute("draw:handle-switched", "true");
843 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
844 out.xml.addAttribute("draw:handle-range-y-maximum", "5400");
845 out.xml.endElement(); // draw:handle
846 out.xml.endElement(); // enhanced geometry
847 out.xml.endElement(); // custom shape
848 }
849
850
processPlaque(const MSO::OfficeArtSpContainer & o,Writer & out)851 void ODrawToOdf::processPlaque(const MSO::OfficeArtSpContainer& o, Writer& out) {
852 out.xml.startElement("draw:custom-shape");
853 processStyleAndText(o, out);
854
855 out.xml.startElement("draw:enhanced-geometry");
856 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
857 processModifiers(o, out, QList<int>() << 3600);
858 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
859 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
860 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
861 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 Y 0 ?f1 L 0 ?f2 X ?f0 21600 L ?f3 21600 Y 21600 ?f2 L 21600 ?f1 X ?f3 0 Z N");
862 out.xml.addAttribute("draw:type", "mso-spt21");
863 out.xml.addAttribute("draw:text-areas", "?f12 ?f13 ?f14 ?f15");
864 setShapeMirroring(o, out);
865 equation(out,"f0","left+$0 ");
866 equation(out,"f1","top+$0 ");
867 equation(out,"f2","bottom-$0 ");
868 equation(out,"f3","right-$0 ");
869 equation(out,"f4","-(sin(45*(pi/180))*($0 -10800)-cos(45*(pi/180))*(0-10800))+10800");
870 equation(out,"f5","?f4 -10800");
871 equation(out,"f6","-$0 ");
872 equation(out,"f7","?f6 -?f5 ");
873 equation(out,"f8","left-?f7 ");
874 equation(out,"f9","top-?f7 ");
875 equation(out,"f10","right+?f7 ");
876 equation(out,"f11","bottom+?f7 ");
877 equation(out,"f12","left-?f5 ");
878 equation(out,"f13","top-?f5 ");
879 equation(out,"f14","right+?f5 ");
880 equation(out,"f15","bottom+?f5 ");
881 out.xml.startElement("draw:handle");
882 out.xml.addAttribute("draw:handle-position", "$0 top");
883 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
884 out.xml.addAttribute("draw:handle-switched", "true");
885 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
886 out.xml.endElement(); // draw:handle
887 out.xml.endElement(); // enhanced geometry
888 out.xml.endElement(); // custom shape
889 }
890
891
processLeftBracket(const MSO::OfficeArtSpContainer & o,Writer & out)892 void ODrawToOdf::processLeftBracket(const MSO::OfficeArtSpContainer& o, Writer& out) {
893 out.xml.startElement("draw:custom-shape");
894 processStyleAndText(o, out);
895
896 out.xml.startElement("draw:enhanced-geometry");
897 out.xml.addAttribute("draw:glue-points", "21600 0 0 10800 21600 21600");
898 processModifiers(o, out, QList<int>() << 1800);
899 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
900 out.xml.addAttribute("draw:enhanced-path", "M 21600 0 C 10800 0 0 ?f3 0 ?f1 L 0 ?f2 C 0 ?f4 10800 21600 21600 21600 N");
901 out.xml.addAttribute("draw:type", "left-bracket");
902 out.xml.addAttribute("draw:text-areas", "6350 ?f3 21600 ?f4");
903 setShapeMirroring(o, out);
904 equation(out,"f0","$0 /2");
905 equation(out,"f1","top+$0 ");
906 equation(out,"f2","bottom-$0 ");
907 equation(out,"f3","top+?f0 ");
908 equation(out,"f4","bottom-?f0 ");
909 out.xml.startElement("draw:handle");
910 out.xml.addAttribute("draw:handle-position", "left $0");
911 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
912 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
913 out.xml.endElement(); // draw:handle
914 out.xml.endElement(); // enhanced geometry
915 out.xml.endElement(); // custom shape
916 }
917
918
processRightBracket(const MSO::OfficeArtSpContainer & o,Writer & out)919 void ODrawToOdf::processRightBracket(const MSO::OfficeArtSpContainer& o, Writer& out) {
920 out.xml.startElement("draw:custom-shape");
921 processStyleAndText(o, out);
922
923 out.xml.startElement("draw:enhanced-geometry");
924 out.xml.addAttribute("draw:glue-points", "0 0 0 21600 21600 10800");
925 processModifiers(o, out, QList<int>() << 1800);
926 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
927 out.xml.addAttribute("draw:enhanced-path", "M 0 0 C 10800 0 21600 ?f3 21600 ?f1 L 21600 ?f2 C 21600 ?f4 10800 21600 0 21600 N");
928 out.xml.addAttribute("draw:type", "right-bracket");
929 out.xml.addAttribute("draw:text-areas", "0 ?f3 15150 ?f4");
930 setShapeMirroring(o, out);
931 equation(out,"f0","$0 /2");
932 equation(out,"f1","top+$0 ");
933 equation(out,"f2","bottom-$0 ");
934 equation(out,"f3","top+?f0 ");
935 equation(out,"f4","bottom-?f0 ");
936 out.xml.startElement("draw:handle");
937 out.xml.addAttribute("draw:handle-position", "right $0");
938 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
939 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
940 out.xml.endElement(); // draw:handle
941 out.xml.endElement(); // enhanced geometry
942 out.xml.endElement(); // custom shape
943 }
944
945
processLeftBrace(const MSO::OfficeArtSpContainer & o,Writer & out)946 void ODrawToOdf::processLeftBrace(const MSO::OfficeArtSpContainer& o, Writer& out) {
947 out.xml.startElement("draw:custom-shape");
948 processStyleAndText(o, out);
949
950 out.xml.startElement("draw:enhanced-geometry");
951 out.xml.addAttribute("draw:glue-points", "21600 0 0 10800 21600 21600");
952 processModifiers(o, out, QList<int>() << 1800<< 10800);
953 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
954 out.xml.addAttribute("draw:enhanced-path", "M 21600 0 C 16200 0 10800 ?f0 10800 ?f1 L 10800 ?f2 C 10800 ?f3 5400 ?f4 0 ?f4 5400 ?f4 10800 ?f5 10800 ?f6 L 10800 ?f7 C 10800 ?f8 16200 21600 21600 21600 N");
955 out.xml.addAttribute("draw:type", "left-brace");
956 out.xml.addAttribute("draw:text-areas", "13800 ?f9 21600 ?f10");
957 setShapeMirroring(o, out);
958 equation(out,"f0","$0 /2");
959 equation(out,"f1","$0 ");
960 equation(out,"f2","?f4 -$0 ");
961 equation(out,"f3","?f4 -?f0 ");
962 equation(out,"f4","$1 ");
963 equation(out,"f5","?f4 +?f0 ");
964 equation(out,"f6","?f4 +$0 ");
965 equation(out,"f7","21600-$0 ");
966 equation(out,"f8","21600-?f0 ");
967 equation(out,"f9","$0 *10000/31953");
968 equation(out,"f10","21600-?f9 ");
969 out.xml.startElement("draw:handle");
970 out.xml.addAttribute("draw:handle-position", "10800 $0");
971 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
972 out.xml.addAttribute("draw:handle-range-y-maximum", "5400");
973 out.xml.endElement(); // draw:handle
974 out.xml.startElement("draw:handle");
975 out.xml.addAttribute("draw:handle-position", "left $1");
976 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
977 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
978 out.xml.endElement(); // draw:handle
979 out.xml.endElement(); // enhanced geometry
980 out.xml.endElement(); // custom shape
981 }
982
983
processRightBrace(const MSO::OfficeArtSpContainer & o,Writer & out)984 void ODrawToOdf::processRightBrace(const MSO::OfficeArtSpContainer& o, Writer& out) {
985 out.xml.startElement("draw:custom-shape");
986 processStyleAndText(o, out);
987
988 out.xml.startElement("draw:enhanced-geometry");
989 out.xml.addAttribute("draw:glue-points", "0 0 0 21600 21600 10800");
990 processModifiers(o, out, QList<int>() << 1800<< 10800);
991 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
992 out.xml.addAttribute("draw:enhanced-path", "M 0 0 C 5400 0 10800 ?f0 10800 ?f1 L 10800 ?f2 C 10800 ?f3 16200 ?f4 21600 ?f4 16200 ?f4 10800 ?f5 10800 ?f6 L 10800 ?f7 C 10800 ?f8 5400 21600 0 21600 N");
993 out.xml.addAttribute("draw:type", "right-brace");
994 out.xml.addAttribute("draw:text-areas", "0 ?f9 7800 ?f10");
995 setShapeMirroring(o, out);
996 equation(out,"f0","$0 /2");
997 equation(out,"f1","$0 ");
998 equation(out,"f2","?f4 -$0 ");
999 equation(out,"f3","?f4 -?f0 ");
1000 equation(out,"f4","$1 ");
1001 equation(out,"f5","?f4 +?f0 ");
1002 equation(out,"f6","?f4 +$0 ");
1003 equation(out,"f7","21600-$0 ");
1004 equation(out,"f8","21600-?f0 ");
1005 equation(out,"f9","$0 *10000/31953");
1006 equation(out,"f10","21600-?f9 ");
1007 out.xml.startElement("draw:handle");
1008 out.xml.addAttribute("draw:handle-position", "10800 $0");
1009 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1010 out.xml.addAttribute("draw:handle-range-y-maximum", "5400");
1011 out.xml.endElement(); // draw:handle
1012 out.xml.startElement("draw:handle");
1013 out.xml.addAttribute("draw:handle-position", "right $1");
1014 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1015 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
1016 out.xml.endElement(); // draw:handle
1017 out.xml.endElement(); // enhanced geometry
1018 out.xml.endElement(); // custom shape
1019 }
1020
1021
processArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1022 void ODrawToOdf::processArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1023 out.xml.startElement("draw:custom-shape");
1024 processStyleAndText(o, out);
1025
1026 out.xml.startElement("draw:enhanced-geometry");
1027 processModifiers(o, out, QList<int>() << 16200<< 5400);
1028 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1029 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f0 L ?f1 ?f0 ?f1 0 21600 10800 ?f1 21600 ?f1 ?f2 0 ?f2 Z N");
1030 out.xml.addAttribute("draw:type", "right-arrow");
1031 out.xml.addAttribute("draw:text-areas", "0 ?f0 ?f5 ?f2");
1032 setShapeMirroring(o, out);
1033 equation(out,"f0","$1 ");
1034 equation(out,"f1","$0 ");
1035 equation(out,"f2","21600-$1 ");
1036 equation(out,"f3","21600-?f1 ");
1037 equation(out,"f4","?f3 *?f0 /10800");
1038 equation(out,"f5","?f1 +?f4 ");
1039 equation(out,"f6","?f1 *?f0 /10800");
1040 equation(out,"f7","?f1 -?f6 ");
1041 out.xml.startElement("draw:handle");
1042 out.xml.addAttribute("draw:handle-position", "$0 $1");
1043 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1044 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1045 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1046 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1047 out.xml.endElement(); // draw:handle
1048 out.xml.endElement(); // enhanced geometry
1049 out.xml.endElement(); // custom shape
1050 }
1051
1052
processLeftArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1053 void ODrawToOdf::processLeftArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1054 out.xml.startElement("draw:custom-shape");
1055 processStyleAndText(o, out);
1056
1057 out.xml.startElement("draw:enhanced-geometry");
1058 processModifiers(o, out, QList<int>() << 5400<< 5400);
1059 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1060 out.xml.addAttribute("draw:enhanced-path", "M 21600 ?f0 L ?f1 ?f0 ?f1 0 0 10800 ?f1 21600 ?f1 ?f2 21600 ?f2 Z N");
1061 out.xml.addAttribute("draw:type", "left-arrow");
1062 out.xml.addAttribute("draw:text-areas", "?f7 ?f0 21600 ?f2");
1063 setShapeMirroring(o, out);
1064 equation(out,"f0","$1 ");
1065 equation(out,"f1","$0 ");
1066 equation(out,"f2","21600-$1 ");
1067 equation(out,"f3","21600-?f1 ");
1068 equation(out,"f4","?f3 *?f0 /10800");
1069 equation(out,"f5","?f1 +?f4 ");
1070 equation(out,"f6","?f1 *?f0 /10800");
1071 equation(out,"f7","?f1 -?f6 ");
1072 out.xml.startElement("draw:handle");
1073 out.xml.addAttribute("draw:handle-position", "$0 $1");
1074 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1075 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1076 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1077 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1078 out.xml.endElement(); // draw:handle
1079 out.xml.endElement(); // enhanced geometry
1080 out.xml.endElement(); // custom shape
1081 }
1082
1083
processUpArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1084 void ODrawToOdf::processUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1085 out.xml.startElement("draw:custom-shape");
1086 processStyleAndText(o, out);
1087
1088 out.xml.startElement("draw:enhanced-geometry");
1089 processModifiers(o, out, QList<int>() << 5400<< 5400);
1090 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1091 out.xml.addAttribute("draw:enhanced-path", "M ?f0 21600 L ?f0 ?f1 0 ?f1 10800 0 21600 ?f1 ?f2 ?f1 ?f2 21600 Z N");
1092 out.xml.addAttribute("draw:type", "up-arrow");
1093 out.xml.addAttribute("draw:text-areas", "?f0 ?f7 ?f2 21600");
1094 setShapeMirroring(o, out);
1095 equation(out,"f0","$1 ");
1096 equation(out,"f1","$0 ");
1097 equation(out,"f2","21600-$1 ");
1098 equation(out,"f3","21600-?f1 ");
1099 equation(out,"f4","?f3 *?f0 /10800");
1100 equation(out,"f5","?f1 +?f4 ");
1101 equation(out,"f6","?f1 *?f0 /10800");
1102 equation(out,"f7","?f1 -?f6 ");
1103 out.xml.startElement("draw:handle");
1104 out.xml.addAttribute("draw:handle-position", "$1 $0");
1105 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1106 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1107 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
1108 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1109 out.xml.endElement(); // draw:handle
1110 out.xml.endElement(); // enhanced geometry
1111 out.xml.endElement(); // custom shape
1112 }
1113
1114
processDownArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1115 void ODrawToOdf::processDownArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1116 out.xml.startElement("draw:custom-shape");
1117 processStyleAndText(o, out);
1118
1119 out.xml.startElement("draw:enhanced-geometry");
1120 processModifiers(o, out, QList<int>() << 16200<< 5400);
1121 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1122 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 L ?f0 ?f1 0 ?f1 10800 21600 21600 ?f1 ?f2 ?f1 ?f2 0 Z N");
1123 out.xml.addAttribute("draw:type", "down-arrow");
1124 out.xml.addAttribute("draw:text-areas", "?f0 0 ?f2 ?f5");
1125 setShapeMirroring(o, out);
1126 equation(out,"f0","$1 ");
1127 equation(out,"f1","$0 ");
1128 equation(out,"f2","21600-$1 ");
1129 equation(out,"f3","21600-?f1 ");
1130 equation(out,"f4","?f3 *?f0 /10800");
1131 equation(out,"f5","?f1 +?f4 ");
1132 equation(out,"f6","?f1 *?f0 /10800");
1133 equation(out,"f7","?f1 -?f6 ");
1134 out.xml.startElement("draw:handle");
1135 out.xml.addAttribute("draw:handle-position", "$1 $0");
1136 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1137 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1138 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
1139 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1140 out.xml.endElement(); // draw:handle
1141 out.xml.endElement(); // enhanced geometry
1142 out.xml.endElement(); // custom shape
1143 }
1144
1145
processLeftRightArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1146 void ODrawToOdf::processLeftRightArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1147 out.xml.startElement("draw:custom-shape");
1148 processStyleAndText(o, out);
1149
1150 out.xml.startElement("draw:enhanced-geometry");
1151 processModifiers(o, out, QList<int>() << 4300<< 5400);
1152 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1153 out.xml.addAttribute("draw:enhanced-path", "M 0 10800 L ?f0 0 ?f0 ?f1 ?f2 ?f1 ?f2 0 21600 10800 ?f2 21600 ?f2 ?f3 ?f0 ?f3 ?f0 21600 Z N");
1154 out.xml.addAttribute("draw:type", "left-right-arrow");
1155 out.xml.addAttribute("draw:text-areas", "?f5 ?f1 ?f6 ?f3");
1156 setShapeMirroring(o, out);
1157 equation(out,"f0","$0 ");
1158 equation(out,"f1","$1 ");
1159 equation(out,"f2","21600-$0 ");
1160 equation(out,"f3","21600-$1 ");
1161 equation(out,"f4","10800-$1 ");
1162 equation(out,"f5","$0 *?f4 /10800");
1163 equation(out,"f6","21600-?f5 ");
1164 equation(out,"f7","10800-$0 ");
1165 equation(out,"f8","$1 *?f7 /10800");
1166 equation(out,"f9","21600-?f8 ");
1167 out.xml.startElement("draw:handle");
1168 out.xml.addAttribute("draw:handle-position", "$0 $1");
1169 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1170 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1171 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1172 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1173 out.xml.endElement(); // draw:handle
1174 out.xml.endElement(); // enhanced geometry
1175 out.xml.endElement(); // custom shape
1176 }
1177
1178
processUpDownArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1179 void ODrawToOdf::processUpDownArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1180 out.xml.startElement("draw:custom-shape");
1181 processStyleAndText(o, out);
1182
1183 out.xml.startElement("draw:enhanced-geometry");
1184 processModifiers(o, out, QList<int>() << 5400<< 4300);
1185 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1186 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f1 L 10800 0 21600 ?f1 ?f2 ?f1 ?f2 ?f3 21600 ?f3 10800 21600 0 ?f3 ?f0 ?f3 ?f0 ?f1 Z N");
1187 out.xml.addAttribute("draw:type", "up-down-arrow");
1188 out.xml.addAttribute("draw:text-areas", "?f0 ?f8 ?f2 ?f9");
1189 setShapeMirroring(o, out);
1190 equation(out,"f0","$0 ");
1191 equation(out,"f1","$1 ");
1192 equation(out,"f2","21600-$0 ");
1193 equation(out,"f3","21600-$1 ");
1194 equation(out,"f4","10800-$1 ");
1195 equation(out,"f5","$0 *?f4 /10800");
1196 equation(out,"f6","21600-?f5 ");
1197 equation(out,"f7","10800-$0 ");
1198 equation(out,"f8","$1 *?f7 /10800");
1199 equation(out,"f9","21600-?f8 ");
1200 out.xml.startElement("draw:handle");
1201 out.xml.addAttribute("draw:handle-position", "$0 $1");
1202 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1203 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1204 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1205 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1206 out.xml.endElement(); // draw:handle
1207 out.xml.endElement(); // enhanced geometry
1208 out.xml.endElement(); // custom shape
1209 }
1210
1211
processQuadArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1212 void ODrawToOdf::processQuadArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1213 out.xml.startElement("draw:custom-shape");
1214 processStyleAndText(o, out);
1215
1216 out.xml.startElement("draw:enhanced-geometry");
1217 processModifiers(o, out, QList<int>() << 6500<< 8600<< 4300);
1218 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1219 out.xml.addAttribute("draw:enhanced-path", "M 0 10800 L ?f0 ?f1 ?f0 ?f2 ?f2 ?f2 ?f2 ?f0 ?f1 ?f0 10800 0 ?f3 ?f0 ?f4 ?f0 ?f4 ?f2 ?f5 ?f2 ?f5 ?f1 21600 10800 ?f5 ?f3 ?f5 ?f4 ?f4 ?f4 ?f4 ?f5 ?f3 ?f5 10800 21600 ?f1 ?f5 ?f2 ?f5 ?f2 ?f4 ?f0 ?f4 ?f0 ?f3 Z N");
1220 out.xml.addAttribute("draw:type", "quad-arrow");
1221 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600");
1222 setShapeMirroring(o, out);
1223 equation(out,"f0","$2 ");
1224 equation(out,"f1","$0 ");
1225 equation(out,"f2","$1 ");
1226 equation(out,"f3","21600-$0 ");
1227 equation(out,"f4","21600-$1 ");
1228 equation(out,"f5","21600-$2 ");
1229 out.xml.startElement("draw:handle");
1230 out.xml.addAttribute("draw:handle-position", "$1 $2");
1231 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1232 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1233 out.xml.addAttribute("draw:handle-range-y-maximum", "$0");
1234 out.xml.addAttribute("draw:handle-range-x-minimum", "$0");
1235 out.xml.endElement(); // draw:handle
1236 out.xml.startElement("draw:handle");
1237 out.xml.addAttribute("draw:handle-position", "$0 top");
1238 out.xml.addAttribute("draw:handle-range-x-maximum", "$1");
1239 out.xml.addAttribute("draw:handle-range-x-minimum", "$2");
1240 out.xml.endElement(); // draw:handle
1241 out.xml.endElement(); // enhanced geometry
1242 out.xml.endElement(); // custom shape
1243 }
1244
1245
processLeftRightUpArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1246 void ODrawToOdf::processLeftRightUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1247 out.xml.startElement("draw:custom-shape");
1248 processStyleAndText(o, out);
1249
1250 out.xml.startElement("draw:enhanced-geometry");
1251 processModifiers(o, out, QList<int>() << 6500<< 8600<< 6200);
1252 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1253 out.xml.addAttribute("draw:enhanced-path", "M 10800 0 L ?f3 ?f2 ?f4 ?f2 ?f4 ?f1 ?f5 ?f1 ?f5 ?f0 21600 10800 ?f5 ?f3 ?f5 ?f4 ?f2 ?f4 ?f2 ?f3 0 10800 ?f2 ?f0 ?f2 ?f1 ?f1 ?f1 ?f1 ?f2 ?f0 ?f2 Z N");
1254 out.xml.addAttribute("draw:type", "mso-spt182");
1255 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600");
1256 setShapeMirroring(o, out);
1257 equation(out,"f0","$0 ");
1258 equation(out,"f1","$1 ");
1259 equation(out,"f2","?f3 *$2 /21600");
1260 equation(out,"f3","21600-$0 ");
1261 equation(out,"f4","21600-$1 ");
1262 equation(out,"f5","21600-?f2 ");
1263 out.xml.startElement("draw:handle");
1264 out.xml.addAttribute("draw:handle-position", "$1 $2");
1265 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1266 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1267 out.xml.addAttribute("draw:handle-range-y-maximum", "$0");
1268 out.xml.addAttribute("draw:handle-range-x-minimum", "$0");
1269 out.xml.endElement(); // draw:handle
1270 out.xml.startElement("draw:handle");
1271 out.xml.addAttribute("draw:handle-position", "$0 top");
1272 out.xml.addAttribute("draw:handle-range-x-maximum", "$1");
1273 out.xml.addAttribute("draw:handle-range-x-minimum", "$2");
1274 out.xml.endElement(); // draw:handle
1275 out.xml.endElement(); // enhanced geometry
1276 out.xml.endElement(); // custom shape
1277 }
1278
1279
processBentArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1280 void ODrawToOdf::processBentArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1281 out.xml.startElement("draw:custom-shape");
1282 processStyleAndText(o, out);
1283
1284 out.xml.startElement("draw:enhanced-geometry");
1285 processModifiers(o, out, QList<int>() << 15100<< 2900);
1286 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1287 out.xml.addAttribute("draw:enhanced-path", "M 0 21600 L 0 12160 Y 12427 ?f1 L ?f0 ?f1 ?f0 0 21600 6079 ?f0 12158 ?f0 ?f2 12427 ?f2 X ?f4 12160 L ?f4 21600 Z N");
1288 out.xml.addAttribute("draw:type", "mso-spt91");
1289 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600");
1290 setShapeMirroring(o, out);
1291 equation(out,"f0","$0 ");
1292 equation(out,"f1","$1 ");
1293 equation(out,"f2","12158-$1 ");
1294 equation(out,"f3","6079-$1 ");
1295 equation(out,"f4","?f3 *2");
1296 out.xml.startElement("draw:handle");
1297 out.xml.addAttribute("draw:handle-position", "$0 $1");
1298 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1299 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1300 out.xml.addAttribute("draw:handle-range-y-maximum", "6079");
1301 out.xml.addAttribute("draw:handle-range-x-minimum", "12427");
1302 out.xml.endElement(); // draw:handle
1303 out.xml.endElement(); // enhanced geometry
1304 out.xml.endElement(); // custom shape
1305 }
1306
1307
processUturnArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1308 void ODrawToOdf::processUturnArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1309 out.xml.startElement("draw:custom-shape");
1310 processStyleAndText(o, out);
1311
1312 out.xml.startElement("draw:enhanced-geometry");
1313 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1314 out.xml.addAttribute("draw:enhanced-path", "M 0 21600 L 0 8550 C 0 3540 4370 0 9270 0 13890 0 18570 3230 18600 8300 L 21600 8300 15680 14260 9700 8300 12500 8300 C 12320 6380 10870 5850 9320 5850 7770 5850 6040 6410 6110 8520 L 6110 21600 Z N");
1315 out.xml.addAttribute("draw:type", "mso-spt101");
1316 out.xml.addAttribute("draw:text-areas", "0 8280 6110 21600");
1317 setShapeMirroring(o, out);
1318 out.xml.endElement(); // enhanced geometry
1319 out.xml.endElement(); // custom shape
1320 }
1321
1322
processLeftUpArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1323 void ODrawToOdf::processLeftUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1324 out.xml.startElement("draw:custom-shape");
1325 processStyleAndText(o, out);
1326
1327 out.xml.startElement("draw:enhanced-geometry");
1328 processModifiers(o, out, QList<int>() << 9340<< 18500<< 6200);
1329 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1330 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f5 L ?f2 ?f0 ?f2 ?f7 ?f7 ?f7 ?f7 ?f2 ?f0 ?f2 ?f5 0 21600 ?f2 ?f1 ?f2 ?f1 ?f1 ?f2 ?f1 ?f2 21600 Z N");
1331 out.xml.addAttribute("draw:type", "mso-spt89");
1332 out.xml.addAttribute("draw:text-areas", "?f2 ?f7 ?f1 ?f1 ?f7 ?f2 ?f1 ?f1");
1333 setShapeMirroring(o, out);
1334 equation(out,"f0","$0 ");
1335 equation(out,"f1","$1 ");
1336 equation(out,"f2","$2 ");
1337 equation(out,"f3","21600-$0 ");
1338 equation(out,"f4","?f3 /2");
1339 equation(out,"f5","$0 +?f4 ");
1340 equation(out,"f6","21600-$1 ");
1341 equation(out,"f7","$0 +?f6 ");
1342 equation(out,"f8","21600-?f6 ");
1343 equation(out,"f9","?f8 -?f6 ");
1344 out.xml.startElement("draw:handle");
1345 out.xml.addAttribute("draw:handle-position", "$1 $2");
1346 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1347 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1348 out.xml.addAttribute("draw:handle-range-y-maximum", "$0");
1349 out.xml.addAttribute("draw:handle-range-x-minimum", "?f5");
1350 out.xml.endElement(); // draw:handle
1351 out.xml.startElement("draw:handle");
1352 out.xml.addAttribute("draw:handle-position", "$0 top");
1353 out.xml.addAttribute("draw:handle-range-x-maximum", "?f9");
1354 out.xml.addAttribute("draw:handle-range-x-minimum", "$2");
1355 out.xml.endElement(); // draw:handle
1356 out.xml.endElement(); // enhanced geometry
1357 out.xml.endElement(); // custom shape
1358 }
1359
1360
processBentUpArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1361 void ODrawToOdf::processBentUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1362 out.xml.startElement("draw:custom-shape");
1363 processStyleAndText(o, out);
1364
1365 out.xml.startElement("draw:enhanced-geometry");
1366 processModifiers(o, out, QList<int>() << 9340<< 18500<< 7200);
1367 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1368 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f8 L ?f7 ?f8 ?f7 ?f2 ?f0 ?f2 ?f5 0 21600 ?f2 ?f1 ?f2 ?f1 21600 0 21600 Z N");
1369 out.xml.addAttribute("draw:type", "mso-spt90");
1370 out.xml.addAttribute("draw:text-areas", "?f2 ?f7 ?f1 ?f1 ?f7 ?f2 ?f1 ?f1");
1371 setShapeMirroring(o, out);
1372 equation(out,"f0","$0 ");
1373 equation(out,"f1","$1 ");
1374 equation(out,"f2","$2 ");
1375 equation(out,"f3","21600-$0 ");
1376 equation(out,"f4","?f3 /2");
1377 equation(out,"f5","$0 +?f4 ");
1378 equation(out,"f6","21600-$1 ");
1379 equation(out,"f7","$0 +?f6 ");
1380 equation(out,"f8","?f7 +?f6 ");
1381 equation(out,"f9","21600-?f6 ");
1382 equation(out,"f10","?f9 -?f6 ");
1383 out.xml.startElement("draw:handle");
1384 out.xml.addAttribute("draw:handle-position", "$1 $2");
1385 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1386 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1387 out.xml.addAttribute("draw:handle-range-y-maximum", "$0");
1388 out.xml.addAttribute("draw:handle-range-x-minimum", "?f5");
1389 out.xml.endElement(); // draw:handle
1390 out.xml.startElement("draw:handle");
1391 out.xml.addAttribute("draw:handle-position", "$0 top");
1392 out.xml.addAttribute("draw:handle-range-x-maximum", "?f10");
1393 out.xml.addAttribute("draw:handle-range-x-minimum", "$2");
1394 out.xml.endElement(); // draw:handle
1395 out.xml.endElement(); // enhanced geometry
1396 out.xml.endElement(); // custom shape
1397 }
1398
1399
processCurvedRightArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1400 void ODrawToOdf::processCurvedRightArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1401 out.xml.startElement("draw:custom-shape");
1402 processStyleAndText(o, out);
1403
1404 out.xml.startElement("draw:enhanced-geometry");
1405 out.xml.addAttribute("draw:glue-points", "0 ?f17 ?f2 ?f14 ?f22 ?f8 ?f2 ?f12 ?f22 ?f16");
1406 processModifiers(o, out, QList<int>() << 12960<< 19440<< 14400);
1407 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1408 out.xml.addAttribute("draw:enhanced-path", "B 0 0 ?f23 ?f3 ?f22 0 0 ?f4 A 0 ?f15 ?f23 ?f1 0 ?f7 ?f2 ?f13 L ?f2 ?f14 ?f22 ?f8 ?f2 ?f12 W 0 0 ?f23 ?f3 ?f2 ?f11 ?f26 ?f17 0 ?f15 ?f23 ?f1 ?f26 ?f17 ?f22 ?f15 Z N B 0 0 ?f23 ?f3 0 ?f4 ?f26 ?f17 F N");
1409 out.xml.addAttribute("draw:type", "mso-spt102");
1410 out.xml.addAttribute("draw:text-areas", "?f47 ?f45 ?f48 ?f46");
1411 setShapeMirroring(o, out);
1412 equation(out,"f0","$0 ");
1413 equation(out,"f1","$1 ");
1414 equation(out,"f2","$2 ");
1415 equation(out,"f3","$0 +21600-$1 ");
1416 equation(out,"f4","?f3 /2");
1417 equation(out,"f5","$1 +$1 -21600");
1418 equation(out,"f6","?f5 +$1 -$0 ");
1419 equation(out,"f7","?f6 /2");
1420 equation(out,"f8","(21600+$0 )/2");
1421 equation(out,"f9","21600-$2 ");
1422 equation(out,"f10","?f4 *sqrt(1-(?f9 /21600)*(?f9 /21600))");
1423 equation(out,"f11","?f4 +?f10 ");
1424 equation(out,"f12","?f11 +$1 -21600");
1425 equation(out,"f13","?f7 +?f10 ");
1426 equation(out,"f14","?f12 +21600-$0 ");
1427 equation(out,"f15","?f5 -$0 ");
1428 equation(out,"f16","?f15 /2");
1429 equation(out,"f17","(?f4 +?f7 )/2");
1430 equation(out,"f18","$0 +$1 -21600");
1431 equation(out,"f19","?f18 /2");
1432 equation(out,"f20","?f17 -?f19 ");
1433 equation(out,"f21","21600");
1434 equation(out,"f22","21600");
1435 equation(out,"f23","21600*2");
1436 equation(out,"f24","?f17 -?f4 ");
1437 equation(out,"f25","21600*sqrt(1-(?f24 /?f4 )*(?f24 /?f4 ))");
1438 equation(out,"f26","21600-?f25 ");
1439 equation(out,"f27","?f8 +128");
1440 equation(out,"f28","?f5 /2");
1441 equation(out,"f29","?f5 -128");
1442 equation(out,"f30","$0 +?f17 -?f12 ");
1443 equation(out,"f31","21600*sqrt(1-(?f20 /?f4 )*(?f20 /?f4 ))");
1444 equation(out,"f32","21600-$0 ");
1445 equation(out,"f33","?f32 /2");
1446 equation(out,"f34","21600*21600");
1447 equation(out,"f35","?f9 *?f9 ");
1448 equation(out,"f36","?f34 -?f35 ");
1449 equation(out,"f37","sqrt(?f36 )");
1450 equation(out,"f38","?f37 +21600");
1451 equation(out,"f39","21600*21600/?f38 ");
1452 equation(out,"f40","?f39 +64");
1453 equation(out,"f41","$0 /2");
1454 equation(out,"f42","21600*sqrt(1-(?f33 /?f41 )*(?f33 /?f41 ))");
1455 equation(out,"f43","21600-?f42 ");
1456 equation(out,"f44","?f43 +64");
1457 equation(out,"f45","?f4 /2");
1458 equation(out,"f46","$1 -?f45 ");
1459 equation(out,"f47","21600*2195/16384");
1460 equation(out,"f48","21600*14189/16384");
1461 out.xml.startElement("draw:handle");
1462 out.xml.addAttribute("draw:handle-position", "21600 $0");
1463 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1464 out.xml.addAttribute("draw:handle-range-y-minimum", "?f40");
1465 out.xml.addAttribute("draw:handle-range-y-maximum", "?f29");
1466 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1467 out.xml.endElement(); // draw:handle
1468 out.xml.startElement("draw:handle");
1469 out.xml.addAttribute("draw:handle-position", "21600 $1");
1470 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1471 out.xml.addAttribute("draw:handle-range-y-minimum", "?f27");
1472 out.xml.addAttribute("draw:handle-range-y-maximum", "?f21");
1473 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1474 out.xml.endElement(); // draw:handle
1475 out.xml.startElement("draw:handle");
1476 out.xml.addAttribute("draw:handle-position", "$2 21600");
1477 out.xml.addAttribute("draw:handle-range-x-maximum", "?f22");
1478 out.xml.addAttribute("draw:handle-range-y-minimum", "3375");
1479 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
1480 out.xml.addAttribute("draw:handle-range-x-minimum", "?f44");
1481 out.xml.endElement(); // draw:handle
1482 out.xml.endElement(); // enhanced geometry
1483 out.xml.endElement(); // custom shape
1484 }
1485
1486
processCurvedLeftArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1487 void ODrawToOdf::processCurvedLeftArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1488 out.xml.startElement("draw:custom-shape");
1489 processStyleAndText(o, out);
1490
1491 out.xml.startElement("draw:enhanced-geometry");
1492 out.xml.addAttribute("draw:glue-points", "0 ?f15 ?f2 ?f11 0 ?f8 ?f2 ?f13 ?f21 ?f16");
1493 processModifiers(o, out, QList<int>() << 12960<< 19440<< 7200);
1494 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1495 out.xml.addAttribute("draw:enhanced-path", "V ?f22 0 ?f21 ?f3 0 0 ?f21 ?f4 W ?f22 ?f14 ?f21 ?f1 ?f21 ?f7 ?f2 ?f12 L ?f2 ?f13 0 ?f8 ?f2 ?f11 A ?f22 0 ?f21 ?f3 ?f2 ?f10 ?f24 ?f16 ?f22 ?f14 ?f21 ?f1 ?f24 ?f16 0 ?f14 Z N B ?f22 ?f14 ?f21 ?f1 ?f21 ?f7 ?f24 ?f16 F N");
1496 out.xml.addAttribute("draw:type", "mso-spt103");
1497 out.xml.addAttribute("draw:text-areas", "?f43 ?f41 ?f44 ?f42");
1498 setShapeMirroring(o, out);
1499 equation(out,"f0","$0 ");
1500 equation(out,"f1","$1 ");
1501 equation(out,"f2","$2 ");
1502 equation(out,"f3","$0 +21600-$1 ");
1503 equation(out,"f4","?f3 /2");
1504 equation(out,"f5","$1 +$1 -21600");
1505 equation(out,"f6","?f5 +$1 -$0 ");
1506 equation(out,"f7","?f6 /2");
1507 equation(out,"f8","(21600+$0 )/2");
1508 equation(out,"f9","?f4 *sqrt(1-($2 /21600)*($2 /21600))");
1509 equation(out,"f10","?f4 +?f9 ");
1510 equation(out,"f11","?f10 +$1 -21600");
1511 equation(out,"f12","?f7 +?f9 ");
1512 equation(out,"f13","?f11 +21600-$0 ");
1513 equation(out,"f14","?f5 -$0 ");
1514 equation(out,"f15","?f14 /2");
1515 equation(out,"f16","(?f4 +?f7 )/2");
1516 equation(out,"f17","$0 +$1 -21600");
1517 equation(out,"f18","?f17 /2");
1518 equation(out,"f19","?f16 -?f18 ");
1519 equation(out,"f20","21600");
1520 equation(out,"f21","21600");
1521 equation(out,"f22","-21600");
1522 equation(out,"f23","?f16 -?f4 ");
1523 equation(out,"f24","21600*sqrt(1-(?f23 /?f4 )*(?f23 /?f4 ))");
1524 equation(out,"f25","?f8 +128");
1525 equation(out,"f26","?f5 /2");
1526 equation(out,"f27","?f5 -128");
1527 equation(out,"f28","$0 +?f16 -?f11 ");
1528 equation(out,"f29","21600-$0 ");
1529 equation(out,"f30","?f29 /2");
1530 equation(out,"f31","21600*21600");
1531 equation(out,"f32","$2 *$2 ");
1532 equation(out,"f33","?f31 -?f32 ");
1533 equation(out,"f34","sqrt(?f33 )");
1534 equation(out,"f35","?f34 +21600");
1535 equation(out,"f36","21600*21600/?f35 ");
1536 equation(out,"f37","?f36 +64");
1537 equation(out,"f38","$0 /2");
1538 equation(out,"f39","21600*sqrt(1-(?f30 /?f38 )*(?f30 /?f38 ))");
1539 equation(out,"f40","?f39 -64");
1540 equation(out,"f41","?f4 /2");
1541 equation(out,"f42","$1 -?f41 ");
1542 equation(out,"f43","21600*2195/16384");
1543 equation(out,"f44","21600*14189/16384");
1544 out.xml.startElement("draw:handle");
1545 out.xml.addAttribute("draw:handle-position", "left $0");
1546 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1547 out.xml.addAttribute("draw:handle-range-y-minimum", "?f37");
1548 out.xml.addAttribute("draw:handle-range-y-maximum", "?f27");
1549 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1550 out.xml.endElement(); // draw:handle
1551 out.xml.startElement("draw:handle");
1552 out.xml.addAttribute("draw:handle-position", "left $1");
1553 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1554 out.xml.addAttribute("draw:handle-range-y-minimum", "?f25");
1555 out.xml.addAttribute("draw:handle-range-y-maximum", "?f20");
1556 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1557 out.xml.endElement(); // draw:handle
1558 out.xml.startElement("draw:handle");
1559 out.xml.addAttribute("draw:handle-position", "$2 21600");
1560 out.xml.addAttribute("draw:handle-range-x-maximum", "?f40");
1561 out.xml.addAttribute("draw:handle-range-y-minimum", "3375");
1562 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
1563 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1564 out.xml.endElement(); // draw:handle
1565 out.xml.endElement(); // enhanced geometry
1566 out.xml.endElement(); // custom shape
1567 }
1568
1569
processCurvedUpArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1570 void ODrawToOdf::processCurvedUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1571 out.xml.startElement("draw:custom-shape");
1572 processStyleAndText(o, out);
1573
1574 out.xml.startElement("draw:enhanced-geometry");
1575 out.xml.addAttribute("draw:glue-points", "?f8 0 ?f11 ?f2 ?f15 0 ?f16 ?f21 ?f13 ?f2");
1576 processModifiers(o, out, QList<int>() << 12960<< 19440<< 7200);
1577 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1578 out.xml.addAttribute("draw:enhanced-path", "B 0 ?f22 ?f3 ?f21 0 0 ?f4 ?f21 A ?f14 ?f22 ?f1 ?f21 ?f7 ?f21 ?f12 ?f2 L ?f13 ?f2 ?f8 0 ?f11 ?f2 W 0 ?f22 ?f3 ?f21 ?f10 ?f2 ?f16 ?f24 ?f14 ?f22 ?f1 ?f21 ?f16 ?f24 ?f14 0 Z N V ?f14 ?f22 ?f1 ?f21 ?f7 ?f21 ?f16 ?f24 F N");
1579 out.xml.addAttribute("draw:type", "mso-spt104");
1580 out.xml.addAttribute("draw:text-areas", "?f41 ?f43 ?f42 ?f44");
1581 setShapeMirroring(o, out);
1582 equation(out,"f0","$0 ");
1583 equation(out,"f1","$1 ");
1584 equation(out,"f2","$2 ");
1585 equation(out,"f3","$0 +21600-$1 ");
1586 equation(out,"f4","?f3 /2");
1587 equation(out,"f5","$1 +$1 -21600");
1588 equation(out,"f6","?f5 +$1 -$0 ");
1589 equation(out,"f7","?f6 /2");
1590 equation(out,"f8","(21600+$0 )/2");
1591 equation(out,"f9","?f4 *sqrt(1-($2 /21600)*($2 /21600))");
1592 equation(out,"f10","?f4 +?f9 ");
1593 equation(out,"f11","?f10 +$1 -21600");
1594 equation(out,"f12","?f7 +?f9 ");
1595 equation(out,"f13","?f11 +21600-$0 ");
1596 equation(out,"f14","?f5 -$0 ");
1597 equation(out,"f15","?f14 /2");
1598 equation(out,"f16","(?f4 +?f7 )/2");
1599 equation(out,"f17","$0 +$1 -21600");
1600 equation(out,"f18","?f17 /2");
1601 equation(out,"f19","?f16 -?f18 ");
1602 equation(out,"f20","21600");
1603 equation(out,"f21","21600");
1604 equation(out,"f22","-21600");
1605 equation(out,"f23","?f16 -?f4 ");
1606 equation(out,"f24","21600*sqrt(1-(?f23 /?f4 )*(?f23 /?f4 ))");
1607 equation(out,"f25","?f8 +128");
1608 equation(out,"f26","?f5 /2");
1609 equation(out,"f27","?f5 -128");
1610 equation(out,"f28","$0 +?f16 -?f11 ");
1611 equation(out,"f29","21600-$0 ");
1612 equation(out,"f30","?f29 /2");
1613 equation(out,"f31","21600*21600");
1614 equation(out,"f32","$2 *$2 ");
1615 equation(out,"f33","?f31 -?f32 ");
1616 equation(out,"f34","sqrt(?f33 )");
1617 equation(out,"f35","?f34 +21600");
1618 equation(out,"f36","21600*21600/?f35 ");
1619 equation(out,"f37","?f36 +64");
1620 equation(out,"f38","$0 /2");
1621 equation(out,"f39","21600*sqrt(1-(?f30 /?f38 )*(?f30 /?f38 ))");
1622 equation(out,"f40","?f39 -64");
1623 equation(out,"f41","?f4 /2");
1624 equation(out,"f42","$1 -?f41 ");
1625 equation(out,"f43","21600*2195/16384");
1626 equation(out,"f44","21600*14189/16384");
1627 out.xml.startElement("draw:handle");
1628 out.xml.addAttribute("draw:handle-position", "$0 top");
1629 out.xml.addAttribute("draw:handle-range-x-maximum", "?f27");
1630 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1631 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1632 out.xml.addAttribute("draw:handle-range-x-minimum", "?f37");
1633 out.xml.endElement(); // draw:handle
1634 out.xml.startElement("draw:handle");
1635 out.xml.addAttribute("draw:handle-position", "$1 top");
1636 out.xml.addAttribute("draw:handle-range-x-maximum", "?f20");
1637 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1638 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1639 out.xml.addAttribute("draw:handle-range-x-minimum", "?f25");
1640 out.xml.endElement(); // draw:handle
1641 out.xml.startElement("draw:handle");
1642 out.xml.addAttribute("draw:handle-position", "21600 $2");
1643 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1644 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1645 out.xml.addAttribute("draw:handle-range-y-maximum", "?f40");
1646 out.xml.addAttribute("draw:handle-range-x-minimum", "3375");
1647 out.xml.endElement(); // draw:handle
1648 out.xml.endElement(); // enhanced geometry
1649 out.xml.endElement(); // custom shape
1650 }
1651
1652
processCurvedDownArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1653 void ODrawToOdf::processCurvedDownArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1654 out.xml.startElement("draw:custom-shape");
1655 processStyleAndText(o, out);
1656
1657 out.xml.startElement("draw:enhanced-geometry");
1658 out.xml.addAttribute("draw:glue-points", "?f17 0 ?f16 21600 ?f12 ?f2 ?f8 21600 ?f14 ?f2");
1659 processModifiers(o, out, QList<int>() << 12960<< 19440<< 14400);
1660 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1661 out.xml.addAttribute("draw:enhanced-path", "W 0 0 ?f3 ?f21 0 21600 ?f4 0 0 0 ?f3 ?f21 ?f4 0 ?f17 ?f24 A ?f15 0 ?f1 ?f21 ?f17 ?f24 ?f15 21600 Z N V ?f15 0 ?f1 ?f21 ?f7 0 ?f13 ?f2 L ?f14 ?f2 ?f8 21600 ?f12 ?f2 A 0 0 ?f3 ?f21 ?f11 ?f2 ?f17 ?f24 0 0 ?f3 ?f21 ?f17 ?f24 ?f4 0 Z N");
1662 out.xml.addAttribute("draw:type", "mso-spt105");
1663 out.xml.addAttribute("draw:text-areas", "?f43 ?f45 ?f44 ?f46");
1664 setShapeMirroring(o, out);
1665 equation(out,"f0","$0 ");
1666 equation(out,"f1","$1 ");
1667 equation(out,"f2","$2 ");
1668 equation(out,"f3","$0 +21600-$1 ");
1669 equation(out,"f4","?f3 /2");
1670 equation(out,"f5","$1 +$1 -21600");
1671 equation(out,"f6","?f5 +$1 -$0 ");
1672 equation(out,"f7","?f6 /2");
1673 equation(out,"f8","(21600+$0 )/2");
1674 equation(out,"f9","21600-$2 ");
1675 equation(out,"f10","?f4 *sqrt(1-(?f9 /21600)*(?f9 /21600))");
1676 equation(out,"f11","?f4 +?f10 ");
1677 equation(out,"f12","?f11 +$1 -21600");
1678 equation(out,"f13","?f7 +?f10 ");
1679 equation(out,"f14","?f12 +21600-$0 ");
1680 equation(out,"f15","?f5 -$0 ");
1681 equation(out,"f16","?f15 /2");
1682 equation(out,"f17","(?f4 +?f7 )/2");
1683 equation(out,"f18","$0 +$1 -21600");
1684 equation(out,"f19","?f18 /2");
1685 equation(out,"f20","?f17 -?f19 ");
1686 equation(out,"f21","21600*2");
1687 equation(out,"f22","?f17 -?f4 ");
1688 equation(out,"f23","21600*sqrt(1-(?f22 /?f4 )*(?f22 /?f4 ))");
1689 equation(out,"f24","21600-?f23 ");
1690 equation(out,"f25","?f8 +128");
1691 equation(out,"f26","?f5 /2");
1692 equation(out,"f27","?f5 -128");
1693 equation(out,"f28","$0 +?f17 -?f12 ");
1694 equation(out,"f29","21600*sqrt(1-(?f20 /?f4 )*(?f20 /?f4 ))");
1695 equation(out,"f30","21600-$0 ");
1696 equation(out,"f31","?f30 /2");
1697 equation(out,"f32","21600*21600");
1698 equation(out,"f33","?f9 *?f9 ");
1699 equation(out,"f34","?f32 -?f33 ");
1700 equation(out,"f35","sqrt(?f34 )");
1701 equation(out,"f36","?f35 +21600");
1702 equation(out,"f37","21600*21600/?f36 ");
1703 equation(out,"f38","?f37 +64");
1704 equation(out,"f39","$0 /2");
1705 equation(out,"f40","21600*sqrt(1-(?f31 /?f39 )*(?f31 /?f39 ))");
1706 equation(out,"f41","21600-?f40 ");
1707 equation(out,"f42","?f41 +64");
1708 equation(out,"f43","?f4 /2");
1709 equation(out,"f44","$1 -?f43 ");
1710 equation(out,"f45","21600*2195/16384");
1711 equation(out,"f46","21600*14189/16384");
1712 out.xml.startElement("draw:handle");
1713 out.xml.addAttribute("draw:handle-position", "$0 21600");
1714 out.xml.addAttribute("draw:handle-range-x-maximum", "?f27");
1715 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1716 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1717 out.xml.addAttribute("draw:handle-range-x-minimum", "?f38");
1718 out.xml.endElement(); // draw:handle
1719 out.xml.startElement("draw:handle");
1720 out.xml.addAttribute("draw:handle-position", "$1 21600");
1721 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1722 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1723 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1724 out.xml.addAttribute("draw:handle-range-x-minimum", "?f25");
1725 out.xml.endElement(); // draw:handle
1726 out.xml.startElement("draw:handle");
1727 out.xml.addAttribute("draw:handle-position", "21600 $2");
1728 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1729 out.xml.addAttribute("draw:handle-range-y-minimum", "?f42");
1730 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
1731 out.xml.addAttribute("draw:handle-range-x-minimum", "3375");
1732 out.xml.endElement(); // draw:handle
1733 out.xml.endElement(); // enhanced geometry
1734 out.xml.endElement(); // custom shape
1735 }
1736
1737
processStripedRightArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1738 void ODrawToOdf::processStripedRightArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1739 out.xml.startElement("draw:custom-shape");
1740 processStyleAndText(o, out);
1741
1742 out.xml.startElement("draw:enhanced-geometry");
1743 processModifiers(o, out, QList<int>() << 16200<< 5400);
1744 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1745 out.xml.addAttribute("draw:enhanced-path", "M 3375 ?f0 L ?f1 ?f0 ?f1 0 21600 10800 ?f1 21600 ?f1 ?f2 3375 ?f2 Z N M 0 ?f0 L 675 ?f0 675 ?f2 0 ?f2 Z N M 1350 ?f0 L 2700 ?f0 2700 ?f2 1350 ?f2 Z N");
1746 out.xml.addAttribute("draw:type", "striped-right-arrow");
1747 out.xml.addAttribute("draw:text-areas", "3375 ?f0 ?f5 ?f2");
1748 setShapeMirroring(o, out);
1749 equation(out,"f0","$1 ");
1750 equation(out,"f1","$0 ");
1751 equation(out,"f2","21600-$1 ");
1752 equation(out,"f3","21600-?f1 ");
1753 equation(out,"f4","?f3 *?f0 /10800");
1754 equation(out,"f5","?f1 +?f4 ");
1755 out.xml.startElement("draw:handle");
1756 out.xml.addAttribute("draw:handle-position", "$0 $1");
1757 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1758 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1759 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1760 out.xml.addAttribute("draw:handle-range-x-minimum", "3375");
1761 out.xml.endElement(); // draw:handle
1762 out.xml.endElement(); // enhanced geometry
1763 out.xml.endElement(); // custom shape
1764 }
1765
1766
processNotchedRightArrow(const MSO::OfficeArtSpContainer & o,Writer & out)1767 void ODrawToOdf::processNotchedRightArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
1768 out.xml.startElement("draw:custom-shape");
1769 processStyleAndText(o, out);
1770
1771 out.xml.startElement("draw:enhanced-geometry");
1772 processModifiers(o, out, QList<int>() << 16200<< 5400);
1773 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1774 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f1 L ?f0 ?f1 ?f0 0 21600 10800 ?f0 21600 ?f0 ?f2 0 ?f2 ?f5 10800 0 ?f1 Z N");
1775 out.xml.addAttribute("draw:type", "notched-right-arrow");
1776 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600");
1777 setShapeMirroring(o, out);
1778 equation(out,"f0","$0 ");
1779 equation(out,"f1","$1 ");
1780 equation(out,"f2","21600-$1 ");
1781 equation(out,"f3","21600-$0 ");
1782 equation(out,"f4","10800-$1 ");
1783 equation(out,"f5","?f3 *?f4 /10800");
1784 out.xml.startElement("draw:handle");
1785 out.xml.addAttribute("draw:handle-position", "$0 $1");
1786 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1787 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1788 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1789 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1790 out.xml.endElement(); // draw:handle
1791 out.xml.endElement(); // enhanced geometry
1792 out.xml.endElement(); // custom shape
1793 }
1794
1795
processHomePlate(const MSO::OfficeArtSpContainer & o,Writer & out)1796 void ODrawToOdf::processHomePlate(const MSO::OfficeArtSpContainer& o, Writer& out) {
1797 out.xml.startElement("draw:custom-shape");
1798 processStyleAndText(o, out);
1799
1800 out.xml.startElement("draw:enhanced-geometry");
1801 processModifiers(o, out, QList<int>() << 16200);
1802 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1803 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L ?f0 0 21600 10800 ?f0 21600 0 21600 Z N");
1804 out.xml.addAttribute("draw:type", "pentagon-right");
1805 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600");
1806 setShapeMirroring(o, out);
1807 equation(out,"f0","$0 ");
1808 out.xml.startElement("draw:handle");
1809 out.xml.addAttribute("draw:handle-position", "$0 top");
1810 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1811 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1812 out.xml.endElement(); // draw:handle
1813 out.xml.endElement(); // enhanced geometry
1814 out.xml.endElement(); // custom shape
1815 }
1816
1817
processChevron(const MSO::OfficeArtSpContainer & o,Writer & out)1818 void ODrawToOdf::processChevron(const MSO::OfficeArtSpContainer& o, Writer& out) {
1819 out.xml.startElement("draw:custom-shape");
1820 processStyleAndText(o, out);
1821
1822 out.xml.startElement("draw:enhanced-geometry");
1823 processModifiers(o, out, QList<int>() << 16200);
1824 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1825 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L ?f0 0 21600 10800 ?f0 21600 0 21600 ?f1 10800 Z N");
1826 out.xml.addAttribute("draw:type", "chevron");
1827 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600");
1828 setShapeMirroring(o, out);
1829 equation(out,"f0","$0 ");
1830 equation(out,"f1","21600-?f0 ");
1831 out.xml.startElement("draw:handle");
1832 out.xml.addAttribute("draw:handle-position", "$0 top");
1833 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1834 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1835 out.xml.endElement(); // draw:handle
1836 out.xml.endElement(); // enhanced geometry
1837 out.xml.endElement(); // custom shape
1838 }
1839
1840
processRightArrowCallout(const MSO::OfficeArtSpContainer & o,Writer & out)1841 void ODrawToOdf::processRightArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
1842 out.xml.startElement("draw:custom-shape");
1843 processStyleAndText(o, out);
1844
1845 out.xml.startElement("draw:enhanced-geometry");
1846 processModifiers(o, out, QList<int>() << 14400<< 5400<< 18000<< 8100);
1847 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1848 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L ?f0 0 ?f0 ?f3 ?f2 ?f3 ?f2 ?f1 21600 10800 ?f2 ?f4 ?f2 ?f5 ?f0 ?f5 ?f0 21600 0 21600 Z N");
1849 out.xml.addAttribute("draw:type", "right-arrow-callout");
1850 out.xml.addAttribute("draw:text-areas", "0 0 ?f0 21600");
1851 setShapeMirroring(o, out);
1852 equation(out,"f0","$0 ");
1853 equation(out,"f1","$1 ");
1854 equation(out,"f2","$2 ");
1855 equation(out,"f3","$3 ");
1856 equation(out,"f4","21600-?f1 ");
1857 equation(out,"f5","21600-?f3 ");
1858 out.xml.startElement("draw:handle");
1859 out.xml.addAttribute("draw:handle-position", "$0 top");
1860 out.xml.addAttribute("draw:handle-range-x-maximum", "$2");
1861 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1862 out.xml.endElement(); // draw:handle
1863 out.xml.startElement("draw:handle");
1864 out.xml.addAttribute("draw:handle-position", "$2 $3");
1865 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1866 out.xml.addAttribute("draw:handle-range-y-minimum", "$1");
1867 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1868 out.xml.addAttribute("draw:handle-range-x-minimum", "$0");
1869 out.xml.endElement(); // draw:handle
1870 out.xml.startElement("draw:handle");
1871 out.xml.addAttribute("draw:handle-position", "right $1");
1872 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1873 out.xml.addAttribute("draw:handle-range-y-maximum", "$3");
1874 out.xml.endElement(); // draw:handle
1875 out.xml.endElement(); // enhanced geometry
1876 out.xml.endElement(); // custom shape
1877 }
1878
1879
processLeftArrowCallout(const MSO::OfficeArtSpContainer & o,Writer & out)1880 void ODrawToOdf::processLeftArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
1881 out.xml.startElement("draw:custom-shape");
1882 processStyleAndText(o, out);
1883
1884 out.xml.startElement("draw:enhanced-geometry");
1885 processModifiers(o, out, QList<int>() << 7200<< 5400<< 3600<< 8100);
1886 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1887 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 L 21600 0 21600 21600 ?f0 21600 ?f0 ?f5 ?f2 ?f5 ?f2 ?f4 0 10800 ?f2 ?f1 ?f2 ?f3 ?f0 ?f3 Z N");
1888 out.xml.addAttribute("draw:type", "left-arrow-callout");
1889 out.xml.addAttribute("draw:text-areas", "?f0 0 21600 21600");
1890 setShapeMirroring(o, out);
1891 equation(out,"f0","$0 ");
1892 equation(out,"f1","$1 ");
1893 equation(out,"f2","$2 ");
1894 equation(out,"f3","$3 ");
1895 equation(out,"f4","21600-?f1 ");
1896 equation(out,"f5","21600-?f3 ");
1897 out.xml.startElement("draw:handle");
1898 out.xml.addAttribute("draw:handle-position", "$0 top");
1899 out.xml.addAttribute("draw:handle-range-x-maximum", "21600");
1900 out.xml.addAttribute("draw:handle-range-x-minimum", "$2");
1901 out.xml.endElement(); // draw:handle
1902 out.xml.startElement("draw:handle");
1903 out.xml.addAttribute("draw:handle-position", "$2 $3");
1904 out.xml.addAttribute("draw:handle-range-x-maximum", "$0");
1905 out.xml.addAttribute("draw:handle-range-y-minimum", "$1");
1906 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
1907 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1908 out.xml.endElement(); // draw:handle
1909 out.xml.startElement("draw:handle");
1910 out.xml.addAttribute("draw:handle-position", "left $1");
1911 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1912 out.xml.addAttribute("draw:handle-range-y-maximum", "$3");
1913 out.xml.endElement(); // draw:handle
1914 out.xml.endElement(); // enhanced geometry
1915 out.xml.endElement(); // custom shape
1916 }
1917
1918
processUpArrowCallout(const MSO::OfficeArtSpContainer & o,Writer & out)1919 void ODrawToOdf::processUpArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
1920 out.xml.startElement("draw:custom-shape");
1921 processStyleAndText(o, out);
1922
1923 out.xml.startElement("draw:enhanced-geometry");
1924 processModifiers(o, out, QList<int>() << 7200<< 5400<< 3600<< 8100);
1925 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1926 out.xml.addAttribute("draw:enhanced-path", "M 21600 ?f0 L 21600 21600 0 21600 0 ?f0 ?f3 ?f0 ?f3 ?f2 ?f1 ?f2 10800 0 ?f4 ?f2 ?f5 ?f2 ?f5 ?f0 Z N");
1927 out.xml.addAttribute("draw:type", "up-arrow-callout");
1928 out.xml.addAttribute("draw:text-areas", "0 ?f0 21600 21600");
1929 setShapeMirroring(o, out);
1930 equation(out,"f0","$0 ");
1931 equation(out,"f1","$1 ");
1932 equation(out,"f2","$2 ");
1933 equation(out,"f3","$3 ");
1934 equation(out,"f4","21600-?f1 ");
1935 equation(out,"f5","21600-?f3 ");
1936 out.xml.startElement("draw:handle");
1937 out.xml.addAttribute("draw:handle-position", "left $0");
1938 out.xml.addAttribute("draw:handle-range-y-minimum", "$2");
1939 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
1940 out.xml.endElement(); // draw:handle
1941 out.xml.startElement("draw:handle");
1942 out.xml.addAttribute("draw:handle-position", "$3 $2");
1943 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1944 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1945 out.xml.addAttribute("draw:handle-range-y-maximum", "$0");
1946 out.xml.addAttribute("draw:handle-range-x-minimum", "$1");
1947 out.xml.endElement(); // draw:handle
1948 out.xml.startElement("draw:handle");
1949 out.xml.addAttribute("draw:handle-position", "$1 top");
1950 out.xml.addAttribute("draw:handle-range-x-maximum", "$3");
1951 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1952 out.xml.endElement(); // draw:handle
1953 out.xml.endElement(); // enhanced geometry
1954 out.xml.endElement(); // custom shape
1955 }
1956
1957
processDownArrowCallout(const MSO::OfficeArtSpContainer & o,Writer & out)1958 void ODrawToOdf::processDownArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
1959 out.xml.startElement("draw:custom-shape");
1960 processStyleAndText(o, out);
1961
1962 out.xml.startElement("draw:enhanced-geometry");
1963 processModifiers(o, out, QList<int>() << 14400<< 5400<< 18000<< 8100);
1964 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
1965 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f0 L 0 0 21600 0 21600 ?f0 ?f5 ?f0 ?f5 ?f2 ?f4 ?f2 10800 21600 ?f1 ?f2 ?f3 ?f2 ?f3 ?f0 Z N");
1966 out.xml.addAttribute("draw:type", "down-arrow-callout");
1967 out.xml.addAttribute("draw:text-areas", "0 0 21600 ?f0");
1968 setShapeMirroring(o, out);
1969 equation(out,"f0","$0 ");
1970 equation(out,"f1","$1 ");
1971 equation(out,"f2","$2 ");
1972 equation(out,"f3","$3 ");
1973 equation(out,"f4","21600-?f1 ");
1974 equation(out,"f5","21600-?f3 ");
1975 out.xml.startElement("draw:handle");
1976 out.xml.addAttribute("draw:handle-position", "left $0");
1977 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
1978 out.xml.addAttribute("draw:handle-range-y-maximum", "$2");
1979 out.xml.endElement(); // draw:handle
1980 out.xml.startElement("draw:handle");
1981 out.xml.addAttribute("draw:handle-position", "$3 $2");
1982 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
1983 out.xml.addAttribute("draw:handle-range-y-minimum", "$0");
1984 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
1985 out.xml.addAttribute("draw:handle-range-x-minimum", "$1");
1986 out.xml.endElement(); // draw:handle
1987 out.xml.startElement("draw:handle");
1988 out.xml.addAttribute("draw:handle-position", "$1 bottom");
1989 out.xml.addAttribute("draw:handle-range-x-maximum", "$3");
1990 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
1991 out.xml.endElement(); // draw:handle
1992 out.xml.endElement(); // enhanced geometry
1993 out.xml.endElement(); // custom shape
1994 }
1995
1996
processLeftRightArrowCallout(const MSO::OfficeArtSpContainer & o,Writer & out)1997 void ODrawToOdf::processLeftRightArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
1998 out.xml.startElement("draw:custom-shape");
1999 processStyleAndText(o, out);
2000
2001 out.xml.startElement("draw:enhanced-geometry");
2002 processModifiers(o, out, QList<int>() << 5400<< 5500<< 2700<< 8100);
2003 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2004 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 L ?f4 0 ?f4 ?f3 ?f6 ?f3 ?f6 ?f1 21600 10800 ?f6 ?f5 ?f6 ?f7 ?f4 ?f7 ?f4 21600 ?f0 21600 ?f0 ?f7 ?f2 ?f7 ?f2 ?f5 0 10800 ?f2 ?f1 ?f2 ?f3 ?f0 ?f3 Z N");
2005 out.xml.addAttribute("draw:type", "left-right-arrow-callout");
2006 out.xml.addAttribute("draw:text-areas", "?f0 0 ?f4 21600");
2007 setShapeMirroring(o, out);
2008 equation(out,"f0","$0 ");
2009 equation(out,"f1","$1 ");
2010 equation(out,"f2","$2 ");
2011 equation(out,"f3","$3 ");
2012 equation(out,"f4","21600-?f0 ");
2013 equation(out,"f5","21600-?f1 ");
2014 equation(out,"f6","21600-?f2 ");
2015 equation(out,"f7","21600-?f3 ");
2016 out.xml.startElement("draw:handle");
2017 out.xml.addAttribute("draw:handle-position", "$0 top");
2018 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
2019 out.xml.addAttribute("draw:handle-range-x-minimum", "$2");
2020 out.xml.endElement(); // draw:handle
2021 out.xml.startElement("draw:handle");
2022 out.xml.addAttribute("draw:handle-position", "$2 $3");
2023 out.xml.addAttribute("draw:handle-range-x-maximum", "$0");
2024 out.xml.addAttribute("draw:handle-range-y-minimum", "$1");
2025 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
2026 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
2027 out.xml.endElement(); // draw:handle
2028 out.xml.startElement("draw:handle");
2029 out.xml.addAttribute("draw:handle-position", "left $1");
2030 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
2031 out.xml.addAttribute("draw:handle-range-y-maximum", "$3");
2032 out.xml.endElement(); // draw:handle
2033 out.xml.endElement(); // enhanced geometry
2034 out.xml.endElement(); // custom shape
2035 }
2036
2037
processUpDownArrowCallout(const MSO::OfficeArtSpContainer & o,Writer & out)2038 void ODrawToOdf::processUpDownArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
2039 out.xml.startElement("draw:custom-shape");
2040 processStyleAndText(o, out);
2041
2042 out.xml.startElement("draw:enhanced-geometry");
2043 processModifiers(o, out, QList<int>() << 5400<< 5500<< 2700<< 8100);
2044 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2045 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f0 L 0 ?f4 ?f3 ?f4 ?f3 ?f6 ?f1 ?f6 10800 21600 ?f5 ?f6 ?f7 ?f6 ?f7 ?f4 21600 ?f4 21600 ?f0 ?f7 ?f0 ?f7 ?f2 ?f5 ?f2 10800 0 ?f1 ?f2 ?f3 ?f2 ?f3 ?f0 Z N");
2046 out.xml.addAttribute("draw:type", "up-down-arrow-callout");
2047 out.xml.addAttribute("draw:text-areas", "0 ?f0 21600 ?f4");
2048 setShapeMirroring(o, out);
2049 equation(out,"f0","$0 ");
2050 equation(out,"f1","$1 ");
2051 equation(out,"f2","$2 ");
2052 equation(out,"f3","$3 ");
2053 equation(out,"f4","21600-?f0 ");
2054 equation(out,"f5","21600-?f1 ");
2055 equation(out,"f6","21600-?f2 ");
2056 equation(out,"f7","21600-?f3 ");
2057 out.xml.startElement("draw:handle");
2058 out.xml.addAttribute("draw:handle-position", "left $0");
2059 out.xml.addAttribute("draw:handle-range-y-minimum", "$2");
2060 out.xml.addAttribute("draw:handle-range-y-maximum", "10800");
2061 out.xml.endElement(); // draw:handle
2062 out.xml.startElement("draw:handle");
2063 out.xml.addAttribute("draw:handle-position", "$3 $2");
2064 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
2065 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
2066 out.xml.addAttribute("draw:handle-range-y-maximum", "$0");
2067 out.xml.addAttribute("draw:handle-range-x-minimum", "$1");
2068 out.xml.endElement(); // draw:handle
2069 out.xml.startElement("draw:handle");
2070 out.xml.addAttribute("draw:handle-position", "$1 top");
2071 out.xml.addAttribute("draw:handle-range-x-maximum", "$3");
2072 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
2073 out.xml.endElement(); // draw:handle
2074 out.xml.endElement(); // enhanced geometry
2075 out.xml.endElement(); // custom shape
2076 }
2077
2078
processQuadArrowCallout(const MSO::OfficeArtSpContainer & o,Writer & out)2079 void ODrawToOdf::processQuadArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
2080 out.xml.startElement("draw:custom-shape");
2081 processStyleAndText(o, out);
2082
2083 out.xml.startElement("draw:enhanced-geometry");
2084 processModifiers(o, out, QList<int>() << 5400<< 8100<< 2700<< 9400);
2085 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2086 out.xml.addAttribute("draw:enhanced-path", "M ?f0 ?f0 L ?f3 ?f0 ?f3 ?f2 ?f1 ?f2 10800 0 ?f5 ?f2 ?f7 ?f2 ?f7 ?f0 ?f4 ?f0 ?f4 ?f3 ?f6 ?f3 ?f6 ?f1 21600 10800 ?f6 ?f5 ?f6 ?f7 ?f4 ?f7 ?f4 ?f4 ?f7 ?f4 ?f7 ?f6 ?f5 ?f6 10800 21600 ?f1 ?f6 ?f3 ?f6 ?f3 ?f4 ?f0 ?f4 ?f0 ?f7 ?f2 ?f7 ?f2 ?f5 0 10800 ?f2 ?f1 ?f2 ?f3 ?f0 ?f3 Z N");
2087 out.xml.addAttribute("draw:type", "quad-arrow-callout");
2088 out.xml.addAttribute("draw:text-areas", "?f0 ?f0 ?f4 ?f4");
2089 setShapeMirroring(o, out);
2090 equation(out,"f0","$0 ");
2091 equation(out,"f1","$1 ");
2092 equation(out,"f2","$2 ");
2093 equation(out,"f3","$3 ");
2094 equation(out,"f4","21600-?f0 ");
2095 equation(out,"f5","21600-?f1 ");
2096 equation(out,"f6","21600-?f2 ");
2097 equation(out,"f7","21600-?f3 ");
2098 out.xml.startElement("draw:handle");
2099 out.xml.addAttribute("draw:handle-position", "left $0");
2100 out.xml.addAttribute("draw:handle-range-y-minimum", "$2");
2101 out.xml.addAttribute("draw:handle-range-y-maximum", "$1");
2102 out.xml.endElement(); // draw:handle
2103 out.xml.startElement("draw:handle");
2104 out.xml.addAttribute("draw:handle-position", "$1 top");
2105 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
2106 out.xml.addAttribute("draw:handle-range-x-minimum", "$0");
2107 out.xml.endElement(); // draw:handle
2108 out.xml.startElement("draw:handle");
2109 out.xml.addAttribute("draw:handle-position", "$3 $2");
2110 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
2111 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
2112 out.xml.addAttribute("draw:handle-range-y-maximum", "$0");
2113 out.xml.addAttribute("draw:handle-range-x-minimum", "$1");
2114 out.xml.endElement(); // draw:handle
2115 out.xml.endElement(); // enhanced geometry
2116 out.xml.endElement(); // custom shape
2117 }
2118
2119
processCircularArrow(const MSO::OfficeArtSpContainer & o,Writer & out)2120 void ODrawToOdf::processCircularArrow(const MSO::OfficeArtSpContainer& o, Writer& out) {
2121 out.xml.startElement("draw:custom-shape");
2122 processStyleAndText(o, out);
2123
2124 out.xml.startElement("draw:enhanced-geometry");
2125 // custom way for processing modifieres as this shape
2126 // return the AdjustValue, AdjustValue2 16-bit shifted
2127 // see bug 274684, file mp03_cycle_default.ppt
2128 const AdjustValue* val1 = get<AdjustValue>(o);
2129 const Adjust2Value* val2 = get<Adjust2Value>(o);
2130 const Adjust3Value* val3 = get<Adjust3Value>(o);
2131 QString modifiers = QString::number(val1 ? val1->adjustvalue >> 16 : 180) +
2132 QString(" %1").arg(val2 ? val2->adjust2value >> 16 : 0) +
2133 QString(" %1").arg(val3 ? val3->adjust3value : 5500);
2134 out.xml.addAttribute("draw:modifiers", modifiers);
2135
2136 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2137 out.xml.addAttribute("draw:enhanced-path", "B ?f3 ?f3 ?f20 ?f20 ?f19 ?f18 ?f17 ?f16 W 0 0 21600 21600 ?f9 ?f8 ?f11 ?f10 L ?f24 ?f23 ?f47 ?f46 ?f29 ?f28 Z N");
2138 out.xml.addAttribute("draw:type", "circular-arrow");
2139 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600");
2140 setShapeMirroring(o, out);
2141 equation(out,"f0","$0 ");
2142 equation(out,"f1","$1 ");
2143 equation(out,"f2","$2 ");
2144 equation(out,"f3","10800+$2 ");
2145 equation(out,"f4","10800*sin($0 *(pi/180))");
2146 equation(out,"f5","10800*cos($0 *(pi/180))");
2147 equation(out,"f6","10800*sin($1 *(pi/180))");
2148 equation(out,"f7","10800*cos($1 *(pi/180))");
2149 equation(out,"f8","?f4 +10800");
2150 equation(out,"f9","?f5 +10800");
2151 equation(out,"f10","?f6 +10800");
2152 equation(out,"f11","?f7 +10800");
2153 equation(out,"f12","?f3 *sin($0 *(pi/180))");
2154 equation(out,"f13","?f3 *cos($0 *(pi/180))");
2155 equation(out,"f14","?f3 *sin($1 *(pi/180))");
2156 equation(out,"f15","?f3 *cos($1 *(pi/180))");
2157 equation(out,"f16","?f12 +10800");
2158 equation(out,"f17","?f13 +10800");
2159 equation(out,"f18","?f14 +10800");
2160 equation(out,"f19","?f15 +10800");
2161 equation(out,"f20","21600-?f3 ");
2162 equation(out,"f21","13500*sin($1 *(pi/180))");
2163 equation(out,"f22","13500*cos($1 *(pi/180))");
2164 equation(out,"f23","?f21 +10800");
2165 equation(out,"f24","?f22 +10800");
2166 equation(out,"f25","$2 -2700");
2167 equation(out,"f26","?f25 *sin($1 *(pi/180))");
2168 equation(out,"f27","?f25 *cos($1 *(pi/180))");
2169 equation(out,"f28","?f26 +10800");
2170 equation(out,"f29","?f27 +10800");
2171 equation(out,"f30","?f29 -?f24 ");
2172 equation(out,"f31","?f29 -?f24 ");
2173 equation(out,"f32","?f30 *?f31 ");
2174 equation(out,"f33","?f28 -?f23 ");
2175 equation(out,"f34","?f28 -?f23 ");
2176 equation(out,"f35","?f33 *?f34 ");
2177 equation(out,"f36","?f32 +?f35 ");
2178 equation(out,"f37","sqrt(?f36 )");
2179 equation(out,"f38","$1 +45");
2180 equation(out,"f39","?f37 *sin(?f38 *(pi/180))");
2181 equation(out,"f40","$1 +45");
2182 equation(out,"f41","?f37 *cos(?f40 *(pi/180))");
2183 equation(out,"f42","45");
2184 equation(out,"f43","?f39 *sin(?f42 *(pi/180))");
2185 equation(out,"f44","45");
2186 equation(out,"f45","?f41 *sin(?f44 *(pi/180))");
2187 equation(out,"f46","?f28 +?f43 ");
2188 equation(out,"f47","?f29 +?f45 ");
2189 out.xml.startElement("draw:handle");
2190 out.xml.addAttribute("draw:handle-position", "10800 $0");
2191 out.xml.addAttribute("draw:handle-radius-range-minimum", "10800");
2192 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800");
2193 out.xml.addAttribute("draw:handle-polar", "10800 10800");
2194 out.xml.endElement(); // draw:handle
2195 out.xml.startElement("draw:handle");
2196 out.xml.addAttribute("draw:handle-position", "$2 $1");
2197 out.xml.addAttribute("draw:handle-radius-range-minimum", "0");
2198 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800");
2199 out.xml.addAttribute("draw:handle-polar", "10800 10800");
2200 out.xml.endElement(); // draw:handle
2201 out.xml.endElement(); // enhanced geometry
2202 out.xml.endElement(); // custom shape
2203 }
2204
2205
processFlowChartProcess(const MSO::OfficeArtSpContainer & o,Writer & out)2206 void ODrawToOdf::processFlowChartProcess(const MSO::OfficeArtSpContainer& o, Writer& out) {
2207 out.xml.startElement("draw:custom-shape");
2208 processStyleAndText(o, out);
2209
2210 out.xml.startElement("draw:enhanced-geometry");
2211 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2212 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2213 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N");
2214 out.xml.addAttribute("draw:type", "flowchart-process");
2215 setShapeMirroring(o, out);
2216 out.xml.endElement(); // enhanced geometry
2217 out.xml.endElement(); // custom shape
2218 }
2219
2220
processFlowChartAlternateProcess(const MSO::OfficeArtSpContainer & o,Writer & out)2221 void ODrawToOdf::processFlowChartAlternateProcess(const MSO::OfficeArtSpContainer& o, Writer& out) {
2222 out.xml.startElement("draw:custom-shape");
2223 processStyleAndText(o, out);
2224
2225 out.xml.startElement("draw:enhanced-geometry");
2226 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2227 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2228 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f2 Y ?f0 0 L ?f1 0 X 21600 ?f2 L 21600 ?f3 Y ?f1 21600 L ?f0 21600 X 0 ?f3 Z N");
2229 out.xml.addAttribute("draw:type", "flowchart-alternate-process");
2230 out.xml.addAttribute("draw:text-areas", "?f4 ?f6 ?f5 ?f7");
2231 setShapeMirroring(o, out);
2232 equation(out,"f0","left+2540");
2233 equation(out,"f1","right-2540");
2234 equation(out,"f2","top+2540");
2235 equation(out,"f3","bottom-2540");
2236 equation(out,"f4","left+800");
2237 equation(out,"f5","right-800");
2238 equation(out,"f6","top+800");
2239 equation(out,"f7","bottom-800");
2240 out.xml.endElement(); // enhanced geometry
2241 out.xml.endElement(); // custom shape
2242 }
2243
2244
processFlowChartDecision(const MSO::OfficeArtSpContainer & o,Writer & out)2245 void ODrawToOdf::processFlowChartDecision(const MSO::OfficeArtSpContainer& o, Writer& out) {
2246 out.xml.startElement("draw:custom-shape");
2247 processStyleAndText(o, out);
2248
2249 out.xml.startElement("draw:enhanced-geometry");
2250 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2251 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2252 out.xml.addAttribute("draw:enhanced-path", "M 0 10800 L 10800 0 21600 10800 10800 21600 0 10800 Z N");
2253 out.xml.addAttribute("draw:type", "flowchart-decision");
2254 out.xml.addAttribute("draw:text-areas", "5400 5400 16200 16200");
2255 setShapeMirroring(o, out);
2256 out.xml.endElement(); // enhanced geometry
2257 out.xml.endElement(); // custom shape
2258 }
2259
2260
processFlowChartInputOutput(const MSO::OfficeArtSpContainer & o,Writer & out)2261 void ODrawToOdf::processFlowChartInputOutput(const MSO::OfficeArtSpContainer& o, Writer& out) {
2262 out.xml.startElement("draw:custom-shape");
2263 processStyleAndText(o, out);
2264
2265 out.xml.startElement("draw:enhanced-geometry");
2266 out.xml.addAttribute("draw:glue-points", "12960 0 10800 0 2160 10800 8600 21600 10800 21600 19400 10800");
2267 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2268 out.xml.addAttribute("draw:enhanced-path", "M 4230 0 L 21600 0 17370 21600 0 21600 4230 0 Z N");
2269 out.xml.addAttribute("draw:type", "flowchart-data");
2270 out.xml.addAttribute("draw:text-areas", "4230 0 17370 21600");
2271 setShapeMirroring(o, out);
2272 out.xml.endElement(); // enhanced geometry
2273 out.xml.endElement(); // custom shape
2274 }
2275
2276
processFlowChartPredefinedProcess(const MSO::OfficeArtSpContainer & o,Writer & out)2277 void ODrawToOdf::processFlowChartPredefinedProcess(const MSO::OfficeArtSpContainer& o, Writer& out) {
2278 out.xml.startElement("draw:custom-shape");
2279 processStyleAndText(o, out);
2280
2281 out.xml.startElement("draw:enhanced-geometry");
2282 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2283 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 2540 0 L 2540 21600 N M 19060 0 L 19060 21600 N");
2284 out.xml.addAttribute("draw:type", "flowchart-predefined-process");
2285 out.xml.addAttribute("draw:text-areas", "2540 0 19060 21600");
2286 setShapeMirroring(o, out);
2287 out.xml.endElement(); // enhanced geometry
2288 out.xml.endElement(); // custom shape
2289 }
2290
2291
processFlowChartInternalStorage(const MSO::OfficeArtSpContainer & o,Writer & out)2292 void ODrawToOdf::processFlowChartInternalStorage(const MSO::OfficeArtSpContainer& o, Writer& out) {
2293 out.xml.startElement("draw:custom-shape");
2294 processStyleAndText(o, out);
2295
2296 out.xml.startElement("draw:enhanced-geometry");
2297 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2298 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 4230 0 L 4230 21600 N M 0 4230 L 21600 4230 N");
2299 out.xml.addAttribute("draw:type", "flowchart-internal-storage");
2300 out.xml.addAttribute("draw:text-areas", "4230 4230 21600 21600");
2301 setShapeMirroring(o, out);
2302 out.xml.endElement(); // enhanced geometry
2303 out.xml.endElement(); // custom shape
2304 }
2305
2306
processFlowChartDocument(const MSO::OfficeArtSpContainer & o,Writer & out)2307 void ODrawToOdf::processFlowChartDocument(const MSO::OfficeArtSpContainer& o, Writer& out) {
2308 out.xml.startElement("draw:custom-shape");
2309 processStyleAndText(o, out);
2310
2311 out.xml.startElement("draw:enhanced-geometry");
2312 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 20320 21600 10800");
2313 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2314 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 17360 C 13050 17220 13340 20770 5620 21600 2860 21100 1850 20700 0 20120 Z N");
2315 out.xml.addAttribute("draw:type", "flowchart-document");
2316 out.xml.addAttribute("draw:text-areas", "0 0 21600 17360");
2317 setShapeMirroring(o, out);
2318 out.xml.endElement(); // enhanced geometry
2319 out.xml.endElement(); // custom shape
2320 }
2321
2322
processFlowChartMultidocument(const MSO::OfficeArtSpContainer & o,Writer & out)2323 void ODrawToOdf::processFlowChartMultidocument(const MSO::OfficeArtSpContainer& o, Writer& out) {
2324 out.xml.startElement("draw:custom-shape");
2325 processStyleAndText(o, out);
2326
2327 out.xml.startElement("draw:enhanced-geometry");
2328 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 19890 21600 10800");
2329 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2330 out.xml.addAttribute("draw:enhanced-path", "M 0 3600 L 1500 3600 1500 1800 3000 1800 3000 0 21600 0 21600 14409 20100 14409 20100 16209 18600 16209 18600 18009 C 11610 17893 11472 20839 4833 21528 2450 21113 1591 20781 0 20300 Z N M 1500 3600 F L 18600 3600 18600 16209 N M 3000 1800 F L 20100 1800 20100 14409 N");
2331 out.xml.addAttribute("draw:type", "flowchart-multidocument");
2332 out.xml.addAttribute("draw:text-areas", "0 3600 18600 18009");
2333 setShapeMirroring(o, out);
2334 out.xml.endElement(); // enhanced geometry
2335 out.xml.endElement(); // custom shape
2336 }
2337
2338
processFlowChartTerminator(const MSO::OfficeArtSpContainer & o,Writer & out)2339 void ODrawToOdf::processFlowChartTerminator(const MSO::OfficeArtSpContainer& o, Writer& out) {
2340 out.xml.startElement("draw:custom-shape");
2341 processStyleAndText(o, out);
2342
2343 out.xml.startElement("draw:enhanced-geometry");
2344 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2345 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2346 out.xml.addAttribute("draw:enhanced-path", "M 3470 21600 X 0 10800 3470 0 L 18130 0 X 21600 10800 18130 21600 Z N");
2347 out.xml.addAttribute("draw:type", "flowchart-terminator");
2348 out.xml.addAttribute("draw:text-areas", "1060 3180 20540 18420");
2349 setShapeMirroring(o, out);
2350 out.xml.endElement(); // enhanced geometry
2351 out.xml.endElement(); // custom shape
2352 }
2353
2354
processFlowChartPreparation(const MSO::OfficeArtSpContainer & o,Writer & out)2355 void ODrawToOdf::processFlowChartPreparation(const MSO::OfficeArtSpContainer& o, Writer& out) {
2356 out.xml.startElement("draw:custom-shape");
2357 processStyleAndText(o, out);
2358
2359 out.xml.startElement("draw:enhanced-geometry");
2360 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2361 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2362 out.xml.addAttribute("draw:enhanced-path", "M 4350 0 L 17250 0 21600 10800 17250 21600 4350 21600 0 10800 4350 0 Z N");
2363 out.xml.addAttribute("draw:type", "flowchart-preparation");
2364 out.xml.addAttribute("draw:text-areas", "4350 0 17250 21600");
2365 setShapeMirroring(o, out);
2366 out.xml.endElement(); // enhanced geometry
2367 out.xml.endElement(); // custom shape
2368 }
2369
2370
processFlowChartManualInput(const MSO::OfficeArtSpContainer & o,Writer & out)2371 void ODrawToOdf::processFlowChartManualInput(const MSO::OfficeArtSpContainer& o, Writer& out) {
2372 out.xml.startElement("draw:custom-shape");
2373 processStyleAndText(o, out);
2374
2375 out.xml.startElement("draw:enhanced-geometry");
2376 out.xml.addAttribute("draw:glue-points", "10800 2150 0 10800 10800 19890 21600 10800");
2377 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2378 out.xml.addAttribute("draw:enhanced-path", "M 0 4300 L 21600 0 21600 21600 0 21600 0 4300 Z N");
2379 out.xml.addAttribute("draw:type", "flowchart-manual-input");
2380 out.xml.addAttribute("draw:text-areas", "0 4300 21600 21600");
2381 setShapeMirroring(o, out);
2382 out.xml.endElement(); // enhanced geometry
2383 out.xml.endElement(); // custom shape
2384 }
2385
2386
processFlowChartManualOperation(const MSO::OfficeArtSpContainer & o,Writer & out)2387 void ODrawToOdf::processFlowChartManualOperation(const MSO::OfficeArtSpContainer& o, Writer& out) {
2388 out.xml.startElement("draw:custom-shape");
2389 processStyleAndText(o, out);
2390
2391 out.xml.startElement("draw:enhanced-geometry");
2392 out.xml.addAttribute("draw:glue-points", "10800 0 2160 10800 10800 21600 19440 10800");
2393 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2394 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 17250 21600 4350 21600 0 0 Z N");
2395 out.xml.addAttribute("draw:type", "flowchart-manual-operation");
2396 out.xml.addAttribute("draw:text-areas", "4350 0 17250 21600");
2397 setShapeMirroring(o, out);
2398 out.xml.endElement(); // enhanced geometry
2399 out.xml.endElement(); // custom shape
2400 }
2401
2402
processFlowChartConnector(const MSO::OfficeArtSpContainer & o,Writer & out)2403 void ODrawToOdf::processFlowChartConnector(const MSO::OfficeArtSpContainer& o, Writer& out) {
2404 out.xml.startElement("draw:custom-shape");
2405 processStyleAndText(o, out);
2406
2407 out.xml.startElement("draw:enhanced-geometry");
2408 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163");
2409 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2410 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z N");
2411 out.xml.addAttribute("draw:type", "flowchart-connector");
2412 out.xml.addAttribute("draw:text-areas", "3180 3180 18420 18420");
2413 setShapeMirroring(o, out);
2414 out.xml.endElement(); // enhanced geometry
2415 out.xml.endElement(); // custom shape
2416 }
2417
2418
processFlowChartOffpageConnector(const MSO::OfficeArtSpContainer & o,Writer & out)2419 void ODrawToOdf::processFlowChartOffpageConnector(const MSO::OfficeArtSpContainer& o, Writer& out) {
2420 out.xml.startElement("draw:custom-shape");
2421 processStyleAndText(o, out);
2422
2423 out.xml.startElement("draw:enhanced-geometry");
2424 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2425 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2426 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 17150 10800 21600 0 17150 0 0 Z N");
2427 out.xml.addAttribute("draw:type", "flowchart-off-page-connector");
2428 out.xml.addAttribute("draw:text-areas", "0 0 21600 17150");
2429 setShapeMirroring(o, out);
2430 out.xml.endElement(); // enhanced geometry
2431 out.xml.endElement(); // custom shape
2432 }
2433
2434
processFlowChartPunchedCard(const MSO::OfficeArtSpContainer & o,Writer & out)2435 void ODrawToOdf::processFlowChartPunchedCard(const MSO::OfficeArtSpContainer& o, Writer& out) {
2436 out.xml.startElement("draw:custom-shape");
2437 processStyleAndText(o, out);
2438
2439 out.xml.startElement("draw:enhanced-geometry");
2440 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2441 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2442 out.xml.addAttribute("draw:enhanced-path", "M 4300 0 L 21600 0 21600 21600 0 21600 0 4300 4300 0 Z N");
2443 out.xml.addAttribute("draw:type", "flowchart-card");
2444 out.xml.addAttribute("draw:text-areas", "0 4300 21600 21600");
2445 setShapeMirroring(o, out);
2446 out.xml.endElement(); // enhanced geometry
2447 out.xml.endElement(); // custom shape
2448 }
2449
2450
processFlowChartPunchedTape(const MSO::OfficeArtSpContainer & o,Writer & out)2451 void ODrawToOdf::processFlowChartPunchedTape(const MSO::OfficeArtSpContainer& o, Writer& out) {
2452 out.xml.startElement("draw:custom-shape");
2453 processStyleAndText(o, out);
2454
2455 out.xml.startElement("draw:enhanced-geometry");
2456 out.xml.addAttribute("draw:glue-points", "10800 2020 0 10800 10800 19320 21600 10800");
2457 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2458 out.xml.addAttribute("draw:enhanced-path", "M 0 2230 C 820 3990 3410 3980 5370 4360 7430 4030 10110 3890 10690 2270 11440 300 14200 160 16150 0 18670 170 20690 390 21600 2230 L 21600 19420 C 20640 17510 18320 17490 16140 17240 14710 17370 11310 17510 10770 19430 10150 21150 7380 21290 5290 21600 3220 21250 610 21130 0 19420 Z N");
2459 out.xml.addAttribute("draw:type", "flowchart-punched-tape");
2460 out.xml.addAttribute("draw:text-areas", "0 4360 21600 17240");
2461 setShapeMirroring(o, out);
2462 out.xml.endElement(); // enhanced geometry
2463 out.xml.endElement(); // custom shape
2464 }
2465
2466
processFlowChartSummingJunction(const MSO::OfficeArtSpContainer & o,Writer & out)2467 void ODrawToOdf::processFlowChartSummingJunction(const MSO::OfficeArtSpContainer& o, Writer& out) {
2468 out.xml.startElement("draw:custom-shape");
2469 processStyleAndText(o, out);
2470
2471 out.xml.startElement("draw:enhanced-geometry");
2472 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163");
2473 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2474 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z N M 3100 3100 L 18500 18500 N M 3100 18500 L 18500 3100 N");
2475 out.xml.addAttribute("draw:type", "flowchart-summing-junction");
2476 out.xml.addAttribute("draw:text-areas", "3100 3100 18500 18500");
2477 setShapeMirroring(o, out);
2478 out.xml.endElement(); // enhanced geometry
2479 out.xml.endElement(); // custom shape
2480 }
2481
2482
processFlowChartOr(const MSO::OfficeArtSpContainer & o,Writer & out)2483 void ODrawToOdf::processFlowChartOr(const MSO::OfficeArtSpContainer& o, Writer& out) {
2484 out.xml.startElement("draw:custom-shape");
2485 processStyleAndText(o, out);
2486
2487 out.xml.startElement("draw:enhanced-geometry");
2488 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163");
2489 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2490 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z N M 0 10800 L 21600 10800 N M 10800 0 L 10800 21600 N");
2491 out.xml.addAttribute("draw:type", "flowchart-or");
2492 out.xml.addAttribute("draw:text-areas", "3100 3100 18500 18500");
2493 setShapeMirroring(o, out);
2494 out.xml.endElement(); // enhanced geometry
2495 out.xml.endElement(); // custom shape
2496 }
2497
2498
processFlowChartCollate(const MSO::OfficeArtSpContainer & o,Writer & out)2499 void ODrawToOdf::processFlowChartCollate(const MSO::OfficeArtSpContainer& o, Writer& out) {
2500 out.xml.startElement("draw:custom-shape");
2501 processStyleAndText(o, out);
2502
2503 out.xml.startElement("draw:enhanced-geometry");
2504 out.xml.addAttribute("draw:glue-points", "10800 0 10800 10800 10800 21600");
2505 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2506 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 21600 0 21600 21600 0 0 0 Z N");
2507 out.xml.addAttribute("draw:type", "flowchart-collate");
2508 out.xml.addAttribute("draw:text-areas", "5400 5400 16200 16200");
2509 setShapeMirroring(o, out);
2510 out.xml.endElement(); // enhanced geometry
2511 out.xml.endElement(); // custom shape
2512 }
2513
2514
processFlowChartSort(const MSO::OfficeArtSpContainer & o,Writer & out)2515 void ODrawToOdf::processFlowChartSort(const MSO::OfficeArtSpContainer& o, Writer& out) {
2516 out.xml.startElement("draw:custom-shape");
2517 processStyleAndText(o, out);
2518
2519 out.xml.startElement("draw:enhanced-geometry");
2520 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2521 out.xml.addAttribute("draw:enhanced-path", "M 0 10800 L 10800 0 21600 10800 10800 21600 Z N M 0 10800 L 21600 10800 N");
2522 out.xml.addAttribute("draw:type", "flowchart-sort");
2523 out.xml.addAttribute("draw:text-areas", "5400 5400 16200 16200");
2524 setShapeMirroring(o, out);
2525 out.xml.endElement(); // enhanced geometry
2526 out.xml.endElement(); // custom shape
2527 }
2528
2529
processFlowChartExtract(const MSO::OfficeArtSpContainer & o,Writer & out)2530 void ODrawToOdf::processFlowChartExtract(const MSO::OfficeArtSpContainer& o, Writer& out) {
2531 out.xml.startElement("draw:custom-shape");
2532 processStyleAndText(o, out);
2533
2534 out.xml.startElement("draw:enhanced-geometry");
2535 out.xml.addAttribute("draw:glue-points", "10800 0 5400 10800 10800 21600 16200 10800");
2536 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2537 out.xml.addAttribute("draw:enhanced-path", "M 10800 0 L 21600 21600 0 21600 10800 0 Z N");
2538 out.xml.addAttribute("draw:type", "flowchart-extract");
2539 out.xml.addAttribute("draw:text-areas", "5400 10800 16200 21600");
2540 setShapeMirroring(o, out);
2541 out.xml.endElement(); // enhanced geometry
2542 out.xml.endElement(); // custom shape
2543 }
2544
2545
processFlowChartMerge(const MSO::OfficeArtSpContainer & o,Writer & out)2546 void ODrawToOdf::processFlowChartMerge(const MSO::OfficeArtSpContainer& o, Writer& out) {
2547 out.xml.startElement("draw:custom-shape");
2548 processStyleAndText(o, out);
2549
2550 out.xml.startElement("draw:enhanced-geometry");
2551 out.xml.addAttribute("draw:glue-points", "10800 0 5400 10800 10800 21600 16200 10800");
2552 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2553 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 10800 21600 0 0 Z N");
2554 out.xml.addAttribute("draw:type", "flowchart-merge");
2555 out.xml.addAttribute("draw:text-areas", "5400 0 16200 10800");
2556 setShapeMirroring(o, out);
2557 out.xml.endElement(); // enhanced geometry
2558 out.xml.endElement(); // custom shape
2559 }
2560
2561
processFlowChartOnlineStorage(const MSO::OfficeArtSpContainer & o,Writer & out)2562 void ODrawToOdf::processFlowChartOnlineStorage(const MSO::OfficeArtSpContainer& o, Writer& out) {
2563 out.xml.startElement("draw:custom-shape");
2564 processStyleAndText(o, out);
2565
2566 out.xml.startElement("draw:enhanced-geometry");
2567 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 18000 10800");
2568 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2569 out.xml.addAttribute("draw:enhanced-path", "M 3600 21600 X 0 10800 3600 0 L 21600 0 X 18000 10800 21600 21600 Z N");
2570 out.xml.addAttribute("draw:type", "flowchart-stored-data");
2571 out.xml.addAttribute("draw:text-areas", "3600 0 18000 21600");
2572 setShapeMirroring(o, out);
2573 out.xml.endElement(); // enhanced geometry
2574 out.xml.endElement(); // custom shape
2575 }
2576
2577
processFlowChartDelay(const MSO::OfficeArtSpContainer & o,Writer & out)2578 void ODrawToOdf::processFlowChartDelay(const MSO::OfficeArtSpContainer& o, Writer& out) {
2579 out.xml.startElement("draw:custom-shape");
2580 processStyleAndText(o, out);
2581
2582 out.xml.startElement("draw:enhanced-geometry");
2583 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2584 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2585 out.xml.addAttribute("draw:enhanced-path", "M 10800 0 X 21600 10800 10800 21600 L 0 21600 0 0 Z N");
2586 out.xml.addAttribute("draw:type", "flowchart-delay");
2587 out.xml.addAttribute("draw:text-areas", "0 3100 18500 18500");
2588 setShapeMirroring(o, out);
2589 out.xml.endElement(); // enhanced geometry
2590 out.xml.endElement(); // custom shape
2591 }
2592
2593
processFlowChartMagneticTape(const MSO::OfficeArtSpContainer & o,Writer & out)2594 void ODrawToOdf::processFlowChartMagneticTape(const MSO::OfficeArtSpContainer& o, Writer& out) {
2595 out.xml.startElement("draw:custom-shape");
2596 processStyleAndText(o, out);
2597
2598 out.xml.startElement("draw:enhanced-geometry");
2599 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2600 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2601 out.xml.addAttribute("draw:enhanced-path", "M 20980 18150 L 20980 21600 10670 21600 C 4770 21540 0 16720 0 10800 0 4840 4840 0 10800 0 16740 0 21600 4840 21600 10800 21600 13520 20550 16160 18670 18170 Z N");
2602 out.xml.addAttribute("draw:type", "flowchart-sequential-access");
2603 out.xml.addAttribute("draw:text-areas", "3100 3100 18500 18500");
2604 setShapeMirroring(o, out);
2605 out.xml.endElement(); // enhanced geometry
2606 out.xml.endElement(); // custom shape
2607 }
2608
2609
processFlowChartMagneticDisk(const MSO::OfficeArtSpContainer & o,Writer & out)2610 void ODrawToOdf::processFlowChartMagneticDisk(const MSO::OfficeArtSpContainer& o, Writer& out) {
2611 out.xml.startElement("draw:custom-shape");
2612 processStyleAndText(o, out);
2613
2614 out.xml.startElement("draw:enhanced-geometry");
2615 out.xml.addAttribute("draw:glue-points", "10800 6800 10800 0 0 10800 10800 21600 21600 10800");
2616 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2617 out.xml.addAttribute("draw:enhanced-path", "M 0 3400 Y 10800 0 21600 3400 L 21600 18200 Y 10800 21600 0 18200 Z N M 0 3400 Y 10800 6800 21600 3400 N");
2618 out.xml.addAttribute("draw:type", "flowchart-magnetic-disk");
2619 out.xml.addAttribute("draw:text-areas", "0 6800 21600 18200");
2620 setShapeMirroring(o, out);
2621 out.xml.endElement(); // enhanced geometry
2622 out.xml.endElement(); // custom shape
2623 }
2624
2625
processFlowChartMagneticDrum(const MSO::OfficeArtSpContainer & o,Writer & out)2626 void ODrawToOdf::processFlowChartMagneticDrum(const MSO::OfficeArtSpContainer& o, Writer& out) {
2627 out.xml.startElement("draw:custom-shape");
2628 processStyleAndText(o, out);
2629
2630 out.xml.startElement("draw:enhanced-geometry");
2631 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 14800 10800 21600 10800");
2632 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2633 out.xml.addAttribute("draw:enhanced-path", "M 18200 0 X 21600 10800 18200 21600 L 3400 21600 X 0 10800 3400 0 Z N M 18200 0 X 14800 10800 18200 21600 N");
2634 out.xml.addAttribute("draw:type", "flowchart-direct-access-storage");
2635 out.xml.addAttribute("draw:text-areas", "3400 0 14800 21600");
2636 setShapeMirroring(o, out);
2637 out.xml.endElement(); // enhanced geometry
2638 out.xml.endElement(); // custom shape
2639 }
2640
2641
processFlowChartDisplay(const MSO::OfficeArtSpContainer & o,Writer & out)2642 void ODrawToOdf::processFlowChartDisplay(const MSO::OfficeArtSpContainer& o, Writer& out) {
2643 out.xml.startElement("draw:custom-shape");
2644 processStyleAndText(o, out);
2645
2646 out.xml.startElement("draw:enhanced-geometry");
2647 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800");
2648 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2649 out.xml.addAttribute("draw:enhanced-path", "M 3600 0 L 17800 0 X 21600 10800 17800 21600 L 3600 21600 0 10800 Z N");
2650 out.xml.addAttribute("draw:type", "flowchart-display");
2651 out.xml.addAttribute("draw:text-areas", "3600 0 17800 21600");
2652 setShapeMirroring(o, out);
2653 out.xml.endElement(); // enhanced geometry
2654 out.xml.endElement(); // custom shape
2655 }
2656
2657
processIrregularSeal1(const MSO::OfficeArtSpContainer & o,Writer & out)2658 void ODrawToOdf::processIrregularSeal1(const MSO::OfficeArtSpContainer& o, Writer& out) {
2659 out.xml.startElement("draw:custom-shape");
2660 processStyleAndText(o, out);
2661
2662 out.xml.startElement("draw:enhanced-geometry");
2663 out.xml.addAttribute("draw:glue-points", "14623 106 106 8718 8590 21600 21600 13393");
2664 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2665 out.xml.addAttribute("draw:enhanced-path", "M 10901 5905 L 8458 2399 7417 6425 476 2399 4732 7722 106 8718 3828 11880 243 14689 5772 14041 4868 17719 7819 15730 8590 21600 10637 15038 13349 19840 14125 14561 18248 18195 16938 13044 21600 13393 17710 10579 21198 8242 16806 7417 18482 4560 14257 5429 14623 106 10901 5905 Z N");
2666 out.xml.addAttribute("draw:type", "mso-spt71");
2667 out.xml.addAttribute("draw:text-areas", "4680 6570 16140 13280");
2668 setShapeMirroring(o, out);
2669 out.xml.endElement(); // enhanced geometry
2670 out.xml.endElement(); // custom shape
2671 }
2672
2673
processIrregularSeal2(const MSO::OfficeArtSpContainer & o,Writer & out)2674 void ODrawToOdf::processIrregularSeal2(const MSO::OfficeArtSpContainer& o, Writer& out) {
2675 out.xml.startElement("draw:custom-shape");
2676 processStyleAndText(o, out);
2677
2678 out.xml.startElement("draw:enhanced-geometry");
2679 out.xml.addAttribute("draw:glue-points", "9722 1887 0 12875 11614 18844 21600 6646");
2680 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2681 out.xml.addAttribute("draw:enhanced-path", "M 11464 4340 L 9722 1887 8548 6383 4503 3626 5373 7816 1174 8270 3934 11592 0 12875 3329 15372 1283 17824 4804 18239 4918 21600 7525 18125 8698 19712 9871 17371 11614 18844 12178 15937 14943 17371 14640 14348 18878 15632 16382 12311 18270 11292 16986 9404 21600 6646 16382 6533 18005 3172 14524 5778 14789 0 11464 4340 Z N");
2682 out.xml.addAttribute("draw:type", "bang");
2683 out.xml.addAttribute("draw:text-areas", "5400 6570 14160 15290");
2684 setShapeMirroring(o, out);
2685 out.xml.endElement(); // enhanced geometry
2686 out.xml.endElement(); // custom shape
2687 }
2688
2689
processSeal4(const MSO::OfficeArtSpContainer & o,Writer & out)2690 void ODrawToOdf::processSeal4(const MSO::OfficeArtSpContainer& o, Writer& out) {
2691 out.xml.startElement("draw:custom-shape");
2692 processStyleAndText(o, out);
2693
2694 out.xml.startElement("draw:enhanced-geometry");
2695 processModifiers(o, out, QList<int>() << 8100);
2696 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2697 out.xml.addAttribute("draw:enhanced-path", "M 0 10800 L ?f4 ?f4 10800 0 ?f3 ?f4 21600 10800 ?f3 ?f3 10800 21600 ?f4 ?f3 0 10800 Z N");
2698 out.xml.addAttribute("draw:type", "star4");
2699 out.xml.addAttribute("draw:text-areas", "?f4 ?f4 ?f3 ?f3");
2700 setShapeMirroring(o, out);
2701 equation(out,"f0","7600");
2702 equation(out,"f1","?f0 *$0 /10800");
2703 equation(out,"f2","?f0 -?f1 ");
2704 equation(out,"f3","10800+?f2 ");
2705 equation(out,"f4","10800-?f2 ");
2706 out.xml.startElement("draw:handle");
2707 out.xml.addAttribute("draw:handle-position", "$0 10800");
2708 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
2709 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
2710 out.xml.endElement(); // draw:handle
2711 out.xml.endElement(); // enhanced geometry
2712 out.xml.endElement(); // custom shape
2713 }
2714
2715
processStar(const MSO::OfficeArtSpContainer & o,Writer & out)2716 void ODrawToOdf::processStar(const MSO::OfficeArtSpContainer& o, Writer& out) {
2717 out.xml.startElement("draw:custom-shape");
2718 processStyleAndText(o, out);
2719
2720 out.xml.startElement("draw:enhanced-geometry");
2721 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2722 out.xml.addAttribute("draw:enhanced-path", "M 10797 0 L 8278 8256 0 8256 6722 13405 4198 21600 10797 16580 17401 21600 14878 13405 21600 8256 13321 8256 10797 0 Z N");
2723 out.xml.addAttribute("draw:type", "star5");
2724 out.xml.addAttribute("draw:text-areas", "6722 8256 14878 15460");
2725 setShapeMirroring(o, out);
2726 out.xml.endElement(); // enhanced geometry
2727 out.xml.endElement(); // custom shape
2728 }
2729
2730
processSeal8(const MSO::OfficeArtSpContainer & o,Writer & out)2731 void ODrawToOdf::processSeal8(const MSO::OfficeArtSpContainer& o, Writer& out) {
2732 out.xml.startElement("draw:custom-shape");
2733 processStyleAndText(o, out);
2734
2735 out.xml.startElement("draw:enhanced-geometry");
2736 processModifiers(o, out, QList<int>() << 2500);
2737 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2738 out.xml.addAttribute("draw:enhanced-path", "M ?f5 ?f6 L ?f11 ?f12 ?f17 ?f18 ?f23 ?f24 ?f29 ?f30 ?f35 ?f36 ?f41 ?f42 ?f47 ?f48 ?f53 ?f54 ?f59 ?f60 ?f65 ?f66 ?f71 ?f72 ?f77 ?f78 ?f83 ?f84 ?f89 ?f90 ?f95 ?f96 ?f5 ?f6 Z N");
2739 out.xml.addAttribute("draw:type", "star8");
2740 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
2741 setShapeMirroring(o, out);
2742 equation(out,"f0","$0 ");
2743 equation(out,"f1","(cos(315*(pi/180))*(?f0 -10800)+sin(315*(pi/180))*(10800-10800))+10800");
2744 equation(out,"f2","-(sin(315*(pi/180))*(?f0 -10800)-cos(315*(pi/180))*(10800-10800))+10800");
2745 equation(out,"f3","(cos(135*(pi/180))*(?f0 -10800)+sin(135*(pi/180))*(10800-10800))+10800");
2746 equation(out,"f4","-(sin(135*(pi/180))*(?f0 -10800)-cos(135*(pi/180))*(10800-10800))+10800");
2747 equation(out,"f5","(cos(0*(pi/180))*(0-10800)+sin(0*(pi/180))*(10800-10800))+10800");
2748 equation(out,"f6","-(sin(0*(pi/180))*(0-10800)-cos(0*(pi/180))*(10800-10800))+10800");
2749 equation(out,"f7","(cos(7*(pi/180))*(?f0 -10800)+sin(7*(pi/180))*(10800-10800))+10800");
2750 equation(out,"f8","-(sin(7*(pi/180))*(?f0 -10800)-cos(7*(pi/180))*(10800-10800))+10800");
2751 equation(out,"f9","(cos(15*(pi/180))*(0-10800)+sin(15*(pi/180))*(10800-10800))+10800");
2752 equation(out,"f10","-(sin(15*(pi/180))*(0-10800)-cos(15*(pi/180))*(10800-10800))+10800");
2753 equation(out,"f11","(cos(22*(pi/180))*(?f0 -10800)+sin(22*(pi/180))*(10800-10800))+10800");
2754 equation(out,"f12","-(sin(22*(pi/180))*(?f0 -10800)-cos(22*(pi/180))*(10800-10800))+10800");
2755 equation(out,"f13","(cos(30*(pi/180))*(0-10800)+sin(30*(pi/180))*(10800-10800))+10800");
2756 equation(out,"f14","-(sin(30*(pi/180))*(0-10800)-cos(30*(pi/180))*(10800-10800))+10800");
2757 equation(out,"f15","(cos(37*(pi/180))*(?f0 -10800)+sin(37*(pi/180))*(10800-10800))+10800");
2758 equation(out,"f16","-(sin(37*(pi/180))*(?f0 -10800)-cos(37*(pi/180))*(10800-10800))+10800");
2759 equation(out,"f17","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800");
2760 equation(out,"f18","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800");
2761 equation(out,"f19","(cos(52*(pi/180))*(?f0 -10800)+sin(52*(pi/180))*(10800-10800))+10800");
2762 equation(out,"f20","-(sin(52*(pi/180))*(?f0 -10800)-cos(52*(pi/180))*(10800-10800))+10800");
2763 equation(out,"f21","(cos(60*(pi/180))*(0-10800)+sin(60*(pi/180))*(10800-10800))+10800");
2764 equation(out,"f22","-(sin(60*(pi/180))*(0-10800)-cos(60*(pi/180))*(10800-10800))+10800");
2765 equation(out,"f23","(cos(67*(pi/180))*(?f0 -10800)+sin(67*(pi/180))*(10800-10800))+10800");
2766 equation(out,"f24","-(sin(67*(pi/180))*(?f0 -10800)-cos(67*(pi/180))*(10800-10800))+10800");
2767 equation(out,"f25","(cos(75*(pi/180))*(0-10800)+sin(75*(pi/180))*(10800-10800))+10800");
2768 equation(out,"f26","-(sin(75*(pi/180))*(0-10800)-cos(75*(pi/180))*(10800-10800))+10800");
2769 equation(out,"f27","(cos(82*(pi/180))*(?f0 -10800)+sin(82*(pi/180))*(10800-10800))+10800");
2770 equation(out,"f28","-(sin(82*(pi/180))*(?f0 -10800)-cos(82*(pi/180))*(10800-10800))+10800");
2771 equation(out,"f29","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800");
2772 equation(out,"f30","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800");
2773 equation(out,"f31","(cos(97*(pi/180))*(?f0 -10800)+sin(97*(pi/180))*(10800-10800))+10800");
2774 equation(out,"f32","-(sin(97*(pi/180))*(?f0 -10800)-cos(97*(pi/180))*(10800-10800))+10800");
2775 equation(out,"f33","(cos(105*(pi/180))*(0-10800)+sin(105*(pi/180))*(10800-10800))+10800");
2776 equation(out,"f34","-(sin(105*(pi/180))*(0-10800)-cos(105*(pi/180))*(10800-10800))+10800");
2777 equation(out,"f35","(cos(112*(pi/180))*(?f0 -10800)+sin(112*(pi/180))*(10800-10800))+10800");
2778 equation(out,"f36","-(sin(112*(pi/180))*(?f0 -10800)-cos(112*(pi/180))*(10800-10800))+10800");
2779 equation(out,"f37","(cos(120*(pi/180))*(0-10800)+sin(120*(pi/180))*(10800-10800))+10800");
2780 equation(out,"f38","-(sin(120*(pi/180))*(0-10800)-cos(120*(pi/180))*(10800-10800))+10800");
2781 equation(out,"f39","(cos(127*(pi/180))*(?f0 -10800)+sin(127*(pi/180))*(10800-10800))+10800");
2782 equation(out,"f40","-(sin(127*(pi/180))*(?f0 -10800)-cos(127*(pi/180))*(10800-10800))+10800");
2783 equation(out,"f41","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800");
2784 equation(out,"f42","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800");
2785 equation(out,"f43","(cos(142*(pi/180))*(?f0 -10800)+sin(142*(pi/180))*(10800-10800))+10800");
2786 equation(out,"f44","-(sin(142*(pi/180))*(?f0 -10800)-cos(142*(pi/180))*(10800-10800))+10800");
2787 equation(out,"f45","(cos(150*(pi/180))*(0-10800)+sin(150*(pi/180))*(10800-10800))+10800");
2788 equation(out,"f46","-(sin(150*(pi/180))*(0-10800)-cos(150*(pi/180))*(10800-10800))+10800");
2789 equation(out,"f47","(cos(157*(pi/180))*(?f0 -10800)+sin(157*(pi/180))*(10800-10800))+10800");
2790 equation(out,"f48","-(sin(157*(pi/180))*(?f0 -10800)-cos(157*(pi/180))*(10800-10800))+10800");
2791 equation(out,"f49","(cos(165*(pi/180))*(0-10800)+sin(165*(pi/180))*(10800-10800))+10800");
2792 equation(out,"f50","-(sin(165*(pi/180))*(0-10800)-cos(165*(pi/180))*(10800-10800))+10800");
2793 equation(out,"f51","(cos(172*(pi/180))*(?f0 -10800)+sin(172*(pi/180))*(10800-10800))+10800");
2794 equation(out,"f52","-(sin(172*(pi/180))*(?f0 -10800)-cos(172*(pi/180))*(10800-10800))+10800");
2795 equation(out,"f53","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800");
2796 equation(out,"f54","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800");
2797 equation(out,"f55","(cos(187*(pi/180))*(?f0 -10800)+sin(187*(pi/180))*(10800-10800))+10800");
2798 equation(out,"f56","-(sin(187*(pi/180))*(?f0 -10800)-cos(187*(pi/180))*(10800-10800))+10800");
2799 equation(out,"f57","(cos(195*(pi/180))*(0-10800)+sin(195*(pi/180))*(10800-10800))+10800");
2800 equation(out,"f58","-(sin(195*(pi/180))*(0-10800)-cos(195*(pi/180))*(10800-10800))+10800");
2801 equation(out,"f59","(cos(202*(pi/180))*(?f0 -10800)+sin(202*(pi/180))*(10800-10800))+10800");
2802 equation(out,"f60","-(sin(202*(pi/180))*(?f0 -10800)-cos(202*(pi/180))*(10800-10800))+10800");
2803 equation(out,"f61","(cos(210*(pi/180))*(0-10800)+sin(210*(pi/180))*(10800-10800))+10800");
2804 equation(out,"f62","-(sin(210*(pi/180))*(0-10800)-cos(210*(pi/180))*(10800-10800))+10800");
2805 equation(out,"f63","(cos(217*(pi/180))*(?f0 -10800)+sin(217*(pi/180))*(10800-10800))+10800");
2806 equation(out,"f64","-(sin(217*(pi/180))*(?f0 -10800)-cos(217*(pi/180))*(10800-10800))+10800");
2807 equation(out,"f65","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800");
2808 equation(out,"f66","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800");
2809 equation(out,"f67","(cos(232*(pi/180))*(?f0 -10800)+sin(232*(pi/180))*(10800-10800))+10800");
2810 equation(out,"f68","-(sin(232*(pi/180))*(?f0 -10800)-cos(232*(pi/180))*(10800-10800))+10800");
2811 equation(out,"f69","(cos(240*(pi/180))*(0-10800)+sin(240*(pi/180))*(10800-10800))+10800");
2812 equation(out,"f70","-(sin(240*(pi/180))*(0-10800)-cos(240*(pi/180))*(10800-10800))+10800");
2813 equation(out,"f71","(cos(247*(pi/180))*(?f0 -10800)+sin(247*(pi/180))*(10800-10800))+10800");
2814 equation(out,"f72","-(sin(247*(pi/180))*(?f0 -10800)-cos(247*(pi/180))*(10800-10800))+10800");
2815 equation(out,"f73","(cos(255*(pi/180))*(0-10800)+sin(255*(pi/180))*(10800-10800))+10800");
2816 equation(out,"f74","-(sin(255*(pi/180))*(0-10800)-cos(255*(pi/180))*(10800-10800))+10800");
2817 equation(out,"f75","(cos(262*(pi/180))*(?f0 -10800)+sin(262*(pi/180))*(10800-10800))+10800");
2818 equation(out,"f76","-(sin(262*(pi/180))*(?f0 -10800)-cos(262*(pi/180))*(10800-10800))+10800");
2819 equation(out,"f77","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800");
2820 equation(out,"f78","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800");
2821 equation(out,"f79","(cos(277*(pi/180))*(?f0 -10800)+sin(277*(pi/180))*(10800-10800))+10800");
2822 equation(out,"f80","-(sin(277*(pi/180))*(?f0 -10800)-cos(277*(pi/180))*(10800-10800))+10800");
2823 equation(out,"f81","(cos(285*(pi/180))*(0-10800)+sin(285*(pi/180))*(10800-10800))+10800");
2824 equation(out,"f82","-(sin(285*(pi/180))*(0-10800)-cos(285*(pi/180))*(10800-10800))+10800");
2825 equation(out,"f83","(cos(292*(pi/180))*(?f0 -10800)+sin(292*(pi/180))*(10800-10800))+10800");
2826 equation(out,"f84","-(sin(292*(pi/180))*(?f0 -10800)-cos(292*(pi/180))*(10800-10800))+10800");
2827 equation(out,"f85","(cos(300*(pi/180))*(0-10800)+sin(300*(pi/180))*(10800-10800))+10800");
2828 equation(out,"f86","-(sin(300*(pi/180))*(0-10800)-cos(300*(pi/180))*(10800-10800))+10800");
2829 equation(out,"f87","(cos(307*(pi/180))*(?f0 -10800)+sin(307*(pi/180))*(10800-10800))+10800");
2830 equation(out,"f88","-(sin(307*(pi/180))*(?f0 -10800)-cos(307*(pi/180))*(10800-10800))+10800");
2831 equation(out,"f89","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800");
2832 equation(out,"f90","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800");
2833 equation(out,"f91","(cos(322*(pi/180))*(?f0 -10800)+sin(322*(pi/180))*(10800-10800))+10800");
2834 equation(out,"f92","-(sin(322*(pi/180))*(?f0 -10800)-cos(322*(pi/180))*(10800-10800))+10800");
2835 equation(out,"f93","(cos(330*(pi/180))*(0-10800)+sin(330*(pi/180))*(10800-10800))+10800");
2836 equation(out,"f94","-(sin(330*(pi/180))*(0-10800)-cos(330*(pi/180))*(10800-10800))+10800");
2837 equation(out,"f95","(cos(337*(pi/180))*(?f0 -10800)+sin(337*(pi/180))*(10800-10800))+10800");
2838 equation(out,"f96","-(sin(337*(pi/180))*(?f0 -10800)-cos(337*(pi/180))*(10800-10800))+10800");
2839 equation(out,"f97","(cos(345*(pi/180))*(0-10800)+sin(345*(pi/180))*(10800-10800))+10800");
2840 equation(out,"f98","-(sin(345*(pi/180))*(0-10800)-cos(345*(pi/180))*(10800-10800))+10800");
2841 equation(out,"f99","(cos(352*(pi/180))*(?f0 -10800)+sin(352*(pi/180))*(10800-10800))+10800");
2842 equation(out,"f100","-(sin(352*(pi/180))*(?f0 -10800)-cos(352*(pi/180))*(10800-10800))+10800");
2843 out.xml.startElement("draw:handle");
2844 out.xml.addAttribute("draw:handle-position", "$0 10800");
2845 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
2846 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
2847 out.xml.endElement(); // draw:handle
2848 out.xml.endElement(); // enhanced geometry
2849 out.xml.endElement(); // custom shape
2850 }
2851
2852
processSeal16(const MSO::OfficeArtSpContainer & o,Writer & out)2853 void ODrawToOdf::processSeal16(const MSO::OfficeArtSpContainer& o, Writer& out) {
2854 out.xml.startElement("draw:custom-shape");
2855 processStyleAndText(o, out);
2856
2857 out.xml.startElement("draw:enhanced-geometry");
2858 processModifiers(o, out, QList<int>() << 2500);
2859 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2860 out.xml.addAttribute("draw:enhanced-path", "M ?f5 ?f6 L ?f7 ?f8 ?f9 ?f10 ?f11 ?f12 ?f13 ?f14 ?f15 ?f16 ?f17 ?f18 ?f19 ?f20 ?f21 ?f22 ?f23 ?f24 ?f25 ?f26 ?f27 ?f28 ?f29 ?f30 ?f31 ?f32 ?f33 ?f34 ?f35 ?f36 ?f37 ?f38 ?f39 ?f40 ?f41 ?f42 ?f43 ?f44 ?f45 ?f46 ?f47 ?f48 ?f49 ?f50 ?f51 ?f52 ?f53 ?f54 ?f55 ?f56 ?f57 ?f58 ?f59 ?f60 ?f61 ?f62 ?f63 ?f64 ?f65 ?f66 ?f67 ?f68 ?f5 ?f6 Z N");
2861 out.xml.addAttribute("draw:type", "mso-spt59");
2862 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
2863 setShapeMirroring(o, out);
2864 equation(out,"f0","$0 ");
2865 equation(out,"f1","(cos(315*(pi/180))*(?f0 -10800)+sin(315*(pi/180))*(10800-10800))+10800");
2866 equation(out,"f2","-(sin(315*(pi/180))*(?f0 -10800)-cos(315*(pi/180))*(10800-10800))+10800");
2867 equation(out,"f3","(cos(135*(pi/180))*(?f0 -10800)+sin(135*(pi/180))*(10800-10800))+10800");
2868 equation(out,"f4","-(sin(135*(pi/180))*(?f0 -10800)-cos(135*(pi/180))*(10800-10800))+10800");
2869 equation(out,"f5","(cos(0*(pi/180))*(0-10800)+sin(0*(pi/180))*(10800-10800))+10800");
2870 equation(out,"f6","-(sin(0*(pi/180))*(0-10800)-cos(0*(pi/180))*(10800-10800))+10800");
2871 equation(out,"f7","(cos(11*(pi/180))*(?f0 -10800)+sin(11*(pi/180))*(10800-10800))+10800");
2872 equation(out,"f8","-(sin(11*(pi/180))*(?f0 -10800)-cos(11*(pi/180))*(10800-10800))+10800");
2873 equation(out,"f9","(cos(22*(pi/180))*(0-10800)+sin(22*(pi/180))*(10800-10800))+10800");
2874 equation(out,"f10","-(sin(22*(pi/180))*(0-10800)-cos(22*(pi/180))*(10800-10800))+10800");
2875 equation(out,"f11","(cos(33*(pi/180))*(?f0 -10800)+sin(33*(pi/180))*(10800-10800))+10800");
2876 equation(out,"f12","-(sin(33*(pi/180))*(?f0 -10800)-cos(33*(pi/180))*(10800-10800))+10800");
2877 equation(out,"f13","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800");
2878 equation(out,"f14","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800");
2879 equation(out,"f15","(cos(56*(pi/180))*(?f0 -10800)+sin(56*(pi/180))*(10800-10800))+10800");
2880 equation(out,"f16","-(sin(56*(pi/180))*(?f0 -10800)-cos(56*(pi/180))*(10800-10800))+10800");
2881 equation(out,"f17","(cos(67*(pi/180))*(0-10800)+sin(67*(pi/180))*(10800-10800))+10800");
2882 equation(out,"f18","-(sin(67*(pi/180))*(0-10800)-cos(67*(pi/180))*(10800-10800))+10800");
2883 equation(out,"f19","(cos(78*(pi/180))*(?f0 -10800)+sin(78*(pi/180))*(10800-10800))+10800");
2884 equation(out,"f20","-(sin(78*(pi/180))*(?f0 -10800)-cos(78*(pi/180))*(10800-10800))+10800");
2885 equation(out,"f21","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800");
2886 equation(out,"f22","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800");
2887 equation(out,"f23","(cos(101*(pi/180))*(?f0 -10800)+sin(101*(pi/180))*(10800-10800))+10800");
2888 equation(out,"f24","-(sin(101*(pi/180))*(?f0 -10800)-cos(101*(pi/180))*(10800-10800))+10800");
2889 equation(out,"f25","(cos(112*(pi/180))*(0-10800)+sin(112*(pi/180))*(10800-10800))+10800");
2890 equation(out,"f26","-(sin(112*(pi/180))*(0-10800)-cos(112*(pi/180))*(10800-10800))+10800");
2891 equation(out,"f27","(cos(123*(pi/180))*(?f0 -10800)+sin(123*(pi/180))*(10800-10800))+10800");
2892 equation(out,"f28","-(sin(123*(pi/180))*(?f0 -10800)-cos(123*(pi/180))*(10800-10800))+10800");
2893 equation(out,"f29","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800");
2894 equation(out,"f30","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800");
2895 equation(out,"f31","(cos(146*(pi/180))*(?f0 -10800)+sin(146*(pi/180))*(10800-10800))+10800");
2896 equation(out,"f32","-(sin(146*(pi/180))*(?f0 -10800)-cos(146*(pi/180))*(10800-10800))+10800");
2897 equation(out,"f33","(cos(157*(pi/180))*(0-10800)+sin(157*(pi/180))*(10800-10800))+10800");
2898 equation(out,"f34","-(sin(157*(pi/180))*(0-10800)-cos(157*(pi/180))*(10800-10800))+10800");
2899 equation(out,"f35","(cos(168*(pi/180))*(?f0 -10800)+sin(168*(pi/180))*(10800-10800))+10800");
2900 equation(out,"f36","-(sin(168*(pi/180))*(?f0 -10800)-cos(168*(pi/180))*(10800-10800))+10800");
2901 equation(out,"f37","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800");
2902 equation(out,"f38","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800");
2903 equation(out,"f39","(cos(191*(pi/180))*(?f0 -10800)+sin(191*(pi/180))*(10800-10800))+10800");
2904 equation(out,"f40","-(sin(191*(pi/180))*(?f0 -10800)-cos(191*(pi/180))*(10800-10800))+10800");
2905 equation(out,"f41","(cos(202*(pi/180))*(0-10800)+sin(202*(pi/180))*(10800-10800))+10800");
2906 equation(out,"f42","-(sin(202*(pi/180))*(0-10800)-cos(202*(pi/180))*(10800-10800))+10800");
2907 equation(out,"f43","(cos(213*(pi/180))*(?f0 -10800)+sin(213*(pi/180))*(10800-10800))+10800");
2908 equation(out,"f44","-(sin(213*(pi/180))*(?f0 -10800)-cos(213*(pi/180))*(10800-10800))+10800");
2909 equation(out,"f45","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800");
2910 equation(out,"f46","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800");
2911 equation(out,"f47","(cos(236*(pi/180))*(?f0 -10800)+sin(236*(pi/180))*(10800-10800))+10800");
2912 equation(out,"f48","-(sin(236*(pi/180))*(?f0 -10800)-cos(236*(pi/180))*(10800-10800))+10800");
2913 equation(out,"f49","(cos(247*(pi/180))*(0-10800)+sin(247*(pi/180))*(10800-10800))+10800");
2914 equation(out,"f50","-(sin(247*(pi/180))*(0-10800)-cos(247*(pi/180))*(10800-10800))+10800");
2915 equation(out,"f51","(cos(258*(pi/180))*(?f0 -10800)+sin(258*(pi/180))*(10800-10800))+10800");
2916 equation(out,"f52","-(sin(258*(pi/180))*(?f0 -10800)-cos(258*(pi/180))*(10800-10800))+10800");
2917 equation(out,"f53","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800");
2918 equation(out,"f54","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800");
2919 equation(out,"f55","(cos(281*(pi/180))*(?f0 -10800)+sin(281*(pi/180))*(10800-10800))+10800");
2920 equation(out,"f56","-(sin(281*(pi/180))*(?f0 -10800)-cos(281*(pi/180))*(10800-10800))+10800");
2921 equation(out,"f57","(cos(292*(pi/180))*(0-10800)+sin(292*(pi/180))*(10800-10800))+10800");
2922 equation(out,"f58","-(sin(292*(pi/180))*(0-10800)-cos(292*(pi/180))*(10800-10800))+10800");
2923 equation(out,"f59","(cos(303*(pi/180))*(?f0 -10800)+sin(303*(pi/180))*(10800-10800))+10800");
2924 equation(out,"f60","-(sin(303*(pi/180))*(?f0 -10800)-cos(303*(pi/180))*(10800-10800))+10800");
2925 equation(out,"f61","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800");
2926 equation(out,"f62","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800");
2927 equation(out,"f63","(cos(326*(pi/180))*(?f0 -10800)+sin(326*(pi/180))*(10800-10800))+10800");
2928 equation(out,"f64","-(sin(326*(pi/180))*(?f0 -10800)-cos(326*(pi/180))*(10800-10800))+10800");
2929 equation(out,"f65","(cos(337*(pi/180))*(0-10800)+sin(337*(pi/180))*(10800-10800))+10800");
2930 equation(out,"f66","-(sin(337*(pi/180))*(0-10800)-cos(337*(pi/180))*(10800-10800))+10800");
2931 equation(out,"f67","(cos(348*(pi/180))*(?f0 -10800)+sin(348*(pi/180))*(10800-10800))+10800");
2932 equation(out,"f68","-(sin(348*(pi/180))*(?f0 -10800)-cos(348*(pi/180))*(10800-10800))+10800");
2933 out.xml.startElement("draw:handle");
2934 out.xml.addAttribute("draw:handle-position", "$0 10800");
2935 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
2936 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
2937 out.xml.endElement(); // draw:handle
2938 out.xml.endElement(); // enhanced geometry
2939 out.xml.endElement(); // custom shape
2940 }
2941
2942
processSeal24(const MSO::OfficeArtSpContainer & o,Writer & out)2943 void ODrawToOdf::processSeal24(const MSO::OfficeArtSpContainer& o, Writer& out) {
2944 out.xml.startElement("draw:custom-shape");
2945 processStyleAndText(o, out);
2946
2947 out.xml.startElement("draw:enhanced-geometry");
2948 processModifiers(o, out, QList<int>() << 2500);
2949 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
2950 out.xml.addAttribute("draw:enhanced-path", "M ?f5 ?f6 L ?f7 ?f8 ?f9 ?f10 ?f11 ?f12 ?f13 ?f14 ?f15 ?f16 ?f17 ?f18 ?f19 ?f20 ?f21 ?f22 ?f23 ?f24 ?f25 ?f26 ?f27 ?f28 ?f29 ?f30 ?f31 ?f32 ?f33 ?f34 ?f35 ?f36 ?f37 ?f38 ?f39 ?f40 ?f41 ?f42 ?f43 ?f44 ?f45 ?f46 ?f47 ?f48 ?f49 ?f50 ?f51 ?f52 ?f53 ?f54 ?f55 ?f56 ?f57 ?f58 ?f59 ?f60 ?f61 ?f62 ?f63 ?f64 ?f65 ?f66 ?f67 ?f68 ?f69 ?f70 ?f71 ?f72 ?f73 ?f74 ?f75 ?f76 ?f77 ?f78 ?f79 ?f80 ?f81 ?f82 ?f83 ?f84 ?f85 ?f86 ?f87 ?f88 ?f89 ?f90 ?f91 ?f92 ?f93 ?f94 ?f95 ?f96 ?f97 ?f98 ?f99 ?f100 ?f5 ?f6 Z N");
2951 out.xml.addAttribute("draw:type", "star24");
2952 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
2953 setShapeMirroring(o, out);
2954 equation(out,"f0","$0 ");
2955 equation(out,"f1","(cos(315*(pi/180))*(?f0 -10800)+sin(315*(pi/180))*(10800-10800))+10800");
2956 equation(out,"f2","-(sin(315*(pi/180))*(?f0 -10800)-cos(315*(pi/180))*(10800-10800))+10800");
2957 equation(out,"f3","(cos(135*(pi/180))*(?f0 -10800)+sin(135*(pi/180))*(10800-10800))+10800");
2958 equation(out,"f4","-(sin(135*(pi/180))*(?f0 -10800)-cos(135*(pi/180))*(10800-10800))+10800");
2959 equation(out,"f5","(cos(0*(pi/180))*(0-10800)+sin(0*(pi/180))*(10800-10800))+10800");
2960 equation(out,"f6","-(sin(0*(pi/180))*(0-10800)-cos(0*(pi/180))*(10800-10800))+10800");
2961 equation(out,"f7","(cos(7*(pi/180))*(?f0 -10800)+sin(7*(pi/180))*(10800-10800))+10800");
2962 equation(out,"f8","-(sin(7*(pi/180))*(?f0 -10800)-cos(7*(pi/180))*(10800-10800))+10800");
2963 equation(out,"f9","(cos(15*(pi/180))*(0-10800)+sin(15*(pi/180))*(10800-10800))+10800");
2964 equation(out,"f10","-(sin(15*(pi/180))*(0-10800)-cos(15*(pi/180))*(10800-10800))+10800");
2965 equation(out,"f11","(cos(22*(pi/180))*(?f0 -10800)+sin(22*(pi/180))*(10800-10800))+10800");
2966 equation(out,"f12","-(sin(22*(pi/180))*(?f0 -10800)-cos(22*(pi/180))*(10800-10800))+10800");
2967 equation(out,"f13","(cos(30*(pi/180))*(0-10800)+sin(30*(pi/180))*(10800-10800))+10800");
2968 equation(out,"f14","-(sin(30*(pi/180))*(0-10800)-cos(30*(pi/180))*(10800-10800))+10800");
2969 equation(out,"f15","(cos(37*(pi/180))*(?f0 -10800)+sin(37*(pi/180))*(10800-10800))+10800");
2970 equation(out,"f16","-(sin(37*(pi/180))*(?f0 -10800)-cos(37*(pi/180))*(10800-10800))+10800");
2971 equation(out,"f17","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800");
2972 equation(out,"f18","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800");
2973 equation(out,"f19","(cos(52*(pi/180))*(?f0 -10800)+sin(52*(pi/180))*(10800-10800))+10800");
2974 equation(out,"f20","-(sin(52*(pi/180))*(?f0 -10800)-cos(52*(pi/180))*(10800-10800))+10800");
2975 equation(out,"f21","(cos(60*(pi/180))*(0-10800)+sin(60*(pi/180))*(10800-10800))+10800");
2976 equation(out,"f22","-(sin(60*(pi/180))*(0-10800)-cos(60*(pi/180))*(10800-10800))+10800");
2977 equation(out,"f23","(cos(67*(pi/180))*(?f0 -10800)+sin(67*(pi/180))*(10800-10800))+10800");
2978 equation(out,"f24","-(sin(67*(pi/180))*(?f0 -10800)-cos(67*(pi/180))*(10800-10800))+10800");
2979 equation(out,"f25","(cos(75*(pi/180))*(0-10800)+sin(75*(pi/180))*(10800-10800))+10800");
2980 equation(out,"f26","-(sin(75*(pi/180))*(0-10800)-cos(75*(pi/180))*(10800-10800))+10800");
2981 equation(out,"f27","(cos(82*(pi/180))*(?f0 -10800)+sin(82*(pi/180))*(10800-10800))+10800");
2982 equation(out,"f28","-(sin(82*(pi/180))*(?f0 -10800)-cos(82*(pi/180))*(10800-10800))+10800");
2983 equation(out,"f29","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800");
2984 equation(out,"f30","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800");
2985 equation(out,"f31","(cos(97*(pi/180))*(?f0 -10800)+sin(97*(pi/180))*(10800-10800))+10800");
2986 equation(out,"f32","-(sin(97*(pi/180))*(?f0 -10800)-cos(97*(pi/180))*(10800-10800))+10800");
2987 equation(out,"f33","(cos(105*(pi/180))*(0-10800)+sin(105*(pi/180))*(10800-10800))+10800");
2988 equation(out,"f34","-(sin(105*(pi/180))*(0-10800)-cos(105*(pi/180))*(10800-10800))+10800");
2989 equation(out,"f35","(cos(112*(pi/180))*(?f0 -10800)+sin(112*(pi/180))*(10800-10800))+10800");
2990 equation(out,"f36","-(sin(112*(pi/180))*(?f0 -10800)-cos(112*(pi/180))*(10800-10800))+10800");
2991 equation(out,"f37","(cos(120*(pi/180))*(0-10800)+sin(120*(pi/180))*(10800-10800))+10800");
2992 equation(out,"f38","-(sin(120*(pi/180))*(0-10800)-cos(120*(pi/180))*(10800-10800))+10800");
2993 equation(out,"f39","(cos(127*(pi/180))*(?f0 -10800)+sin(127*(pi/180))*(10800-10800))+10800");
2994 equation(out,"f40","-(sin(127*(pi/180))*(?f0 -10800)-cos(127*(pi/180))*(10800-10800))+10800");
2995 equation(out,"f41","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800");
2996 equation(out,"f42","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800");
2997 equation(out,"f43","(cos(142*(pi/180))*(?f0 -10800)+sin(142*(pi/180))*(10800-10800))+10800");
2998 equation(out,"f44","-(sin(142*(pi/180))*(?f0 -10800)-cos(142*(pi/180))*(10800-10800))+10800");
2999 equation(out,"f45","(cos(150*(pi/180))*(0-10800)+sin(150*(pi/180))*(10800-10800))+10800");
3000 equation(out,"f46","-(sin(150*(pi/180))*(0-10800)-cos(150*(pi/180))*(10800-10800))+10800");
3001 equation(out,"f47","(cos(157*(pi/180))*(?f0 -10800)+sin(157*(pi/180))*(10800-10800))+10800");
3002 equation(out,"f48","-(sin(157*(pi/180))*(?f0 -10800)-cos(157*(pi/180))*(10800-10800))+10800");
3003 equation(out,"f49","(cos(165*(pi/180))*(0-10800)+sin(165*(pi/180))*(10800-10800))+10800");
3004 equation(out,"f50","-(sin(165*(pi/180))*(0-10800)-cos(165*(pi/180))*(10800-10800))+10800");
3005 equation(out,"f51","(cos(172*(pi/180))*(?f0 -10800)+sin(172*(pi/180))*(10800-10800))+10800");
3006 equation(out,"f52","-(sin(172*(pi/180))*(?f0 -10800)-cos(172*(pi/180))*(10800-10800))+10800");
3007 equation(out,"f53","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800");
3008 equation(out,"f54","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800");
3009 equation(out,"f55","(cos(187*(pi/180))*(?f0 -10800)+sin(187*(pi/180))*(10800-10800))+10800");
3010 equation(out,"f56","-(sin(187*(pi/180))*(?f0 -10800)-cos(187*(pi/180))*(10800-10800))+10800");
3011 equation(out,"f57","(cos(195*(pi/180))*(0-10800)+sin(195*(pi/180))*(10800-10800))+10800");
3012 equation(out,"f58","-(sin(195*(pi/180))*(0-10800)-cos(195*(pi/180))*(10800-10800))+10800");
3013 equation(out,"f59","(cos(202*(pi/180))*(?f0 -10800)+sin(202*(pi/180))*(10800-10800))+10800");
3014 equation(out,"f60","-(sin(202*(pi/180))*(?f0 -10800)-cos(202*(pi/180))*(10800-10800))+10800");
3015 equation(out,"f61","(cos(210*(pi/180))*(0-10800)+sin(210*(pi/180))*(10800-10800))+10800");
3016 equation(out,"f62","-(sin(210*(pi/180))*(0-10800)-cos(210*(pi/180))*(10800-10800))+10800");
3017 equation(out,"f63","(cos(217*(pi/180))*(?f0 -10800)+sin(217*(pi/180))*(10800-10800))+10800");
3018 equation(out,"f64","-(sin(217*(pi/180))*(?f0 -10800)-cos(217*(pi/180))*(10800-10800))+10800");
3019 equation(out,"f65","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800");
3020 equation(out,"f66","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800");
3021 equation(out,"f67","(cos(232*(pi/180))*(?f0 -10800)+sin(232*(pi/180))*(10800-10800))+10800");
3022 equation(out,"f68","-(sin(232*(pi/180))*(?f0 -10800)-cos(232*(pi/180))*(10800-10800))+10800");
3023 equation(out,"f69","(cos(240*(pi/180))*(0-10800)+sin(240*(pi/180))*(10800-10800))+10800");
3024 equation(out,"f70","-(sin(240*(pi/180))*(0-10800)-cos(240*(pi/180))*(10800-10800))+10800");
3025 equation(out,"f71","(cos(247*(pi/180))*(?f0 -10800)+sin(247*(pi/180))*(10800-10800))+10800");
3026 equation(out,"f72","-(sin(247*(pi/180))*(?f0 -10800)-cos(247*(pi/180))*(10800-10800))+10800");
3027 equation(out,"f73","(cos(255*(pi/180))*(0-10800)+sin(255*(pi/180))*(10800-10800))+10800");
3028 equation(out,"f74","-(sin(255*(pi/180))*(0-10800)-cos(255*(pi/180))*(10800-10800))+10800");
3029 equation(out,"f75","(cos(262*(pi/180))*(?f0 -10800)+sin(262*(pi/180))*(10800-10800))+10800");
3030 equation(out,"f76","-(sin(262*(pi/180))*(?f0 -10800)-cos(262*(pi/180))*(10800-10800))+10800");
3031 equation(out,"f77","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800");
3032 equation(out,"f78","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800");
3033 equation(out,"f79","(cos(277*(pi/180))*(?f0 -10800)+sin(277*(pi/180))*(10800-10800))+10800");
3034 equation(out,"f80","-(sin(277*(pi/180))*(?f0 -10800)-cos(277*(pi/180))*(10800-10800))+10800");
3035 equation(out,"f81","(cos(285*(pi/180))*(0-10800)+sin(285*(pi/180))*(10800-10800))+10800");
3036 equation(out,"f82","-(sin(285*(pi/180))*(0-10800)-cos(285*(pi/180))*(10800-10800))+10800");
3037 equation(out,"f83","(cos(292*(pi/180))*(?f0 -10800)+sin(292*(pi/180))*(10800-10800))+10800");
3038 equation(out,"f84","-(sin(292*(pi/180))*(?f0 -10800)-cos(292*(pi/180))*(10800-10800))+10800");
3039 equation(out,"f85","(cos(300*(pi/180))*(0-10800)+sin(300*(pi/180))*(10800-10800))+10800");
3040 equation(out,"f86","-(sin(300*(pi/180))*(0-10800)-cos(300*(pi/180))*(10800-10800))+10800");
3041 equation(out,"f87","(cos(307*(pi/180))*(?f0 -10800)+sin(307*(pi/180))*(10800-10800))+10800");
3042 equation(out,"f88","-(sin(307*(pi/180))*(?f0 -10800)-cos(307*(pi/180))*(10800-10800))+10800");
3043 equation(out,"f89","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800");
3044 equation(out,"f90","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800");
3045 equation(out,"f91","(cos(322*(pi/180))*(?f0 -10800)+sin(322*(pi/180))*(10800-10800))+10800");
3046 equation(out,"f92","-(sin(322*(pi/180))*(?f0 -10800)-cos(322*(pi/180))*(10800-10800))+10800");
3047 equation(out,"f93","(cos(330*(pi/180))*(0-10800)+sin(330*(pi/180))*(10800-10800))+10800");
3048 equation(out,"f94","-(sin(330*(pi/180))*(0-10800)-cos(330*(pi/180))*(10800-10800))+10800");
3049 equation(out,"f95","(cos(337*(pi/180))*(?f0 -10800)+sin(337*(pi/180))*(10800-10800))+10800");
3050 equation(out,"f96","-(sin(337*(pi/180))*(?f0 -10800)-cos(337*(pi/180))*(10800-10800))+10800");
3051 equation(out,"f97","(cos(345*(pi/180))*(0-10800)+sin(345*(pi/180))*(10800-10800))+10800");
3052 equation(out,"f98","-(sin(345*(pi/180))*(0-10800)-cos(345*(pi/180))*(10800-10800))+10800");
3053 equation(out,"f99","(cos(352*(pi/180))*(?f0 -10800)+sin(352*(pi/180))*(10800-10800))+10800");
3054 equation(out,"f100","-(sin(352*(pi/180))*(?f0 -10800)-cos(352*(pi/180))*(10800-10800))+10800");
3055 out.xml.startElement("draw:handle");
3056 out.xml.addAttribute("draw:handle-position", "$0 10800");
3057 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
3058 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
3059 out.xml.endElement(); // draw:handle
3060 out.xml.endElement(); // enhanced geometry
3061 out.xml.endElement(); // custom shape
3062 }
3063
3064
processSeal32(const MSO::OfficeArtSpContainer & o,Writer & out)3065 void ODrawToOdf::processSeal32(const MSO::OfficeArtSpContainer& o, Writer& out) {
3066 out.xml.startElement("draw:custom-shape");
3067 processStyleAndText(o, out);
3068
3069 out.xml.startElement("draw:enhanced-geometry");
3070 processModifiers(o, out, QList<int>() << 2500);
3071 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3072 out.xml.addAttribute("draw:enhanced-path", "M ?f5 ?f6 L ?f7 ?f8 ?f9 ?f10 ?f11 ?f12 ?f13 ?f14 ?f15 ?f16 ?f17 ?f18 ?f19 ?f20 ?f21 ?f22 ?f23 ?f24 ?f25 ?f26 ?f27 ?f28 ?f29 ?f30 ?f31 ?f32 ?f33 ?f34 ?f35 ?f36 ?f37 ?f38 ?f39 ?f40 ?f41 ?f42 ?f43 ?f44 ?f45 ?f46 ?f47 ?f48 ?f49 ?f50 ?f51 ?f52 ?f53 ?f54 ?f55 ?f56 ?f57 ?f58 ?f59 ?f60 ?f61 ?f62 ?f63 ?f64 ?f65 ?f66 ?f67 ?f68 ?f69 ?f70 ?f71 ?f72 ?f73 ?f74 ?f75 ?f76 ?f77 ?f78 ?f79 ?f80 ?f81 ?f82 ?f83 ?f84 ?f85 ?f86 ?f87 ?f88 ?f89 ?f90 ?f91 ?f92 ?f93 ?f94 ?f95 ?f96 ?f97 ?f98 ?f99 ?f100 ?f101 ?f102 ?f103 ?f104 ?f105 ?f106 ?f107 ?f108 ?f109 ?f110 ?f111 ?f112 ?f113 ?f114 ?f115 ?f116 ?f117 ?f118 ?f119 ?f120 ?f121 ?f122 ?f123 ?f124 ?f125 ?f126 ?f127 ?f128 ?f129 ?f130 ?f131 ?f132 ?f5 ?f6 Z N");
3073 out.xml.addAttribute("draw:type", "mso-spt60");
3074 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
3075 setShapeMirroring(o, out);
3076 equation(out,"f0","$0 ");
3077 equation(out,"f1","(cos(315*(pi/180))*(?f0 -10800)+sin(315*(pi/180))*(10800-10800))+10800");
3078 equation(out,"f2","-(sin(315*(pi/180))*(?f0 -10800)-cos(315*(pi/180))*(10800-10800))+10800");
3079 equation(out,"f3","(cos(135*(pi/180))*(?f0 -10800)+sin(135*(pi/180))*(10800-10800))+10800");
3080 equation(out,"f4","-(sin(135*(pi/180))*(?f0 -10800)-cos(135*(pi/180))*(10800-10800))+10800");
3081 equation(out,"f5","(cos(0*(pi/180))*(0-10800)+sin(0*(pi/180))*(10800-10800))+10800");
3082 equation(out,"f6","-(sin(0*(pi/180))*(0-10800)-cos(0*(pi/180))*(10800-10800))+10800");
3083 equation(out,"f7","(cos(5*(pi/180))*(?f0 -10800)+sin(5*(pi/180))*(10800-10800))+10800");
3084 equation(out,"f8","-(sin(5*(pi/180))*(?f0 -10800)-cos(5*(pi/180))*(10800-10800))+10800");
3085 equation(out,"f9","(cos(11*(pi/180))*(0-10800)+sin(11*(pi/180))*(10800-10800))+10800");
3086 equation(out,"f10","-(sin(11*(pi/180))*(0-10800)-cos(11*(pi/180))*(10800-10800))+10800");
3087 equation(out,"f11","(cos(16*(pi/180))*(?f0 -10800)+sin(16*(pi/180))*(10800-10800))+10800");
3088 equation(out,"f12","-(sin(16*(pi/180))*(?f0 -10800)-cos(16*(pi/180))*(10800-10800))+10800");
3089 equation(out,"f13","(cos(22*(pi/180))*(0-10800)+sin(22*(pi/180))*(10800-10800))+10800");
3090 equation(out,"f14","-(sin(22*(pi/180))*(0-10800)-cos(22*(pi/180))*(10800-10800))+10800");
3091 equation(out,"f15","(cos(28*(pi/180))*(?f0 -10800)+sin(28*(pi/180))*(10800-10800))+10800");
3092 equation(out,"f16","-(sin(28*(pi/180))*(?f0 -10800)-cos(28*(pi/180))*(10800-10800))+10800");
3093 equation(out,"f17","(cos(33*(pi/180))*(0-10800)+sin(33*(pi/180))*(10800-10800))+10800");
3094 equation(out,"f18","-(sin(33*(pi/180))*(0-10800)-cos(33*(pi/180))*(10800-10800))+10800");
3095 equation(out,"f19","(cos(39*(pi/180))*(?f0 -10800)+sin(39*(pi/180))*(10800-10800))+10800");
3096 equation(out,"f20","-(sin(39*(pi/180))*(?f0 -10800)-cos(39*(pi/180))*(10800-10800))+10800");
3097 equation(out,"f21","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800");
3098 equation(out,"f22","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800");
3099 equation(out,"f23","(cos(50*(pi/180))*(?f0 -10800)+sin(50*(pi/180))*(10800-10800))+10800");
3100 equation(out,"f24","-(sin(50*(pi/180))*(?f0 -10800)-cos(50*(pi/180))*(10800-10800))+10800");
3101 equation(out,"f25","(cos(56*(pi/180))*(0-10800)+sin(56*(pi/180))*(10800-10800))+10800");
3102 equation(out,"f26","-(sin(56*(pi/180))*(0-10800)-cos(56*(pi/180))*(10800-10800))+10800");
3103 equation(out,"f27","(cos(61*(pi/180))*(?f0 -10800)+sin(61*(pi/180))*(10800-10800))+10800");
3104 equation(out,"f28","-(sin(61*(pi/180))*(?f0 -10800)-cos(61*(pi/180))*(10800-10800))+10800");
3105 equation(out,"f29","(cos(67*(pi/180))*(0-10800)+sin(67*(pi/180))*(10800-10800))+10800");
3106 equation(out,"f30","-(sin(67*(pi/180))*(0-10800)-cos(67*(pi/180))*(10800-10800))+10800");
3107 equation(out,"f31","(cos(73*(pi/180))*(?f0 -10800)+sin(73*(pi/180))*(10800-10800))+10800");
3108 equation(out,"f32","-(sin(73*(pi/180))*(?f0 -10800)-cos(73*(pi/180))*(10800-10800))+10800");
3109 equation(out,"f33","(cos(78*(pi/180))*(0-10800)+sin(78*(pi/180))*(10800-10800))+10800");
3110 equation(out,"f34","-(sin(78*(pi/180))*(0-10800)-cos(78*(pi/180))*(10800-10800))+10800");
3111 equation(out,"f35","(cos(84*(pi/180))*(?f0 -10800)+sin(84*(pi/180))*(10800-10800))+10800");
3112 equation(out,"f36","-(sin(84*(pi/180))*(?f0 -10800)-cos(84*(pi/180))*(10800-10800))+10800");
3113 equation(out,"f37","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800");
3114 equation(out,"f38","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800");
3115 equation(out,"f39","(cos(95*(pi/180))*(?f0 -10800)+sin(95*(pi/180))*(10800-10800))+10800");
3116 equation(out,"f40","-(sin(95*(pi/180))*(?f0 -10800)-cos(95*(pi/180))*(10800-10800))+10800");
3117 equation(out,"f41","(cos(101*(pi/180))*(0-10800)+sin(101*(pi/180))*(10800-10800))+10800");
3118 equation(out,"f42","-(sin(101*(pi/180))*(0-10800)-cos(101*(pi/180))*(10800-10800))+10800");
3119 equation(out,"f43","(cos(106*(pi/180))*(?f0 -10800)+sin(106*(pi/180))*(10800-10800))+10800");
3120 equation(out,"f44","-(sin(106*(pi/180))*(?f0 -10800)-cos(106*(pi/180))*(10800-10800))+10800");
3121 equation(out,"f45","(cos(112*(pi/180))*(0-10800)+sin(112*(pi/180))*(10800-10800))+10800");
3122 equation(out,"f46","-(sin(112*(pi/180))*(0-10800)-cos(112*(pi/180))*(10800-10800))+10800");
3123 equation(out,"f47","(cos(118*(pi/180))*(?f0 -10800)+sin(118*(pi/180))*(10800-10800))+10800");
3124 equation(out,"f48","-(sin(118*(pi/180))*(?f0 -10800)-cos(118*(pi/180))*(10800-10800))+10800");
3125 equation(out,"f49","(cos(123*(pi/180))*(0-10800)+sin(123*(pi/180))*(10800-10800))+10800");
3126 equation(out,"f50","-(sin(123*(pi/180))*(0-10800)-cos(123*(pi/180))*(10800-10800))+10800");
3127 equation(out,"f51","(cos(129*(pi/180))*(?f0 -10800)+sin(129*(pi/180))*(10800-10800))+10800");
3128 equation(out,"f52","-(sin(129*(pi/180))*(?f0 -10800)-cos(129*(pi/180))*(10800-10800))+10800");
3129 equation(out,"f53","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800");
3130 equation(out,"f54","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800");
3131 equation(out,"f55","(cos(140*(pi/180))*(?f0 -10800)+sin(140*(pi/180))*(10800-10800))+10800");
3132 equation(out,"f56","-(sin(140*(pi/180))*(?f0 -10800)-cos(140*(pi/180))*(10800-10800))+10800");
3133 equation(out,"f57","(cos(146*(pi/180))*(0-10800)+sin(146*(pi/180))*(10800-10800))+10800");
3134 equation(out,"f58","-(sin(146*(pi/180))*(0-10800)-cos(146*(pi/180))*(10800-10800))+10800");
3135 equation(out,"f59","(cos(151*(pi/180))*(?f0 -10800)+sin(151*(pi/180))*(10800-10800))+10800");
3136 equation(out,"f60","-(sin(151*(pi/180))*(?f0 -10800)-cos(151*(pi/180))*(10800-10800))+10800");
3137 equation(out,"f61","(cos(157*(pi/180))*(0-10800)+sin(157*(pi/180))*(10800-10800))+10800");
3138 equation(out,"f62","-(sin(157*(pi/180))*(0-10800)-cos(157*(pi/180))*(10800-10800))+10800");
3139 equation(out,"f63","(cos(163*(pi/180))*(?f0 -10800)+sin(163*(pi/180))*(10800-10800))+10800");
3140 equation(out,"f64","-(sin(163*(pi/180))*(?f0 -10800)-cos(163*(pi/180))*(10800-10800))+10800");
3141 equation(out,"f65","(cos(168*(pi/180))*(0-10800)+sin(168*(pi/180))*(10800-10800))+10800");
3142 equation(out,"f66","-(sin(168*(pi/180))*(0-10800)-cos(168*(pi/180))*(10800-10800))+10800");
3143 equation(out,"f67","(cos(174*(pi/180))*(?f0 -10800)+sin(174*(pi/180))*(10800-10800))+10800");
3144 equation(out,"f68","-(sin(174*(pi/180))*(?f0 -10800)-cos(174*(pi/180))*(10800-10800))+10800");
3145 equation(out,"f69","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800");
3146 equation(out,"f70","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800");
3147 equation(out,"f71","(cos(185*(pi/180))*(?f0 -10800)+sin(185*(pi/180))*(10800-10800))+10800");
3148 equation(out,"f72","-(sin(185*(pi/180))*(?f0 -10800)-cos(185*(pi/180))*(10800-10800))+10800");
3149 equation(out,"f73","(cos(191*(pi/180))*(0-10800)+sin(191*(pi/180))*(10800-10800))+10800");
3150 equation(out,"f74","-(sin(191*(pi/180))*(0-10800)-cos(191*(pi/180))*(10800-10800))+10800");
3151 equation(out,"f75","(cos(196*(pi/180))*(?f0 -10800)+sin(196*(pi/180))*(10800-10800))+10800");
3152 equation(out,"f76","-(sin(196*(pi/180))*(?f0 -10800)-cos(196*(pi/180))*(10800-10800))+10800");
3153 equation(out,"f77","(cos(202*(pi/180))*(0-10800)+sin(202*(pi/180))*(10800-10800))+10800");
3154 equation(out,"f78","-(sin(202*(pi/180))*(0-10800)-cos(202*(pi/180))*(10800-10800))+10800");
3155 equation(out,"f79","(cos(208*(pi/180))*(?f0 -10800)+sin(208*(pi/180))*(10800-10800))+10800");
3156 equation(out,"f80","-(sin(208*(pi/180))*(?f0 -10800)-cos(208*(pi/180))*(10800-10800))+10800");
3157 equation(out,"f81","(cos(213*(pi/180))*(0-10800)+sin(213*(pi/180))*(10800-10800))+10800");
3158 equation(out,"f82","-(sin(213*(pi/180))*(0-10800)-cos(213*(pi/180))*(10800-10800))+10800");
3159 equation(out,"f83","(cos(219*(pi/180))*(?f0 -10800)+sin(219*(pi/180))*(10800-10800))+10800");
3160 equation(out,"f84","-(sin(219*(pi/180))*(?f0 -10800)-cos(219*(pi/180))*(10800-10800))+10800");
3161 equation(out,"f85","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800");
3162 equation(out,"f86","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800");
3163 equation(out,"f87","(cos(230*(pi/180))*(?f0 -10800)+sin(230*(pi/180))*(10800-10800))+10800");
3164 equation(out,"f88","-(sin(230*(pi/180))*(?f0 -10800)-cos(230*(pi/180))*(10800-10800))+10800");
3165 equation(out,"f89","(cos(236*(pi/180))*(0-10800)+sin(236*(pi/180))*(10800-10800))+10800");
3166 equation(out,"f90","-(sin(236*(pi/180))*(0-10800)-cos(236*(pi/180))*(10800-10800))+10800");
3167 equation(out,"f91","(cos(241*(pi/180))*(?f0 -10800)+sin(241*(pi/180))*(10800-10800))+10800");
3168 equation(out,"f92","-(sin(241*(pi/180))*(?f0 -10800)-cos(241*(pi/180))*(10800-10800))+10800");
3169 equation(out,"f93","(cos(247*(pi/180))*(0-10800)+sin(247*(pi/180))*(10800-10800))+10800");
3170 equation(out,"f94","-(sin(247*(pi/180))*(0-10800)-cos(247*(pi/180))*(10800-10800))+10800");
3171 equation(out,"f95","(cos(253*(pi/180))*(?f0 -10800)+sin(253*(pi/180))*(10800-10800))+10800");
3172 equation(out,"f96","-(sin(253*(pi/180))*(?f0 -10800)-cos(253*(pi/180))*(10800-10800))+10800");
3173 equation(out,"f97","(cos(258*(pi/180))*(0-10800)+sin(258*(pi/180))*(10800-10800))+10800");
3174 equation(out,"f98","-(sin(258*(pi/180))*(0-10800)-cos(258*(pi/180))*(10800-10800))+10800");
3175 equation(out,"f99","(cos(264*(pi/180))*(?f0 -10800)+sin(264*(pi/180))*(10800-10800))+10800");
3176 equation(out,"f100","-(sin(264*(pi/180))*(?f0 -10800)-cos(264*(pi/180))*(10800-10800))+10800");
3177 equation(out,"f101","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800");
3178 equation(out,"f102","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800");
3179 equation(out,"f103","(cos(275*(pi/180))*(?f0 -10800)+sin(275*(pi/180))*(10800-10800))+10800");
3180 equation(out,"f104","-(sin(275*(pi/180))*(?f0 -10800)-cos(275*(pi/180))*(10800-10800))+10800");
3181 equation(out,"f105","(cos(281*(pi/180))*(0-10800)+sin(281*(pi/180))*(10800-10800))+10800");
3182 equation(out,"f106","-(sin(281*(pi/180))*(0-10800)-cos(281*(pi/180))*(10800-10800))+10800");
3183 equation(out,"f107","(cos(286*(pi/180))*(?f0 -10800)+sin(286*(pi/180))*(10800-10800))+10800");
3184 equation(out,"f108","-(sin(286*(pi/180))*(?f0 -10800)-cos(286*(pi/180))*(10800-10800))+10800");
3185 equation(out,"f109","(cos(292*(pi/180))*(0-10800)+sin(292*(pi/180))*(10800-10800))+10800");
3186 equation(out,"f110","-(sin(292*(pi/180))*(0-10800)-cos(292*(pi/180))*(10800-10800))+10800");
3187 equation(out,"f111","(cos(298*(pi/180))*(?f0 -10800)+sin(298*(pi/180))*(10800-10800))+10800");
3188 equation(out,"f112","-(sin(298*(pi/180))*(?f0 -10800)-cos(298*(pi/180))*(10800-10800))+10800");
3189 equation(out,"f113","(cos(303*(pi/180))*(0-10800)+sin(303*(pi/180))*(10800-10800))+10800");
3190 equation(out,"f114","-(sin(303*(pi/180))*(0-10800)-cos(303*(pi/180))*(10800-10800))+10800");
3191 equation(out,"f115","(cos(309*(pi/180))*(?f0 -10800)+sin(309*(pi/180))*(10800-10800))+10800");
3192 equation(out,"f116","-(sin(309*(pi/180))*(?f0 -10800)-cos(309*(pi/180))*(10800-10800))+10800");
3193 equation(out,"f117","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800");
3194 equation(out,"f118","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800");
3195 equation(out,"f119","(cos(320*(pi/180))*(?f0 -10800)+sin(320*(pi/180))*(10800-10800))+10800");
3196 equation(out,"f120","-(sin(320*(pi/180))*(?f0 -10800)-cos(320*(pi/180))*(10800-10800))+10800");
3197 equation(out,"f121","(cos(326*(pi/180))*(0-10800)+sin(326*(pi/180))*(10800-10800))+10800");
3198 equation(out,"f122","-(sin(326*(pi/180))*(0-10800)-cos(326*(pi/180))*(10800-10800))+10800");
3199 equation(out,"f123","(cos(331*(pi/180))*(?f0 -10800)+sin(331*(pi/180))*(10800-10800))+10800");
3200 equation(out,"f124","-(sin(331*(pi/180))*(?f0 -10800)-cos(331*(pi/180))*(10800-10800))+10800");
3201 equation(out,"f125","(cos(337*(pi/180))*(0-10800)+sin(337*(pi/180))*(10800-10800))+10800");
3202 equation(out,"f126","-(sin(337*(pi/180))*(0-10800)-cos(337*(pi/180))*(10800-10800))+10800");
3203 equation(out,"f127","(cos(343*(pi/180))*(?f0 -10800)+sin(343*(pi/180))*(10800-10800))+10800");
3204 equation(out,"f128","-(sin(343*(pi/180))*(?f0 -10800)-cos(343*(pi/180))*(10800-10800))+10800");
3205 equation(out,"f129","(cos(348*(pi/180))*(0-10800)+sin(348*(pi/180))*(10800-10800))+10800");
3206 equation(out,"f130","-(sin(348*(pi/180))*(0-10800)-cos(348*(pi/180))*(10800-10800))+10800");
3207 equation(out,"f131","(cos(354*(pi/180))*(?f0 -10800)+sin(354*(pi/180))*(10800-10800))+10800");
3208 equation(out,"f132","-(sin(354*(pi/180))*(?f0 -10800)-cos(354*(pi/180))*(10800-10800))+10800");
3209 out.xml.startElement("draw:handle");
3210 out.xml.addAttribute("draw:handle-position", "$0 10800");
3211 out.xml.addAttribute("draw:handle-range-x-maximum", "10800");
3212 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
3213 out.xml.endElement(); // draw:handle
3214 out.xml.endElement(); // enhanced geometry
3215 out.xml.endElement(); // custom shape
3216 }
3217
3218
processRibbon2(const MSO::OfficeArtSpContainer & o,Writer & out)3219 void ODrawToOdf::processRibbon2(const MSO::OfficeArtSpContainer& o, Writer& out) {
3220 out.xml.startElement("draw:custom-shape");
3221 processStyleAndText(o, out);
3222
3223 out.xml.startElement("draw:enhanced-geometry");
3224 processModifiers(o, out, QList<int>() << 5400<< 18900);
3225 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3226 out.xml.addAttribute("draw:enhanced-path", "M ?f12 ?f1 L ?f12 ?f13 C ?f12 ?f14 ?f15 21600 ?f16 21600 L 0 21600 2750 ?f7 0 ?f2 ?f0 ?f2 ?f0 ?f4 C ?f0 ?f5 ?f10 0 ?f11 0 L ?f17 0 C ?f18 0 ?f19 ?f5 ?f19 ?f4 L ?f19 ?f2 21600 ?f2 18850 ?f7 21600 21600 ?f20 21600 C ?f21 21600 ?f22 ?f14 ?f22 ?f13 L ?f22 ?f1 Z N M ?f12 ?f1 L ?f12 ?f13 C ?f12 ?f23 ?f15 ?f24 ?f16 ?f24 L ?f11 ?f24 C ?f10 ?f24 ?f0 ?f26 ?f0 ?f25 ?f0 ?f27 ?f10 ?f1 ?f11 ?f1 Z N M ?f22 ?f1 L ?f22 ?f13 C ?f22 ?f23 ?f21 ?f24 ?f20 ?f24 L ?f17 ?f24 C ?f18 ?f24 ?f19 ?f26 ?f19 ?f25 ?f19 ?f27 ?f18 ?f1 ?f17 ?f1 Z N M ?f0 ?f25 L ?f0 ?f2 N M ?f19 ?f25 L ?f19 ?f2 N");
3227 out.xml.addAttribute("draw:type", "mso-spt54");
3228 out.xml.addAttribute("draw:text-areas", "?f0 0 ?f19 ?f1");
3229 setShapeMirroring(o, out);
3230 equation(out,"f0","$0 ");
3231 equation(out,"f1","$1 ");
3232 equation(out,"f2","21600-?f1 ");
3233 equation(out,"f3","?f2 /2");
3234 equation(out,"f4","?f3 /2");
3235 equation(out,"f5","?f4 /2");
3236 equation(out,"f6","?f1 /2");
3237 equation(out,"f7","21600-?f6 ");
3238 equation(out,"f8","420");
3239 equation(out,"f9","?f8 *2");
3240 equation(out,"f10","?f0 +?f8 ");
3241 equation(out,"f11","?f0 +?f9 ");
3242 equation(out,"f12","?f0 +2700");
3243 equation(out,"f13","21600-?f4 ");
3244 equation(out,"f14","21600-?f5 ");
3245 equation(out,"f15","?f12 -?f8 ");
3246 equation(out,"f16","?f12 -?f9 ");
3247 equation(out,"f17","21600-?f11 ");
3248 equation(out,"f18","21600-?f10 ");
3249 equation(out,"f19","21600-?f0 ");
3250 equation(out,"f20","21600-?f16 ");
3251 equation(out,"f21","21600-?f15 ");
3252 equation(out,"f22","21600-?f12 ");
3253 equation(out,"f23","?f13 -?f5 ");
3254 equation(out,"f24","?f1 +?f3 ");
3255 equation(out,"f25","?f1 +?f4 ");
3256 equation(out,"f26","?f25 +?f5 ");
3257 equation(out,"f27","?f25 -?f5 ");
3258 out.xml.startElement("draw:handle");
3259 out.xml.addAttribute("draw:handle-position", "$0 top");
3260 out.xml.addAttribute("draw:handle-range-x-maximum", "8100");
3261 out.xml.addAttribute("draw:handle-range-x-minimum", "2700");
3262 out.xml.endElement(); // draw:handle
3263 out.xml.startElement("draw:handle");
3264 out.xml.addAttribute("draw:handle-position", "10800 $1");
3265 out.xml.addAttribute("draw:handle-range-y-minimum", "14400");
3266 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
3267 out.xml.endElement(); // draw:handle
3268 out.xml.endElement(); // enhanced geometry
3269 out.xml.endElement(); // custom shape
3270 }
3271
3272
processRibbon(const MSO::OfficeArtSpContainer & o,Writer & out)3273 void ODrawToOdf::processRibbon(const MSO::OfficeArtSpContainer& o, Writer& out) {
3274 out.xml.startElement("draw:custom-shape");
3275 processStyleAndText(o, out);
3276
3277 out.xml.startElement("draw:enhanced-geometry");
3278 out.xml.addAttribute("draw:glue-points", "?f17 ?f10 2700 ?f14 ?f17 21600 ?f18 ?f14");
3279 processModifiers(o, out, QList<int>() << 5400<< 2700);
3280 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3281 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L ?f3 0 X ?f4 ?f11 L ?f4 ?f10 ?f5 ?f10 ?f5 ?f11 Y ?f6 0 L 21600 0 ?f18 ?f14 21600 ?f15 ?f9 ?f15 ?f9 ?f16 Y ?f8 21600 L ?f1 21600 X ?f0 ?f16 L ?f0 ?f15 0 ?f15 2700 ?f14 Z N M ?f4 ?f11 F Y ?f3 ?f12 L ?f1 ?f12 X ?f0 ?f13 ?f1 ?f10 L ?f4 ?f10 N M ?f5 ?f11 F Y ?f6 ?f12 L ?f8 ?f12 X ?f9 ?f13 ?f8 ?f10 L ?f5 ?f10 N M ?f0 ?f13 F L ?f0 ?f15 N M ?f9 ?f13 F L ?f9 ?f15 N");
3282 out.xml.addAttribute("draw:type", "mso-spt53");
3283 out.xml.addAttribute("draw:text-areas", "?f0 ?f10 ?f9 21600");
3284 setShapeMirroring(o, out);
3285 equation(out,"f0","$0 ");
3286 equation(out,"f1","?f0 +675");
3287 equation(out,"f2","?f1 +675");
3288 equation(out,"f3","?f2 +675");
3289 equation(out,"f4","?f3 +675");
3290 equation(out,"f5","21600-?f4 ");
3291 equation(out,"f6","21600-?f3 ");
3292 equation(out,"f7","21600-?f2 ");
3293 equation(out,"f8","21600-?f1 ");
3294 equation(out,"f9","21600-?f0 ");
3295 equation(out,"f10","$1 ");
3296 equation(out,"f11","?f10 /4");
3297 equation(out,"f12","?f11 *2");
3298 equation(out,"f13","?f11 *3");
3299 equation(out,"f14","10800-?f12 ");
3300 equation(out,"f15","21600-?f10 ");
3301 equation(out,"f16","21600-?f11 ");
3302 equation(out,"f17","21600/2");
3303 equation(out,"f18","21600-2700");
3304 equation(out,"f19","?f17 -2700");
3305 out.xml.startElement("draw:handle");
3306 out.xml.addAttribute("draw:handle-position", "$0 top");
3307 out.xml.addAttribute("draw:handle-range-x-maximum", "8100");
3308 out.xml.addAttribute("draw:handle-range-x-minimum", "2700");
3309 out.xml.endElement(); // draw:handle
3310 out.xml.startElement("draw:handle");
3311 out.xml.addAttribute("draw:handle-position", "10800 $1");
3312 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
3313 out.xml.addAttribute("draw:handle-range-y-maximum", "7200");
3314 out.xml.endElement(); // draw:handle
3315 out.xml.endElement(); // enhanced geometry
3316 out.xml.endElement(); // custom shape
3317 }
3318
3319
processEllipseRibbon2(const MSO::OfficeArtSpContainer & o,Writer & out)3320 void ODrawToOdf::processEllipseRibbon2(const MSO::OfficeArtSpContainer& o, Writer& out) {
3321 out.xml.startElement("draw:custom-shape");
3322 processStyleAndText(o, out);
3323
3324 out.xml.startElement("draw:enhanced-geometry");
3325 processModifiers(o, out, QList<int>() << 5400<< 18900);
3326 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3327 out.xml.addAttribute("draw:enhanced-path", "M ?f12 ?f1 L ?f12 ?f13 C ?f12 ?f14 ?f15 21600 ?f16 21600 L 0 21600 2750 ?f7 0 ?f2 ?f0 ?f2 ?f0 ?f4 C ?f0 ?f5 ?f10 0 ?f11 0 L ?f17 0 C ?f18 0 ?f19 ?f5 ?f19 ?f4 L ?f19 ?f2 21600 ?f2 18850 ?f7 21600 21600 ?f20 21600 C ?f21 21600 ?f22 ?f14 ?f22 ?f13 L ?f22 ?f1 Z N M ?f12 ?f1 L ?f12 ?f13 C ?f12 ?f23 ?f15 ?f24 ?f16 ?f24 L ?f11 ?f24 C ?f10 ?f24 ?f0 ?f26 ?f0 ?f25 ?f0 ?f27 ?f10 ?f1 ?f11 ?f1 Z N M ?f22 ?f1 L ?f22 ?f13 C ?f22 ?f23 ?f21 ?f24 ?f20 ?f24 L ?f17 ?f24 C ?f18 ?f24 ?f19 ?f26 ?f19 ?f25 ?f19 ?f27 ?f18 ?f1 ?f17 ?f1 Z N M ?f0 ?f25 L ?f0 ?f2 N M ?f19 ?f25 L ?f19 ?f2 N");
3328 out.xml.addAttribute("draw:type", "mso-spt108");
3329 out.xml.addAttribute("draw:text-areas", "?f0 0 ?f19 ?f1");
3330 setShapeMirroring(o, out);
3331 equation(out,"f0","$0 ");
3332 equation(out,"f1","$1 ");
3333 equation(out,"f2","21600-?f1 ");
3334 equation(out,"f3","?f2 /2");
3335 equation(out,"f4","?f3 /2");
3336 equation(out,"f5","?f4 /2");
3337 equation(out,"f6","?f1 /2");
3338 equation(out,"f7","21600-?f6 ");
3339 equation(out,"f8","420");
3340 equation(out,"f9","?f8 *2");
3341 equation(out,"f10","?f0 +?f8 ");
3342 equation(out,"f11","?f0 +?f9 ");
3343 equation(out,"f12","?f0 +2700");
3344 equation(out,"f13","21600-?f4 ");
3345 equation(out,"f14","21600-?f5 ");
3346 equation(out,"f15","?f12 -?f8 ");
3347 equation(out,"f16","?f12 -?f9 ");
3348 equation(out,"f17","21600-?f11 ");
3349 equation(out,"f18","21600-?f10 ");
3350 equation(out,"f19","21600-?f0 ");
3351 equation(out,"f20","21600-?f16 ");
3352 equation(out,"f21","21600-?f15 ");
3353 equation(out,"f22","21600-?f12 ");
3354 equation(out,"f23","?f13 -?f5 ");
3355 equation(out,"f24","?f1 +?f3 ");
3356 equation(out,"f25","?f1 +?f4 ");
3357 equation(out,"f26","?f25 +?f5 ");
3358 equation(out,"f27","?f25 -?f5 ");
3359 out.xml.startElement("draw:handle");
3360 out.xml.addAttribute("draw:handle-position", "$0 top");
3361 out.xml.addAttribute("draw:handle-range-x-maximum", "8100");
3362 out.xml.addAttribute("draw:handle-range-x-minimum", "2700");
3363 out.xml.endElement(); // draw:handle
3364 out.xml.startElement("draw:handle");
3365 out.xml.addAttribute("draw:handle-position", "10800 $1");
3366 out.xml.addAttribute("draw:handle-range-y-minimum", "14400");
3367 out.xml.addAttribute("draw:handle-range-y-maximum", "21600");
3368 out.xml.endElement(); // draw:handle
3369 out.xml.endElement(); // enhanced geometry
3370 out.xml.endElement(); // custom shape
3371 }
3372
3373
processEllipseRibbon(const MSO::OfficeArtSpContainer & o,Writer & out)3374 void ODrawToOdf::processEllipseRibbon(const MSO::OfficeArtSpContainer& o, Writer& out) {
3375 out.xml.startElement("draw:custom-shape");
3376 processStyleAndText(o, out);
3377
3378 out.xml.startElement("draw:enhanced-geometry");
3379 out.xml.addAttribute("draw:glue-points", "?f17 ?f10 2700 ?f14 ?f17 21600 ?f18 ?f14");
3380 processModifiers(o, out, QList<int>() << 5400<< 2700);
3381 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3382 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L ?f3 0 X ?f4 ?f11 L ?f4 ?f10 ?f5 ?f10 ?f5 ?f11 Y ?f6 0 L 21600 0 ?f18 ?f14 21600 ?f15 ?f9 ?f15 ?f9 ?f16 Y ?f8 21600 L ?f1 21600 X ?f0 ?f16 L ?f0 ?f15 0 ?f15 2700 ?f14 Z N M ?f4 ?f11 F Y ?f3 ?f12 L ?f1 ?f12 X ?f0 ?f13 ?f1 ?f10 L ?f4 ?f10 N M ?f5 ?f11 F Y ?f6 ?f12 L ?f8 ?f12 X ?f9 ?f13 ?f8 ?f10 L ?f5 ?f10 N M ?f0 ?f13 F L ?f0 ?f15 N M ?f9 ?f13 F L ?f9 ?f15 N");
3383 out.xml.addAttribute("draw:type", "mso-spt107");
3384 out.xml.addAttribute("draw:text-areas", "?f0 ?f10 ?f9 21600");
3385 setShapeMirroring(o, out);
3386 equation(out,"f0","$0 ");
3387 equation(out,"f1","?f0 +675");
3388 equation(out,"f2","?f1 +675");
3389 equation(out,"f3","?f2 +675");
3390 equation(out,"f4","?f3 +675");
3391 equation(out,"f5","21600-?f4 ");
3392 equation(out,"f6","21600-?f3 ");
3393 equation(out,"f7","21600-?f2 ");
3394 equation(out,"f8","21600-?f1 ");
3395 equation(out,"f9","21600-?f0 ");
3396 equation(out,"f10","$1 ");
3397 equation(out,"f11","?f10 /4");
3398 equation(out,"f12","?f11 *2");
3399 equation(out,"f13","?f11 *3");
3400 equation(out,"f14","10800-?f12 ");
3401 equation(out,"f15","21600-?f10 ");
3402 equation(out,"f16","21600-?f11 ");
3403 equation(out,"f17","21600/2");
3404 equation(out,"f18","21600-2700");
3405 equation(out,"f19","?f17 -2700");
3406 out.xml.startElement("draw:handle");
3407 out.xml.addAttribute("draw:handle-position", "$0 top");
3408 out.xml.addAttribute("draw:handle-range-x-maximum", "8100");
3409 out.xml.addAttribute("draw:handle-range-x-minimum", "2700");
3410 out.xml.endElement(); // draw:handle
3411 out.xml.startElement("draw:handle");
3412 out.xml.addAttribute("draw:handle-position", "10800 $1");
3413 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
3414 out.xml.addAttribute("draw:handle-range-y-maximum", "7200");
3415 out.xml.endElement(); // draw:handle
3416 out.xml.endElement(); // enhanced geometry
3417 out.xml.endElement(); // custom shape
3418 }
3419
3420
processVerticalScroll(const MSO::OfficeArtSpContainer & o,Writer & out)3421 void ODrawToOdf::processVerticalScroll(const MSO::OfficeArtSpContainer& o, Writer& out) {
3422 out.xml.startElement("draw:custom-shape");
3423 processStyleAndText(o, out);
3424
3425 out.xml.startElement("draw:enhanced-geometry");
3426 processModifiers(o, out, QList<int>() << 2700);
3427 out.xml.addAttribute("draw:path-stretchpoint-x", "11000");
3428 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
3429 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3430 out.xml.addAttribute("draw:enhanced-path", "M ?f1 21600 X 0 ?f11 ?f1 ?f12 L ?f0 ?f12 ?f0 ?f1 Y ?f4 0 L ?f2 0 X 21600 ?f1 ?f2 ?f0 L ?f3 ?f0 ?f3 ?f11 Y ?f5 21600 Z N M ?f6 ?f1 Y ?f4 ?f0 X ?f8 ?f9 ?f4 ?f1 Z N M ?f0 ?f11 Y ?f1 21600 0 ?f11 ?f1 ?f12 X ?f9 ?f10 ?f1 ?f11 Z N M ?f4 0 X ?f6 ?f1 N M ?f0 ?f12 L ?f0 ?f11 N M ?f4 ?f0 L ?f2 ?f0 N");
3431 out.xml.addAttribute("draw:type", "vertical-scroll");
3432 out.xml.addAttribute("draw:text-areas", "?f0 ?f0 ?f3 ?f12");
3433 setShapeMirroring(o, out);
3434 equation(out,"f0","$0 ");
3435 equation(out,"f1","?f0 /2");
3436 equation(out,"f2","right-?f1 ");
3437 equation(out,"f3","right-?f0 ");
3438 equation(out,"f4","?f0 +?f1 ");
3439 equation(out,"f5","right-?f4 ");
3440 equation(out,"f6","?f0 *2");
3441 equation(out,"f7","?f1 /2");
3442 equation(out,"f8","?f0 +?f7 ");
3443 equation(out,"f9","?f1 +?f7 ");
3444 equation(out,"f10","bottom-?f9 ");
3445 equation(out,"f11","bottom-?f1 ");
3446 equation(out,"f12","bottom-?f0 ");
3447 equation(out,"f13","bottom-?f4 ");
3448 out.xml.startElement("draw:handle");
3449 out.xml.addAttribute("draw:handle-position", "left $0");
3450 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
3451 out.xml.addAttribute("draw:handle-range-y-maximum", "5400");
3452 out.xml.endElement(); // draw:handle
3453 out.xml.endElement(); // enhanced geometry
3454 out.xml.endElement(); // custom shape
3455 }
3456
3457
processHorizontalScroll(const MSO::OfficeArtSpContainer & o,Writer & out)3458 void ODrawToOdf::processHorizontalScroll(const MSO::OfficeArtSpContainer& o, Writer& out) {
3459 out.xml.startElement("draw:custom-shape");
3460 processStyleAndText(o, out);
3461
3462 out.xml.startElement("draw:enhanced-geometry");
3463 processModifiers(o, out, QList<int>() << 2700);
3464 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
3465 out.xml.addAttribute("draw:path-stretchpoint-y", "11000");
3466 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3467 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f4 Y ?f1 ?f0 L ?f3 ?f0 ?f3 ?f1 Y ?f2 0 21600 ?f1 L 21600 ?f13 Y ?f2 ?f12 L ?f0 ?f12 ?f0 ?f11 Y ?f1 21600 0 ?f11 Z N M ?f1 ?f4 Y ?f9 ?f8 ?f0 ?f4 ?f1 ?f6 Z N M ?f2 ?f1 Y ?f3 ?f9 ?f3 ?f1 ?f2 0 X 21600 ?f1 ?f2 ?f0 Z N M ?f1 ?f6 X 0 ?f4 N M ?f2 ?f0 L ?f3 ?f0 N M ?f0 ?f4 L ?f0 ?f11 N");
3468 out.xml.addAttribute("draw:type", "horizontal-scroll");
3469 out.xml.addAttribute("draw:text-areas", "?f0 ?f0 ?f3 ?f12");
3470 setShapeMirroring(o, out);
3471 equation(out,"f0","$0 ");
3472 equation(out,"f1","?f0 /2");
3473 equation(out,"f2","right-?f1 ");
3474 equation(out,"f3","right-?f0 ");
3475 equation(out,"f4","?f0 +?f1 ");
3476 equation(out,"f5","right-?f4 ");
3477 equation(out,"f6","?f0 *2");
3478 equation(out,"f7","?f1 /2");
3479 equation(out,"f8","?f0 +?f7 ");
3480 equation(out,"f9","?f1 +?f7 ");
3481 equation(out,"f10","bottom-?f9 ");
3482 equation(out,"f11","bottom-?f1 ");
3483 equation(out,"f12","bottom-?f0 ");
3484 equation(out,"f13","bottom-?f4 ");
3485 out.xml.startElement("draw:handle");
3486 out.xml.addAttribute("draw:handle-position", "$0 top");
3487 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
3488 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
3489 out.xml.endElement(); // draw:handle
3490 out.xml.endElement(); // enhanced geometry
3491 out.xml.endElement(); // custom shape
3492 }
3493
3494
processWave(const MSO::OfficeArtSpContainer & o,Writer & out)3495 void ODrawToOdf::processWave(const MSO::OfficeArtSpContainer& o, Writer& out) {
3496 out.xml.startElement("draw:custom-shape");
3497 processStyleAndText(o, out);
3498
3499 out.xml.startElement("draw:enhanced-geometry");
3500 out.xml.addAttribute("draw:glue-points", "?f18 ?f0 ?f20 10800 ?f19 ?f1 ?f21 10800");
3501 processModifiers(o, out, QList<int>() << 1400<< 10800);
3502 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3503 out.xml.addAttribute("draw:enhanced-path", "M ?f7 ?f0 C ?f15 ?f9 ?f16 ?f10 ?f12 ?f0 L ?f24 ?f1 C ?f25 ?f26 ?f27 ?f28 ?f29 ?f1 Z N");
3504 out.xml.addAttribute("draw:type", "mso-spt64");
3505 out.xml.addAttribute("draw:text-areas", "?f5 ?f22 ?f11 ?f23");
3506 setShapeMirroring(o, out);
3507 equation(out,"f0","$0 ");
3508 equation(out,"f1","21600-?f0 ");
3509 equation(out,"f2","$1 ");
3510 equation(out,"f3","?f2 -10800");
3511 equation(out,"f4","?f3 *2");
3512 equation(out,"f5","abs(?f4 )");
3513 equation(out,"f6","4320-?f5 ");
3514 equation(out,"f7","if(?f3 ,0,?f5 )");
3515 equation(out,"f8","15800*?f0 /4460");
3516 equation(out,"f9","?f0 -?f8 ");
3517 equation(out,"f10","?f0 +?f8 ");
3518 equation(out,"f11","21600-?f4 ");
3519 equation(out,"f12","if(?f3 ,?f11 ,21600)");
3520 equation(out,"f13","?f12 -?f7 ");
3521 equation(out,"f14","?f5 /2");
3522 equation(out,"f15","?f7 +7200-?f14 ");
3523 equation(out,"f16","?f12 +?f14 -7200");
3524 equation(out,"f17","?f13 /2");
3525 equation(out,"f18","?f7 +?f17 ");
3526 equation(out,"f19","21600-?f18 ");
3527 equation(out,"f20","?f5 /2");
3528 equation(out,"f21","21600-?f20 ");
3529 equation(out,"f22","?f0 *2");
3530 equation(out,"f23","21600-?f22 ");
3531 equation(out,"f24","21600-?f7 ");
3532 equation(out,"f25","21600-?f15 ");
3533 equation(out,"f26","?f1 +?f8 ");
3534 equation(out,"f27","21600-?f16 ");
3535 equation(out,"f28","?f1 -?f8 ");
3536 equation(out,"f29","21600-?f12 ");
3537 out.xml.startElement("draw:handle");
3538 out.xml.addAttribute("draw:handle-position", "left $0");
3539 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
3540 out.xml.addAttribute("draw:handle-range-y-maximum", "4460");
3541 out.xml.endElement(); // draw:handle
3542 out.xml.startElement("draw:handle");
3543 out.xml.addAttribute("draw:handle-position", "$1 21600");
3544 out.xml.addAttribute("draw:handle-range-x-maximum", "12960");
3545 out.xml.addAttribute("draw:handle-range-x-minimum", "8640");
3546 out.xml.endElement(); // draw:handle
3547 out.xml.endElement(); // enhanced geometry
3548 out.xml.endElement(); // custom shape
3549 }
3550
3551
processDoubleWave(const MSO::OfficeArtSpContainer & o,Writer & out)3552 void ODrawToOdf::processDoubleWave(const MSO::OfficeArtSpContainer& o, Writer& out) {
3553 out.xml.startElement("draw:custom-shape");
3554 processStyleAndText(o, out);
3555
3556 out.xml.startElement("draw:enhanced-geometry");
3557 out.xml.addAttribute("draw:glue-points", "?f18 ?f0 ?f20 10800 ?f19 ?f1 ?f21 10800");
3558 processModifiers(o, out, QList<int>() << 1400<< 10800);
3559 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3560 out.xml.addAttribute("draw:enhanced-path", "M ?f7 ?f0 C ?f15 ?f9 ?f30 ?f10 ?f18 ?f0 ?f31 ?f9 ?f16 ?f10 ?f12 ?f0 L ?f24 ?f1 C ?f25 ?f26 ?f33 ?f28 ?f19 ?f1 ?f32 ?f26 ?f27 ?f28 ?f29 ?f1 Z N");
3561 out.xml.addAttribute("draw:type", "mso-spt188");
3562 out.xml.addAttribute("draw:text-areas", "?f5 ?f22 ?f11 ?f23");
3563 setShapeMirroring(o, out);
3564 equation(out,"f0","$0 ");
3565 equation(out,"f1","21600-?f0 ");
3566 equation(out,"f2","$1 ");
3567 equation(out,"f3","?f2 -10800");
3568 equation(out,"f4","?f3 *2");
3569 equation(out,"f5","abs(?f4 )");
3570 equation(out,"f6","4320-?f5 ");
3571 equation(out,"f7","if(?f3 ,0,?f5 )");
3572 equation(out,"f8","7900*?f0 /2230");
3573 equation(out,"f9","?f0 -?f8 ");
3574 equation(out,"f10","?f0 +?f8 ");
3575 equation(out,"f11","21600-?f4 ");
3576 equation(out,"f12","if(?f3 ,?f11 ,21600)");
3577 equation(out,"f13","?f12 -?f7 ");
3578 equation(out,"f14","?f5 /2");
3579 equation(out,"f15","?f7 +3600-?f14 ");
3580 equation(out,"f16","?f12 +?f14 -3600");
3581 equation(out,"f17","?f13 /2");
3582 equation(out,"f18","?f7 +?f17 ");
3583 equation(out,"f19","21600-?f18 ");
3584 equation(out,"f20","?f5 /2");
3585 equation(out,"f21","21600-?f20 ");
3586 equation(out,"f22","?f0 *2");
3587 equation(out,"f23","21600-?f22 ");
3588 equation(out,"f24","21600-?f7 ");
3589 equation(out,"f25","21600-?f15 ");
3590 equation(out,"f26","?f1 +?f8 ");
3591 equation(out,"f27","21600-?f16 ");
3592 equation(out,"f28","?f1 -?f8 ");
3593 equation(out,"f29","21600-?f12 ");
3594 equation(out,"f30","?f18 -?f14 ");
3595 equation(out,"f31","?f18 +?f14 ");
3596 equation(out,"f32","?f19 -?f14 ");
3597 equation(out,"f33","?f19 +?f14 ");
3598 out.xml.startElement("draw:handle");
3599 out.xml.addAttribute("draw:handle-position", "left $0");
3600 out.xml.addAttribute("draw:handle-range-y-minimum", "0");
3601 out.xml.addAttribute("draw:handle-range-y-maximum", "2230");
3602 out.xml.endElement(); // draw:handle
3603 out.xml.startElement("draw:handle");
3604 out.xml.addAttribute("draw:handle-position", "$1 21600");
3605 out.xml.addAttribute("draw:handle-range-x-maximum", "12960");
3606 out.xml.addAttribute("draw:handle-range-x-minimum", "8640");
3607 out.xml.endElement(); // draw:handle
3608 out.xml.endElement(); // enhanced geometry
3609 out.xml.endElement(); // custom shape
3610 }
3611
3612
processWedgeRectCallout(const MSO::OfficeArtSpContainer & o,Writer & out)3613 void ODrawToOdf::processWedgeRectCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
3614 out.xml.startElement("draw:custom-shape");
3615 processStyleAndText(o, out);
3616
3617 out.xml.startElement("draw:enhanced-geometry");
3618 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800 ?f40 ?f41");
3619 processModifiers(o, out, QList<int>() << 1400<< 25920);
3620 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3621 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 0 3590 ?f2 ?f3 0 8970 0 12630 ?f4 ?f5 0 18010 0 21600 3590 21600 ?f6 ?f7 8970 21600 12630 21600 ?f8 ?f9 18010 21600 21600 21600 21600 18010 ?f10 ?f11 21600 12630 21600 8970 ?f12 ?f13 21600 3590 21600 0 18010 0 ?f14 ?f15 12630 0 8970 0 ?f16 ?f17 3590 0 0 0 Z N");
3622 out.xml.addAttribute("draw:type", "rectangular-callout");
3623 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600");
3624 setShapeMirroring(o, out);
3625 equation(out,"f0","$0 -10800");
3626 equation(out,"f1","$1 -10800");
3627 equation(out,"f2","if(?f18 ,$0 ,0)");
3628 equation(out,"f3","if(?f18 ,$1 ,6280)");
3629 equation(out,"f4","if(?f23 ,$0 ,0)");
3630 equation(out,"f5","if(?f23 ,$1 ,15320)");
3631 equation(out,"f6","if(?f26 ,$0 ,6280)");
3632 equation(out,"f7","if(?f26 ,$1 ,21600)");
3633 equation(out,"f8","if(?f29 ,$0 ,15320)");
3634 equation(out,"f9","if(?f29 ,$1 ,21600)");
3635 equation(out,"f10","if(?f32 ,$0 ,21600)");
3636 equation(out,"f11","if(?f32 ,$1 ,15320)");
3637 equation(out,"f12","if(?f34 ,$0 ,21600)");
3638 equation(out,"f13","if(?f34 ,$1 ,6280)");
3639 equation(out,"f14","if(?f36 ,$0 ,15320)");
3640 equation(out,"f15","if(?f36 ,$1 ,0)");
3641 equation(out,"f16","if(?f38 ,$0 ,6280)");
3642 equation(out,"f17","if(?f38 ,$1 ,0)");
3643 equation(out,"f18","if($0 ,-1,?f19 )");
3644 equation(out,"f19","if(?f1 ,-1,?f22 )");
3645 equation(out,"f20","abs(?f0 )");
3646 equation(out,"f21","abs(?f1 )");
3647 equation(out,"f22","?f20 -?f21 ");
3648 equation(out,"f23","if($0 ,-1,?f24 )");
3649 equation(out,"f24","if(?f1 ,?f22 ,-1)");
3650 equation(out,"f25","$1 -21600");
3651 equation(out,"f26","if(?f25 ,?f27 ,-1)");
3652 equation(out,"f27","if(?f0 ,-1,?f28 )");
3653 equation(out,"f28","?f21 -?f20 ");
3654 equation(out,"f29","if(?f25 ,?f30 ,-1)");
3655 equation(out,"f30","if(?f0 ,?f28 ,-1)");
3656 equation(out,"f31","$0 -21600");
3657 equation(out,"f32","if(?f31 ,?f33 ,-1)");
3658 equation(out,"f33","if(?f1 ,?f22 ,-1)");
3659 equation(out,"f34","if(?f31 ,?f35 ,-1)");
3660 equation(out,"f35","if(?f1 ,-1,?f22 )");
3661 equation(out,"f36","if($1 ,-1,?f37 )");
3662 equation(out,"f37","if(?f0 ,?f28 ,-1)");
3663 equation(out,"f38","if($1 ,-1,?f39 )");
3664 equation(out,"f39","if(?f0 ,-1,?f28 )");
3665 equation(out,"f40","$0 ");
3666 equation(out,"f41","$1 ");
3667 out.xml.startElement("draw:handle");
3668 out.xml.addAttribute("draw:handle-position", "$0 $1");
3669 out.xml.endElement(); // draw:handle
3670 out.xml.endElement(); // enhanced geometry
3671 out.xml.endElement(); // custom shape
3672 }
3673
3674
processWedgeRRectCallout(const MSO::OfficeArtSpContainer & o,Writer & out)3675 void ODrawToOdf::processWedgeRRectCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
3676 out.xml.startElement("draw:custom-shape");
3677 processStyleAndText(o, out);
3678
3679 out.xml.startElement("draw:enhanced-geometry");
3680 processModifiers(o, out, QList<int>() << 1400<< 25920);
3681 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3682 out.xml.addAttribute("draw:enhanced-path", "M 3590 0 X 0 3590 L ?f2 ?f3 0 8970 0 12630 ?f4 ?f5 0 18010 Y 3590 21600 L ?f6 ?f7 8970 21600 12630 21600 ?f8 ?f9 18010 21600 X 21600 18010 L ?f10 ?f11 21600 12630 21600 8970 ?f12 ?f13 21600 3590 Y 18010 0 L ?f14 ?f15 12630 0 8970 0 ?f16 ?f17 Z N");
3683 out.xml.addAttribute("draw:type", "round-rectangular-callout");
3684 out.xml.addAttribute("draw:text-areas", "800 800 20800 20800");
3685 setShapeMirroring(o, out);
3686 equation(out,"f0","$0 -10800");
3687 equation(out,"f1","$1 -10800");
3688 equation(out,"f2","if(?f18 ,$0 ,0)");
3689 equation(out,"f3","if(?f18 ,$1 ,6280)");
3690 equation(out,"f4","if(?f23 ,$0 ,0)");
3691 equation(out,"f5","if(?f23 ,$1 ,15320)");
3692 equation(out,"f6","if(?f26 ,$0 ,6280)");
3693 equation(out,"f7","if(?f26 ,$1 ,21600)");
3694 equation(out,"f8","if(?f29 ,$0 ,15320)");
3695 equation(out,"f9","if(?f29 ,$1 ,21600)");
3696 equation(out,"f10","if(?f32 ,$0 ,21600)");
3697 equation(out,"f11","if(?f32 ,$1 ,15320)");
3698 equation(out,"f12","if(?f34 ,$0 ,21600)");
3699 equation(out,"f13","if(?f34 ,$1 ,6280)");
3700 equation(out,"f14","if(?f36 ,$0 ,15320)");
3701 equation(out,"f15","if(?f36 ,$1 ,0)");
3702 equation(out,"f16","if(?f38 ,$0 ,6280)");
3703 equation(out,"f17","if(?f38 ,$1 ,0)");
3704 equation(out,"f18","if($0 ,-1,?f19 )");
3705 equation(out,"f19","if(?f1 ,-1,?f22 )");
3706 equation(out,"f20","abs(?f0 )");
3707 equation(out,"f21","abs(?f1 )");
3708 equation(out,"f22","?f20 -?f21 ");
3709 equation(out,"f23","if($0 ,-1,?f24 )");
3710 equation(out,"f24","if(?f1 ,?f22 ,-1)");
3711 equation(out,"f25","$1 -21600");
3712 equation(out,"f26","if(?f25 ,?f27 ,-1)");
3713 equation(out,"f27","if(?f0 ,-1,?f28 )");
3714 equation(out,"f28","?f21 -?f20 ");
3715 equation(out,"f29","if(?f25 ,?f30 ,-1)");
3716 equation(out,"f30","if(?f0 ,?f28 ,-1)");
3717 equation(out,"f31","$0 -21600");
3718 equation(out,"f32","if(?f31 ,?f33 ,-1)");
3719 equation(out,"f33","if(?f1 ,?f22 ,-1)");
3720 equation(out,"f34","if(?f31 ,?f35 ,-1)");
3721 equation(out,"f35","if(?f1 ,-1,?f22 )");
3722 equation(out,"f36","if($1 ,-1,?f37 )");
3723 equation(out,"f37","if(?f0 ,?f28 ,-1)");
3724 equation(out,"f38","if($1 ,-1,?f39 )");
3725 equation(out,"f39","if(?f0 ,-1,?f28 )");
3726 equation(out,"f40","$0 ");
3727 equation(out,"f41","$1 ");
3728 out.xml.startElement("draw:handle");
3729 out.xml.addAttribute("draw:handle-position", "$0 $1");
3730 out.xml.endElement(); // draw:handle
3731 out.xml.endElement(); // enhanced geometry
3732 out.xml.endElement(); // custom shape
3733 }
3734
3735
processWedgeEllipseCallout(const MSO::OfficeArtSpContainer & o,Writer & out)3736 void ODrawToOdf::processWedgeEllipseCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
3737 out.xml.startElement("draw:custom-shape");
3738 processStyleAndText(o, out);
3739
3740 out.xml.startElement("draw:enhanced-geometry");
3741 out.xml.addAttribute("draw:glue-points", "10800 0 3160 3160 0 10800 3160 18440 10800 21600 18440 18440 21600 10800 18440 3160 ?f14 ?f15");
3742 processModifiers(o, out, QList<int>() << 1350<< 25920);
3743 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3744 out.xml.addAttribute("draw:enhanced-path", "V 0 0 21600 21600 ?f22 ?f23 ?f18 ?f19 L ?f14 ?f15 Z N");
3745 out.xml.addAttribute("draw:type", "round-callout");
3746 out.xml.addAttribute("draw:text-areas", "3200 3200 18400 18400");
3747 setShapeMirroring(o, out);
3748 equation(out,"f0","$0 -10800");
3749 equation(out,"f1","$1 -10800");
3750 equation(out,"f2","?f0 *?f0 ");
3751 equation(out,"f3","?f1 *?f1 ");
3752 equation(out,"f4","?f2 +?f3 ");
3753 equation(out,"f5","sqrt(?f4 )");
3754 equation(out,"f6","?f5 -10800");
3755 equation(out,"f7","atan2(?f1 ,?f0 )/(pi/180)");
3756 equation(out,"f8","?f7 -10");
3757 equation(out,"f9","?f7 +10");
3758 equation(out,"f10","10800*cos(?f7 *(pi/180))");
3759 equation(out,"f11","10800*sin(?f7 *(pi/180))");
3760 equation(out,"f12","?f10 +10800");
3761 equation(out,"f13","?f11 +10800");
3762 equation(out,"f14","if(?f6 ,$0 ,?f12 )");
3763 equation(out,"f15","if(?f6 ,$1 ,?f13 )");
3764 equation(out,"f16","10800*cos(?f8 *(pi/180))");
3765 equation(out,"f17","10800*sin(?f8 *(pi/180))");
3766 equation(out,"f18","?f16 +10800");
3767 equation(out,"f19","?f17 +10800");
3768 equation(out,"f20","10800*cos(?f9 *(pi/180))");
3769 equation(out,"f21","10800*sin(?f9 *(pi/180))");
3770 equation(out,"f22","?f20 +10800");
3771 equation(out,"f23","?f21 +10800");
3772 out.xml.startElement("draw:handle");
3773 out.xml.addAttribute("draw:handle-position", "$0 $1");
3774 out.xml.endElement(); // draw:handle
3775 out.xml.endElement(); // enhanced geometry
3776 out.xml.endElement(); // custom shape
3777 }
3778
3779
processCloudCallout(const MSO::OfficeArtSpContainer & o,Writer & out)3780 void ODrawToOdf::processCloudCallout(const MSO::OfficeArtSpContainer& o, Writer& out) {
3781 out.xml.startElement("draw:custom-shape");
3782 processStyleAndText(o, out);
3783
3784 out.xml.startElement("draw:enhanced-geometry");
3785 processModifiers(o, out, QList<int>() << 1350<< 25920);
3786 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3787 out.xml.addAttribute("draw:enhanced-path", "M 1930 7160 C 1530 4490 3400 1970 5270 1970 5860 1950 6470 2210 6970 2600 7450 1390 8340 650 9340 650 10004 690 10710 1050 11210 1700 11570 630 12330 0 13150 0 13840 0 14470 460 14870 1160 15330 440 16020 0 16740 0 17910 0 18900 1130 19110 2710 20240 3150 21060 4580 21060 6220 21060 6720 21000 7200 20830 7660 21310 8460 21600 9450 21600 10460 21600 12750 20310 14680 18650 15010 18650 17200 17370 18920 15770 18920 15220 18920 14700 18710 14240 18310 13820 20240 12490 21600 11000 21600 9890 21600 8840 20790 8210 19510 7620 20000 7930 20290 6240 20290 4850 20290 3570 19280 2900 17640 1300 17600 480 16300 480 14660 480 13900 690 13210 1070 12640 380 12160 0 11210 0 10120 0 8590 840 7330 1930 7160 Z N M 1930 7160 C 1950 7410 2040 7690 2090 7920 F N M 6970 2600 C 7200 2790 7480 3050 7670 3310 F N M 11210 1700 C 11130 1910 11080 2160 11030 2400 F N M 14870 1160 C 14720 1400 14640 1720 14540 2010 F N M 19110 2710 C 19130 2890 19230 3290 19190 3380 F N M 20830 7660 C 20660 8170 20430 8620 20110 8990 F N M 18660 15010 C 18740 14200 18280 12200 17000 11450 F N M 14240 18310 C 14320 17980 14350 17680 14370 17360 F N M 8220 19510 C 8060 19250 7960 18950 7860 18640 F N M 2900 17640 C 3090 17600 3280 17540 3460 17450 F N M 1070 12640 C 1400 12900 1780 13130 2330 13040 F N U ?f17 ?f18 1800 1800 0 360 Z N U ?f19 ?f20 1200 1200 0 360 Z N U ?f13 ?f14 700 700 0 360 Z N");
3788 out.xml.addAttribute("draw:type", "cloud-callout");
3789 out.xml.addAttribute("draw:text-areas", "3000 3320 17110 17330");
3790 setShapeMirroring(o, out);
3791 equation(out,"f0","$0 -10800");
3792 equation(out,"f1","$1 -10800");
3793 equation(out,"f2","atan2(?f1 ,?f0 )/(pi/180)");
3794 equation(out,"f3","10800*cos(?f2 *(pi/180))");
3795 equation(out,"f4","10800*sin(?f2 *(pi/180))");
3796 equation(out,"f5","?f3 +10800");
3797 equation(out,"f6","?f4 +10800");
3798 equation(out,"f7","$0 -?f5 ");
3799 equation(out,"f8","$1 -?f6 ");
3800 equation(out,"f9","?f7 /3");
3801 equation(out,"f10","?f8 /3");
3802 equation(out,"f11","?f7 *2/3");
3803 equation(out,"f12","?f8 *2/3");
3804 equation(out,"f13","$0 ");
3805 equation(out,"f14","$1 ");
3806 equation(out,"f15","?f3 /12");
3807 equation(out,"f16","?f4 /12");
3808 equation(out,"f17","?f9 +?f5 -?f15 ");
3809 equation(out,"f18","?f10 +?f6 -?f16 ");
3810 equation(out,"f19","?f11 +?f5 ");
3811 equation(out,"f20","?f12 +?f6 ");
3812 out.xml.startElement("draw:handle");
3813 out.xml.addAttribute("draw:handle-position", "$0 $1");
3814 out.xml.endElement(); // draw:handle
3815 out.xml.endElement(); // enhanced geometry
3816 out.xml.endElement(); // custom shape
3817 }
3818
3819
processBorderCallout90(const MSO::OfficeArtSpContainer & o,Writer & out)3820 void ODrawToOdf::processBorderCallout90(const MSO::OfficeArtSpContainer& o, Writer& out) {
3821 out.xml.startElement("draw:custom-shape");
3822 processStyleAndText(o, out);
3823
3824 out.xml.startElement("draw:enhanced-geometry");
3825 processModifiers(o, out, QList<int>() << -1800<< 22950<< -1800<< 2700);
3826 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3827 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N");
3828 out.xml.addAttribute("draw:type", "mso-spt180");
3829 setShapeMirroring(o, out);
3830 equation(out,"f0","$0 ");
3831 equation(out,"f1","$1 ");
3832 equation(out,"f2","$2 ");
3833 equation(out,"f3","$3 ");
3834 equation(out,"f4","$4 ");
3835 equation(out,"f5","$5 ");
3836 equation(out,"f6","$6 ");
3837 equation(out,"f7","$7 ");
3838 out.xml.startElement("draw:handle");
3839 out.xml.addAttribute("draw:handle-position", "$0 $1");
3840 out.xml.endElement(); // draw:handle
3841 out.xml.startElement("draw:handle");
3842 out.xml.addAttribute("draw:handle-position", "$2 $3");
3843 out.xml.endElement(); // draw:handle
3844 out.xml.endElement(); // enhanced geometry
3845 out.xml.endElement(); // custom shape
3846 }
3847
3848
processBorderCallout1(const MSO::OfficeArtSpContainer & o,Writer & out)3849 void ODrawToOdf::processBorderCallout1(const MSO::OfficeArtSpContainer& o, Writer& out) {
3850 out.xml.startElement("draw:custom-shape");
3851 processStyleAndText(o, out);
3852
3853 out.xml.startElement("draw:enhanced-geometry");
3854 processModifiers(o, out, QList<int>() << -8288<< 24500<< -1800<< 4000);
3855 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3856 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N");
3857 out.xml.addAttribute("draw:type", "line-callout-1");
3858 setShapeMirroring(o, out);
3859 equation(out,"f0","$0 ");
3860 equation(out,"f1","$1 ");
3861 equation(out,"f2","$2 ");
3862 equation(out,"f3","$3 ");
3863 equation(out,"f4","$4 ");
3864 equation(out,"f5","$5 ");
3865 equation(out,"f6","$6 ");
3866 equation(out,"f7","$7 ");
3867 out.xml.startElement("draw:handle");
3868 out.xml.addAttribute("draw:handle-position", "$0 $1");
3869 out.xml.endElement(); // draw:handle
3870 out.xml.startElement("draw:handle");
3871 out.xml.addAttribute("draw:handle-position", "$2 $3");
3872 out.xml.endElement(); // draw:handle
3873 out.xml.endElement(); // enhanced geometry
3874 out.xml.endElement(); // custom shape
3875 }
3876
3877
processBorderCallout2(const MSO::OfficeArtSpContainer & o,Writer & out)3878 void ODrawToOdf::processBorderCallout2(const MSO::OfficeArtSpContainer& o, Writer& out) {
3879 out.xml.startElement("draw:custom-shape");
3880 processStyleAndText(o, out);
3881
3882 out.xml.startElement("draw:enhanced-geometry");
3883 processModifiers(o, out, QList<int>() << -10088<< 24500<< -3600<< 4000<< -1800<< 4000);
3884 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3885 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N M ?f2 ?f3 L ?f4 ?f5 N M");
3886 out.xml.addAttribute("draw:type", "line-callout-2");
3887 setShapeMirroring(o, out);
3888 equation(out,"f0","$0 ");
3889 equation(out,"f1","$1 ");
3890 equation(out,"f2","$2 ");
3891 equation(out,"f3","$3 ");
3892 equation(out,"f4","$4 ");
3893 equation(out,"f5","$5 ");
3894 equation(out,"f6","$6 ");
3895 equation(out,"f7","$7 ");
3896 out.xml.startElement("draw:handle");
3897 out.xml.addAttribute("draw:handle-position", "$0 $1");
3898 out.xml.endElement(); // draw:handle
3899 out.xml.startElement("draw:handle");
3900 out.xml.addAttribute("draw:handle-position", "$2 $3");
3901 out.xml.endElement(); // draw:handle
3902 out.xml.startElement("draw:handle");
3903 out.xml.addAttribute("draw:handle-position", "$4 $5");
3904 out.xml.endElement(); // draw:handle
3905 out.xml.endElement(); // enhanced geometry
3906 out.xml.endElement(); // custom shape
3907 }
3908
3909
processBorderCallout3(const MSO::OfficeArtSpContainer & o,Writer & out)3910 void ODrawToOdf::processBorderCallout3(const MSO::OfficeArtSpContainer& o, Writer& out) {
3911 out.xml.startElement("draw:custom-shape");
3912 processStyleAndText(o, out);
3913
3914 out.xml.startElement("draw:enhanced-geometry");
3915 processModifiers(o, out, QList<int>() << 23400<< 24413<< 25200<< 21600<< 25200<< 4000<< 23400<< 4000);
3916 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3917 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M ?f6 ?f7 F L ?f4 ?f5 ?f2 ?f3 ?f0 ?f1 N");
3918 out.xml.addAttribute("draw:type", "mso-spt49");
3919 setShapeMirroring(o, out);
3920 equation(out,"f0","$0 ");
3921 equation(out,"f1","$1 ");
3922 equation(out,"f2","$2 ");
3923 equation(out,"f3","$3 ");
3924 equation(out,"f4","$4 ");
3925 equation(out,"f5","$5 ");
3926 equation(out,"f6","$6 ");
3927 equation(out,"f7","$7 ");
3928 out.xml.startElement("draw:handle");
3929 out.xml.addAttribute("draw:handle-position", "$0 $1");
3930 out.xml.endElement(); // draw:handle
3931 out.xml.startElement("draw:handle");
3932 out.xml.addAttribute("draw:handle-position", "$2 $3");
3933 out.xml.endElement(); // draw:handle
3934 out.xml.startElement("draw:handle");
3935 out.xml.addAttribute("draw:handle-position", "$4 $5");
3936 out.xml.endElement(); // draw:handle
3937 out.xml.startElement("draw:handle");
3938 out.xml.addAttribute("draw:handle-position", "$6 $7");
3939 out.xml.endElement(); // draw:handle
3940 out.xml.endElement(); // enhanced geometry
3941 out.xml.endElement(); // custom shape
3942 }
3943
3944
processAccentCallout90(const MSO::OfficeArtSpContainer & o,Writer & out)3945 void ODrawToOdf::processAccentCallout90(const MSO::OfficeArtSpContainer& o, Writer& out) {
3946 out.xml.startElement("draw:custom-shape");
3947 processStyleAndText(o, out);
3948
3949 out.xml.startElement("draw:enhanced-geometry");
3950 processModifiers(o, out, QList<int>() << -1800<< 22950<< -1800<< 2700);
3951 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3952 out.xml.addAttribute("draw:enhanced-path", "M 0 0 S L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N");
3953 out.xml.addAttribute("draw:type", "mso-spt179");
3954 setShapeMirroring(o, out);
3955 equation(out,"f0","$0 ");
3956 equation(out,"f1","$1 ");
3957 equation(out,"f2","$2 ");
3958 equation(out,"f3","$3 ");
3959 equation(out,"f4","$4 ");
3960 equation(out,"f5","$5 ");
3961 equation(out,"f6","$6 ");
3962 equation(out,"f7","$7 ");
3963 out.xml.startElement("draw:handle");
3964 out.xml.addAttribute("draw:handle-position", "$0 $1");
3965 out.xml.endElement(); // draw:handle
3966 out.xml.startElement("draw:handle");
3967 out.xml.addAttribute("draw:handle-position", "$2 $3");
3968 out.xml.endElement(); // draw:handle
3969 out.xml.endElement(); // enhanced geometry
3970 out.xml.endElement(); // custom shape
3971 }
3972
3973
processAccentCallout1(const MSO::OfficeArtSpContainer & o,Writer & out)3974 void ODrawToOdf::processAccentCallout1(const MSO::OfficeArtSpContainer& o, Writer& out) {
3975 out.xml.startElement("draw:custom-shape");
3976 processStyleAndText(o, out);
3977
3978 out.xml.startElement("draw:enhanced-geometry");
3979 processModifiers(o, out, QList<int>() << -8288<< 24500<< -1800<< 4000);
3980 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
3981 out.xml.addAttribute("draw:enhanced-path", "M 0 0 S L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N M ?f2 0 L ?f2 21600 N");
3982 out.xml.addAttribute("draw:type", "mso-spt44");
3983 setShapeMirroring(o, out);
3984 equation(out,"f0","$0 ");
3985 equation(out,"f1","$1 ");
3986 equation(out,"f2","$2 ");
3987 equation(out,"f3","$3 ");
3988 equation(out,"f4","$4 ");
3989 equation(out,"f5","$5 ");
3990 equation(out,"f6","$6 ");
3991 equation(out,"f7","$7 ");
3992 out.xml.startElement("draw:handle");
3993 out.xml.addAttribute("draw:handle-position", "$0 $1");
3994 out.xml.endElement(); // draw:handle
3995 out.xml.startElement("draw:handle");
3996 out.xml.addAttribute("draw:handle-position", "$2 $3");
3997 out.xml.endElement(); // draw:handle
3998 out.xml.endElement(); // enhanced geometry
3999 out.xml.endElement(); // custom shape
4000 }
4001
4002
processAccentCallout2(const MSO::OfficeArtSpContainer & o,Writer & out)4003 void ODrawToOdf::processAccentCallout2(const MSO::OfficeArtSpContainer& o, Writer& out) {
4004 out.xml.startElement("draw:custom-shape");
4005 processStyleAndText(o, out);
4006
4007 out.xml.startElement("draw:enhanced-geometry");
4008 processModifiers(o, out, QList<int>() << -10088<< 24500<< -3600<< 4000<< -1800<< 4000);
4009 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4010 out.xml.addAttribute("draw:enhanced-path", "M 0 0 S L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N M ?f2 ?f3 L ?f4 ?f5 N M ?f4 0 L ?f4 21600 N M");
4011 out.xml.addAttribute("draw:type", "mso-spt45");
4012 setShapeMirroring(o, out);
4013 equation(out,"f0","$0 ");
4014 equation(out,"f1","$1 ");
4015 equation(out,"f2","$2 ");
4016 equation(out,"f3","$3 ");
4017 equation(out,"f4","$4 ");
4018 equation(out,"f5","$5 ");
4019 equation(out,"f6","$6 ");
4020 equation(out,"f7","$7 ");
4021 out.xml.startElement("draw:handle");
4022 out.xml.addAttribute("draw:handle-position", "$0 $1");
4023 out.xml.endElement(); // draw:handle
4024 out.xml.startElement("draw:handle");
4025 out.xml.addAttribute("draw:handle-position", "$2 $3");
4026 out.xml.endElement(); // draw:handle
4027 out.xml.startElement("draw:handle");
4028 out.xml.addAttribute("draw:handle-position", "$4 $5");
4029 out.xml.endElement(); // draw:handle
4030 out.xml.endElement(); // enhanced geometry
4031 out.xml.endElement(); // custom shape
4032 }
4033
4034
processAccentCallout3(const MSO::OfficeArtSpContainer & o,Writer & out)4035 void ODrawToOdf::processAccentCallout3(const MSO::OfficeArtSpContainer& o, Writer& out) {
4036 out.xml.startElement("draw:custom-shape");
4037 processStyleAndText(o, out);
4038
4039 out.xml.startElement("draw:enhanced-geometry");
4040 processModifiers(o, out, QList<int>() << 23400<< 24413<< 25200<< 21600<< 25200<< 4000<< 23400<< 4000);
4041 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4042 out.xml.addAttribute("draw:enhanced-path", "M 0 0 S L 21600 0 21600 21600 0 21600 Z N M ?f6 ?f7 F L ?f4 ?f5 ?f2 ?f3 ?f0 ?f1 N M ?f6 0 L ?f6 21600 N");
4043 out.xml.addAttribute("draw:type", "mso-spt46");
4044 setShapeMirroring(o, out);
4045 equation(out,"f0","$0 ");
4046 equation(out,"f1","$1 ");
4047 equation(out,"f2","$2 ");
4048 equation(out,"f3","$3 ");
4049 equation(out,"f4","$4 ");
4050 equation(out,"f5","$5 ");
4051 equation(out,"f6","$6 ");
4052 equation(out,"f7","$7 ");
4053 out.xml.startElement("draw:handle");
4054 out.xml.addAttribute("draw:handle-position", "$0 $1");
4055 out.xml.endElement(); // draw:handle
4056 out.xml.startElement("draw:handle");
4057 out.xml.addAttribute("draw:handle-position", "$2 $3");
4058 out.xml.endElement(); // draw:handle
4059 out.xml.startElement("draw:handle");
4060 out.xml.addAttribute("draw:handle-position", "$4 $5");
4061 out.xml.endElement(); // draw:handle
4062 out.xml.startElement("draw:handle");
4063 out.xml.addAttribute("draw:handle-position", "$6 $7");
4064 out.xml.endElement(); // draw:handle
4065 out.xml.endElement(); // enhanced geometry
4066 out.xml.endElement(); // custom shape
4067 }
4068
4069
processCallout90(const MSO::OfficeArtSpContainer & o,Writer & out)4070 void ODrawToOdf::processCallout90(const MSO::OfficeArtSpContainer& o, Writer& out) {
4071 out.xml.startElement("draw:custom-shape");
4072 processStyleAndText(o, out);
4073
4074 out.xml.startElement("draw:enhanced-geometry");
4075 processModifiers(o, out, QList<int>() << -1800<< 22950<< -1800<< 2700);
4076 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4077 out.xml.addAttribute("draw:enhanced-path", "M 0 0 S L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N");
4078 out.xml.addAttribute("draw:type", "mso-spt178");
4079 setShapeMirroring(o, out);
4080 equation(out,"f0","$0 ");
4081 equation(out,"f1","$1 ");
4082 equation(out,"f2","$2 ");
4083 equation(out,"f3","$3 ");
4084 equation(out,"f4","$4 ");
4085 equation(out,"f5","$5 ");
4086 equation(out,"f6","$6 ");
4087 equation(out,"f7","$7 ");
4088 out.xml.startElement("draw:handle");
4089 out.xml.addAttribute("draw:handle-position", "$0 $1");
4090 out.xml.endElement(); // draw:handle
4091 out.xml.startElement("draw:handle");
4092 out.xml.addAttribute("draw:handle-position", "$2 $3");
4093 out.xml.endElement(); // draw:handle
4094 out.xml.endElement(); // enhanced geometry
4095 out.xml.endElement(); // custom shape
4096 }
4097
4098
processCallout1(const MSO::OfficeArtSpContainer & o,Writer & out)4099 void ODrawToOdf::processCallout1(const MSO::OfficeArtSpContainer& o, Writer& out) {
4100 out.xml.startElement("draw:custom-shape");
4101 processStyleAndText(o, out);
4102
4103 out.xml.startElement("draw:enhanced-geometry");
4104 processModifiers(o, out, QList<int>() << -8288<< 24500<< -1800<< 4000);
4105 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4106 out.xml.addAttribute("draw:enhanced-path", "M 0 0 S L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N");
4107 out.xml.addAttribute("draw:type", "mso-spt41");
4108 setShapeMirroring(o, out);
4109 equation(out,"f0","$0 ");
4110 equation(out,"f1","$1 ");
4111 equation(out,"f2","$2 ");
4112 equation(out,"f3","$3 ");
4113 equation(out,"f4","$4 ");
4114 equation(out,"f5","$5 ");
4115 equation(out,"f6","$6 ");
4116 equation(out,"f7","$7 ");
4117 out.xml.startElement("draw:handle");
4118 out.xml.addAttribute("draw:handle-position", "$0 $1");
4119 out.xml.endElement(); // draw:handle
4120 out.xml.startElement("draw:handle");
4121 out.xml.addAttribute("draw:handle-position", "$2 $3");
4122 out.xml.endElement(); // draw:handle
4123 out.xml.endElement(); // enhanced geometry
4124 out.xml.endElement(); // custom shape
4125 }
4126
4127
processCallout2(const MSO::OfficeArtSpContainer & o,Writer & out)4128 void ODrawToOdf::processCallout2(const MSO::OfficeArtSpContainer& o, Writer& out) {
4129 out.xml.startElement("draw:custom-shape");
4130 processStyleAndText(o, out);
4131
4132 out.xml.startElement("draw:enhanced-geometry");
4133 processModifiers(o, out, QList<int>() << -10088<< 24500<< -3600<< 4000<< -1800<< 4000);
4134 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4135 out.xml.addAttribute("draw:enhanced-path", "M 0 0 S L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N M ?f2 ?f3 L ?f4 ?f5 N M");
4136 out.xml.addAttribute("draw:type", "mso-spt42");
4137 setShapeMirroring(o, out);
4138 equation(out,"f0","$0 ");
4139 equation(out,"f1","$1 ");
4140 equation(out,"f2","$2 ");
4141 equation(out,"f3","$3 ");
4142 equation(out,"f4","$4 ");
4143 equation(out,"f5","$5 ");
4144 equation(out,"f6","$6 ");
4145 equation(out,"f7","$7 ");
4146 out.xml.startElement("draw:handle");
4147 out.xml.addAttribute("draw:handle-position", "$0 $1");
4148 out.xml.endElement(); // draw:handle
4149 out.xml.startElement("draw:handle");
4150 out.xml.addAttribute("draw:handle-position", "$2 $3");
4151 out.xml.endElement(); // draw:handle
4152 out.xml.startElement("draw:handle");
4153 out.xml.addAttribute("draw:handle-position", "$4 $5");
4154 out.xml.endElement(); // draw:handle
4155 out.xml.endElement(); // enhanced geometry
4156 out.xml.endElement(); // custom shape
4157 }
4158
4159
processCallout3(const MSO::OfficeArtSpContainer & o,Writer & out)4160 void ODrawToOdf::processCallout3(const MSO::OfficeArtSpContainer& o, Writer& out) {
4161 out.xml.startElement("draw:custom-shape");
4162 processStyleAndText(o, out);
4163
4164 out.xml.startElement("draw:enhanced-geometry");
4165 processModifiers(o, out, QList<int>() << 23400<< 24413<< 25200<< 21600<< 25200<< 4000<< 23400<< 4000);
4166 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4167 out.xml.addAttribute("draw:enhanced-path", "M 0 0 S L 21600 0 21600 21600 0 21600 Z N M ?f6 ?f7 F L ?f4 ?f5 ?f2 ?f3 ?f0 ?f1 N");
4168 out.xml.addAttribute("draw:type", "mso-spt43");
4169 setShapeMirroring(o, out);
4170 equation(out,"f0","$0 ");
4171 equation(out,"f1","$1 ");
4172 equation(out,"f2","$2 ");
4173 equation(out,"f3","$3 ");
4174 equation(out,"f4","$4 ");
4175 equation(out,"f5","$5 ");
4176 equation(out,"f6","$6 ");
4177 equation(out,"f7","$7 ");
4178 out.xml.startElement("draw:handle");
4179 out.xml.addAttribute("draw:handle-position", "$0 $1");
4180 out.xml.endElement(); // draw:handle
4181 out.xml.startElement("draw:handle");
4182 out.xml.addAttribute("draw:handle-position", "$2 $3");
4183 out.xml.endElement(); // draw:handle
4184 out.xml.startElement("draw:handle");
4185 out.xml.addAttribute("draw:handle-position", "$4 $5");
4186 out.xml.endElement(); // draw:handle
4187 out.xml.startElement("draw:handle");
4188 out.xml.addAttribute("draw:handle-position", "$6 $7");
4189 out.xml.endElement(); // draw:handle
4190 out.xml.endElement(); // enhanced geometry
4191 out.xml.endElement(); // custom shape
4192 }
4193
4194
processAccentBorderCallout90(const MSO::OfficeArtSpContainer & o,Writer & out)4195 void ODrawToOdf::processAccentBorderCallout90(const MSO::OfficeArtSpContainer& o, Writer& out) {
4196 out.xml.startElement("draw:custom-shape");
4197 processStyleAndText(o, out);
4198
4199 out.xml.startElement("draw:enhanced-geometry");
4200 processModifiers(o, out, QList<int>() << -1800<< 22950<< -1800<< 2700);
4201 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4202 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N");
4203 out.xml.addAttribute("draw:type", "line-callout-3");
4204 setShapeMirroring(o, out);
4205 equation(out,"f0","$0 ");
4206 equation(out,"f1","$1 ");
4207 equation(out,"f2","$2 ");
4208 equation(out,"f3","$3 ");
4209 equation(out,"f4","$4 ");
4210 equation(out,"f5","$5 ");
4211 equation(out,"f6","$6 ");
4212 equation(out,"f7","$7 ");
4213 out.xml.startElement("draw:handle");
4214 out.xml.addAttribute("draw:handle-position", "$0 $1");
4215 out.xml.endElement(); // draw:handle
4216 out.xml.startElement("draw:handle");
4217 out.xml.addAttribute("draw:handle-position", "$2 $3");
4218 out.xml.endElement(); // draw:handle
4219 out.xml.endElement(); // enhanced geometry
4220 out.xml.endElement(); // custom shape
4221 }
4222
4223
processAccentBorderCallout1(const MSO::OfficeArtSpContainer & o,Writer & out)4224 void ODrawToOdf::processAccentBorderCallout1(const MSO::OfficeArtSpContainer& o, Writer& out) {
4225 out.xml.startElement("draw:custom-shape");
4226 processStyleAndText(o, out);
4227
4228 out.xml.startElement("draw:enhanced-geometry");
4229 processModifiers(o, out, QList<int>() << -8288<< 24500<< -1800<< 4000);
4230 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4231 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N M ?f2 0 L ?f2 21600 N");
4232 out.xml.addAttribute("draw:type", "mso-spt50");
4233 setShapeMirroring(o, out);
4234 equation(out,"f0","$0 ");
4235 equation(out,"f1","$1 ");
4236 equation(out,"f2","$2 ");
4237 equation(out,"f3","$3 ");
4238 equation(out,"f4","$4 ");
4239 equation(out,"f5","$5 ");
4240 equation(out,"f6","$6 ");
4241 equation(out,"f7","$7 ");
4242 out.xml.startElement("draw:handle");
4243 out.xml.addAttribute("draw:handle-position", "$0 $1");
4244 out.xml.endElement(); // draw:handle
4245 out.xml.startElement("draw:handle");
4246 out.xml.addAttribute("draw:handle-position", "$2 $3");
4247 out.xml.endElement(); // draw:handle
4248 out.xml.endElement(); // enhanced geometry
4249 out.xml.endElement(); // custom shape
4250 }
4251
4252
processAccentBorderCallout2(const MSO::OfficeArtSpContainer & o,Writer & out)4253 void ODrawToOdf::processAccentBorderCallout2(const MSO::OfficeArtSpContainer& o, Writer& out) {
4254 out.xml.startElement("draw:custom-shape");
4255 processStyleAndText(o, out);
4256
4257 out.xml.startElement("draw:enhanced-geometry");
4258 processModifiers(o, out, QList<int>() << -10088<< 24500<< -3600<< 4000<< -1800<< 4000);
4259 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4260 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M ?f0 ?f1 L ?f2 ?f3 N M ?f2 ?f3 L ?f4 ?f5 N M ?f4 0 L ?f4 21600 N M");
4261 out.xml.addAttribute("draw:type", "mso-spt51");
4262 setShapeMirroring(o, out);
4263 equation(out,"f0","$0 ");
4264 equation(out,"f1","$1 ");
4265 equation(out,"f2","$2 ");
4266 equation(out,"f3","$3 ");
4267 equation(out,"f4","$4 ");
4268 equation(out,"f5","$5 ");
4269 equation(out,"f6","$6 ");
4270 equation(out,"f7","$7 ");
4271 out.xml.startElement("draw:handle");
4272 out.xml.addAttribute("draw:handle-position", "$0 $1");
4273 out.xml.endElement(); // draw:handle
4274 out.xml.startElement("draw:handle");
4275 out.xml.addAttribute("draw:handle-position", "$2 $3");
4276 out.xml.endElement(); // draw:handle
4277 out.xml.startElement("draw:handle");
4278 out.xml.addAttribute("draw:handle-position", "$4 $5");
4279 out.xml.endElement(); // draw:handle
4280 out.xml.endElement(); // enhanced geometry
4281 out.xml.endElement(); // custom shape
4282 }
4283
4284
processAccentBorderCallout3(const MSO::OfficeArtSpContainer & o,Writer & out)4285 void ODrawToOdf::processAccentBorderCallout3(const MSO::OfficeArtSpContainer& o, Writer& out) {
4286 out.xml.startElement("draw:custom-shape");
4287 processStyleAndText(o, out);
4288
4289 out.xml.startElement("draw:enhanced-geometry");
4290 processModifiers(o, out, QList<int>() << 23400<< 24413<< 25200<< 21600<< 25200<< 4000<< 23400<< 4000);
4291 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4292 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M ?f6 ?f7 F L ?f4 ?f5 ?f2 ?f3 ?f0 ?f1 N M ?f6 0 L ?f6 21600 N");
4293 out.xml.addAttribute("draw:type", "mso-spt52");
4294 setShapeMirroring(o, out);
4295 equation(out,"f0","$0 ");
4296 equation(out,"f1","$1 ");
4297 equation(out,"f2","$2 ");
4298 equation(out,"f3","$3 ");
4299 equation(out,"f4","$4 ");
4300 equation(out,"f5","$5 ");
4301 equation(out,"f6","$6 ");
4302 equation(out,"f7","$7 ");
4303 out.xml.startElement("draw:handle");
4304 out.xml.addAttribute("draw:handle-position", "$0 $1");
4305 out.xml.endElement(); // draw:handle
4306 out.xml.startElement("draw:handle");
4307 out.xml.addAttribute("draw:handle-position", "$2 $3");
4308 out.xml.endElement(); // draw:handle
4309 out.xml.startElement("draw:handle");
4310 out.xml.addAttribute("draw:handle-position", "$4 $5");
4311 out.xml.endElement(); // draw:handle
4312 out.xml.startElement("draw:handle");
4313 out.xml.addAttribute("draw:handle-position", "$6 $7");
4314 out.xml.endElement(); // draw:handle
4315 out.xml.endElement(); // enhanced geometry
4316 out.xml.endElement(); // custom shape
4317 }
4318
4319
processActionButtonBlank(const MSO::OfficeArtSpContainer & o,Writer & out)4320 void ODrawToOdf::processActionButtonBlank(const MSO::OfficeArtSpContainer& o, Writer& out) {
4321 out.xml.startElement("draw:custom-shape");
4322 processStyleAndText(o, out);
4323
4324 out.xml.startElement("draw:enhanced-geometry");
4325 processModifiers(o, out, QList<int>() << 1400);
4326 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4327 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4328 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4329 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f1 ?f0 ?f0 ?f0 Z N M 21600 0 L 21600 21600 ?f1 ?f2 ?f1 ?f0 Z N M 21600 21600 L 0 21600 ?f0 ?f2 ?f1 ?f2 Z N M 0 21600 L 0 0 ?f0 ?f0 ?f0 ?f2 Z N");
4330 out.xml.addAttribute("draw:type", "mso-spt189");
4331 out.xml.addAttribute("draw:text-areas", "?f0 ?f0 ?f1 ?f2");
4332 setShapeMirroring(o, out);
4333 equation(out,"f0","$0 *21599/21600");
4334 equation(out,"f1","right-?f0 ");
4335 equation(out,"f2","bottom-?f0 ");
4336 out.xml.startElement("draw:handle");
4337 out.xml.addAttribute("draw:handle-position", "$0 top");
4338 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4339 out.xml.addAttribute("draw:handle-switched", "true");
4340 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4341 out.xml.endElement(); // draw:handle
4342 out.xml.endElement(); // enhanced geometry
4343 out.xml.endElement(); // custom shape
4344 }
4345
4346
processActionButtonHome(const MSO::OfficeArtSpContainer & o,Writer & out)4347 void ODrawToOdf::processActionButtonHome(const MSO::OfficeArtSpContainer& o, Writer& out) {
4348 out.xml.startElement("draw:custom-shape");
4349 processStyleAndText(o, out);
4350
4351 out.xml.startElement("draw:enhanced-geometry");
4352 processModifiers(o, out, QList<int>() << 1400);
4353 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4354 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4355 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4356 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f7 ?f10 L ?f12 ?f14 ?f12 ?f16 ?f18 ?f16 ?f18 ?f20 ?f22 ?f8 ?f24 ?f8 ?f24 ?f26 ?f28 ?f26 ?f28 ?f8 ?f30 ?f8 Z N M ?f12 ?f14 L ?f12 ?f16 ?f18 ?f16 ?f18 ?f20 Z N M ?f32 ?f36 L ?f34 ?f36 ?f34 ?f26 ?f24 ?f26 ?f24 ?f8 ?f28 ?f8 ?f28 ?f26 ?f32 ?f26 Z N");
4357 out.xml.addAttribute("draw:type", "mso-spt190");
4358 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4359 setShapeMirroring(o, out);
4360 equation(out,"f0","$0 ");
4361 equation(out,"f1","left+$0 ");
4362 equation(out,"f2","top+$0 ");
4363 equation(out,"f3","right-$0 ");
4364 equation(out,"f4","bottom-$0 ");
4365 equation(out,"f5","10800-$0 ");
4366 equation(out,"f6","?f5 /10800");
4367 equation(out,"f7","right/2");
4368 equation(out,"f8","bottom/2");
4369 equation(out,"f9","-8000*?f6 ");
4370 equation(out,"f10","?f9 +?f8 ");
4371 equation(out,"f11","2960*?f6 ");
4372 equation(out,"f12","?f11 +?f7 ");
4373 equation(out,"f13","-5000*?f6 ");
4374 equation(out,"f14","?f13 +?f8 ");
4375 equation(out,"f15","-7000*?f6 ");
4376 equation(out,"f16","?f15 +?f8 ");
4377 equation(out,"f17","5000*?f6 ");
4378 equation(out,"f18","?f17 +?f7 ");
4379 equation(out,"f19","-2960*?f6 ");
4380 equation(out,"f20","?f19 +?f8 ");
4381 equation(out,"f21","8000*?f6 ");
4382 equation(out,"f22","?f21 +?f7 ");
4383 equation(out,"f23","6100*?f6 ");
4384 equation(out,"f24","?f23 +?f7 ");
4385 equation(out,"f25","8260*?f6 ");
4386 equation(out,"f26","?f25 +?f8 ");
4387 equation(out,"f27","-6100*?f6 ");
4388 equation(out,"f28","?f27 +?f7 ");
4389 equation(out,"f29","-8000*?f6 ");
4390 equation(out,"f30","?f29 +?f7 ");
4391 equation(out,"f31","-1060*?f6 ");
4392 equation(out,"f32","?f31 +?f7 ");
4393 equation(out,"f33","1060*?f6 ");
4394 equation(out,"f34","?f33 +?f7 ");
4395 equation(out,"f35","4020*?f6 ");
4396 equation(out,"f36","?f35 +?f8 ");
4397 out.xml.startElement("draw:handle");
4398 out.xml.addAttribute("draw:handle-position", "$0 top");
4399 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4400 out.xml.addAttribute("draw:handle-switched", "true");
4401 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4402 out.xml.endElement(); // draw:handle
4403 out.xml.endElement(); // enhanced geometry
4404 out.xml.endElement(); // custom shape
4405 }
4406
4407
processActionButtonHelp(const MSO::OfficeArtSpContainer & o,Writer & out)4408 void ODrawToOdf::processActionButtonHelp(const MSO::OfficeArtSpContainer& o, Writer& out) {
4409 out.xml.startElement("draw:custom-shape");
4410 processStyleAndText(o, out);
4411
4412 out.xml.startElement("draw:enhanced-geometry");
4413 processModifiers(o, out, QList<int>() << 1400);
4414 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4415 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4416 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4417 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f7 ?f12 X ?f10 ?f62 ?f7 ?f16 ?f14 ?f62 ?f7 ?f12 Z N M ?f18 ?f20 L ?f18 ?f22 C ?f18 ?f24 ?f26 ?f8 ?f28 ?f8 ?f30 ?f8 ?f32 ?f34 ?f32 ?f36 ?f32 ?f38 ?f40 ?f42 ?f7 ?f42 ?f44 ?f42 ?f46 ?f38 ?f46 ?f36 L ?f48 ?f36 C ?f48 ?f50 ?f52 ?f54 ?f7 ?f54 ?f18 ?f54 ?f28 ?f50 ?f28 ?f36 ?f28 ?f56 ?f58 ?f60 ?f18 ?f60 ?f7 ?f60 ?f52 ?f8 ?f52 ?f22 L ?f52 ?f20 Z N");
4418 out.xml.addAttribute("draw:type", "mso-spt191");
4419 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4420 setShapeMirroring(o, out);
4421 equation(out,"f0","$0 ");
4422 equation(out,"f1","left+$0 ");
4423 equation(out,"f2","top+$0 ");
4424 equation(out,"f3","right-$0 ");
4425 equation(out,"f4","bottom-$0 ");
4426 equation(out,"f5","10800-$0 ");
4427 equation(out,"f6","?f5 /10800");
4428 equation(out,"f7","right/2");
4429 equation(out,"f8","bottom/2");
4430 equation(out,"f9","-1690*?f6 ");
4431 equation(out,"f10","?f9 +?f7 ");
4432 equation(out,"f11","4600*?f6 ");
4433 equation(out,"f12","?f11 +?f8 ");
4434 equation(out,"f13","1690*?f6 ");
4435 equation(out,"f14","?f13 +?f7 ");
4436 equation(out,"f15","7980*?f6 ");
4437 equation(out,"f16","?f15 +?f8 ");
4438 equation(out,"f17","1270*?f6 ");
4439 equation(out,"f18","?f17 +?f7 ");
4440 equation(out,"f19","4000*?f6 ");
4441 equation(out,"f20","?f19 +?f8 ");
4442 equation(out,"f21","1750*?f6 ");
4443 equation(out,"f22","?f21 +?f8 ");
4444 equation(out,"f23","800*?f6 ");
4445 equation(out,"f24","?f23 +?f8 ");
4446 equation(out,"f25","1650*?f6 ");
4447 equation(out,"f26","?f25 +?f7 ");
4448 equation(out,"f27","2340*?f6 ");
4449 equation(out,"f28","?f27 +?f7 ");
4450 equation(out,"f29","3640*?f6 ");
4451 equation(out,"f30","?f29 +?f7 ");
4452 equation(out,"f31","4670*?f6 ");
4453 equation(out,"f32","?f31 +?f7 ");
4454 equation(out,"f33","-1570*?f6 ");
4455 equation(out,"f34","?f33 +?f8 ");
4456 equation(out,"f35","-3390*?f6 ");
4457 equation(out,"f36","?f35 +?f8 ");
4458 equation(out,"f37","-6050*?f6 ");
4459 equation(out,"f38","?f37 +?f8 ");
4460 equation(out,"f39","2540*?f6 ");
4461 equation(out,"f40","?f39 +?f7 ");
4462 equation(out,"f41","-8050*?f6 ");
4463 equation(out,"f42","?f41 +?f8 ");
4464 equation(out,"f43","-2540*?f6 ");
4465 equation(out,"f44","?f43 +?f7 ");
4466 equation(out,"f45","-4460*?f6 ");
4467 equation(out,"f46","?f45 +?f7 ");
4468 equation(out,"f47","-2330*?f6 ");
4469 equation(out,"f48","?f47 +?f7 ");
4470 equation(out,"f49","-4700*?f6 ");
4471 equation(out,"f50","?f49 +?f8 ");
4472 equation(out,"f51","-1270*?f6 ");
4473 equation(out,"f52","?f51 +?f7 ");
4474 equation(out,"f53","-5720*?f6 ");
4475 equation(out,"f54","?f53 +?f8 ");
4476 equation(out,"f55","-2540*?f6 ");
4477 equation(out,"f56","?f55 +?f8 ");
4478 equation(out,"f57","1800*?f6 ");
4479 equation(out,"f58","?f57 +?f7 ");
4480 equation(out,"f59","-1700*?f6 ");
4481 equation(out,"f60","?f59 +?f8 ");
4482 equation(out,"f61","6290*?f6 ");
4483 equation(out,"f62","?f61 +?f8 ");
4484 out.xml.startElement("draw:handle");
4485 out.xml.addAttribute("draw:handle-position", "$0 top");
4486 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4487 out.xml.addAttribute("draw:handle-switched", "true");
4488 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4489 out.xml.endElement(); // draw:handle
4490 out.xml.endElement(); // enhanced geometry
4491 out.xml.endElement(); // custom shape
4492 }
4493
4494
processActionButtonInformation(const MSO::OfficeArtSpContainer & o,Writer & out)4495 void ODrawToOdf::processActionButtonInformation(const MSO::OfficeArtSpContainer& o, Writer& out) {
4496 out.xml.startElement("draw:custom-shape");
4497 processStyleAndText(o, out);
4498
4499 out.xml.startElement("draw:enhanced-geometry");
4500 processModifiers(o, out, QList<int>() << 1400);
4501 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4502 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4503 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4504 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f7 ?f12 X ?f10 ?f8 ?f7 ?f16 ?f14 ?f8 ?f7 ?f12 Z N M ?f7 ?f20 X ?f18 ?f42 ?f7 ?f24 ?f22 ?f42 ?f7 ?f20 Z N M ?f26 ?f28 L ?f30 ?f28 ?f30 ?f32 ?f34 ?f32 ?f34 ?f36 ?f26 ?f36 ?f26 ?f32 ?f38 ?f32 ?f38 ?f40 ?f26 ?f40 Z N");
4505 out.xml.addAttribute("draw:type", "mso-spt192");
4506 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4507 setShapeMirroring(o, out);
4508 equation(out,"f0","$0 ");
4509 equation(out,"f1","left+$0 ");
4510 equation(out,"f2","top+$0 ");
4511 equation(out,"f3","right-$0 ");
4512 equation(out,"f4","bottom-$0 ");
4513 equation(out,"f5","10800-$0 ");
4514 equation(out,"f6","?f5 /10800");
4515 equation(out,"f7","right/2");
4516 equation(out,"f8","bottom/2");
4517 equation(out,"f9","-8050*?f6 ");
4518 equation(out,"f10","?f9 +?f7 ");
4519 equation(out,"f11","-8050*?f6 ");
4520 equation(out,"f12","?f11 +?f8 ");
4521 equation(out,"f13","8050*?f6 ");
4522 equation(out,"f14","?f13 +?f7 ");
4523 equation(out,"f15","8050*?f6 ");
4524 equation(out,"f16","?f15 +?f8 ");
4525 equation(out,"f17","-2060*?f6 ");
4526 equation(out,"f18","?f17 +?f7 ");
4527 equation(out,"f19","-7620*?f6 ");
4528 equation(out,"f20","?f19 +?f8 ");
4529 equation(out,"f21","2060*?f6 ");
4530 equation(out,"f22","?f21 +?f7 ");
4531 equation(out,"f23","-3500*?f6 ");
4532 equation(out,"f24","?f23 +?f8 ");
4533 equation(out,"f25","-2960*?f6 ");
4534 equation(out,"f26","?f25 +?f7 ");
4535 equation(out,"f27","-2960*?f6 ");
4536 equation(out,"f28","?f27 +?f8 ");
4537 equation(out,"f29","1480*?f6 ");
4538 equation(out,"f30","?f29 +?f7 ");
4539 equation(out,"f31","5080*?f6 ");
4540 equation(out,"f32","?f31 +?f8 ");
4541 equation(out,"f33","2960*?f6 ");
4542 equation(out,"f34","?f33 +?f7 ");
4543 equation(out,"f35","6140*?f6 ");
4544 equation(out,"f36","?f35 +?f8 ");
4545 equation(out,"f37","-1480*?f6 ");
4546 equation(out,"f38","?f37 +?f7 ");
4547 equation(out,"f39","-1920*?f6 ");
4548 equation(out,"f40","?f39 +?f8 ");
4549 equation(out,"f41","-5560*?f6 ");
4550 equation(out,"f42","?f41 +?f8 ");
4551 out.xml.startElement("draw:handle");
4552 out.xml.addAttribute("draw:handle-position", "$0 top");
4553 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4554 out.xml.addAttribute("draw:handle-switched", "true");
4555 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4556 out.xml.endElement(); // draw:handle
4557 out.xml.endElement(); // enhanced geometry
4558 out.xml.endElement(); // custom shape
4559 }
4560
4561
processActionButtonBackPrevious(const MSO::OfficeArtSpContainer & o,Writer & out)4562 void ODrawToOdf::processActionButtonBackPrevious(const MSO::OfficeArtSpContainer& o, Writer& out) {
4563 out.xml.startElement("draw:custom-shape");
4564 processStyleAndText(o, out);
4565
4566 out.xml.startElement("draw:enhanced-geometry");
4567 processModifiers(o, out, QList<int>() << 1400);
4568 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4569 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4570 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4571 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f10 ?f8 L ?f14 ?f12 ?f14 ?f16 Z N");
4572 out.xml.addAttribute("draw:type", "mso-spt194");
4573 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4574 setShapeMirroring(o, out);
4575 equation(out,"f0","$0 ");
4576 equation(out,"f1","left+$0 ");
4577 equation(out,"f2","top+$0 ");
4578 equation(out,"f3","right-$0 ");
4579 equation(out,"f4","bottom-$0 ");
4580 equation(out,"f5","10800-$0 ");
4581 equation(out,"f6","?f5 /10800");
4582 equation(out,"f7","right/2");
4583 equation(out,"f8","bottom/2");
4584 equation(out,"f9","-8050*?f6 ");
4585 equation(out,"f10","?f9 +?f7 ");
4586 equation(out,"f11","-8050*?f6 ");
4587 equation(out,"f12","?f11 +?f8 ");
4588 equation(out,"f13","8050*?f6 ");
4589 equation(out,"f14","?f13 +?f7 ");
4590 equation(out,"f15","8050*?f6 ");
4591 equation(out,"f16","?f15 +?f8 ");
4592 out.xml.startElement("draw:handle");
4593 out.xml.addAttribute("draw:handle-position", "$0 top");
4594 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4595 out.xml.addAttribute("draw:handle-switched", "true");
4596 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4597 out.xml.endElement(); // draw:handle
4598 out.xml.endElement(); // enhanced geometry
4599 out.xml.endElement(); // custom shape
4600 }
4601
4602
processActionButtonForwardNext(const MSO::OfficeArtSpContainer & o,Writer & out)4603 void ODrawToOdf::processActionButtonForwardNext(const MSO::OfficeArtSpContainer& o, Writer& out) {
4604 out.xml.startElement("draw:custom-shape");
4605 processStyleAndText(o, out);
4606
4607 out.xml.startElement("draw:enhanced-geometry");
4608 processModifiers(o, out, QList<int>() << 1400);
4609 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4610 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4611 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4612 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f10 ?f12 L ?f14 ?f8 ?f10 ?f16 Z N");
4613 out.xml.addAttribute("draw:type", "mso-spt193");
4614 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4615 setShapeMirroring(o, out);
4616 equation(out,"f0","$0 ");
4617 equation(out,"f1","left+$0 ");
4618 equation(out,"f2","top+$0 ");
4619 equation(out,"f3","right-$0 ");
4620 equation(out,"f4","bottom-$0 ");
4621 equation(out,"f5","10800-$0 ");
4622 equation(out,"f6","?f5 /10800");
4623 equation(out,"f7","right/2");
4624 equation(out,"f8","bottom/2");
4625 equation(out,"f9","-8050*?f6 ");
4626 equation(out,"f10","?f9 +?f7 ");
4627 equation(out,"f11","-8050*?f6 ");
4628 equation(out,"f12","?f11 +?f8 ");
4629 equation(out,"f13","8050*?f6 ");
4630 equation(out,"f14","?f13 +?f7 ");
4631 equation(out,"f15","8050*?f6 ");
4632 equation(out,"f16","?f15 +?f8 ");
4633 out.xml.startElement("draw:handle");
4634 out.xml.addAttribute("draw:handle-position", "$0 top");
4635 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4636 out.xml.addAttribute("draw:handle-switched", "true");
4637 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4638 out.xml.endElement(); // draw:handle
4639 out.xml.endElement(); // enhanced geometry
4640 out.xml.endElement(); // custom shape
4641 }
4642
4643
processActionButtonBeginning(const MSO::OfficeArtSpContainer & o,Writer & out)4644 void ODrawToOdf::processActionButtonBeginning(const MSO::OfficeArtSpContainer& o, Writer& out) {
4645 out.xml.startElement("draw:custom-shape");
4646 processStyleAndText(o, out);
4647
4648 out.xml.startElement("draw:enhanced-geometry");
4649 processModifiers(o, out, QList<int>() << 1400);
4650 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4651 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4652 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4653 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f10 ?f8 L ?f14 ?f12 ?f14 ?f16 Z N M ?f18 ?f12 L ?f20 ?f12 ?f20 ?f16 ?f18 ?f16 Z N");
4654 out.xml.addAttribute("draw:type", "mso-spt196");
4655 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4656 setShapeMirroring(o, out);
4657 equation(out,"f0","$0 ");
4658 equation(out,"f1","left+$0 ");
4659 equation(out,"f2","top+$0 ");
4660 equation(out,"f3","right-$0 ");
4661 equation(out,"f4","bottom-$0 ");
4662 equation(out,"f5","10800-$0 ");
4663 equation(out,"f6","?f5 /10800");
4664 equation(out,"f7","right/2");
4665 equation(out,"f8","bottom/2");
4666 equation(out,"f9","-4020*?f6 ");
4667 equation(out,"f10","?f9 +?f7 ");
4668 equation(out,"f11","-8050*?f6 ");
4669 equation(out,"f12","?f11 +?f8 ");
4670 equation(out,"f13","8050*?f6 ");
4671 equation(out,"f14","?f13 +?f7 ");
4672 equation(out,"f15","8050*?f6 ");
4673 equation(out,"f16","?f15 +?f8 ");
4674 equation(out,"f17","-8050*?f6 ");
4675 equation(out,"f18","?f17 +?f7 ");
4676 equation(out,"f19","-6140*?f6 ");
4677 equation(out,"f20","?f19 +?f7 ");
4678 equation(out,"f21","4020*?f6 ");
4679 equation(out,"f22","?f21 +?f7 ");
4680 equation(out,"f23","6140*?f6 ");
4681 equation(out,"f24","?f23 +?f7 ");
4682 out.xml.startElement("draw:handle");
4683 out.xml.addAttribute("draw:handle-position", "$0 top");
4684 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4685 out.xml.addAttribute("draw:handle-switched", "true");
4686 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4687 out.xml.endElement(); // draw:handle
4688 out.xml.endElement(); // enhanced geometry
4689 out.xml.endElement(); // custom shape
4690 }
4691
4692
processActionButtonEnd(const MSO::OfficeArtSpContainer & o,Writer & out)4693 void ODrawToOdf::processActionButtonEnd(const MSO::OfficeArtSpContainer& o, Writer& out) {
4694 out.xml.startElement("draw:custom-shape");
4695 processStyleAndText(o, out);
4696
4697 out.xml.startElement("draw:enhanced-geometry");
4698 processModifiers(o, out, QList<int>() << 1400);
4699 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4700 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4701 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4702 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f22 ?f8 L ?f18 ?f16 ?f18 ?f12 Z N M ?f24 ?f12 L ?f24 ?f16 ?f14 ?f16 ?f14 ?f12 Z N");
4703 out.xml.addAttribute("draw:type", "mso-spt195");
4704 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4705 setShapeMirroring(o, out);
4706 equation(out,"f0","$0 ");
4707 equation(out,"f1","left+$0 ");
4708 equation(out,"f2","top+$0 ");
4709 equation(out,"f3","right-$0 ");
4710 equation(out,"f4","bottom-$0 ");
4711 equation(out,"f5","10800-$0 ");
4712 equation(out,"f6","?f5 /10800");
4713 equation(out,"f7","right/2");
4714 equation(out,"f8","bottom/2");
4715 equation(out,"f9","-4020*?f6 ");
4716 equation(out,"f10","?f9 +?f7 ");
4717 equation(out,"f11","-8050*?f6 ");
4718 equation(out,"f12","?f11 +?f8 ");
4719 equation(out,"f13","8050*?f6 ");
4720 equation(out,"f14","?f13 +?f7 ");
4721 equation(out,"f15","8050*?f6 ");
4722 equation(out,"f16","?f15 +?f8 ");
4723 equation(out,"f17","-8050*?f6 ");
4724 equation(out,"f18","?f17 +?f7 ");
4725 equation(out,"f19","-6140*?f6 ");
4726 equation(out,"f20","?f19 +?f7 ");
4727 equation(out,"f21","4020*?f6 ");
4728 equation(out,"f22","?f21 +?f7 ");
4729 equation(out,"f23","6140*?f6 ");
4730 equation(out,"f24","?f23 +?f7 ");
4731 out.xml.startElement("draw:handle");
4732 out.xml.addAttribute("draw:handle-position", "$0 top");
4733 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4734 out.xml.addAttribute("draw:handle-switched", "true");
4735 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4736 out.xml.endElement(); // draw:handle
4737 out.xml.endElement(); // enhanced geometry
4738 out.xml.endElement(); // custom shape
4739 }
4740
4741
processActionButtonReturn(const MSO::OfficeArtSpContainer & o,Writer & out)4742 void ODrawToOdf::processActionButtonReturn(const MSO::OfficeArtSpContainer& o, Writer& out) {
4743 out.xml.startElement("draw:custom-shape");
4744 processStyleAndText(o, out);
4745
4746 out.xml.startElement("draw:enhanced-geometry");
4747 processModifiers(o, out, QList<int>() << 1400);
4748 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4749 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4750 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4751 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f10 ?f12 L ?f14 ?f12 ?f14 ?f16 C ?f14 ?f18 ?f20 ?f22 ?f24 ?f22 L ?f7 ?f22 C ?f26 ?f22 ?f28 ?f18 ?f28 ?f16 L ?f28 ?f12 ?f7 ?f12 ?f30 ?f32 ?f34 ?f12 ?f36 ?f12 ?f36 ?f16 C ?f36 ?f38 ?f40 ?f42 ?f7 ?f42 L ?f24 ?f42 C ?f44 ?f42 ?f10 ?f38 ?f10 ?f16 Z N");
4752 out.xml.addAttribute("draw:type", "mso-spt197");
4753 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4754 setShapeMirroring(o, out);
4755 equation(out,"f0","$0 ");
4756 equation(out,"f1","left+$0 ");
4757 equation(out,"f2","top+$0 ");
4758 equation(out,"f3","right-$0 ");
4759 equation(out,"f4","bottom-$0 ");
4760 equation(out,"f5","10800-$0 ");
4761 equation(out,"f6","?f5 /10800");
4762 equation(out,"f7","right/2");
4763 equation(out,"f8","bottom/2");
4764 equation(out,"f9","-8050*?f6 ");
4765 equation(out,"f10","?f9 +?f7 ");
4766 equation(out,"f11","-3800*?f6 ");
4767 equation(out,"f12","?f11 +?f8 ");
4768 equation(out,"f13","-4020*?f6 ");
4769 equation(out,"f14","?f13 +?f7 ");
4770 equation(out,"f15","2330*?f6 ");
4771 equation(out,"f16","?f15 +?f8 ");
4772 equation(out,"f17","3390*?f6 ");
4773 equation(out,"f18","?f17 +?f8 ");
4774 equation(out,"f19","-3100*?f6 ");
4775 equation(out,"f20","?f19 +?f7 ");
4776 equation(out,"f21","4230*?f6 ");
4777 equation(out,"f22","?f21 +?f8 ");
4778 equation(out,"f23","-1910*?f6 ");
4779 equation(out,"f24","?f23 +?f7 ");
4780 equation(out,"f25","1190*?f6 ");
4781 equation(out,"f26","?f25 +?f7 ");
4782 equation(out,"f27","2110*?f6 ");
4783 equation(out,"f28","?f27 +?f7 ");
4784 equation(out,"f29","4030*?f6 ");
4785 equation(out,"f30","?f29 +?f7 ");
4786 equation(out,"f31","-7830*?f6 ");
4787 equation(out,"f32","?f31 +?f8 ");
4788 equation(out,"f33","8250*?f6 ");
4789 equation(out,"f34","?f33 +?f7 ");
4790 equation(out,"f35","6140*?f6 ");
4791 equation(out,"f36","?f35 +?f7 ");
4792 equation(out,"f37","5510*?f6 ");
4793 equation(out,"f38","?f37 +?f8 ");
4794 equation(out,"f39","3180*?f6 ");
4795 equation(out,"f40","?f39 +?f7 ");
4796 equation(out,"f41","8450*?f6 ");
4797 equation(out,"f42","?f41 +?f8 ");
4798 equation(out,"f43","-5090*?f6 ");
4799 equation(out,"f44","?f43 +?f7 ");
4800 out.xml.startElement("draw:handle");
4801 out.xml.addAttribute("draw:handle-position", "$0 top");
4802 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4803 out.xml.addAttribute("draw:handle-switched", "true");
4804 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4805 out.xml.endElement(); // draw:handle
4806 out.xml.endElement(); // enhanced geometry
4807 out.xml.endElement(); // custom shape
4808 }
4809
4810
processActionButtonDocument(const MSO::OfficeArtSpContainer & o,Writer & out)4811 void ODrawToOdf::processActionButtonDocument(const MSO::OfficeArtSpContainer& o, Writer& out) {
4812 out.xml.startElement("draw:custom-shape");
4813 processStyleAndText(o, out);
4814
4815 out.xml.startElement("draw:enhanced-geometry");
4816 processModifiers(o, out, QList<int>() << 1400);
4817 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4818 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4819 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4820 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f10 ?f12 L ?f14 ?f12 ?f16 ?f18 ?f16 ?f20 ?f10 ?f20 Z N M ?f14 ?f12 L ?f16 ?f18 ?f14 ?f18 Z N");
4821 out.xml.addAttribute("draw:type", "mso-spt198");
4822 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4823 setShapeMirroring(o, out);
4824 equation(out,"f0","$0 ");
4825 equation(out,"f1","left+$0 ");
4826 equation(out,"f2","top+$0 ");
4827 equation(out,"f3","right-$0 ");
4828 equation(out,"f4","bottom-$0 ");
4829 equation(out,"f5","10800-$0 ");
4830 equation(out,"f6","?f5 /10800");
4831 equation(out,"f7","right/2");
4832 equation(out,"f8","bottom/2");
4833 equation(out,"f9","-6350*?f6 ");
4834 equation(out,"f10","?f9 +?f7 ");
4835 equation(out,"f11","-7830*?f6 ");
4836 equation(out,"f12","?f11 +?f8 ");
4837 equation(out,"f13","1690*?f6 ");
4838 equation(out,"f14","?f13 +?f7 ");
4839 equation(out,"f15","6350*?f6 ");
4840 equation(out,"f16","?f15 +?f7 ");
4841 equation(out,"f17","-3810*?f6 ");
4842 equation(out,"f18","?f17 +?f8 ");
4843 equation(out,"f19","7830*?f6 ");
4844 equation(out,"f20","?f19 +?f8 ");
4845 out.xml.startElement("draw:handle");
4846 out.xml.addAttribute("draw:handle-position", "$0 top");
4847 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4848 out.xml.addAttribute("draw:handle-switched", "true");
4849 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4850 out.xml.endElement(); // draw:handle
4851 out.xml.endElement(); // enhanced geometry
4852 out.xml.endElement(); // custom shape
4853 }
4854
4855
processActionButtonSound(const MSO::OfficeArtSpContainer & o,Writer & out)4856 void ODrawToOdf::processActionButtonSound(const MSO::OfficeArtSpContainer& o, Writer& out) {
4857 out.xml.startElement("draw:custom-shape");
4858 processStyleAndText(o, out);
4859
4860 out.xml.startElement("draw:enhanced-geometry");
4861 processModifiers(o, out, QList<int>() << 1400);
4862 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4863 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4864 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4865 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f10 ?f12 L ?f14 ?f12 ?f16 ?f18 ?f16 ?f20 ?f14 ?f22 ?f10 ?f22 Z N M ?f24 ?f8 L ?f26 ?f8 N M ?f24 ?f12 L ?f26 ?f28 N M ?f24 ?f22 L ?f26 ?f30 N");
4866 out.xml.addAttribute("draw:type", "mso-spt199");
4867 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4868 setShapeMirroring(o, out);
4869 equation(out,"f0","$0 ");
4870 equation(out,"f1","left+$0 ");
4871 equation(out,"f2","top+$0 ");
4872 equation(out,"f3","right-$0 ");
4873 equation(out,"f4","bottom-$0 ");
4874 equation(out,"f5","10800-$0 ");
4875 equation(out,"f6","?f5 /10800");
4876 equation(out,"f7","right/2");
4877 equation(out,"f8","bottom/2");
4878 equation(out,"f9","-8050*?f6 ");
4879 equation(out,"f10","?f9 +?f7 ");
4880 equation(out,"f11","-2750*?f6 ");
4881 equation(out,"f12","?f11 +?f8 ");
4882 equation(out,"f13","-2960*?f6 ");
4883 equation(out,"f14","?f13 +?f7 ");
4884 equation(out,"f15","2120*?f6 ");
4885 equation(out,"f16","?f15 +?f7 ");
4886 equation(out,"f17","-8050*?f6 ");
4887 equation(out,"f18","?f17 +?f8 ");
4888 equation(out,"f19","8050*?f6 ");
4889 equation(out,"f20","?f19 +?f8 ");
4890 equation(out,"f21","2750*?f6 ");
4891 equation(out,"f22","?f21 +?f8 ");
4892 equation(out,"f23","4020*?f6 ");
4893 equation(out,"f24","?f23 +?f7 ");
4894 equation(out,"f25","8050*?f6 ");
4895 equation(out,"f26","?f25 +?f7 ");
4896 equation(out,"f27","-5930*?f6 ");
4897 equation(out,"f28","?f27 +?f8 ");
4898 equation(out,"f29","5930*?f6 ");
4899 equation(out,"f30","?f29 +?f8 ");
4900 out.xml.startElement("draw:handle");
4901 out.xml.addAttribute("draw:handle-position", "$0 top");
4902 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4903 out.xml.addAttribute("draw:handle-switched", "true");
4904 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4905 out.xml.endElement(); // draw:handle
4906 out.xml.endElement(); // enhanced geometry
4907 out.xml.endElement(); // custom shape
4908 }
4909
4910
processActionButtonMovie(const MSO::OfficeArtSpContainer & o,Writer & out)4911 void ODrawToOdf::processActionButtonMovie(const MSO::OfficeArtSpContainer& o, Writer& out) {
4912 out.xml.startElement("draw:custom-shape");
4913 processStyleAndText(o, out);
4914
4915 out.xml.startElement("draw:enhanced-geometry");
4916 processModifiers(o, out, QList<int>() << 1400);
4917 out.xml.addAttribute("draw:path-stretchpoint-x", "10800");
4918 out.xml.addAttribute("draw:path-stretchpoint-y", "10800");
4919 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600");
4920 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 Z N M 0 0 L 21600 0 ?f3 ?f2 ?f1 ?f2 Z N M 21600 0 L 21600 21600 ?f3 ?f4 ?f3 ?f2 Z N M 21600 21600 L 0 21600 ?f1 ?f4 ?f3 ?f4 Z N M 0 21600 L 0 0 ?f1 ?f2 ?f1 ?f4 Z N M ?f10 ?f12 L ?f14 ?f12 ?f16 ?f18 ?f20 ?f18 ?f22 ?f24 ?f22 ?f26 ?f28 ?f26 ?f30 ?f24 ?f32 ?f24 ?f32 ?f34 ?f30 ?f34 ?f28 ?f36 ?f22 ?f36 ?f22 ?f38 ?f42 ?f38 ?f42 ?f40 ?f16 ?f40 ?f14 ?f44 ?f10 ?f44 Z N");
4921 out.xml.addAttribute("draw:type", "mso-spt200");
4922 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4");
4923 setShapeMirroring(o, out);
4924 equation(out,"f0","$0 ");
4925 equation(out,"f1","left+$0 ");
4926 equation(out,"f2","top+$0 ");
4927 equation(out,"f3","right-$0 ");
4928 equation(out,"f4","bottom-$0 ");
4929 equation(out,"f5","10800-$0 ");
4930 equation(out,"f6","?f5 /10800");
4931 equation(out,"f7","right/2");
4932 equation(out,"f8","bottom/2");
4933 equation(out,"f9","-8050*?f6 ");
4934 equation(out,"f10","?f9 +?f7 ");
4935 equation(out,"f11","-4020*?f6 ");
4936 equation(out,"f12","?f11 +?f8 ");
4937 equation(out,"f13","-7000*?f6 ");
4938 equation(out,"f14","?f13 +?f7 ");
4939 equation(out,"f15","-6560*?f6 ");
4940 equation(out,"f16","?f15 +?f7 ");
4941 equation(out,"f17","-3600*?f6 ");
4942 equation(out,"f18","?f17 +?f8 ");
4943 equation(out,"f19","4020*?f6 ");
4944 equation(out,"f20","?f19 +?f7 ");
4945 equation(out,"f21","4660*?f6 ");
4946 equation(out,"f22","?f21 +?f7 ");
4947 equation(out,"f23","-2960*?f6 ");
4948 equation(out,"f24","?f23 +?f8 ");
4949 equation(out,"f25","-2330*?f6 ");
4950 equation(out,"f26","?f25 +?f8 ");
4951 equation(out,"f27","6780*?f6 ");
4952 equation(out,"f28","?f27 +?f7 ");
4953 equation(out,"f29","7200*?f6 ");
4954 equation(out,"f30","?f29 +?f7 ");
4955 equation(out,"f31","8050*?f6 ");
4956 equation(out,"f32","?f31 +?f7 ");
4957 equation(out,"f33","2960*?f6 ");
4958 equation(out,"f34","?f33 +?f8 ");
4959 equation(out,"f35","2330*?f6 ");
4960 equation(out,"f36","?f35 +?f8 ");
4961 equation(out,"f37","3800*?f6 ");
4962 equation(out,"f38","?f37 +?f8 ");
4963 equation(out,"f39","-1060*?f6 ");
4964 equation(out,"f40","?f39 +?f8 ");
4965 equation(out,"f41","-6350*?f6 ");
4966 equation(out,"f42","?f41 +?f7 ");
4967 equation(out,"f43","-640*?f6 ");
4968 equation(out,"f44","?f43 +?f8 ");
4969 out.xml.startElement("draw:handle");
4970 out.xml.addAttribute("draw:handle-position", "$0 top");
4971 out.xml.addAttribute("draw:handle-range-x-maximum", "5400");
4972 out.xml.addAttribute("draw:handle-switched", "true");
4973 out.xml.addAttribute("draw:handle-range-x-minimum", "0");
4974 out.xml.endElement(); // draw:handle
4975 out.xml.endElement(); // enhanced geometry
4976 out.xml.endElement(); // custom shape
4977 }
4978
4979
4980