File indexing completed on 2025-01-12 10:34:24
0001 /* 0002 * SPDX-FileCopyrightText: 2011 Lukáš Tvrdý lukas.tvrdy @ixonos.com 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #include "ODrawToOdf.h" 0007 0008 #include "drawstyle.h" 0009 #include "writeodf/writeodfdraw.h" 0010 0011 using namespace MSO; 0012 using namespace writeodf; 0013 0014 namespace 0015 { 0016 void equation(Writer& out, const char* name, const char* formula) 0017 { 0018 draw_equation eq(&out.xml); 0019 eq.set_draw_name(name); 0020 eq.set_draw_formula(formula); 0021 } 0022 void equation(draw_enhanced_geometry& eg, const char* name, const char* formula) 0023 { 0024 draw_equation eq(eg.add_draw_equation()); 0025 eq.set_draw_name(name); 0026 eq.set_draw_formula(formula); 0027 } 0028 0029 } 0030 0031 0032 /*void ODrawToOdf::processRectangle(const MSO::OfficeArtSpContainer& o, Writer& out) { 0033 out.xml.startElement("draw:custom-shape"); 0034 processStyleAndText(o, out); 0035 0036 out.xml.startElement("draw:enhanced-geometry"); 0037 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0038 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"); 0039 out.xml.addAttribute("draw:type", "rectangle"); 0040 setShapeMirroring(o, out); 0041 out.xml.endElement(); // enhanced geometry 0042 out.xml.endElement(); // custom shape 0043 }*/ 0044 0045 0046 void ODrawToOdf::processParallelogram(const MSO::OfficeArtSpContainer& o, Writer& out) { 0047 draw_custom_shape shape(&out.xml); 0048 processStyleAndText(o, out); 0049 0050 draw_enhanced_geometry eg(shape.add_draw_enhanced_geometry()); 0051 eg.set_draw_glue_points("?f6 0 10800 ?f8 ?f11 10800 ?f9 21600 10800 ?f10 ?f5 10800"); 0052 processModifiers(o, out, QList<int>() << 5400); 0053 eg.set_svg_viewBox("0 0 21600 21600"); 0054 eg.set_draw_enhanced_path("M ?f0 0 L 21600 0 ?f1 21600 0 21600 Z N"); 0055 eg.set_draw_type("parallelogram"); 0056 eg.set_draw_text_areas("?f3 ?f3 ?f4 ?f4"); 0057 setShapeMirroring(o, out); 0058 equation(eg,"f0","$0 "); 0059 equation(eg,"f1","21600-$0 "); 0060 equation(eg,"f2","$0 *10/24"); 0061 equation(eg,"f3","?f2 +1750"); 0062 equation(eg,"f4","21600-?f3 "); 0063 equation(eg,"f5","?f0 /2"); 0064 equation(eg,"f6","10800+?f5 "); 0065 equation(eg,"f7","?f0 -10800"); 0066 equation(eg,"f8","if(?f7 ,?f13 ,0)"); 0067 equation(eg,"f9","10800-?f5 "); 0068 equation(eg,"f10","if(?f7 ,?f12 ,21600)"); 0069 equation(eg,"f11","21600-?f5 "); 0070 equation(eg,"f12","21600*10800/?f0 "); 0071 equation(eg,"f13","21600-?f12 "); 0072 draw_handle handle(eg.add_draw_handle("$0 top")); 0073 handle.set_draw_handle_radius_range_maximum("21000"); 0074 handle.set_draw_handle_radius_range_minimum("0"); 0075 } 0076 0077 0078 void ODrawToOdf::processTrapezoid(const MSO::OfficeArtSpContainer& o, Writer& out) { 0079 draw_custom_shape shape(&out.xml); 0080 processStyleAndText(o, out); 0081 0082 draw_enhanced_geometry eg(shape.add_draw_enhanced_geometry()); 0083 eg.set_draw_glue_points("?f6 10800 10800 21600 ?f5 10800 10800 0"); 0084 processModifiers(o, out, QList<int>() << 5400); 0085 eg.set_svg_viewBox("0 0 21600 21600"); 0086 eg.set_draw_enhanced_path("M 0 0 L 21600 0 ?f0 21600 ?f1 21600 Z N"); 0087 eg.set_draw_type("trapezoid"); 0088 eg.set_draw_text_areas("?f3 ?f3 ?f4 ?f4"); 0089 setShapeMirroring(o, out); 0090 equation(eg,"f0","21600-$0 "); 0091 equation(eg,"f1","$0 "); 0092 equation(eg,"f2","$0 *10/18"); 0093 equation(eg,"f3","?f2 +1750"); 0094 equation(eg,"f4","21600-?f3 "); 0095 equation(eg,"f5","$0 /2"); 0096 equation(eg,"f6","21600-?f5 "); 0097 draw_handle handle(eg.add_draw_handle("$0 bottom")); 0098 handle.set_draw_handle_radius_range_maximum("10000"); 0099 handle.set_draw_handle_radius_range_minimum("0"); 0100 } 0101 0102 0103 void ODrawToOdf::processDiamond(const MSO::OfficeArtSpContainer& o, Writer& out) { 0104 out.xml.startElement("draw:custom-shape"); 0105 processStyleAndText(o, out); 0106 0107 out.xml.startElement("draw:enhanced-geometry"); 0108 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 0109 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0110 out.xml.addAttribute("draw:enhanced-path", "M 10800 0 L 21600 10800 10800 21600 0 10800 10800 0 Z N"); 0111 out.xml.addAttribute("draw:type", "diamond"); 0112 out.xml.addAttribute("draw:text-areas", "5400 5400 16200 16200"); 0113 setShapeMirroring(o, out); 0114 out.xml.endElement(); // enhanced geometry 0115 out.xml.endElement(); // custom shape 0116 } 0117 0118 0119 void ODrawToOdf::processRoundRectangle(const MSO::OfficeArtSpContainer& o, Writer& out) { 0120 out.xml.startElement("draw:custom-shape"); 0121 processStyleAndText(o, out); 0122 0123 out.xml.startElement("draw:enhanced-geometry"); 0124 processModifiers(o, out, QList<int>() << 3600); 0125 out.xml.addAttribute("draw:path-stretchpoint-x", "10800"); 0126 out.xml.addAttribute("draw:path-stretchpoint-y", "10800"); 0127 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0128 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"); 0129 out.xml.addAttribute("draw:type", "round-rectangle"); 0130 out.xml.addAttribute("draw:text-areas", "?f3 ?f4 ?f5 ?f6"); 0131 setShapeMirroring(o, out); 0132 equation(out,"f0","45"); 0133 equation(out,"f1","$0 *sin(?f0 *(pi/180))"); 0134 equation(out,"f2","?f1 *3163/7636"); 0135 equation(out,"f3","left+?f2 "); 0136 equation(out,"f4","top+?f2 "); 0137 equation(out,"f5","right-?f2 "); 0138 equation(out,"f6","bottom-?f2 "); 0139 equation(out,"f7","left+$0 "); 0140 equation(out,"f8","top+$0 "); 0141 equation(out,"f9","bottom-$0 "); 0142 equation(out,"f10","right-$0 "); 0143 out.xml.startElement("draw:handle"); 0144 out.xml.addAttribute("draw:handle-position", "$0 top"); 0145 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 0146 out.xml.addAttribute("draw:handle-switched", "true"); 0147 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0148 out.xml.endElement(); // draw:handle 0149 out.xml.endElement(); // enhanced geometry 0150 out.xml.endElement(); // custom shape 0151 } 0152 0153 0154 void ODrawToOdf::processOctagon(const MSO::OfficeArtSpContainer& o, Writer& out) { 0155 out.xml.startElement("draw:custom-shape"); 0156 processStyleAndText(o, out); 0157 0158 out.xml.startElement("draw:enhanced-geometry"); 0159 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 0160 processModifiers(o, out, QList<int>() << 5000); 0161 out.xml.addAttribute("draw:path-stretchpoint-x", "10800"); 0162 out.xml.addAttribute("draw:path-stretchpoint-y", "10800"); 0163 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0164 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"); 0165 out.xml.addAttribute("draw:type", "octagon"); 0166 out.xml.addAttribute("draw:text-areas", "?f5 ?f6 ?f7 ?f8"); 0167 setShapeMirroring(o, out); 0168 equation(out,"f0","left+$0 "); 0169 equation(out,"f1","top+$0 "); 0170 equation(out,"f2","right-$0 "); 0171 equation(out,"f3","bottom-$0 "); 0172 equation(out,"f4","$0 /2"); 0173 equation(out,"f5","left+?f4 "); 0174 equation(out,"f6","top+?f4 "); 0175 equation(out,"f7","right-?f4 "); 0176 equation(out,"f8","bottom-?f4 "); 0177 out.xml.startElement("draw:handle"); 0178 out.xml.addAttribute("draw:handle-position", "$0 top"); 0179 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 0180 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0181 out.xml.endElement(); // draw:handle 0182 out.xml.endElement(); // enhanced geometry 0183 out.xml.endElement(); // custom shape 0184 } 0185 0186 0187 void ODrawToOdf::processIsocelesTriangle(const MSO::OfficeArtSpContainer& o, Writer& out) { 0188 out.xml.startElement("draw:custom-shape"); 0189 processStyleAndText(o, out); 0190 0191 out.xml.startElement("draw:enhanced-geometry"); 0192 out.xml.addAttribute("draw:glue-points", "10800 0 ?f1 10800 0 21600 10800 21600 21600 21600 ?f7 10800"); 0193 processModifiers(o, out, QList<int>() << 10800); 0194 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0195 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 L 21600 21600 0 21600 Z N"); 0196 out.xml.addAttribute("draw:type", "isosceles-triangle"); 0197 out.xml.addAttribute("draw:text-areas", "?f1 10800 ?f2 18000 ?f3 7200 ?f4 21600"); 0198 setShapeMirroring(o, out); 0199 equation(out,"f0","$0 "); 0200 equation(out,"f1","$0 /2"); 0201 equation(out,"f2","?f1 +10800"); 0202 equation(out,"f3","$0 *2/3"); 0203 equation(out,"f4","?f3 +7200"); 0204 equation(out,"f5","21600-?f0 "); 0205 equation(out,"f6","?f5 /2"); 0206 equation(out,"f7","21600-?f6 "); 0207 out.xml.startElement("draw:handle"); 0208 out.xml.addAttribute("draw:handle-position", "$0 top"); 0209 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 0210 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0211 out.xml.endElement(); // draw:handle 0212 out.xml.endElement(); // enhanced geometry 0213 out.xml.endElement(); // custom shape 0214 } 0215 0216 0217 void ODrawToOdf::processRightTriangle(const MSO::OfficeArtSpContainer& o, Writer& out) { 0218 out.xml.startElement("draw:custom-shape"); 0219 processStyleAndText(o, out); 0220 0221 out.xml.startElement("draw:enhanced-geometry"); 0222 out.xml.addAttribute("draw:glue-points", "10800 0 5400 10800 0 21600 10800 21600 21600 21600 16200 10800"); 0223 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0224 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 21600 0 21600 0 0 Z N"); 0225 out.xml.addAttribute("draw:type", "right-triangle"); 0226 out.xml.addAttribute("draw:text-areas", "1900 12700 12700 19700"); 0227 setShapeMirroring(o, out); 0228 out.xml.endElement(); // enhanced geometry 0229 out.xml.endElement(); // custom shape 0230 } 0231 0232 0233 void ODrawToOdf::processEllipse(const MSO::OfficeArtSpContainer& o, Writer& out) 0234 { 0235 out.xml.startElement("draw:ellipse"); 0236 processStyleAndText(o, out); 0237 out.xml.endElement(); // draw:ellipse 0238 } 0239 0240 /* 0241 void ODrawToOdf::processEllipse(const MSO::OfficeArtSpContainer& o, Writer& out) { 0242 out.xml.startElement("draw:custom-shape"); 0243 processStyleAndText(o, out); 0244 0245 out.xml.startElement("draw:enhanced-geometry"); 0246 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163"); 0247 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0248 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z N"); 0249 out.xml.addAttribute("draw:type", "ellipse"); 0250 out.xml.addAttribute("draw:text-areas", "3163 3163 18437 18437"); 0251 setShapeMirroring(o, out); 0252 out.xml.endElement(); // enhanced geometry 0253 out.xml.endElement(); // custom shape 0254 } 0255 */ 0256 0257 void ODrawToOdf::processHexagon(const MSO::OfficeArtSpContainer& o, Writer& out) { 0258 out.xml.startElement("draw:custom-shape"); 0259 processStyleAndText(o, out); 0260 0261 out.xml.startElement("draw:enhanced-geometry"); 0262 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 0263 processModifiers(o, out, QList<int>() << 5400); 0264 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0265 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 L ?f1 0 21600 10800 ?f1 21600 ?f0 21600 0 10800 Z N"); 0266 out.xml.addAttribute("draw:type", "hexagon"); 0267 out.xml.addAttribute("draw:text-areas", "?f3 ?f3 ?f4 ?f4"); 0268 setShapeMirroring(o, out); 0269 equation(out,"f0","$0 "); 0270 equation(out,"f1","21600-$0 "); 0271 equation(out,"f2","$0 *100/234"); 0272 equation(out,"f3","?f2 +1700"); 0273 equation(out,"f4","21600-?f3 "); 0274 out.xml.startElement("draw:handle"); 0275 out.xml.addAttribute("draw:handle-position", "$0 top"); 0276 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 0277 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0278 out.xml.endElement(); // draw:handle 0279 out.xml.endElement(); // enhanced geometry 0280 out.xml.endElement(); // custom shape 0281 } 0282 0283 0284 void ODrawToOdf::processPlus(const MSO::OfficeArtSpContainer& o, Writer& out) { 0285 out.xml.startElement("draw:custom-shape"); 0286 processStyleAndText(o, out); 0287 0288 out.xml.startElement("draw:enhanced-geometry"); 0289 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 0290 processModifiers(o, out, QList<int>() << 5400); 0291 out.xml.addAttribute("draw:path-stretchpoint-x", "10800"); 0292 out.xml.addAttribute("draw:path-stretchpoint-y", "10800"); 0293 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0294 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"); 0295 out.xml.addAttribute("draw:type", "cross"); 0296 out.xml.addAttribute("draw:text-areas", "?f1 ?f1 ?f2 ?f3"); 0297 setShapeMirroring(o, out); 0298 equation(out,"f0","$0 *10799/10800"); 0299 equation(out,"f1","?f0 "); 0300 equation(out,"f2","right-?f0 "); 0301 equation(out,"f3","bottom-?f0 "); 0302 out.xml.startElement("draw:handle"); 0303 out.xml.addAttribute("draw:handle-position", "$0 top"); 0304 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 0305 out.xml.addAttribute("draw:handle-switched", "true"); 0306 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0307 out.xml.endElement(); // draw:handle 0308 out.xml.endElement(); // enhanced geometry 0309 out.xml.endElement(); // custom shape 0310 } 0311 0312 0313 void ODrawToOdf::processPentagon(const MSO::OfficeArtSpContainer& o, Writer& out) { 0314 out.xml.startElement("draw:custom-shape"); 0315 processStyleAndText(o, out); 0316 0317 out.xml.startElement("draw:enhanced-geometry"); 0318 out.xml.addAttribute("draw:glue-points", "10800 0 0 8260 4230 21600 10800 21600 17370 21600 21600 8260"); 0319 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0320 out.xml.addAttribute("draw:enhanced-path", "M 10800 0 L 0 8260 4230 21600 17370 21600 21600 8260 10800 0 Z N"); 0321 out.xml.addAttribute("draw:type", "pentagon"); 0322 out.xml.addAttribute("draw:text-areas", "4230 5080 17370 21600"); 0323 setShapeMirroring(o, out); 0324 out.xml.endElement(); // enhanced geometry 0325 out.xml.endElement(); // custom shape 0326 } 0327 0328 0329 void ODrawToOdf::processCan(const MSO::OfficeArtSpContainer& o, Writer& out) { 0330 out.xml.startElement("draw:custom-shape"); 0331 processStyleAndText(o, out); 0332 0333 out.xml.startElement("draw:enhanced-geometry"); 0334 out.xml.addAttribute("draw:glue-points", "44 ?f6 44 0 0 10800 44 21600 88 10800"); 0335 processModifiers(o, out, QList<int>() << 5400); 0336 out.xml.addAttribute("svg:viewBox", "0 0 88 21600"); 0337 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"); 0338 out.xml.addAttribute("draw:type", "can"); 0339 out.xml.addAttribute("draw:text-areas", "0 ?f6 88 ?f3"); 0340 setShapeMirroring(o, out); 0341 equation(out,"f0","$0 *2/4"); 0342 equation(out,"f1","?f0 *6/11"); 0343 equation(out,"f2","?f0 -?f1 "); 0344 equation(out,"f3","21600-?f0 "); 0345 equation(out,"f4","?f3 +?f1 "); 0346 equation(out,"f5","?f0 +?f1 "); 0347 equation(out,"f6","$0 *2/2"); 0348 equation(out,"f7","44"); 0349 out.xml.startElement("draw:handle"); 0350 out.xml.addAttribute("draw:handle-position", "?f7 $0"); 0351 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 0352 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 0353 out.xml.endElement(); // draw:handle 0354 out.xml.endElement(); // enhanced geometry 0355 out.xml.endElement(); // custom shape 0356 } 0357 0358 0359 void ODrawToOdf::processCube(const MSO::OfficeArtSpContainer& o, Writer& out) { 0360 out.xml.startElement("draw:custom-shape"); 0361 processStyleAndText(o, out); 0362 0363 out.xml.startElement("draw:enhanced-geometry"); 0364 out.xml.addAttribute("draw:glue-points", "?f7 0 ?f6 ?f1 0 ?f10 ?f6 21600 ?f4 ?f10 21600 ?f9"); 0365 processModifiers(o, out, QList<int>() << 5400); 0366 out.xml.addAttribute("draw:path-stretchpoint-x", "10800"); 0367 out.xml.addAttribute("draw:path-stretchpoint-y", "10800"); 0368 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0369 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"); 0370 out.xml.addAttribute("draw:type", "cube"); 0371 out.xml.addAttribute("draw:text-areas", "0 ?f1 ?f4 ?f12"); 0372 setShapeMirroring(o, out); 0373 equation(out,"f0","$0 "); 0374 equation(out,"f1","top+?f0 "); 0375 equation(out,"f2","left+?f0 "); 0376 equation(out,"f3","bottom-?f0 "); 0377 equation(out,"f4","right-?f0 "); 0378 equation(out,"f5","right-?f2 "); 0379 equation(out,"f6","?f5 /2"); 0380 equation(out,"f7","?f2 +?f6 "); 0381 equation(out,"f8","bottom-?f1 "); 0382 equation(out,"f9","?f8 /2"); 0383 equation(out,"f10","?f1 +?f9 "); 0384 equation(out,"f11","right"); 0385 equation(out,"f12","bottom"); 0386 out.xml.startElement("draw:handle"); 0387 out.xml.addAttribute("draw:handle-position", "left $0"); 0388 out.xml.addAttribute("draw:handle-switched", "true"); 0389 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 0390 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 0391 out.xml.endElement(); // draw:handle 0392 out.xml.endElement(); // enhanced geometry 0393 out.xml.endElement(); // custom shape 0394 } 0395 0396 0397 void ODrawToOdf::processBevel(const MSO::OfficeArtSpContainer& o, Writer& out) { 0398 out.xml.startElement("draw:custom-shape"); 0399 processStyleAndText(o, out); 0400 0401 out.xml.startElement("draw:enhanced-geometry"); 0402 processModifiers(o, out, QList<int>() << 2700); 0403 out.xml.addAttribute("draw:path-stretchpoint-x", "10800"); 0404 out.xml.addAttribute("draw:path-stretchpoint-y", "10800"); 0405 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0406 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"); 0407 out.xml.addAttribute("draw:type", "quad-bevel"); 0408 out.xml.addAttribute("draw:text-areas", "?f0 ?f0 ?f1 ?f2"); 0409 setShapeMirroring(o, out); 0410 equation(out,"f0","$0 *21599/21600"); 0411 equation(out,"f1","right-?f0 "); 0412 equation(out,"f2","bottom-?f0 "); 0413 out.xml.startElement("draw:handle"); 0414 out.xml.addAttribute("draw:handle-position", "$0 top"); 0415 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 0416 out.xml.addAttribute("draw:handle-switched", "true"); 0417 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0418 out.xml.endElement(); // draw:handle 0419 out.xml.endElement(); // enhanced geometry 0420 out.xml.endElement(); // custom shape 0421 } 0422 0423 0424 void ODrawToOdf::processFoldedCorner(const MSO::OfficeArtSpContainer& o, Writer& out) { 0425 out.xml.startElement("draw:custom-shape"); 0426 processStyleAndText(o, out); 0427 0428 out.xml.startElement("draw:enhanced-geometry"); 0429 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 0430 processModifiers(o, out, QList<int>() << 18900); 0431 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0432 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"); 0433 out.xml.addAttribute("draw:type", "paper"); 0434 out.xml.addAttribute("draw:text-areas", "0 0 21600 ?f11"); 0435 setShapeMirroring(o, out); 0436 equation(out,"f0","$0 "); 0437 equation(out,"f1","21600-?f0 "); 0438 equation(out,"f2","?f1 *8000/10800"); 0439 equation(out,"f3","21600-?f2 "); 0440 equation(out,"f4","?f1 /2"); 0441 equation(out,"f5","?f1 /4"); 0442 equation(out,"f6","?f1 /7"); 0443 equation(out,"f7","?f1 /16"); 0444 equation(out,"f8","?f3 +?f5 "); 0445 equation(out,"f9","?f0 +?f6 "); 0446 equation(out,"f10","21600-?f4 "); 0447 equation(out,"f11","?f0 +?f7 "); 0448 out.xml.startElement("draw:handle"); 0449 out.xml.addAttribute("draw:handle-position", "$0 bottom"); 0450 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 0451 out.xml.addAttribute("draw:handle-range-x-minimum", "10800"); 0452 out.xml.endElement(); // draw:handle 0453 out.xml.endElement(); // enhanced geometry 0454 out.xml.endElement(); // custom shape 0455 } 0456 0457 0458 void ODrawToOdf::processSmileyFace(const MSO::OfficeArtSpContainer& o, Writer& out) { 0459 out.xml.startElement("draw:custom-shape"); 0460 processStyleAndText(o, out); 0461 0462 out.xml.startElement("draw:enhanced-geometry"); 0463 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163"); 0464 processModifiers(o, out, QList<int>() << 17520); 0465 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0466 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"); 0467 out.xml.addAttribute("draw:type", "smiley"); 0468 out.xml.addAttribute("draw:text-areas", "3163 3163 18437 18437"); 0469 setShapeMirroring(o, out); 0470 equation(out,"f0","$0 -15510"); 0471 equation(out,"f1","17520-?f0 "); 0472 equation(out,"f2","15510+?f0 "); 0473 out.xml.startElement("draw:handle"); 0474 out.xml.addAttribute("draw:handle-position", "10800 $0"); 0475 out.xml.addAttribute("draw:handle-range-y-minimum", "15510"); 0476 out.xml.addAttribute("draw:handle-range-y-maximum", "17520"); 0477 out.xml.endElement(); // draw:handle 0478 out.xml.endElement(); // enhanced geometry 0479 out.xml.endElement(); // custom shape 0480 } 0481 0482 0483 void ODrawToOdf::processDonut(const MSO::OfficeArtSpContainer& o, Writer& out) { 0484 out.xml.startElement("draw:custom-shape"); 0485 processStyleAndText(o, out); 0486 0487 out.xml.startElement("draw:enhanced-geometry"); 0488 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163"); 0489 processModifiers(o, out, QList<int>() << 5400); 0490 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0491 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z U 10800 10800 ?f1 ?f1 0 360 N"); 0492 out.xml.addAttribute("draw:type", "ring"); 0493 out.xml.addAttribute("draw:text-areas", "3163 3163 18437 18437"); 0494 setShapeMirroring(o, out); 0495 equation(out,"f0","$0 "); 0496 equation(out,"f1","10800-$0 "); 0497 out.xml.startElement("draw:handle"); 0498 out.xml.addAttribute("draw:handle-position", "$0 10800"); 0499 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 0500 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0501 out.xml.endElement(); // draw:handle 0502 out.xml.endElement(); // enhanced geometry 0503 out.xml.endElement(); // custom shape 0504 } 0505 0506 0507 void ODrawToOdf::processNoSmoking(const MSO::OfficeArtSpContainer& o, Writer& out) { 0508 out.xml.startElement("draw:custom-shape"); 0509 processStyleAndText(o, out); 0510 0511 out.xml.startElement("draw:enhanced-geometry"); 0512 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163"); 0513 processModifiers(o, out, QList<int>() << 2700); 0514 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0515 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"); 0516 out.xml.addAttribute("draw:type", "forbidden"); 0517 out.xml.addAttribute("draw:text-areas", "3163 3163 18437 18437"); 0518 setShapeMirroring(o, out); 0519 equation(out,"f0","$0 "); 0520 equation(out,"f1","21600-$0 "); 0521 equation(out,"f2","10800-$0 "); 0522 equation(out,"f3","$0 /2"); 0523 equation(out,"f4","sqrt(?f2 *?f2 -?f3 *?f3 )"); 0524 equation(out,"f5","10800-?f3 "); 0525 equation(out,"f6","10800+?f3 "); 0526 equation(out,"f7","10800-?f4 "); 0527 equation(out,"f8","10800+?f4 "); 0528 equation(out,"f9","(cos(45*(pi/180))*(?f5 -10800)+sin(45*(pi/180))*(?f7 -10800))+10800"); 0529 equation(out,"f10","-(sin(45*(pi/180))*(?f5 -10800)-cos(45*(pi/180))*(?f7 -10800))+10800"); 0530 equation(out,"f11","(cos(45*(pi/180))*(?f5 -10800)+sin(45*(pi/180))*(?f8 -10800))+10800"); 0531 equation(out,"f12","-(sin(45*(pi/180))*(?f5 -10800)-cos(45*(pi/180))*(?f8 -10800))+10800"); 0532 equation(out,"f13","(cos(45*(pi/180))*(?f6 -10800)+sin(45*(pi/180))*(?f8 -10800))+10800"); 0533 equation(out,"f14","-(sin(45*(pi/180))*(?f6 -10800)-cos(45*(pi/180))*(?f8 -10800))+10800"); 0534 equation(out,"f15","(cos(45*(pi/180))*(?f6 -10800)+sin(45*(pi/180))*(?f7 -10800))+10800"); 0535 equation(out,"f16","-(sin(45*(pi/180))*(?f6 -10800)-cos(45*(pi/180))*(?f7 -10800))+10800"); 0536 out.xml.startElement("draw:handle"); 0537 out.xml.addAttribute("draw:handle-position", "$0 10800"); 0538 out.xml.addAttribute("draw:handle-range-x-maximum", "7200"); 0539 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0540 out.xml.endElement(); // draw:handle 0541 out.xml.endElement(); // enhanced geometry 0542 out.xml.endElement(); // custom shape 0543 } 0544 0545 0546 void ODrawToOdf::processBlockArc(const MSO::OfficeArtSpContainer& o, Writer& out) { 0547 out.xml.startElement("draw:custom-shape"); 0548 processStyleAndText(o, out); 0549 0550 out.xml.startElement("draw:enhanced-geometry"); 0551 processModifiers(o, out, QList<int>() << 180<< 5400); 0552 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0553 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"); 0554 out.xml.addAttribute("draw:type", "block-arc"); 0555 setShapeMirroring(o, out); 0556 equation(out,"f0","10800*cos($0 *(pi/180))"); 0557 equation(out,"f1","10800*sin($0 *(pi/180))"); 0558 equation(out,"f2","?f0 +10800"); 0559 equation(out,"f3","?f1 +10800"); 0560 equation(out,"f4","21600-?f2 "); 0561 equation(out,"f5","10800-$1 "); 0562 equation(out,"f6","10800+$1 "); 0563 equation(out,"f7","?f5 *cos($0 *(pi/180))"); 0564 equation(out,"f8","?f5 *sin($0 *(pi/180))"); 0565 out.xml.startElement("draw:handle"); 0566 out.xml.addAttribute("draw:handle-position", "$1 $0"); 0567 out.xml.addAttribute("draw:handle-radius-range-minimum", "0"); 0568 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800"); 0569 out.xml.addAttribute("draw:handle-polar", "10800 10800"); 0570 out.xml.endElement(); // draw:handle 0571 out.xml.endElement(); // enhanced geometry 0572 out.xml.endElement(); // custom shape 0573 } 0574 0575 0576 void ODrawToOdf::processHeart(const MSO::OfficeArtSpContainer& o, Writer& out) { 0577 out.xml.startElement("draw:custom-shape"); 0578 processStyleAndText(o, out); 0579 0580 out.xml.startElement("draw:enhanced-geometry"); 0581 out.xml.addAttribute("draw:glue-points", "10800 2180 3090 10800 10800 21600 18490 10800"); 0582 out.xml.addAttribute("svg:viewBox", "0 0 21615 21602"); 0583 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"); 0584 out.xml.addAttribute("draw:type", "heart"); 0585 out.xml.addAttribute("draw:text-areas", "5080 2540 16520 13550"); 0586 setShapeMirroring(o, out); 0587 out.xml.endElement(); // enhanced geometry 0588 out.xml.endElement(); // custom shape 0589 } 0590 0591 0592 void ODrawToOdf::processLightningBolt(const MSO::OfficeArtSpContainer& o, Writer& out) { 0593 out.xml.startElement("draw:custom-shape"); 0594 processStyleAndText(o, out); 0595 0596 out.xml.startElement("draw:enhanced-geometry"); 0597 out.xml.addAttribute("draw:glue-points", "8458 0 0 3923 4993 9720 9987 14934 21600 21600 16558 12016 12831 6120"); 0598 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0599 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"); 0600 out.xml.addAttribute("draw:type", "lightning"); 0601 out.xml.addAttribute("draw:text-areas", "8680 7410 13970 14190"); 0602 setShapeMirroring(o, out); 0603 out.xml.endElement(); // enhanced geometry 0604 out.xml.endElement(); // custom shape 0605 } 0606 0607 0608 void ODrawToOdf::processSun(const MSO::OfficeArtSpContainer& o, Writer& out) { 0609 out.xml.startElement("draw:custom-shape"); 0610 processStyleAndText(o, out); 0611 0612 out.xml.startElement("draw:enhanced-geometry"); 0613 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 0614 processModifiers(o, out, QList<int>() << 5400); 0615 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0616 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"); 0617 out.xml.addAttribute("draw:type", "sun"); 0618 out.xml.addAttribute("draw:text-areas", "?f52 ?f52 ?f53 ?f53"); 0619 setShapeMirroring(o, out); 0620 equation(out,"f0","$0 "); 0621 equation(out,"f1","21600-$0 "); 0622 equation(out,"f2","$0 -2700"); 0623 equation(out,"f3","?f2 *5080/7425"); 0624 equation(out,"f4","?f3 +2540"); 0625 equation(out,"f5","10125-$0 "); 0626 equation(out,"f6","?f5 *2120/7425"); 0627 equation(out,"f7","?f6 +210"); 0628 equation(out,"f8","10800+?f7 "); 0629 equation(out,"f9","10800-?f7 "); 0630 equation(out,"f10","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800"); 0631 equation(out,"f11","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800"); 0632 equation(out,"f12","(cos(45*(pi/180))*(?f4 -10800)+sin(45*(pi/180))*(?f8 -10800))+10800"); 0633 equation(out,"f13","-(sin(45*(pi/180))*(?f4 -10800)-cos(45*(pi/180))*(?f8 -10800))+10800"); 0634 equation(out,"f14","(cos(45*(pi/180))*(?f4 -10800)+sin(45*(pi/180))*(?f9 -10800))+10800"); 0635 equation(out,"f15","-(sin(45*(pi/180))*(?f4 -10800)-cos(45*(pi/180))*(?f9 -10800))+10800"); 0636 equation(out,"f16","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800"); 0637 equation(out,"f17","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800"); 0638 equation(out,"f18","(cos(90*(pi/180))*(?f4 -10800)+sin(90*(pi/180))*(?f8 -10800))+10800"); 0639 equation(out,"f19","-(sin(90*(pi/180))*(?f4 -10800)-cos(90*(pi/180))*(?f8 -10800))+10800"); 0640 equation(out,"f20","(cos(90*(pi/180))*(?f4 -10800)+sin(90*(pi/180))*(?f9 -10800))+10800"); 0641 equation(out,"f21","-(sin(90*(pi/180))*(?f4 -10800)-cos(90*(pi/180))*(?f9 -10800))+10800"); 0642 equation(out,"f22","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800"); 0643 equation(out,"f23","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800"); 0644 equation(out,"f24","(cos(135*(pi/180))*(?f4 -10800)+sin(135*(pi/180))*(?f8 -10800))+10800"); 0645 equation(out,"f25","-(sin(135*(pi/180))*(?f4 -10800)-cos(135*(pi/180))*(?f8 -10800))+10800"); 0646 equation(out,"f26","(cos(135*(pi/180))*(?f4 -10800)+sin(135*(pi/180))*(?f9 -10800))+10800"); 0647 equation(out,"f27","-(sin(135*(pi/180))*(?f4 -10800)-cos(135*(pi/180))*(?f9 -10800))+10800"); 0648 equation(out,"f28","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800"); 0649 equation(out,"f29","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800"); 0650 equation(out,"f30","(cos(180*(pi/180))*(?f4 -10800)+sin(180*(pi/180))*(?f8 -10800))+10800"); 0651 equation(out,"f31","-(sin(180*(pi/180))*(?f4 -10800)-cos(180*(pi/180))*(?f8 -10800))+10800"); 0652 equation(out,"f32","(cos(180*(pi/180))*(?f4 -10800)+sin(180*(pi/180))*(?f9 -10800))+10800"); 0653 equation(out,"f33","-(sin(180*(pi/180))*(?f4 -10800)-cos(180*(pi/180))*(?f9 -10800))+10800"); 0654 equation(out,"f34","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800"); 0655 equation(out,"f35","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800"); 0656 equation(out,"f36","(cos(225*(pi/180))*(?f4 -10800)+sin(225*(pi/180))*(?f8 -10800))+10800"); 0657 equation(out,"f37","-(sin(225*(pi/180))*(?f4 -10800)-cos(225*(pi/180))*(?f8 -10800))+10800"); 0658 equation(out,"f38","(cos(225*(pi/180))*(?f4 -10800)+sin(225*(pi/180))*(?f9 -10800))+10800"); 0659 equation(out,"f39","-(sin(225*(pi/180))*(?f4 -10800)-cos(225*(pi/180))*(?f9 -10800))+10800"); 0660 equation(out,"f40","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800"); 0661 equation(out,"f41","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800"); 0662 equation(out,"f42","(cos(270*(pi/180))*(?f4 -10800)+sin(270*(pi/180))*(?f8 -10800))+10800"); 0663 equation(out,"f43","-(sin(270*(pi/180))*(?f4 -10800)-cos(270*(pi/180))*(?f8 -10800))+10800"); 0664 equation(out,"f44","(cos(270*(pi/180))*(?f4 -10800)+sin(270*(pi/180))*(?f9 -10800))+10800"); 0665 equation(out,"f45","-(sin(270*(pi/180))*(?f4 -10800)-cos(270*(pi/180))*(?f9 -10800))+10800"); 0666 equation(out,"f46","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800"); 0667 equation(out,"f47","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800"); 0668 equation(out,"f48","(cos(315*(pi/180))*(?f4 -10800)+sin(315*(pi/180))*(?f8 -10800))+10800"); 0669 equation(out,"f49","-(sin(315*(pi/180))*(?f4 -10800)-cos(315*(pi/180))*(?f8 -10800))+10800"); 0670 equation(out,"f50","(cos(315*(pi/180))*(?f4 -10800)+sin(315*(pi/180))*(?f9 -10800))+10800"); 0671 equation(out,"f51","-(sin(315*(pi/180))*(?f4 -10800)-cos(315*(pi/180))*(?f9 -10800))+10800"); 0672 equation(out,"f52","(cos(45*(pi/180))*($0 -10800)+sin(45*(pi/180))*(10800-10800))+10800"); 0673 equation(out,"f53","(cos(225*(pi/180))*($0 -10800)+sin(225*(pi/180))*(10800-10800))+10800"); 0674 equation(out,"f54","10800-$0 "); 0675 out.xml.startElement("draw:handle"); 0676 out.xml.addAttribute("draw:handle-position", "$0 10800"); 0677 out.xml.addAttribute("draw:handle-range-x-maximum", "10125"); 0678 out.xml.addAttribute("draw:handle-range-x-minimum", "2700"); 0679 out.xml.endElement(); // draw:handle 0680 out.xml.endElement(); // enhanced geometry 0681 out.xml.endElement(); // custom shape 0682 } 0683 0684 0685 void ODrawToOdf::processMoon(const MSO::OfficeArtSpContainer& o, Writer& out) { 0686 out.xml.startElement("draw:custom-shape"); 0687 processStyleAndText(o, out); 0688 0689 out.xml.startElement("draw:enhanced-geometry"); 0690 out.xml.addAttribute("draw:glue-points", "21600 0 0 10800 21600 21600 ?f0 10800"); 0691 processModifiers(o, out, QList<int>() << 10800); 0692 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0693 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"); 0694 out.xml.addAttribute("draw:type", "moon"); 0695 out.xml.addAttribute("draw:text-areas", "?f9 ?f8 ?f0 ?f10"); 0696 setShapeMirroring(o, out); 0697 equation(out,"f0","$0 "); 0698 equation(out,"f1","21600-$0 "); 0699 equation(out,"f2","?f1 /2"); 0700 equation(out,"f3","?f2 +$0 "); 0701 equation(out,"f4","$0 *1794/10000"); 0702 equation(out,"f5","21600-?f4 "); 0703 equation(out,"f6","$0 *400/18900"); 0704 equation(out,"f7","(cos(?f6 *(pi/180))*(0-10800)+sin(?f6 *(pi/180))*(10800-10800))+10800"); 0705 equation(out,"f8","-(sin(?f6 *(pi/180))*(0-10800)-cos(?f6 *(pi/180))*(10800-10800))+10800"); 0706 equation(out,"f9","?f7 +?f7 "); 0707 equation(out,"f10","21600-?f8 "); 0708 out.xml.startElement("draw:handle"); 0709 out.xml.addAttribute("draw:handle-position", "$0 10800"); 0710 out.xml.addAttribute("draw:handle-range-x-maximum", "18900"); 0711 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0712 out.xml.endElement(); // draw:handle 0713 out.xml.endElement(); // enhanced geometry 0714 out.xml.endElement(); // custom shape 0715 } 0716 0717 void ODrawToOdf::processNotchedCircularArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 0718 out.xml.startElement("draw:custom-shape"); 0719 processStyleAndText(o, out); 0720 0721 out.xml.startElement("draw:enhanced-geometry"); 0722 0723 // custom way for processing modifieres as this shape 0724 // return the AdjustValue, AdjustValue2 16-bit shifted 0725 const AdjustValue* val1 = get<AdjustValue>(o); 0726 const Adjust2Value* val2 = get<Adjust2Value>(o); 0727 QString modifiers = QString::number(val1 ? val1->adjustvalue >> 16 : 270); 0728 modifiers += QString(" %1").arg(val2 ? val2->adjust2value >> 16 : 0); 0729 out.xml.addAttribute("draw:modifiers", modifiers); 0730 0731 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0732 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"); 0733 out.xml.addAttribute("draw:type", "mso-spt100"); 0734 out.xml.addAttribute("draw:text-areas", "10799 0 21599 10799"); 0735 setShapeMirroring(o, out); 0736 equation(out,"f0","10800*sin($0 *(pi/180))"); 0737 equation(out,"f1","?f0 +10800"); 0738 equation(out,"f2","10800*cos($0 *(pi/180))"); 0739 equation(out,"f3","?f2 +10800"); 0740 equation(out,"f4","10800*sin($1 *(pi/180))"); 0741 equation(out,"f5","?f4 +10800"); 0742 equation(out,"f6","10800*cos($1 *(pi/180))"); 0743 equation(out,"f7","?f6 +10800"); 0744 out.xml.startElement("draw:handle"); 0745 out.xml.addAttribute("draw:handle-position", "10800 $0"); 0746 out.xml.addAttribute("draw:handle-radius-range-minimum", "10800"); 0747 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800"); 0748 out.xml.addAttribute("draw:handle-polar", "10800 10800"); 0749 out.xml.endElement(); // draw:handle 0750 out.xml.startElement("draw:handle"); 0751 out.xml.addAttribute("draw:handle-position", "10800 $1"); 0752 out.xml.addAttribute("draw:handle-radius-range-minimum", "10800"); 0753 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800"); 0754 out.xml.addAttribute("draw:handle-polar", "10800 10800"); 0755 out.xml.endElement(); // draw:handle 0756 out.xml.endElement(); // enhanced geometry 0757 out.xml.endElement(); // custom shape 0758 } 0759 0760 void ODrawToOdf::processBracketPair(const MSO::OfficeArtSpContainer& o, Writer& out) { 0761 out.xml.startElement("draw:custom-shape"); 0762 processStyleAndText(o, out); 0763 0764 out.xml.startElement("draw:enhanced-geometry"); 0765 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 0766 processModifiers(o, out, QList<int>() << 3700); 0767 out.xml.addAttribute("draw:path-stretchpoint-x", "10800"); 0768 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0769 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"); 0770 out.xml.addAttribute("draw:type", "bracket-pair"); 0771 out.xml.addAttribute("draw:text-areas", "?f8 ?f9 ?f10 ?f11"); 0772 setShapeMirroring(o, out); 0773 equation(out,"f0","left+$0 "); 0774 equation(out,"f1","top+$0 "); 0775 equation(out,"f2","bottom-$0 "); 0776 equation(out,"f3","right-$0 "); 0777 equation(out,"f4","-(sin(45*(pi/180))*($0 -10800)-cos(45*(pi/180))*(0-10800))+10800"); 0778 equation(out,"f5","?f4 -10800"); 0779 equation(out,"f6","-$0 "); 0780 equation(out,"f7","?f6 -?f5 "); 0781 equation(out,"f8","left-?f7 "); 0782 equation(out,"f9","top-?f7 "); 0783 equation(out,"f10","right+?f7 "); 0784 equation(out,"f11","bottom+?f7 "); 0785 equation(out,"f12","left-?f5 "); 0786 equation(out,"f13","top-?f5 "); 0787 equation(out,"f14","right+?f5 "); 0788 equation(out,"f15","bottom+?f5 "); 0789 out.xml.startElement("draw:handle"); 0790 out.xml.addAttribute("draw:handle-position", "$0 top"); 0791 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 0792 out.xml.addAttribute("draw:handle-switched", "true"); 0793 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0794 out.xml.endElement(); // draw:handle 0795 out.xml.endElement(); // enhanced geometry 0796 out.xml.endElement(); // custom shape 0797 } 0798 0799 0800 void ODrawToOdf::processBracePair(const MSO::OfficeArtSpContainer& o, Writer& out) { 0801 out.xml.startElement("draw:custom-shape"); 0802 processStyleAndText(o, out); 0803 0804 out.xml.startElement("draw:enhanced-geometry"); 0805 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 0806 processModifiers(o, out, QList<int>() << 1800); 0807 out.xml.addAttribute("draw:path-stretchpoint-x", "10800"); 0808 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0809 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"); 0810 out.xml.addAttribute("draw:type", "brace-pair"); 0811 out.xml.addAttribute("draw:text-areas", "?f11 ?f12 ?f13 ?f14"); 0812 setShapeMirroring(o, out); 0813 equation(out,"f0","left+$0 "); 0814 equation(out,"f1","top+$0 "); 0815 equation(out,"f2","bottom-$0 "); 0816 equation(out,"f3","right-$0 "); 0817 equation(out,"f4","?f0 *2"); 0818 equation(out,"f5","$0 *2"); 0819 equation(out,"f6","10800-$0 "); 0820 equation(out,"f7","21600-?f6 "); 0821 equation(out,"f8","right-?f5 "); 0822 equation(out,"f9","$0 /3"); 0823 equation(out,"f10","?f9 +$0 "); 0824 equation(out,"f11","left+?f10 "); 0825 equation(out,"f12","top+?f9 "); 0826 equation(out,"f13","right-?f10 "); 0827 equation(out,"f14","bottom-?f9 "); 0828 out.xml.startElement("draw:handle"); 0829 out.xml.addAttribute("draw:handle-position", "left $0"); 0830 out.xml.addAttribute("draw:handle-switched", "true"); 0831 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 0832 out.xml.addAttribute("draw:handle-range-y-maximum", "5400"); 0833 out.xml.endElement(); // draw:handle 0834 out.xml.endElement(); // enhanced geometry 0835 out.xml.endElement(); // custom shape 0836 } 0837 0838 0839 void ODrawToOdf::processPlaque(const MSO::OfficeArtSpContainer& o, Writer& out) { 0840 out.xml.startElement("draw:custom-shape"); 0841 processStyleAndText(o, out); 0842 0843 out.xml.startElement("draw:enhanced-geometry"); 0844 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 0845 processModifiers(o, out, QList<int>() << 3600); 0846 out.xml.addAttribute("draw:path-stretchpoint-x", "10800"); 0847 out.xml.addAttribute("draw:path-stretchpoint-y", "10800"); 0848 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0849 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"); 0850 out.xml.addAttribute("draw:type", "mso-spt21"); 0851 out.xml.addAttribute("draw:text-areas", "?f12 ?f13 ?f14 ?f15"); 0852 setShapeMirroring(o, out); 0853 equation(out,"f0","left+$0 "); 0854 equation(out,"f1","top+$0 "); 0855 equation(out,"f2","bottom-$0 "); 0856 equation(out,"f3","right-$0 "); 0857 equation(out,"f4","-(sin(45*(pi/180))*($0 -10800)-cos(45*(pi/180))*(0-10800))+10800"); 0858 equation(out,"f5","?f4 -10800"); 0859 equation(out,"f6","-$0 "); 0860 equation(out,"f7","?f6 -?f5 "); 0861 equation(out,"f8","left-?f7 "); 0862 equation(out,"f9","top-?f7 "); 0863 equation(out,"f10","right+?f7 "); 0864 equation(out,"f11","bottom+?f7 "); 0865 equation(out,"f12","left-?f5 "); 0866 equation(out,"f13","top-?f5 "); 0867 equation(out,"f14","right+?f5 "); 0868 equation(out,"f15","bottom+?f5 "); 0869 out.xml.startElement("draw:handle"); 0870 out.xml.addAttribute("draw:handle-position", "$0 top"); 0871 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 0872 out.xml.addAttribute("draw:handle-switched", "true"); 0873 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 0874 out.xml.endElement(); // draw:handle 0875 out.xml.endElement(); // enhanced geometry 0876 out.xml.endElement(); // custom shape 0877 } 0878 0879 0880 void ODrawToOdf::processLeftBracket(const MSO::OfficeArtSpContainer& o, Writer& out) { 0881 out.xml.startElement("draw:custom-shape"); 0882 processStyleAndText(o, out); 0883 0884 out.xml.startElement("draw:enhanced-geometry"); 0885 out.xml.addAttribute("draw:glue-points", "21600 0 0 10800 21600 21600"); 0886 processModifiers(o, out, QList<int>() << 1800); 0887 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0888 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"); 0889 out.xml.addAttribute("draw:type", "left-bracket"); 0890 out.xml.addAttribute("draw:text-areas", "6350 ?f3 21600 ?f4"); 0891 setShapeMirroring(o, out); 0892 equation(out,"f0","$0 /2"); 0893 equation(out,"f1","top+$0 "); 0894 equation(out,"f2","bottom-$0 "); 0895 equation(out,"f3","top+?f0 "); 0896 equation(out,"f4","bottom-?f0 "); 0897 out.xml.startElement("draw:handle"); 0898 out.xml.addAttribute("draw:handle-position", "left $0"); 0899 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 0900 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 0901 out.xml.endElement(); // draw:handle 0902 out.xml.endElement(); // enhanced geometry 0903 out.xml.endElement(); // custom shape 0904 } 0905 0906 0907 void ODrawToOdf::processRightBracket(const MSO::OfficeArtSpContainer& o, Writer& out) { 0908 out.xml.startElement("draw:custom-shape"); 0909 processStyleAndText(o, out); 0910 0911 out.xml.startElement("draw:enhanced-geometry"); 0912 out.xml.addAttribute("draw:glue-points", "0 0 0 21600 21600 10800"); 0913 processModifiers(o, out, QList<int>() << 1800); 0914 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0915 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"); 0916 out.xml.addAttribute("draw:type", "right-bracket"); 0917 out.xml.addAttribute("draw:text-areas", "0 ?f3 15150 ?f4"); 0918 setShapeMirroring(o, out); 0919 equation(out,"f0","$0 /2"); 0920 equation(out,"f1","top+$0 "); 0921 equation(out,"f2","bottom-$0 "); 0922 equation(out,"f3","top+?f0 "); 0923 equation(out,"f4","bottom-?f0 "); 0924 out.xml.startElement("draw:handle"); 0925 out.xml.addAttribute("draw:handle-position", "right $0"); 0926 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 0927 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 0928 out.xml.endElement(); // draw:handle 0929 out.xml.endElement(); // enhanced geometry 0930 out.xml.endElement(); // custom shape 0931 } 0932 0933 0934 void ODrawToOdf::processLeftBrace(const MSO::OfficeArtSpContainer& o, Writer& out) { 0935 out.xml.startElement("draw:custom-shape"); 0936 processStyleAndText(o, out); 0937 0938 out.xml.startElement("draw:enhanced-geometry"); 0939 out.xml.addAttribute("draw:glue-points", "21600 0 0 10800 21600 21600"); 0940 processModifiers(o, out, QList<int>() << 1800<< 10800); 0941 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0942 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"); 0943 out.xml.addAttribute("draw:type", "left-brace"); 0944 out.xml.addAttribute("draw:text-areas", "13800 ?f9 21600 ?f10"); 0945 setShapeMirroring(o, out); 0946 equation(out,"f0","$0 /2"); 0947 equation(out,"f1","$0 "); 0948 equation(out,"f2","?f4 -$0 "); 0949 equation(out,"f3","?f4 -?f0 "); 0950 equation(out,"f4","$1 "); 0951 equation(out,"f5","?f4 +?f0 "); 0952 equation(out,"f6","?f4 +$0 "); 0953 equation(out,"f7","21600-$0 "); 0954 equation(out,"f8","21600-?f0 "); 0955 equation(out,"f9","$0 *10000/31953"); 0956 equation(out,"f10","21600-?f9 "); 0957 out.xml.startElement("draw:handle"); 0958 out.xml.addAttribute("draw:handle-position", "10800 $0"); 0959 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 0960 out.xml.addAttribute("draw:handle-range-y-maximum", "5400"); 0961 out.xml.endElement(); // draw:handle 0962 out.xml.startElement("draw:handle"); 0963 out.xml.addAttribute("draw:handle-position", "left $1"); 0964 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 0965 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 0966 out.xml.endElement(); // draw:handle 0967 out.xml.endElement(); // enhanced geometry 0968 out.xml.endElement(); // custom shape 0969 } 0970 0971 0972 void ODrawToOdf::processRightBrace(const MSO::OfficeArtSpContainer& o, Writer& out) { 0973 out.xml.startElement("draw:custom-shape"); 0974 processStyleAndText(o, out); 0975 0976 out.xml.startElement("draw:enhanced-geometry"); 0977 out.xml.addAttribute("draw:glue-points", "0 0 0 21600 21600 10800"); 0978 processModifiers(o, out, QList<int>() << 1800<< 10800); 0979 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 0980 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"); 0981 out.xml.addAttribute("draw:type", "right-brace"); 0982 out.xml.addAttribute("draw:text-areas", "0 ?f9 7800 ?f10"); 0983 setShapeMirroring(o, out); 0984 equation(out,"f0","$0 /2"); 0985 equation(out,"f1","$0 "); 0986 equation(out,"f2","?f4 -$0 "); 0987 equation(out,"f3","?f4 -?f0 "); 0988 equation(out,"f4","$1 "); 0989 equation(out,"f5","?f4 +?f0 "); 0990 equation(out,"f6","?f4 +$0 "); 0991 equation(out,"f7","21600-$0 "); 0992 equation(out,"f8","21600-?f0 "); 0993 equation(out,"f9","$0 *10000/31953"); 0994 equation(out,"f10","21600-?f9 "); 0995 out.xml.startElement("draw:handle"); 0996 out.xml.addAttribute("draw:handle-position", "10800 $0"); 0997 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 0998 out.xml.addAttribute("draw:handle-range-y-maximum", "5400"); 0999 out.xml.endElement(); // draw:handle 1000 out.xml.startElement("draw:handle"); 1001 out.xml.addAttribute("draw:handle-position", "right $1"); 1002 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1003 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 1004 out.xml.endElement(); // draw:handle 1005 out.xml.endElement(); // enhanced geometry 1006 out.xml.endElement(); // custom shape 1007 } 1008 1009 1010 void ODrawToOdf::processArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1011 out.xml.startElement("draw:custom-shape"); 1012 processStyleAndText(o, out); 1013 1014 out.xml.startElement("draw:enhanced-geometry"); 1015 processModifiers(o, out, QList<int>() << 16200<< 5400); 1016 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1017 out.xml.addAttribute("draw:enhanced-path", "M 0 ?f0 L ?f1 ?f0 ?f1 0 21600 10800 ?f1 21600 ?f1 ?f2 0 ?f2 Z N"); 1018 out.xml.addAttribute("draw:type", "right-arrow"); 1019 out.xml.addAttribute("draw:text-areas", "0 ?f0 ?f5 ?f2"); 1020 setShapeMirroring(o, out); 1021 equation(out,"f0","$1 "); 1022 equation(out,"f1","$0 "); 1023 equation(out,"f2","21600-$1 "); 1024 equation(out,"f3","21600-?f1 "); 1025 equation(out,"f4","?f3 *?f0 /10800"); 1026 equation(out,"f5","?f1 +?f4 "); 1027 equation(out,"f6","?f1 *?f0 /10800"); 1028 equation(out,"f7","?f1 -?f6 "); 1029 out.xml.startElement("draw:handle"); 1030 out.xml.addAttribute("draw:handle-position", "$0 $1"); 1031 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1032 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1033 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1034 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1035 out.xml.endElement(); // draw:handle 1036 out.xml.endElement(); // enhanced geometry 1037 out.xml.endElement(); // custom shape 1038 } 1039 1040 1041 void ODrawToOdf::processLeftArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1042 out.xml.startElement("draw:custom-shape"); 1043 processStyleAndText(o, out); 1044 1045 out.xml.startElement("draw:enhanced-geometry"); 1046 processModifiers(o, out, QList<int>() << 5400<< 5400); 1047 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1048 out.xml.addAttribute("draw:enhanced-path", "M 21600 ?f0 L ?f1 ?f0 ?f1 0 0 10800 ?f1 21600 ?f1 ?f2 21600 ?f2 Z N"); 1049 out.xml.addAttribute("draw:type", "left-arrow"); 1050 out.xml.addAttribute("draw:text-areas", "?f7 ?f0 21600 ?f2"); 1051 setShapeMirroring(o, out); 1052 equation(out,"f0","$1 "); 1053 equation(out,"f1","$0 "); 1054 equation(out,"f2","21600-$1 "); 1055 equation(out,"f3","21600-?f1 "); 1056 equation(out,"f4","?f3 *?f0 /10800"); 1057 equation(out,"f5","?f1 +?f4 "); 1058 equation(out,"f6","?f1 *?f0 /10800"); 1059 equation(out,"f7","?f1 -?f6 "); 1060 out.xml.startElement("draw:handle"); 1061 out.xml.addAttribute("draw:handle-position", "$0 $1"); 1062 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1063 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1064 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1065 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1066 out.xml.endElement(); // draw:handle 1067 out.xml.endElement(); // enhanced geometry 1068 out.xml.endElement(); // custom shape 1069 } 1070 1071 1072 void ODrawToOdf::processUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1073 out.xml.startElement("draw:custom-shape"); 1074 processStyleAndText(o, out); 1075 1076 out.xml.startElement("draw:enhanced-geometry"); 1077 processModifiers(o, out, QList<int>() << 5400<< 5400); 1078 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1079 out.xml.addAttribute("draw:enhanced-path", "M ?f0 21600 L ?f0 ?f1 0 ?f1 10800 0 21600 ?f1 ?f2 ?f1 ?f2 21600 Z N"); 1080 out.xml.addAttribute("draw:type", "up-arrow"); 1081 out.xml.addAttribute("draw:text-areas", "?f0 ?f7 ?f2 21600"); 1082 setShapeMirroring(o, out); 1083 equation(out,"f0","$1 "); 1084 equation(out,"f1","$0 "); 1085 equation(out,"f2","21600-$1 "); 1086 equation(out,"f3","21600-?f1 "); 1087 equation(out,"f4","?f3 *?f0 /10800"); 1088 equation(out,"f5","?f1 +?f4 "); 1089 equation(out,"f6","?f1 *?f0 /10800"); 1090 equation(out,"f7","?f1 -?f6 "); 1091 out.xml.startElement("draw:handle"); 1092 out.xml.addAttribute("draw:handle-position", "$1 $0"); 1093 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1094 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1095 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 1096 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1097 out.xml.endElement(); // draw:handle 1098 out.xml.endElement(); // enhanced geometry 1099 out.xml.endElement(); // custom shape 1100 } 1101 1102 1103 void ODrawToOdf::processDownArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1104 out.xml.startElement("draw:custom-shape"); 1105 processStyleAndText(o, out); 1106 1107 out.xml.startElement("draw:enhanced-geometry"); 1108 processModifiers(o, out, QList<int>() << 16200<< 5400); 1109 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1110 out.xml.addAttribute("draw:enhanced-path", "M ?f0 0 L ?f0 ?f1 0 ?f1 10800 21600 21600 ?f1 ?f2 ?f1 ?f2 0 Z N"); 1111 out.xml.addAttribute("draw:type", "down-arrow"); 1112 out.xml.addAttribute("draw:text-areas", "?f0 0 ?f2 ?f5"); 1113 setShapeMirroring(o, out); 1114 equation(out,"f0","$1 "); 1115 equation(out,"f1","$0 "); 1116 equation(out,"f2","21600-$1 "); 1117 equation(out,"f3","21600-?f1 "); 1118 equation(out,"f4","?f3 *?f0 /10800"); 1119 equation(out,"f5","?f1 +?f4 "); 1120 equation(out,"f6","?f1 *?f0 /10800"); 1121 equation(out,"f7","?f1 -?f6 "); 1122 out.xml.startElement("draw:handle"); 1123 out.xml.addAttribute("draw:handle-position", "$1 $0"); 1124 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1125 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1126 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 1127 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1128 out.xml.endElement(); // draw:handle 1129 out.xml.endElement(); // enhanced geometry 1130 out.xml.endElement(); // custom shape 1131 } 1132 1133 1134 void ODrawToOdf::processLeftRightArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1135 out.xml.startElement("draw:custom-shape"); 1136 processStyleAndText(o, out); 1137 1138 out.xml.startElement("draw:enhanced-geometry"); 1139 processModifiers(o, out, QList<int>() << 4300<< 5400); 1140 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1141 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"); 1142 out.xml.addAttribute("draw:type", "left-right-arrow"); 1143 out.xml.addAttribute("draw:text-areas", "?f5 ?f1 ?f6 ?f3"); 1144 setShapeMirroring(o, out); 1145 equation(out,"f0","$0 "); 1146 equation(out,"f1","$1 "); 1147 equation(out,"f2","21600-$0 "); 1148 equation(out,"f3","21600-$1 "); 1149 equation(out,"f4","10800-$1 "); 1150 equation(out,"f5","$0 *?f4 /10800"); 1151 equation(out,"f6","21600-?f5 "); 1152 equation(out,"f7","10800-$0 "); 1153 equation(out,"f8","$1 *?f7 /10800"); 1154 equation(out,"f9","21600-?f8 "); 1155 out.xml.startElement("draw:handle"); 1156 out.xml.addAttribute("draw:handle-position", "$0 $1"); 1157 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1158 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1159 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1160 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1161 out.xml.endElement(); // draw:handle 1162 out.xml.endElement(); // enhanced geometry 1163 out.xml.endElement(); // custom shape 1164 } 1165 1166 1167 void ODrawToOdf::processUpDownArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1168 out.xml.startElement("draw:custom-shape"); 1169 processStyleAndText(o, out); 1170 1171 out.xml.startElement("draw:enhanced-geometry"); 1172 processModifiers(o, out, QList<int>() << 5400<< 4300); 1173 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1174 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"); 1175 out.xml.addAttribute("draw:type", "up-down-arrow"); 1176 out.xml.addAttribute("draw:text-areas", "?f0 ?f8 ?f2 ?f9"); 1177 setShapeMirroring(o, out); 1178 equation(out,"f0","$0 "); 1179 equation(out,"f1","$1 "); 1180 equation(out,"f2","21600-$0 "); 1181 equation(out,"f3","21600-$1 "); 1182 equation(out,"f4","10800-$1 "); 1183 equation(out,"f5","$0 *?f4 /10800"); 1184 equation(out,"f6","21600-?f5 "); 1185 equation(out,"f7","10800-$0 "); 1186 equation(out,"f8","$1 *?f7 /10800"); 1187 equation(out,"f9","21600-?f8 "); 1188 out.xml.startElement("draw:handle"); 1189 out.xml.addAttribute("draw:handle-position", "$0 $1"); 1190 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1191 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1192 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1193 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1194 out.xml.endElement(); // draw:handle 1195 out.xml.endElement(); // enhanced geometry 1196 out.xml.endElement(); // custom shape 1197 } 1198 1199 1200 void ODrawToOdf::processQuadArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1201 out.xml.startElement("draw:custom-shape"); 1202 processStyleAndText(o, out); 1203 1204 out.xml.startElement("draw:enhanced-geometry"); 1205 processModifiers(o, out, QList<int>() << 6500<< 8600<< 4300); 1206 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1207 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"); 1208 out.xml.addAttribute("draw:type", "quad-arrow"); 1209 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600"); 1210 setShapeMirroring(o, out); 1211 equation(out,"f0","$2 "); 1212 equation(out,"f1","$0 "); 1213 equation(out,"f2","$1 "); 1214 equation(out,"f3","21600-$0 "); 1215 equation(out,"f4","21600-$1 "); 1216 equation(out,"f5","21600-$2 "); 1217 out.xml.startElement("draw:handle"); 1218 out.xml.addAttribute("draw:handle-position", "$1 $2"); 1219 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1220 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1221 out.xml.addAttribute("draw:handle-range-y-maximum", "$0"); 1222 out.xml.addAttribute("draw:handle-range-x-minimum", "$0"); 1223 out.xml.endElement(); // draw:handle 1224 out.xml.startElement("draw:handle"); 1225 out.xml.addAttribute("draw:handle-position", "$0 top"); 1226 out.xml.addAttribute("draw:handle-range-x-maximum", "$1"); 1227 out.xml.addAttribute("draw:handle-range-x-minimum", "$2"); 1228 out.xml.endElement(); // draw:handle 1229 out.xml.endElement(); // enhanced geometry 1230 out.xml.endElement(); // custom shape 1231 } 1232 1233 1234 void ODrawToOdf::processLeftRightUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1235 out.xml.startElement("draw:custom-shape"); 1236 processStyleAndText(o, out); 1237 1238 out.xml.startElement("draw:enhanced-geometry"); 1239 processModifiers(o, out, QList<int>() << 6500<< 8600<< 6200); 1240 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1241 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"); 1242 out.xml.addAttribute("draw:type", "mso-spt182"); 1243 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600"); 1244 setShapeMirroring(o, out); 1245 equation(out,"f0","$0 "); 1246 equation(out,"f1","$1 "); 1247 equation(out,"f2","?f3 *$2 /21600"); 1248 equation(out,"f3","21600-$0 "); 1249 equation(out,"f4","21600-$1 "); 1250 equation(out,"f5","21600-?f2 "); 1251 out.xml.startElement("draw:handle"); 1252 out.xml.addAttribute("draw:handle-position", "$1 $2"); 1253 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1254 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1255 out.xml.addAttribute("draw:handle-range-y-maximum", "$0"); 1256 out.xml.addAttribute("draw:handle-range-x-minimum", "$0"); 1257 out.xml.endElement(); // draw:handle 1258 out.xml.startElement("draw:handle"); 1259 out.xml.addAttribute("draw:handle-position", "$0 top"); 1260 out.xml.addAttribute("draw:handle-range-x-maximum", "$1"); 1261 out.xml.addAttribute("draw:handle-range-x-minimum", "$2"); 1262 out.xml.endElement(); // draw:handle 1263 out.xml.endElement(); // enhanced geometry 1264 out.xml.endElement(); // custom shape 1265 } 1266 1267 1268 void ODrawToOdf::processBentArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1269 out.xml.startElement("draw:custom-shape"); 1270 processStyleAndText(o, out); 1271 1272 out.xml.startElement("draw:enhanced-geometry"); 1273 processModifiers(o, out, QList<int>() << 15100<< 2900); 1274 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1275 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"); 1276 out.xml.addAttribute("draw:type", "mso-spt91"); 1277 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600"); 1278 setShapeMirroring(o, out); 1279 equation(out,"f0","$0 "); 1280 equation(out,"f1","$1 "); 1281 equation(out,"f2","12158-$1 "); 1282 equation(out,"f3","6079-$1 "); 1283 equation(out,"f4","?f3 *2"); 1284 out.xml.startElement("draw:handle"); 1285 out.xml.addAttribute("draw:handle-position", "$0 $1"); 1286 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1287 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1288 out.xml.addAttribute("draw:handle-range-y-maximum", "6079"); 1289 out.xml.addAttribute("draw:handle-range-x-minimum", "12427"); 1290 out.xml.endElement(); // draw:handle 1291 out.xml.endElement(); // enhanced geometry 1292 out.xml.endElement(); // custom shape 1293 } 1294 1295 1296 void ODrawToOdf::processUturnArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1297 out.xml.startElement("draw:custom-shape"); 1298 processStyleAndText(o, out); 1299 1300 out.xml.startElement("draw:enhanced-geometry"); 1301 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1302 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"); 1303 out.xml.addAttribute("draw:type", "mso-spt101"); 1304 out.xml.addAttribute("draw:text-areas", "0 8280 6110 21600"); 1305 setShapeMirroring(o, out); 1306 out.xml.endElement(); // enhanced geometry 1307 out.xml.endElement(); // custom shape 1308 } 1309 1310 1311 void ODrawToOdf::processLeftUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1312 out.xml.startElement("draw:custom-shape"); 1313 processStyleAndText(o, out); 1314 1315 out.xml.startElement("draw:enhanced-geometry"); 1316 processModifiers(o, out, QList<int>() << 9340<< 18500<< 6200); 1317 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1318 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"); 1319 out.xml.addAttribute("draw:type", "mso-spt89"); 1320 out.xml.addAttribute("draw:text-areas", "?f2 ?f7 ?f1 ?f1 ?f7 ?f2 ?f1 ?f1"); 1321 setShapeMirroring(o, out); 1322 equation(out,"f0","$0 "); 1323 equation(out,"f1","$1 "); 1324 equation(out,"f2","$2 "); 1325 equation(out,"f3","21600-$0 "); 1326 equation(out,"f4","?f3 /2"); 1327 equation(out,"f5","$0 +?f4 "); 1328 equation(out,"f6","21600-$1 "); 1329 equation(out,"f7","$0 +?f6 "); 1330 equation(out,"f8","21600-?f6 "); 1331 equation(out,"f9","?f8 -?f6 "); 1332 out.xml.startElement("draw:handle"); 1333 out.xml.addAttribute("draw:handle-position", "$1 $2"); 1334 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1335 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1336 out.xml.addAttribute("draw:handle-range-y-maximum", "$0"); 1337 out.xml.addAttribute("draw:handle-range-x-minimum", "?f5"); 1338 out.xml.endElement(); // draw:handle 1339 out.xml.startElement("draw:handle"); 1340 out.xml.addAttribute("draw:handle-position", "$0 top"); 1341 out.xml.addAttribute("draw:handle-range-x-maximum", "?f9"); 1342 out.xml.addAttribute("draw:handle-range-x-minimum", "$2"); 1343 out.xml.endElement(); // draw:handle 1344 out.xml.endElement(); // enhanced geometry 1345 out.xml.endElement(); // custom shape 1346 } 1347 1348 1349 void ODrawToOdf::processBentUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1350 out.xml.startElement("draw:custom-shape"); 1351 processStyleAndText(o, out); 1352 1353 out.xml.startElement("draw:enhanced-geometry"); 1354 processModifiers(o, out, QList<int>() << 9340<< 18500<< 7200); 1355 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1356 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"); 1357 out.xml.addAttribute("draw:type", "mso-spt90"); 1358 out.xml.addAttribute("draw:text-areas", "?f2 ?f7 ?f1 ?f1 ?f7 ?f2 ?f1 ?f1"); 1359 setShapeMirroring(o, out); 1360 equation(out,"f0","$0 "); 1361 equation(out,"f1","$1 "); 1362 equation(out,"f2","$2 "); 1363 equation(out,"f3","21600-$0 "); 1364 equation(out,"f4","?f3 /2"); 1365 equation(out,"f5","$0 +?f4 "); 1366 equation(out,"f6","21600-$1 "); 1367 equation(out,"f7","$0 +?f6 "); 1368 equation(out,"f8","?f7 +?f6 "); 1369 equation(out,"f9","21600-?f6 "); 1370 equation(out,"f10","?f9 -?f6 "); 1371 out.xml.startElement("draw:handle"); 1372 out.xml.addAttribute("draw:handle-position", "$1 $2"); 1373 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1374 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1375 out.xml.addAttribute("draw:handle-range-y-maximum", "$0"); 1376 out.xml.addAttribute("draw:handle-range-x-minimum", "?f5"); 1377 out.xml.endElement(); // draw:handle 1378 out.xml.startElement("draw:handle"); 1379 out.xml.addAttribute("draw:handle-position", "$0 top"); 1380 out.xml.addAttribute("draw:handle-range-x-maximum", "?f10"); 1381 out.xml.addAttribute("draw:handle-range-x-minimum", "$2"); 1382 out.xml.endElement(); // draw:handle 1383 out.xml.endElement(); // enhanced geometry 1384 out.xml.endElement(); // custom shape 1385 } 1386 1387 1388 void ODrawToOdf::processCurvedRightArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1389 out.xml.startElement("draw:custom-shape"); 1390 processStyleAndText(o, out); 1391 1392 out.xml.startElement("draw:enhanced-geometry"); 1393 out.xml.addAttribute("draw:glue-points", "0 ?f17 ?f2 ?f14 ?f22 ?f8 ?f2 ?f12 ?f22 ?f16"); 1394 processModifiers(o, out, QList<int>() << 12960<< 19440<< 14400); 1395 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1396 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"); 1397 out.xml.addAttribute("draw:type", "mso-spt102"); 1398 out.xml.addAttribute("draw:text-areas", "?f47 ?f45 ?f48 ?f46"); 1399 setShapeMirroring(o, out); 1400 equation(out,"f0","$0 "); 1401 equation(out,"f1","$1 "); 1402 equation(out,"f2","$2 "); 1403 equation(out,"f3","$0 +21600-$1 "); 1404 equation(out,"f4","?f3 /2"); 1405 equation(out,"f5","$1 +$1 -21600"); 1406 equation(out,"f6","?f5 +$1 -$0 "); 1407 equation(out,"f7","?f6 /2"); 1408 equation(out,"f8","(21600+$0 )/2"); 1409 equation(out,"f9","21600-$2 "); 1410 equation(out,"f10","?f4 *sqrt(1-(?f9 /21600)*(?f9 /21600))"); 1411 equation(out,"f11","?f4 +?f10 "); 1412 equation(out,"f12","?f11 +$1 -21600"); 1413 equation(out,"f13","?f7 +?f10 "); 1414 equation(out,"f14","?f12 +21600-$0 "); 1415 equation(out,"f15","?f5 -$0 "); 1416 equation(out,"f16","?f15 /2"); 1417 equation(out,"f17","(?f4 +?f7 )/2"); 1418 equation(out,"f18","$0 +$1 -21600"); 1419 equation(out,"f19","?f18 /2"); 1420 equation(out,"f20","?f17 -?f19 "); 1421 equation(out,"f21","21600"); 1422 equation(out,"f22","21600"); 1423 equation(out,"f23","21600*2"); 1424 equation(out,"f24","?f17 -?f4 "); 1425 equation(out,"f25","21600*sqrt(1-(?f24 /?f4 )*(?f24 /?f4 ))"); 1426 equation(out,"f26","21600-?f25 "); 1427 equation(out,"f27","?f8 +128"); 1428 equation(out,"f28","?f5 /2"); 1429 equation(out,"f29","?f5 -128"); 1430 equation(out,"f30","$0 +?f17 -?f12 "); 1431 equation(out,"f31","21600*sqrt(1-(?f20 /?f4 )*(?f20 /?f4 ))"); 1432 equation(out,"f32","21600-$0 "); 1433 equation(out,"f33","?f32 /2"); 1434 equation(out,"f34","21600*21600"); 1435 equation(out,"f35","?f9 *?f9 "); 1436 equation(out,"f36","?f34 -?f35 "); 1437 equation(out,"f37","sqrt(?f36 )"); 1438 equation(out,"f38","?f37 +21600"); 1439 equation(out,"f39","21600*21600/?f38 "); 1440 equation(out,"f40","?f39 +64"); 1441 equation(out,"f41","$0 /2"); 1442 equation(out,"f42","21600*sqrt(1-(?f33 /?f41 )*(?f33 /?f41 ))"); 1443 equation(out,"f43","21600-?f42 "); 1444 equation(out,"f44","?f43 +64"); 1445 equation(out,"f45","?f4 /2"); 1446 equation(out,"f46","$1 -?f45 "); 1447 equation(out,"f47","21600*2195/16384"); 1448 equation(out,"f48","21600*14189/16384"); 1449 out.xml.startElement("draw:handle"); 1450 out.xml.addAttribute("draw:handle-position", "21600 $0"); 1451 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1452 out.xml.addAttribute("draw:handle-range-y-minimum", "?f40"); 1453 out.xml.addAttribute("draw:handle-range-y-maximum", "?f29"); 1454 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1455 out.xml.endElement(); // draw:handle 1456 out.xml.startElement("draw:handle"); 1457 out.xml.addAttribute("draw:handle-position", "21600 $1"); 1458 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1459 out.xml.addAttribute("draw:handle-range-y-minimum", "?f27"); 1460 out.xml.addAttribute("draw:handle-range-y-maximum", "?f21"); 1461 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1462 out.xml.endElement(); // draw:handle 1463 out.xml.startElement("draw:handle"); 1464 out.xml.addAttribute("draw:handle-position", "$2 21600"); 1465 out.xml.addAttribute("draw:handle-range-x-maximum", "?f22"); 1466 out.xml.addAttribute("draw:handle-range-y-minimum", "3375"); 1467 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 1468 out.xml.addAttribute("draw:handle-range-x-minimum", "?f44"); 1469 out.xml.endElement(); // draw:handle 1470 out.xml.endElement(); // enhanced geometry 1471 out.xml.endElement(); // custom shape 1472 } 1473 1474 1475 void ODrawToOdf::processCurvedLeftArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1476 out.xml.startElement("draw:custom-shape"); 1477 processStyleAndText(o, out); 1478 1479 out.xml.startElement("draw:enhanced-geometry"); 1480 out.xml.addAttribute("draw:glue-points", "0 ?f15 ?f2 ?f11 0 ?f8 ?f2 ?f13 ?f21 ?f16"); 1481 processModifiers(o, out, QList<int>() << 12960<< 19440<< 7200); 1482 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1483 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"); 1484 out.xml.addAttribute("draw:type", "mso-spt103"); 1485 out.xml.addAttribute("draw:text-areas", "?f43 ?f41 ?f44 ?f42"); 1486 setShapeMirroring(o, out); 1487 equation(out,"f0","$0 "); 1488 equation(out,"f1","$1 "); 1489 equation(out,"f2","$2 "); 1490 equation(out,"f3","$0 +21600-$1 "); 1491 equation(out,"f4","?f3 /2"); 1492 equation(out,"f5","$1 +$1 -21600"); 1493 equation(out,"f6","?f5 +$1 -$0 "); 1494 equation(out,"f7","?f6 /2"); 1495 equation(out,"f8","(21600+$0 )/2"); 1496 equation(out,"f9","?f4 *sqrt(1-($2 /21600)*($2 /21600))"); 1497 equation(out,"f10","?f4 +?f9 "); 1498 equation(out,"f11","?f10 +$1 -21600"); 1499 equation(out,"f12","?f7 +?f9 "); 1500 equation(out,"f13","?f11 +21600-$0 "); 1501 equation(out,"f14","?f5 -$0 "); 1502 equation(out,"f15","?f14 /2"); 1503 equation(out,"f16","(?f4 +?f7 )/2"); 1504 equation(out,"f17","$0 +$1 -21600"); 1505 equation(out,"f18","?f17 /2"); 1506 equation(out,"f19","?f16 -?f18 "); 1507 equation(out,"f20","21600"); 1508 equation(out,"f21","21600"); 1509 equation(out,"f22","-21600"); 1510 equation(out,"f23","?f16 -?f4 "); 1511 equation(out,"f24","21600*sqrt(1-(?f23 /?f4 )*(?f23 /?f4 ))"); 1512 equation(out,"f25","?f8 +128"); 1513 equation(out,"f26","?f5 /2"); 1514 equation(out,"f27","?f5 -128"); 1515 equation(out,"f28","$0 +?f16 -?f11 "); 1516 equation(out,"f29","21600-$0 "); 1517 equation(out,"f30","?f29 /2"); 1518 equation(out,"f31","21600*21600"); 1519 equation(out,"f32","$2 *$2 "); 1520 equation(out,"f33","?f31 -?f32 "); 1521 equation(out,"f34","sqrt(?f33 )"); 1522 equation(out,"f35","?f34 +21600"); 1523 equation(out,"f36","21600*21600/?f35 "); 1524 equation(out,"f37","?f36 +64"); 1525 equation(out,"f38","$0 /2"); 1526 equation(out,"f39","21600*sqrt(1-(?f30 /?f38 )*(?f30 /?f38 ))"); 1527 equation(out,"f40","?f39 -64"); 1528 equation(out,"f41","?f4 /2"); 1529 equation(out,"f42","$1 -?f41 "); 1530 equation(out,"f43","21600*2195/16384"); 1531 equation(out,"f44","21600*14189/16384"); 1532 out.xml.startElement("draw:handle"); 1533 out.xml.addAttribute("draw:handle-position", "left $0"); 1534 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1535 out.xml.addAttribute("draw:handle-range-y-minimum", "?f37"); 1536 out.xml.addAttribute("draw:handle-range-y-maximum", "?f27"); 1537 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1538 out.xml.endElement(); // draw:handle 1539 out.xml.startElement("draw:handle"); 1540 out.xml.addAttribute("draw:handle-position", "left $1"); 1541 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1542 out.xml.addAttribute("draw:handle-range-y-minimum", "?f25"); 1543 out.xml.addAttribute("draw:handle-range-y-maximum", "?f20"); 1544 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1545 out.xml.endElement(); // draw:handle 1546 out.xml.startElement("draw:handle"); 1547 out.xml.addAttribute("draw:handle-position", "$2 21600"); 1548 out.xml.addAttribute("draw:handle-range-x-maximum", "?f40"); 1549 out.xml.addAttribute("draw:handle-range-y-minimum", "3375"); 1550 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 1551 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1552 out.xml.endElement(); // draw:handle 1553 out.xml.endElement(); // enhanced geometry 1554 out.xml.endElement(); // custom shape 1555 } 1556 1557 1558 void ODrawToOdf::processCurvedUpArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1559 out.xml.startElement("draw:custom-shape"); 1560 processStyleAndText(o, out); 1561 1562 out.xml.startElement("draw:enhanced-geometry"); 1563 out.xml.addAttribute("draw:glue-points", "?f8 0 ?f11 ?f2 ?f15 0 ?f16 ?f21 ?f13 ?f2"); 1564 processModifiers(o, out, QList<int>() << 12960<< 19440<< 7200); 1565 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1566 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"); 1567 out.xml.addAttribute("draw:type", "mso-spt104"); 1568 out.xml.addAttribute("draw:text-areas", "?f41 ?f43 ?f42 ?f44"); 1569 setShapeMirroring(o, out); 1570 equation(out,"f0","$0 "); 1571 equation(out,"f1","$1 "); 1572 equation(out,"f2","$2 "); 1573 equation(out,"f3","$0 +21600-$1 "); 1574 equation(out,"f4","?f3 /2"); 1575 equation(out,"f5","$1 +$1 -21600"); 1576 equation(out,"f6","?f5 +$1 -$0 "); 1577 equation(out,"f7","?f6 /2"); 1578 equation(out,"f8","(21600+$0 )/2"); 1579 equation(out,"f9","?f4 *sqrt(1-($2 /21600)*($2 /21600))"); 1580 equation(out,"f10","?f4 +?f9 "); 1581 equation(out,"f11","?f10 +$1 -21600"); 1582 equation(out,"f12","?f7 +?f9 "); 1583 equation(out,"f13","?f11 +21600-$0 "); 1584 equation(out,"f14","?f5 -$0 "); 1585 equation(out,"f15","?f14 /2"); 1586 equation(out,"f16","(?f4 +?f7 )/2"); 1587 equation(out,"f17","$0 +$1 -21600"); 1588 equation(out,"f18","?f17 /2"); 1589 equation(out,"f19","?f16 -?f18 "); 1590 equation(out,"f20","21600"); 1591 equation(out,"f21","21600"); 1592 equation(out,"f22","-21600"); 1593 equation(out,"f23","?f16 -?f4 "); 1594 equation(out,"f24","21600*sqrt(1-(?f23 /?f4 )*(?f23 /?f4 ))"); 1595 equation(out,"f25","?f8 +128"); 1596 equation(out,"f26","?f5 /2"); 1597 equation(out,"f27","?f5 -128"); 1598 equation(out,"f28","$0 +?f16 -?f11 "); 1599 equation(out,"f29","21600-$0 "); 1600 equation(out,"f30","?f29 /2"); 1601 equation(out,"f31","21600*21600"); 1602 equation(out,"f32","$2 *$2 "); 1603 equation(out,"f33","?f31 -?f32 "); 1604 equation(out,"f34","sqrt(?f33 )"); 1605 equation(out,"f35","?f34 +21600"); 1606 equation(out,"f36","21600*21600/?f35 "); 1607 equation(out,"f37","?f36 +64"); 1608 equation(out,"f38","$0 /2"); 1609 equation(out,"f39","21600*sqrt(1-(?f30 /?f38 )*(?f30 /?f38 ))"); 1610 equation(out,"f40","?f39 -64"); 1611 equation(out,"f41","?f4 /2"); 1612 equation(out,"f42","$1 -?f41 "); 1613 equation(out,"f43","21600*2195/16384"); 1614 equation(out,"f44","21600*14189/16384"); 1615 out.xml.startElement("draw:handle"); 1616 out.xml.addAttribute("draw:handle-position", "$0 top"); 1617 out.xml.addAttribute("draw:handle-range-x-maximum", "?f27"); 1618 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1619 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1620 out.xml.addAttribute("draw:handle-range-x-minimum", "?f37"); 1621 out.xml.endElement(); // draw:handle 1622 out.xml.startElement("draw:handle"); 1623 out.xml.addAttribute("draw:handle-position", "$1 top"); 1624 out.xml.addAttribute("draw:handle-range-x-maximum", "?f20"); 1625 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1626 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1627 out.xml.addAttribute("draw:handle-range-x-minimum", "?f25"); 1628 out.xml.endElement(); // draw:handle 1629 out.xml.startElement("draw:handle"); 1630 out.xml.addAttribute("draw:handle-position", "21600 $2"); 1631 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1632 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1633 out.xml.addAttribute("draw:handle-range-y-maximum", "?f40"); 1634 out.xml.addAttribute("draw:handle-range-x-minimum", "3375"); 1635 out.xml.endElement(); // draw:handle 1636 out.xml.endElement(); // enhanced geometry 1637 out.xml.endElement(); // custom shape 1638 } 1639 1640 1641 void ODrawToOdf::processCurvedDownArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1642 out.xml.startElement("draw:custom-shape"); 1643 processStyleAndText(o, out); 1644 1645 out.xml.startElement("draw:enhanced-geometry"); 1646 out.xml.addAttribute("draw:glue-points", "?f17 0 ?f16 21600 ?f12 ?f2 ?f8 21600 ?f14 ?f2"); 1647 processModifiers(o, out, QList<int>() << 12960<< 19440<< 14400); 1648 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1649 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"); 1650 out.xml.addAttribute("draw:type", "mso-spt105"); 1651 out.xml.addAttribute("draw:text-areas", "?f43 ?f45 ?f44 ?f46"); 1652 setShapeMirroring(o, out); 1653 equation(out,"f0","$0 "); 1654 equation(out,"f1","$1 "); 1655 equation(out,"f2","$2 "); 1656 equation(out,"f3","$0 +21600-$1 "); 1657 equation(out,"f4","?f3 /2"); 1658 equation(out,"f5","$1 +$1 -21600"); 1659 equation(out,"f6","?f5 +$1 -$0 "); 1660 equation(out,"f7","?f6 /2"); 1661 equation(out,"f8","(21600+$0 )/2"); 1662 equation(out,"f9","21600-$2 "); 1663 equation(out,"f10","?f4 *sqrt(1-(?f9 /21600)*(?f9 /21600))"); 1664 equation(out,"f11","?f4 +?f10 "); 1665 equation(out,"f12","?f11 +$1 -21600"); 1666 equation(out,"f13","?f7 +?f10 "); 1667 equation(out,"f14","?f12 +21600-$0 "); 1668 equation(out,"f15","?f5 -$0 "); 1669 equation(out,"f16","?f15 /2"); 1670 equation(out,"f17","(?f4 +?f7 )/2"); 1671 equation(out,"f18","$0 +$1 -21600"); 1672 equation(out,"f19","?f18 /2"); 1673 equation(out,"f20","?f17 -?f19 "); 1674 equation(out,"f21","21600*2"); 1675 equation(out,"f22","?f17 -?f4 "); 1676 equation(out,"f23","21600*sqrt(1-(?f22 /?f4 )*(?f22 /?f4 ))"); 1677 equation(out,"f24","21600-?f23 "); 1678 equation(out,"f25","?f8 +128"); 1679 equation(out,"f26","?f5 /2"); 1680 equation(out,"f27","?f5 -128"); 1681 equation(out,"f28","$0 +?f17 -?f12 "); 1682 equation(out,"f29","21600*sqrt(1-(?f20 /?f4 )*(?f20 /?f4 ))"); 1683 equation(out,"f30","21600-$0 "); 1684 equation(out,"f31","?f30 /2"); 1685 equation(out,"f32","21600*21600"); 1686 equation(out,"f33","?f9 *?f9 "); 1687 equation(out,"f34","?f32 -?f33 "); 1688 equation(out,"f35","sqrt(?f34 )"); 1689 equation(out,"f36","?f35 +21600"); 1690 equation(out,"f37","21600*21600/?f36 "); 1691 equation(out,"f38","?f37 +64"); 1692 equation(out,"f39","$0 /2"); 1693 equation(out,"f40","21600*sqrt(1-(?f31 /?f39 )*(?f31 /?f39 ))"); 1694 equation(out,"f41","21600-?f40 "); 1695 equation(out,"f42","?f41 +64"); 1696 equation(out,"f43","?f4 /2"); 1697 equation(out,"f44","$1 -?f43 "); 1698 equation(out,"f45","21600*2195/16384"); 1699 equation(out,"f46","21600*14189/16384"); 1700 out.xml.startElement("draw:handle"); 1701 out.xml.addAttribute("draw:handle-position", "$0 21600"); 1702 out.xml.addAttribute("draw:handle-range-x-maximum", "?f27"); 1703 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1704 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1705 out.xml.addAttribute("draw:handle-range-x-minimum", "?f38"); 1706 out.xml.endElement(); // draw:handle 1707 out.xml.startElement("draw:handle"); 1708 out.xml.addAttribute("draw:handle-position", "$1 21600"); 1709 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1710 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1711 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1712 out.xml.addAttribute("draw:handle-range-x-minimum", "?f25"); 1713 out.xml.endElement(); // draw:handle 1714 out.xml.startElement("draw:handle"); 1715 out.xml.addAttribute("draw:handle-position", "21600 $2"); 1716 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1717 out.xml.addAttribute("draw:handle-range-y-minimum", "?f42"); 1718 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 1719 out.xml.addAttribute("draw:handle-range-x-minimum", "3375"); 1720 out.xml.endElement(); // draw:handle 1721 out.xml.endElement(); // enhanced geometry 1722 out.xml.endElement(); // custom shape 1723 } 1724 1725 1726 void ODrawToOdf::processStripedRightArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1727 out.xml.startElement("draw:custom-shape"); 1728 processStyleAndText(o, out); 1729 1730 out.xml.startElement("draw:enhanced-geometry"); 1731 processModifiers(o, out, QList<int>() << 16200<< 5400); 1732 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1733 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"); 1734 out.xml.addAttribute("draw:type", "striped-right-arrow"); 1735 out.xml.addAttribute("draw:text-areas", "3375 ?f0 ?f5 ?f2"); 1736 setShapeMirroring(o, out); 1737 equation(out,"f0","$1 "); 1738 equation(out,"f1","$0 "); 1739 equation(out,"f2","21600-$1 "); 1740 equation(out,"f3","21600-?f1 "); 1741 equation(out,"f4","?f3 *?f0 /10800"); 1742 equation(out,"f5","?f1 +?f4 "); 1743 out.xml.startElement("draw:handle"); 1744 out.xml.addAttribute("draw:handle-position", "$0 $1"); 1745 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1746 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1747 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1748 out.xml.addAttribute("draw:handle-range-x-minimum", "3375"); 1749 out.xml.endElement(); // draw:handle 1750 out.xml.endElement(); // enhanced geometry 1751 out.xml.endElement(); // custom shape 1752 } 1753 1754 1755 void ODrawToOdf::processNotchedRightArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 1756 out.xml.startElement("draw:custom-shape"); 1757 processStyleAndText(o, out); 1758 1759 out.xml.startElement("draw:enhanced-geometry"); 1760 processModifiers(o, out, QList<int>() << 16200<< 5400); 1761 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1762 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"); 1763 out.xml.addAttribute("draw:type", "notched-right-arrow"); 1764 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600"); 1765 setShapeMirroring(o, out); 1766 equation(out,"f0","$0 "); 1767 equation(out,"f1","$1 "); 1768 equation(out,"f2","21600-$1 "); 1769 equation(out,"f3","21600-$0 "); 1770 equation(out,"f4","10800-$1 "); 1771 equation(out,"f5","?f3 *?f4 /10800"); 1772 out.xml.startElement("draw:handle"); 1773 out.xml.addAttribute("draw:handle-position", "$0 $1"); 1774 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1775 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1776 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1777 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1778 out.xml.endElement(); // draw:handle 1779 out.xml.endElement(); // enhanced geometry 1780 out.xml.endElement(); // custom shape 1781 } 1782 1783 1784 void ODrawToOdf::processHomePlate(const MSO::OfficeArtSpContainer& o, Writer& out) { 1785 out.xml.startElement("draw:custom-shape"); 1786 processStyleAndText(o, out); 1787 1788 out.xml.startElement("draw:enhanced-geometry"); 1789 processModifiers(o, out, QList<int>() << 16200); 1790 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1791 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L ?f0 0 21600 10800 ?f0 21600 0 21600 Z N"); 1792 out.xml.addAttribute("draw:type", "pentagon-right"); 1793 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600"); 1794 setShapeMirroring(o, out); 1795 equation(out,"f0","$0 "); 1796 out.xml.startElement("draw:handle"); 1797 out.xml.addAttribute("draw:handle-position", "$0 top"); 1798 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1799 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1800 out.xml.endElement(); // draw:handle 1801 out.xml.endElement(); // enhanced geometry 1802 out.xml.endElement(); // custom shape 1803 } 1804 1805 1806 void ODrawToOdf::processChevron(const MSO::OfficeArtSpContainer& o, Writer& out) { 1807 out.xml.startElement("draw:custom-shape"); 1808 processStyleAndText(o, out); 1809 1810 out.xml.startElement("draw:enhanced-geometry"); 1811 processModifiers(o, out, QList<int>() << 16200); 1812 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1813 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L ?f0 0 21600 10800 ?f0 21600 0 21600 ?f1 10800 Z N"); 1814 out.xml.addAttribute("draw:type", "chevron"); 1815 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600"); 1816 setShapeMirroring(o, out); 1817 equation(out,"f0","$0 "); 1818 equation(out,"f1","21600-?f0 "); 1819 out.xml.startElement("draw:handle"); 1820 out.xml.addAttribute("draw:handle-position", "$0 top"); 1821 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1822 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1823 out.xml.endElement(); // draw:handle 1824 out.xml.endElement(); // enhanced geometry 1825 out.xml.endElement(); // custom shape 1826 } 1827 1828 1829 void ODrawToOdf::processRightArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 1830 out.xml.startElement("draw:custom-shape"); 1831 processStyleAndText(o, out); 1832 1833 out.xml.startElement("draw:enhanced-geometry"); 1834 processModifiers(o, out, QList<int>() << 14400<< 5400<< 18000<< 8100); 1835 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1836 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"); 1837 out.xml.addAttribute("draw:type", "right-arrow-callout"); 1838 out.xml.addAttribute("draw:text-areas", "0 0 ?f0 21600"); 1839 setShapeMirroring(o, out); 1840 equation(out,"f0","$0 "); 1841 equation(out,"f1","$1 "); 1842 equation(out,"f2","$2 "); 1843 equation(out,"f3","$3 "); 1844 equation(out,"f4","21600-?f1 "); 1845 equation(out,"f5","21600-?f3 "); 1846 out.xml.startElement("draw:handle"); 1847 out.xml.addAttribute("draw:handle-position", "$0 top"); 1848 out.xml.addAttribute("draw:handle-range-x-maximum", "$2"); 1849 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1850 out.xml.endElement(); // draw:handle 1851 out.xml.startElement("draw:handle"); 1852 out.xml.addAttribute("draw:handle-position", "$2 $3"); 1853 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1854 out.xml.addAttribute("draw:handle-range-y-minimum", "$1"); 1855 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1856 out.xml.addAttribute("draw:handle-range-x-minimum", "$0"); 1857 out.xml.endElement(); // draw:handle 1858 out.xml.startElement("draw:handle"); 1859 out.xml.addAttribute("draw:handle-position", "right $1"); 1860 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1861 out.xml.addAttribute("draw:handle-range-y-maximum", "$3"); 1862 out.xml.endElement(); // draw:handle 1863 out.xml.endElement(); // enhanced geometry 1864 out.xml.endElement(); // custom shape 1865 } 1866 1867 1868 void ODrawToOdf::processLeftArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 1869 out.xml.startElement("draw:custom-shape"); 1870 processStyleAndText(o, out); 1871 1872 out.xml.startElement("draw:enhanced-geometry"); 1873 processModifiers(o, out, QList<int>() << 7200<< 5400<< 3600<< 8100); 1874 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1875 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"); 1876 out.xml.addAttribute("draw:type", "left-arrow-callout"); 1877 out.xml.addAttribute("draw:text-areas", "?f0 0 21600 21600"); 1878 setShapeMirroring(o, out); 1879 equation(out,"f0","$0 "); 1880 equation(out,"f1","$1 "); 1881 equation(out,"f2","$2 "); 1882 equation(out,"f3","$3 "); 1883 equation(out,"f4","21600-?f1 "); 1884 equation(out,"f5","21600-?f3 "); 1885 out.xml.startElement("draw:handle"); 1886 out.xml.addAttribute("draw:handle-position", "$0 top"); 1887 out.xml.addAttribute("draw:handle-range-x-maximum", "21600"); 1888 out.xml.addAttribute("draw:handle-range-x-minimum", "$2"); 1889 out.xml.endElement(); // draw:handle 1890 out.xml.startElement("draw:handle"); 1891 out.xml.addAttribute("draw:handle-position", "$2 $3"); 1892 out.xml.addAttribute("draw:handle-range-x-maximum", "$0"); 1893 out.xml.addAttribute("draw:handle-range-y-minimum", "$1"); 1894 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 1895 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1896 out.xml.endElement(); // draw:handle 1897 out.xml.startElement("draw:handle"); 1898 out.xml.addAttribute("draw:handle-position", "left $1"); 1899 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1900 out.xml.addAttribute("draw:handle-range-y-maximum", "$3"); 1901 out.xml.endElement(); // draw:handle 1902 out.xml.endElement(); // enhanced geometry 1903 out.xml.endElement(); // custom shape 1904 } 1905 1906 1907 void ODrawToOdf::processUpArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 1908 out.xml.startElement("draw:custom-shape"); 1909 processStyleAndText(o, out); 1910 1911 out.xml.startElement("draw:enhanced-geometry"); 1912 processModifiers(o, out, QList<int>() << 7200<< 5400<< 3600<< 8100); 1913 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1914 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"); 1915 out.xml.addAttribute("draw:type", "up-arrow-callout"); 1916 out.xml.addAttribute("draw:text-areas", "0 ?f0 21600 21600"); 1917 setShapeMirroring(o, out); 1918 equation(out,"f0","$0 "); 1919 equation(out,"f1","$1 "); 1920 equation(out,"f2","$2 "); 1921 equation(out,"f3","$3 "); 1922 equation(out,"f4","21600-?f1 "); 1923 equation(out,"f5","21600-?f3 "); 1924 out.xml.startElement("draw:handle"); 1925 out.xml.addAttribute("draw:handle-position", "left $0"); 1926 out.xml.addAttribute("draw:handle-range-y-minimum", "$2"); 1927 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 1928 out.xml.endElement(); // draw:handle 1929 out.xml.startElement("draw:handle"); 1930 out.xml.addAttribute("draw:handle-position", "$3 $2"); 1931 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1932 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1933 out.xml.addAttribute("draw:handle-range-y-maximum", "$0"); 1934 out.xml.addAttribute("draw:handle-range-x-minimum", "$1"); 1935 out.xml.endElement(); // draw:handle 1936 out.xml.startElement("draw:handle"); 1937 out.xml.addAttribute("draw:handle-position", "$1 top"); 1938 out.xml.addAttribute("draw:handle-range-x-maximum", "$3"); 1939 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1940 out.xml.endElement(); // draw:handle 1941 out.xml.endElement(); // enhanced geometry 1942 out.xml.endElement(); // custom shape 1943 } 1944 1945 1946 void ODrawToOdf::processDownArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 1947 out.xml.startElement("draw:custom-shape"); 1948 processStyleAndText(o, out); 1949 1950 out.xml.startElement("draw:enhanced-geometry"); 1951 processModifiers(o, out, QList<int>() << 14400<< 5400<< 18000<< 8100); 1952 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1953 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"); 1954 out.xml.addAttribute("draw:type", "down-arrow-callout"); 1955 out.xml.addAttribute("draw:text-areas", "0 0 21600 ?f0"); 1956 setShapeMirroring(o, out); 1957 equation(out,"f0","$0 "); 1958 equation(out,"f1","$1 "); 1959 equation(out,"f2","$2 "); 1960 equation(out,"f3","$3 "); 1961 equation(out,"f4","21600-?f1 "); 1962 equation(out,"f5","21600-?f3 "); 1963 out.xml.startElement("draw:handle"); 1964 out.xml.addAttribute("draw:handle-position", "left $0"); 1965 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 1966 out.xml.addAttribute("draw:handle-range-y-maximum", "$2"); 1967 out.xml.endElement(); // draw:handle 1968 out.xml.startElement("draw:handle"); 1969 out.xml.addAttribute("draw:handle-position", "$3 $2"); 1970 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 1971 out.xml.addAttribute("draw:handle-range-y-minimum", "$0"); 1972 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 1973 out.xml.addAttribute("draw:handle-range-x-minimum", "$1"); 1974 out.xml.endElement(); // draw:handle 1975 out.xml.startElement("draw:handle"); 1976 out.xml.addAttribute("draw:handle-position", "$1 bottom"); 1977 out.xml.addAttribute("draw:handle-range-x-maximum", "$3"); 1978 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 1979 out.xml.endElement(); // draw:handle 1980 out.xml.endElement(); // enhanced geometry 1981 out.xml.endElement(); // custom shape 1982 } 1983 1984 1985 void ODrawToOdf::processLeftRightArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 1986 out.xml.startElement("draw:custom-shape"); 1987 processStyleAndText(o, out); 1988 1989 out.xml.startElement("draw:enhanced-geometry"); 1990 processModifiers(o, out, QList<int>() << 5400<< 5500<< 2700<< 8100); 1991 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 1992 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"); 1993 out.xml.addAttribute("draw:type", "left-right-arrow-callout"); 1994 out.xml.addAttribute("draw:text-areas", "?f0 0 ?f4 21600"); 1995 setShapeMirroring(o, out); 1996 equation(out,"f0","$0 "); 1997 equation(out,"f1","$1 "); 1998 equation(out,"f2","$2 "); 1999 equation(out,"f3","$3 "); 2000 equation(out,"f4","21600-?f0 "); 2001 equation(out,"f5","21600-?f1 "); 2002 equation(out,"f6","21600-?f2 "); 2003 equation(out,"f7","21600-?f3 "); 2004 out.xml.startElement("draw:handle"); 2005 out.xml.addAttribute("draw:handle-position", "$0 top"); 2006 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 2007 out.xml.addAttribute("draw:handle-range-x-minimum", "$2"); 2008 out.xml.endElement(); // draw:handle 2009 out.xml.startElement("draw:handle"); 2010 out.xml.addAttribute("draw:handle-position", "$2 $3"); 2011 out.xml.addAttribute("draw:handle-range-x-maximum", "$0"); 2012 out.xml.addAttribute("draw:handle-range-y-minimum", "$1"); 2013 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 2014 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 2015 out.xml.endElement(); // draw:handle 2016 out.xml.startElement("draw:handle"); 2017 out.xml.addAttribute("draw:handle-position", "left $1"); 2018 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 2019 out.xml.addAttribute("draw:handle-range-y-maximum", "$3"); 2020 out.xml.endElement(); // draw:handle 2021 out.xml.endElement(); // enhanced geometry 2022 out.xml.endElement(); // custom shape 2023 } 2024 2025 2026 void ODrawToOdf::processUpDownArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 2027 out.xml.startElement("draw:custom-shape"); 2028 processStyleAndText(o, out); 2029 2030 out.xml.startElement("draw:enhanced-geometry"); 2031 processModifiers(o, out, QList<int>() << 5400<< 5500<< 2700<< 8100); 2032 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2033 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"); 2034 out.xml.addAttribute("draw:type", "up-down-arrow-callout"); 2035 out.xml.addAttribute("draw:text-areas", "0 ?f0 21600 ?f4"); 2036 setShapeMirroring(o, out); 2037 equation(out,"f0","$0 "); 2038 equation(out,"f1","$1 "); 2039 equation(out,"f2","$2 "); 2040 equation(out,"f3","$3 "); 2041 equation(out,"f4","21600-?f0 "); 2042 equation(out,"f5","21600-?f1 "); 2043 equation(out,"f6","21600-?f2 "); 2044 equation(out,"f7","21600-?f3 "); 2045 out.xml.startElement("draw:handle"); 2046 out.xml.addAttribute("draw:handle-position", "left $0"); 2047 out.xml.addAttribute("draw:handle-range-y-minimum", "$2"); 2048 out.xml.addAttribute("draw:handle-range-y-maximum", "10800"); 2049 out.xml.endElement(); // draw:handle 2050 out.xml.startElement("draw:handle"); 2051 out.xml.addAttribute("draw:handle-position", "$3 $2"); 2052 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 2053 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 2054 out.xml.addAttribute("draw:handle-range-y-maximum", "$0"); 2055 out.xml.addAttribute("draw:handle-range-x-minimum", "$1"); 2056 out.xml.endElement(); // draw:handle 2057 out.xml.startElement("draw:handle"); 2058 out.xml.addAttribute("draw:handle-position", "$1 top"); 2059 out.xml.addAttribute("draw:handle-range-x-maximum", "$3"); 2060 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 2061 out.xml.endElement(); // draw:handle 2062 out.xml.endElement(); // enhanced geometry 2063 out.xml.endElement(); // custom shape 2064 } 2065 2066 2067 void ODrawToOdf::processQuadArrowCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 2068 out.xml.startElement("draw:custom-shape"); 2069 processStyleAndText(o, out); 2070 2071 out.xml.startElement("draw:enhanced-geometry"); 2072 processModifiers(o, out, QList<int>() << 5400<< 8100<< 2700<< 9400); 2073 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2074 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"); 2075 out.xml.addAttribute("draw:type", "quad-arrow-callout"); 2076 out.xml.addAttribute("draw:text-areas", "?f0 ?f0 ?f4 ?f4"); 2077 setShapeMirroring(o, out); 2078 equation(out,"f0","$0 "); 2079 equation(out,"f1","$1 "); 2080 equation(out,"f2","$2 "); 2081 equation(out,"f3","$3 "); 2082 equation(out,"f4","21600-?f0 "); 2083 equation(out,"f5","21600-?f1 "); 2084 equation(out,"f6","21600-?f2 "); 2085 equation(out,"f7","21600-?f3 "); 2086 out.xml.startElement("draw:handle"); 2087 out.xml.addAttribute("draw:handle-position", "left $0"); 2088 out.xml.addAttribute("draw:handle-range-y-minimum", "$2"); 2089 out.xml.addAttribute("draw:handle-range-y-maximum", "$1"); 2090 out.xml.endElement(); // draw:handle 2091 out.xml.startElement("draw:handle"); 2092 out.xml.addAttribute("draw:handle-position", "$1 top"); 2093 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 2094 out.xml.addAttribute("draw:handle-range-x-minimum", "$0"); 2095 out.xml.endElement(); // draw:handle 2096 out.xml.startElement("draw:handle"); 2097 out.xml.addAttribute("draw:handle-position", "$3 $2"); 2098 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 2099 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 2100 out.xml.addAttribute("draw:handle-range-y-maximum", "$0"); 2101 out.xml.addAttribute("draw:handle-range-x-minimum", "$1"); 2102 out.xml.endElement(); // draw:handle 2103 out.xml.endElement(); // enhanced geometry 2104 out.xml.endElement(); // custom shape 2105 } 2106 2107 2108 void ODrawToOdf::processCircularArrow(const MSO::OfficeArtSpContainer& o, Writer& out) { 2109 out.xml.startElement("draw:custom-shape"); 2110 processStyleAndText(o, out); 2111 2112 out.xml.startElement("draw:enhanced-geometry"); 2113 // custom way for processing modifieres as this shape 2114 // return the AdjustValue, AdjustValue2 16-bit shifted 2115 // see bug 274684, file mp03_cycle_default.ppt 2116 const AdjustValue* val1 = get<AdjustValue>(o); 2117 const Adjust2Value* val2 = get<Adjust2Value>(o); 2118 const Adjust3Value* val3 = get<Adjust3Value>(o); 2119 QString modifiers = QString::number(val1 ? val1->adjustvalue >> 16 : 180) + 2120 QString(" %1").arg(val2 ? val2->adjust2value >> 16 : 0) + 2121 QString(" %1").arg(val3 ? val3->adjust3value : 5500); 2122 out.xml.addAttribute("draw:modifiers", modifiers); 2123 2124 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2125 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"); 2126 out.xml.addAttribute("draw:type", "circular-arrow"); 2127 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600"); 2128 setShapeMirroring(o, out); 2129 equation(out,"f0","$0 "); 2130 equation(out,"f1","$1 "); 2131 equation(out,"f2","$2 "); 2132 equation(out,"f3","10800+$2 "); 2133 equation(out,"f4","10800*sin($0 *(pi/180))"); 2134 equation(out,"f5","10800*cos($0 *(pi/180))"); 2135 equation(out,"f6","10800*sin($1 *(pi/180))"); 2136 equation(out,"f7","10800*cos($1 *(pi/180))"); 2137 equation(out,"f8","?f4 +10800"); 2138 equation(out,"f9","?f5 +10800"); 2139 equation(out,"f10","?f6 +10800"); 2140 equation(out,"f11","?f7 +10800"); 2141 equation(out,"f12","?f3 *sin($0 *(pi/180))"); 2142 equation(out,"f13","?f3 *cos($0 *(pi/180))"); 2143 equation(out,"f14","?f3 *sin($1 *(pi/180))"); 2144 equation(out,"f15","?f3 *cos($1 *(pi/180))"); 2145 equation(out,"f16","?f12 +10800"); 2146 equation(out,"f17","?f13 +10800"); 2147 equation(out,"f18","?f14 +10800"); 2148 equation(out,"f19","?f15 +10800"); 2149 equation(out,"f20","21600-?f3 "); 2150 equation(out,"f21","13500*sin($1 *(pi/180))"); 2151 equation(out,"f22","13500*cos($1 *(pi/180))"); 2152 equation(out,"f23","?f21 +10800"); 2153 equation(out,"f24","?f22 +10800"); 2154 equation(out,"f25","$2 -2700"); 2155 equation(out,"f26","?f25 *sin($1 *(pi/180))"); 2156 equation(out,"f27","?f25 *cos($1 *(pi/180))"); 2157 equation(out,"f28","?f26 +10800"); 2158 equation(out,"f29","?f27 +10800"); 2159 equation(out,"f30","?f29 -?f24 "); 2160 equation(out,"f31","?f29 -?f24 "); 2161 equation(out,"f32","?f30 *?f31 "); 2162 equation(out,"f33","?f28 -?f23 "); 2163 equation(out,"f34","?f28 -?f23 "); 2164 equation(out,"f35","?f33 *?f34 "); 2165 equation(out,"f36","?f32 +?f35 "); 2166 equation(out,"f37","sqrt(?f36 )"); 2167 equation(out,"f38","$1 +45"); 2168 equation(out,"f39","?f37 *sin(?f38 *(pi/180))"); 2169 equation(out,"f40","$1 +45"); 2170 equation(out,"f41","?f37 *cos(?f40 *(pi/180))"); 2171 equation(out,"f42","45"); 2172 equation(out,"f43","?f39 *sin(?f42 *(pi/180))"); 2173 equation(out,"f44","45"); 2174 equation(out,"f45","?f41 *sin(?f44 *(pi/180))"); 2175 equation(out,"f46","?f28 +?f43 "); 2176 equation(out,"f47","?f29 +?f45 "); 2177 out.xml.startElement("draw:handle"); 2178 out.xml.addAttribute("draw:handle-position", "10800 $0"); 2179 out.xml.addAttribute("draw:handle-radius-range-minimum", "10800"); 2180 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800"); 2181 out.xml.addAttribute("draw:handle-polar", "10800 10800"); 2182 out.xml.endElement(); // draw:handle 2183 out.xml.startElement("draw:handle"); 2184 out.xml.addAttribute("draw:handle-position", "$2 $1"); 2185 out.xml.addAttribute("draw:handle-radius-range-minimum", "0"); 2186 out.xml.addAttribute("draw:handle-radius-range-maximum", "10800"); 2187 out.xml.addAttribute("draw:handle-polar", "10800 10800"); 2188 out.xml.endElement(); // draw:handle 2189 out.xml.endElement(); // enhanced geometry 2190 out.xml.endElement(); // custom shape 2191 } 2192 2193 2194 void ODrawToOdf::processFlowChartProcess(const MSO::OfficeArtSpContainer& o, Writer& out) { 2195 out.xml.startElement("draw:custom-shape"); 2196 processStyleAndText(o, out); 2197 2198 out.xml.startElement("draw:enhanced-geometry"); 2199 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2200 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2201 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"); 2202 out.xml.addAttribute("draw:type", "flowchart-process"); 2203 setShapeMirroring(o, out); 2204 out.xml.endElement(); // enhanced geometry 2205 out.xml.endElement(); // custom shape 2206 } 2207 2208 2209 void ODrawToOdf::processFlowChartAlternateProcess(const MSO::OfficeArtSpContainer& o, Writer& out) { 2210 out.xml.startElement("draw:custom-shape"); 2211 processStyleAndText(o, out); 2212 2213 out.xml.startElement("draw:enhanced-geometry"); 2214 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2215 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2216 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"); 2217 out.xml.addAttribute("draw:type", "flowchart-alternate-process"); 2218 out.xml.addAttribute("draw:text-areas", "?f4 ?f6 ?f5 ?f7"); 2219 setShapeMirroring(o, out); 2220 equation(out,"f0","left+2540"); 2221 equation(out,"f1","right-2540"); 2222 equation(out,"f2","top+2540"); 2223 equation(out,"f3","bottom-2540"); 2224 equation(out,"f4","left+800"); 2225 equation(out,"f5","right-800"); 2226 equation(out,"f6","top+800"); 2227 equation(out,"f7","bottom-800"); 2228 out.xml.endElement(); // enhanced geometry 2229 out.xml.endElement(); // custom shape 2230 } 2231 2232 2233 void ODrawToOdf::processFlowChartDecision(const MSO::OfficeArtSpContainer& o, Writer& out) { 2234 out.xml.startElement("draw:custom-shape"); 2235 processStyleAndText(o, out); 2236 2237 out.xml.startElement("draw:enhanced-geometry"); 2238 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2239 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2240 out.xml.addAttribute("draw:enhanced-path", "M 0 10800 L 10800 0 21600 10800 10800 21600 0 10800 Z N"); 2241 out.xml.addAttribute("draw:type", "flowchart-decision"); 2242 out.xml.addAttribute("draw:text-areas", "5400 5400 16200 16200"); 2243 setShapeMirroring(o, out); 2244 out.xml.endElement(); // enhanced geometry 2245 out.xml.endElement(); // custom shape 2246 } 2247 2248 2249 void ODrawToOdf::processFlowChartInputOutput(const MSO::OfficeArtSpContainer& o, Writer& out) { 2250 out.xml.startElement("draw:custom-shape"); 2251 processStyleAndText(o, out); 2252 2253 out.xml.startElement("draw:enhanced-geometry"); 2254 out.xml.addAttribute("draw:glue-points", "12960 0 10800 0 2160 10800 8600 21600 10800 21600 19400 10800"); 2255 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2256 out.xml.addAttribute("draw:enhanced-path", "M 4230 0 L 21600 0 17370 21600 0 21600 4230 0 Z N"); 2257 out.xml.addAttribute("draw:type", "flowchart-data"); 2258 out.xml.addAttribute("draw:text-areas", "4230 0 17370 21600"); 2259 setShapeMirroring(o, out); 2260 out.xml.endElement(); // enhanced geometry 2261 out.xml.endElement(); // custom shape 2262 } 2263 2264 2265 void ODrawToOdf::processFlowChartPredefinedProcess(const MSO::OfficeArtSpContainer& o, Writer& out) { 2266 out.xml.startElement("draw:custom-shape"); 2267 processStyleAndText(o, out); 2268 2269 out.xml.startElement("draw:enhanced-geometry"); 2270 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2271 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"); 2272 out.xml.addAttribute("draw:type", "flowchart-predefined-process"); 2273 out.xml.addAttribute("draw:text-areas", "2540 0 19060 21600"); 2274 setShapeMirroring(o, out); 2275 out.xml.endElement(); // enhanced geometry 2276 out.xml.endElement(); // custom shape 2277 } 2278 2279 2280 void ODrawToOdf::processFlowChartInternalStorage(const MSO::OfficeArtSpContainer& o, Writer& out) { 2281 out.xml.startElement("draw:custom-shape"); 2282 processStyleAndText(o, out); 2283 2284 out.xml.startElement("draw:enhanced-geometry"); 2285 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2286 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"); 2287 out.xml.addAttribute("draw:type", "flowchart-internal-storage"); 2288 out.xml.addAttribute("draw:text-areas", "4230 4230 21600 21600"); 2289 setShapeMirroring(o, out); 2290 out.xml.endElement(); // enhanced geometry 2291 out.xml.endElement(); // custom shape 2292 } 2293 2294 2295 void ODrawToOdf::processFlowChartDocument(const MSO::OfficeArtSpContainer& o, Writer& out) { 2296 out.xml.startElement("draw:custom-shape"); 2297 processStyleAndText(o, out); 2298 2299 out.xml.startElement("draw:enhanced-geometry"); 2300 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 20320 21600 10800"); 2301 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2302 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"); 2303 out.xml.addAttribute("draw:type", "flowchart-document"); 2304 out.xml.addAttribute("draw:text-areas", "0 0 21600 17360"); 2305 setShapeMirroring(o, out); 2306 out.xml.endElement(); // enhanced geometry 2307 out.xml.endElement(); // custom shape 2308 } 2309 2310 2311 void ODrawToOdf::processFlowChartMultidocument(const MSO::OfficeArtSpContainer& o, Writer& out) { 2312 out.xml.startElement("draw:custom-shape"); 2313 processStyleAndText(o, out); 2314 2315 out.xml.startElement("draw:enhanced-geometry"); 2316 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 19890 21600 10800"); 2317 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2318 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"); 2319 out.xml.addAttribute("draw:type", "flowchart-multidocument"); 2320 out.xml.addAttribute("draw:text-areas", "0 3600 18600 18009"); 2321 setShapeMirroring(o, out); 2322 out.xml.endElement(); // enhanced geometry 2323 out.xml.endElement(); // custom shape 2324 } 2325 2326 2327 void ODrawToOdf::processFlowChartTerminator(const MSO::OfficeArtSpContainer& o, Writer& out) { 2328 out.xml.startElement("draw:custom-shape"); 2329 processStyleAndText(o, out); 2330 2331 out.xml.startElement("draw:enhanced-geometry"); 2332 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2333 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2334 out.xml.addAttribute("draw:enhanced-path", "M 3470 21600 X 0 10800 3470 0 L 18130 0 X 21600 10800 18130 21600 Z N"); 2335 out.xml.addAttribute("draw:type", "flowchart-terminator"); 2336 out.xml.addAttribute("draw:text-areas", "1060 3180 20540 18420"); 2337 setShapeMirroring(o, out); 2338 out.xml.endElement(); // enhanced geometry 2339 out.xml.endElement(); // custom shape 2340 } 2341 2342 2343 void ODrawToOdf::processFlowChartPreparation(const MSO::OfficeArtSpContainer& o, Writer& out) { 2344 out.xml.startElement("draw:custom-shape"); 2345 processStyleAndText(o, out); 2346 2347 out.xml.startElement("draw:enhanced-geometry"); 2348 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2349 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2350 out.xml.addAttribute("draw:enhanced-path", "M 4350 0 L 17250 0 21600 10800 17250 21600 4350 21600 0 10800 4350 0 Z N"); 2351 out.xml.addAttribute("draw:type", "flowchart-preparation"); 2352 out.xml.addAttribute("draw:text-areas", "4350 0 17250 21600"); 2353 setShapeMirroring(o, out); 2354 out.xml.endElement(); // enhanced geometry 2355 out.xml.endElement(); // custom shape 2356 } 2357 2358 2359 void ODrawToOdf::processFlowChartManualInput(const MSO::OfficeArtSpContainer& o, Writer& out) { 2360 out.xml.startElement("draw:custom-shape"); 2361 processStyleAndText(o, out); 2362 2363 out.xml.startElement("draw:enhanced-geometry"); 2364 out.xml.addAttribute("draw:glue-points", "10800 2150 0 10800 10800 19890 21600 10800"); 2365 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2366 out.xml.addAttribute("draw:enhanced-path", "M 0 4300 L 21600 0 21600 21600 0 21600 0 4300 Z N"); 2367 out.xml.addAttribute("draw:type", "flowchart-manual-input"); 2368 out.xml.addAttribute("draw:text-areas", "0 4300 21600 21600"); 2369 setShapeMirroring(o, out); 2370 out.xml.endElement(); // enhanced geometry 2371 out.xml.endElement(); // custom shape 2372 } 2373 2374 2375 void ODrawToOdf::processFlowChartManualOperation(const MSO::OfficeArtSpContainer& o, Writer& out) { 2376 out.xml.startElement("draw:custom-shape"); 2377 processStyleAndText(o, out); 2378 2379 out.xml.startElement("draw:enhanced-geometry"); 2380 out.xml.addAttribute("draw:glue-points", "10800 0 2160 10800 10800 21600 19440 10800"); 2381 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2382 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 17250 21600 4350 21600 0 0 Z N"); 2383 out.xml.addAttribute("draw:type", "flowchart-manual-operation"); 2384 out.xml.addAttribute("draw:text-areas", "4350 0 17250 21600"); 2385 setShapeMirroring(o, out); 2386 out.xml.endElement(); // enhanced geometry 2387 out.xml.endElement(); // custom shape 2388 } 2389 2390 2391 void ODrawToOdf::processFlowChartConnector(const MSO::OfficeArtSpContainer& o, Writer& out) { 2392 out.xml.startElement("draw:custom-shape"); 2393 processStyleAndText(o, out); 2394 2395 out.xml.startElement("draw:enhanced-geometry"); 2396 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163"); 2397 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2398 out.xml.addAttribute("draw:enhanced-path", "U 10800 10800 10800 10800 0 360 Z N"); 2399 out.xml.addAttribute("draw:type", "flowchart-connector"); 2400 out.xml.addAttribute("draw:text-areas", "3180 3180 18420 18420"); 2401 setShapeMirroring(o, out); 2402 out.xml.endElement(); // enhanced geometry 2403 out.xml.endElement(); // custom shape 2404 } 2405 2406 2407 void ODrawToOdf::processFlowChartOffpageConnector(const MSO::OfficeArtSpContainer& o, Writer& out) { 2408 out.xml.startElement("draw:custom-shape"); 2409 processStyleAndText(o, out); 2410 2411 out.xml.startElement("draw:enhanced-geometry"); 2412 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2413 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2414 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 21600 17150 10800 21600 0 17150 0 0 Z N"); 2415 out.xml.addAttribute("draw:type", "flowchart-off-page-connector"); 2416 out.xml.addAttribute("draw:text-areas", "0 0 21600 17150"); 2417 setShapeMirroring(o, out); 2418 out.xml.endElement(); // enhanced geometry 2419 out.xml.endElement(); // custom shape 2420 } 2421 2422 2423 void ODrawToOdf::processFlowChartPunchedCard(const MSO::OfficeArtSpContainer& o, Writer& out) { 2424 out.xml.startElement("draw:custom-shape"); 2425 processStyleAndText(o, out); 2426 2427 out.xml.startElement("draw:enhanced-geometry"); 2428 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2429 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2430 out.xml.addAttribute("draw:enhanced-path", "M 4300 0 L 21600 0 21600 21600 0 21600 0 4300 4300 0 Z N"); 2431 out.xml.addAttribute("draw:type", "flowchart-card"); 2432 out.xml.addAttribute("draw:text-areas", "0 4300 21600 21600"); 2433 setShapeMirroring(o, out); 2434 out.xml.endElement(); // enhanced geometry 2435 out.xml.endElement(); // custom shape 2436 } 2437 2438 2439 void ODrawToOdf::processFlowChartPunchedTape(const MSO::OfficeArtSpContainer& o, Writer& out) { 2440 out.xml.startElement("draw:custom-shape"); 2441 processStyleAndText(o, out); 2442 2443 out.xml.startElement("draw:enhanced-geometry"); 2444 out.xml.addAttribute("draw:glue-points", "10800 2020 0 10800 10800 19320 21600 10800"); 2445 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2446 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"); 2447 out.xml.addAttribute("draw:type", "flowchart-punched-tape"); 2448 out.xml.addAttribute("draw:text-areas", "0 4360 21600 17240"); 2449 setShapeMirroring(o, out); 2450 out.xml.endElement(); // enhanced geometry 2451 out.xml.endElement(); // custom shape 2452 } 2453 2454 2455 void ODrawToOdf::processFlowChartSummingJunction(const MSO::OfficeArtSpContainer& o, Writer& out) { 2456 out.xml.startElement("draw:custom-shape"); 2457 processStyleAndText(o, out); 2458 2459 out.xml.startElement("draw:enhanced-geometry"); 2460 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163"); 2461 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2462 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"); 2463 out.xml.addAttribute("draw:type", "flowchart-summing-junction"); 2464 out.xml.addAttribute("draw:text-areas", "3100 3100 18500 18500"); 2465 setShapeMirroring(o, out); 2466 out.xml.endElement(); // enhanced geometry 2467 out.xml.endElement(); // custom shape 2468 } 2469 2470 2471 void ODrawToOdf::processFlowChartOr(const MSO::OfficeArtSpContainer& o, Writer& out) { 2472 out.xml.startElement("draw:custom-shape"); 2473 processStyleAndText(o, out); 2474 2475 out.xml.startElement("draw:enhanced-geometry"); 2476 out.xml.addAttribute("draw:glue-points", "10800 0 3163 3163 0 10800 3163 18437 10800 21600 18437 18437 21600 10800 18437 3163"); 2477 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2478 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"); 2479 out.xml.addAttribute("draw:type", "flowchart-or"); 2480 out.xml.addAttribute("draw:text-areas", "3100 3100 18500 18500"); 2481 setShapeMirroring(o, out); 2482 out.xml.endElement(); // enhanced geometry 2483 out.xml.endElement(); // custom shape 2484 } 2485 2486 2487 void ODrawToOdf::processFlowChartCollate(const MSO::OfficeArtSpContainer& o, Writer& out) { 2488 out.xml.startElement("draw:custom-shape"); 2489 processStyleAndText(o, out); 2490 2491 out.xml.startElement("draw:enhanced-geometry"); 2492 out.xml.addAttribute("draw:glue-points", "10800 0 10800 10800 10800 21600"); 2493 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2494 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 21600 0 21600 21600 0 0 0 Z N"); 2495 out.xml.addAttribute("draw:type", "flowchart-collate"); 2496 out.xml.addAttribute("draw:text-areas", "5400 5400 16200 16200"); 2497 setShapeMirroring(o, out); 2498 out.xml.endElement(); // enhanced geometry 2499 out.xml.endElement(); // custom shape 2500 } 2501 2502 2503 void ODrawToOdf::processFlowChartSort(const MSO::OfficeArtSpContainer& o, Writer& out) { 2504 out.xml.startElement("draw:custom-shape"); 2505 processStyleAndText(o, out); 2506 2507 out.xml.startElement("draw:enhanced-geometry"); 2508 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2509 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"); 2510 out.xml.addAttribute("draw:type", "flowchart-sort"); 2511 out.xml.addAttribute("draw:text-areas", "5400 5400 16200 16200"); 2512 setShapeMirroring(o, out); 2513 out.xml.endElement(); // enhanced geometry 2514 out.xml.endElement(); // custom shape 2515 } 2516 2517 2518 void ODrawToOdf::processFlowChartExtract(const MSO::OfficeArtSpContainer& o, Writer& out) { 2519 out.xml.startElement("draw:custom-shape"); 2520 processStyleAndText(o, out); 2521 2522 out.xml.startElement("draw:enhanced-geometry"); 2523 out.xml.addAttribute("draw:glue-points", "10800 0 5400 10800 10800 21600 16200 10800"); 2524 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2525 out.xml.addAttribute("draw:enhanced-path", "M 10800 0 L 21600 21600 0 21600 10800 0 Z N"); 2526 out.xml.addAttribute("draw:type", "flowchart-extract"); 2527 out.xml.addAttribute("draw:text-areas", "5400 10800 16200 21600"); 2528 setShapeMirroring(o, out); 2529 out.xml.endElement(); // enhanced geometry 2530 out.xml.endElement(); // custom shape 2531 } 2532 2533 2534 void ODrawToOdf::processFlowChartMerge(const MSO::OfficeArtSpContainer& o, Writer& out) { 2535 out.xml.startElement("draw:custom-shape"); 2536 processStyleAndText(o, out); 2537 2538 out.xml.startElement("draw:enhanced-geometry"); 2539 out.xml.addAttribute("draw:glue-points", "10800 0 5400 10800 10800 21600 16200 10800"); 2540 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2541 out.xml.addAttribute("draw:enhanced-path", "M 0 0 L 21600 0 10800 21600 0 0 Z N"); 2542 out.xml.addAttribute("draw:type", "flowchart-merge"); 2543 out.xml.addAttribute("draw:text-areas", "5400 0 16200 10800"); 2544 setShapeMirroring(o, out); 2545 out.xml.endElement(); // enhanced geometry 2546 out.xml.endElement(); // custom shape 2547 } 2548 2549 2550 void ODrawToOdf::processFlowChartOnlineStorage(const MSO::OfficeArtSpContainer& o, Writer& out) { 2551 out.xml.startElement("draw:custom-shape"); 2552 processStyleAndText(o, out); 2553 2554 out.xml.startElement("draw:enhanced-geometry"); 2555 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 18000 10800"); 2556 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2557 out.xml.addAttribute("draw:enhanced-path", "M 3600 21600 X 0 10800 3600 0 L 21600 0 X 18000 10800 21600 21600 Z N"); 2558 out.xml.addAttribute("draw:type", "flowchart-stored-data"); 2559 out.xml.addAttribute("draw:text-areas", "3600 0 18000 21600"); 2560 setShapeMirroring(o, out); 2561 out.xml.endElement(); // enhanced geometry 2562 out.xml.endElement(); // custom shape 2563 } 2564 2565 2566 void ODrawToOdf::processFlowChartDelay(const MSO::OfficeArtSpContainer& o, Writer& out) { 2567 out.xml.startElement("draw:custom-shape"); 2568 processStyleAndText(o, out); 2569 2570 out.xml.startElement("draw:enhanced-geometry"); 2571 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2572 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2573 out.xml.addAttribute("draw:enhanced-path", "M 10800 0 X 21600 10800 10800 21600 L 0 21600 0 0 Z N"); 2574 out.xml.addAttribute("draw:type", "flowchart-delay"); 2575 out.xml.addAttribute("draw:text-areas", "0 3100 18500 18500"); 2576 setShapeMirroring(o, out); 2577 out.xml.endElement(); // enhanced geometry 2578 out.xml.endElement(); // custom shape 2579 } 2580 2581 2582 void ODrawToOdf::processFlowChartMagneticTape(const MSO::OfficeArtSpContainer& o, Writer& out) { 2583 out.xml.startElement("draw:custom-shape"); 2584 processStyleAndText(o, out); 2585 2586 out.xml.startElement("draw:enhanced-geometry"); 2587 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2588 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2589 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"); 2590 out.xml.addAttribute("draw:type", "flowchart-sequential-access"); 2591 out.xml.addAttribute("draw:text-areas", "3100 3100 18500 18500"); 2592 setShapeMirroring(o, out); 2593 out.xml.endElement(); // enhanced geometry 2594 out.xml.endElement(); // custom shape 2595 } 2596 2597 2598 void ODrawToOdf::processFlowChartMagneticDisk(const MSO::OfficeArtSpContainer& o, Writer& out) { 2599 out.xml.startElement("draw:custom-shape"); 2600 processStyleAndText(o, out); 2601 2602 out.xml.startElement("draw:enhanced-geometry"); 2603 out.xml.addAttribute("draw:glue-points", "10800 6800 10800 0 0 10800 10800 21600 21600 10800"); 2604 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2605 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"); 2606 out.xml.addAttribute("draw:type", "flowchart-magnetic-disk"); 2607 out.xml.addAttribute("draw:text-areas", "0 6800 21600 18200"); 2608 setShapeMirroring(o, out); 2609 out.xml.endElement(); // enhanced geometry 2610 out.xml.endElement(); // custom shape 2611 } 2612 2613 2614 void ODrawToOdf::processFlowChartMagneticDrum(const MSO::OfficeArtSpContainer& o, Writer& out) { 2615 out.xml.startElement("draw:custom-shape"); 2616 processStyleAndText(o, out); 2617 2618 out.xml.startElement("draw:enhanced-geometry"); 2619 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 14800 10800 21600 10800"); 2620 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2621 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"); 2622 out.xml.addAttribute("draw:type", "flowchart-direct-access-storage"); 2623 out.xml.addAttribute("draw:text-areas", "3400 0 14800 21600"); 2624 setShapeMirroring(o, out); 2625 out.xml.endElement(); // enhanced geometry 2626 out.xml.endElement(); // custom shape 2627 } 2628 2629 2630 void ODrawToOdf::processFlowChartDisplay(const MSO::OfficeArtSpContainer& o, Writer& out) { 2631 out.xml.startElement("draw:custom-shape"); 2632 processStyleAndText(o, out); 2633 2634 out.xml.startElement("draw:enhanced-geometry"); 2635 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800"); 2636 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2637 out.xml.addAttribute("draw:enhanced-path", "M 3600 0 L 17800 0 X 21600 10800 17800 21600 L 3600 21600 0 10800 Z N"); 2638 out.xml.addAttribute("draw:type", "flowchart-display"); 2639 out.xml.addAttribute("draw:text-areas", "3600 0 17800 21600"); 2640 setShapeMirroring(o, out); 2641 out.xml.endElement(); // enhanced geometry 2642 out.xml.endElement(); // custom shape 2643 } 2644 2645 2646 void ODrawToOdf::processIrregularSeal1(const MSO::OfficeArtSpContainer& o, Writer& out) { 2647 out.xml.startElement("draw:custom-shape"); 2648 processStyleAndText(o, out); 2649 2650 out.xml.startElement("draw:enhanced-geometry"); 2651 out.xml.addAttribute("draw:glue-points", "14623 106 106 8718 8590 21600 21600 13393"); 2652 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2653 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"); 2654 out.xml.addAttribute("draw:type", "mso-spt71"); 2655 out.xml.addAttribute("draw:text-areas", "4680 6570 16140 13280"); 2656 setShapeMirroring(o, out); 2657 out.xml.endElement(); // enhanced geometry 2658 out.xml.endElement(); // custom shape 2659 } 2660 2661 2662 void ODrawToOdf::processIrregularSeal2(const MSO::OfficeArtSpContainer& o, Writer& out) { 2663 out.xml.startElement("draw:custom-shape"); 2664 processStyleAndText(o, out); 2665 2666 out.xml.startElement("draw:enhanced-geometry"); 2667 out.xml.addAttribute("draw:glue-points", "9722 1887 0 12875 11614 18844 21600 6646"); 2668 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2669 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"); 2670 out.xml.addAttribute("draw:type", "bang"); 2671 out.xml.addAttribute("draw:text-areas", "5400 6570 14160 15290"); 2672 setShapeMirroring(o, out); 2673 out.xml.endElement(); // enhanced geometry 2674 out.xml.endElement(); // custom shape 2675 } 2676 2677 2678 void ODrawToOdf::processSeal4(const MSO::OfficeArtSpContainer& o, Writer& out) { 2679 out.xml.startElement("draw:custom-shape"); 2680 processStyleAndText(o, out); 2681 2682 out.xml.startElement("draw:enhanced-geometry"); 2683 processModifiers(o, out, QList<int>() << 8100); 2684 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2685 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"); 2686 out.xml.addAttribute("draw:type", "star4"); 2687 out.xml.addAttribute("draw:text-areas", "?f4 ?f4 ?f3 ?f3"); 2688 setShapeMirroring(o, out); 2689 equation(out,"f0","7600"); 2690 equation(out,"f1","?f0 *$0 /10800"); 2691 equation(out,"f2","?f0 -?f1 "); 2692 equation(out,"f3","10800+?f2 "); 2693 equation(out,"f4","10800-?f2 "); 2694 out.xml.startElement("draw:handle"); 2695 out.xml.addAttribute("draw:handle-position", "$0 10800"); 2696 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 2697 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 2698 out.xml.endElement(); // draw:handle 2699 out.xml.endElement(); // enhanced geometry 2700 out.xml.endElement(); // custom shape 2701 } 2702 2703 2704 void ODrawToOdf::processStar(const MSO::OfficeArtSpContainer& o, Writer& out) { 2705 out.xml.startElement("draw:custom-shape"); 2706 processStyleAndText(o, out); 2707 2708 out.xml.startElement("draw:enhanced-geometry"); 2709 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2710 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"); 2711 out.xml.addAttribute("draw:type", "star5"); 2712 out.xml.addAttribute("draw:text-areas", "6722 8256 14878 15460"); 2713 setShapeMirroring(o, out); 2714 out.xml.endElement(); // enhanced geometry 2715 out.xml.endElement(); // custom shape 2716 } 2717 2718 2719 void ODrawToOdf::processSeal8(const MSO::OfficeArtSpContainer& o, Writer& out) { 2720 out.xml.startElement("draw:custom-shape"); 2721 processStyleAndText(o, out); 2722 2723 out.xml.startElement("draw:enhanced-geometry"); 2724 processModifiers(o, out, QList<int>() << 2500); 2725 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2726 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"); 2727 out.xml.addAttribute("draw:type", "star8"); 2728 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4"); 2729 setShapeMirroring(o, out); 2730 equation(out,"f0","$0 "); 2731 equation(out,"f1","(cos(315*(pi/180))*(?f0 -10800)+sin(315*(pi/180))*(10800-10800))+10800"); 2732 equation(out,"f2","-(sin(315*(pi/180))*(?f0 -10800)-cos(315*(pi/180))*(10800-10800))+10800"); 2733 equation(out,"f3","(cos(135*(pi/180))*(?f0 -10800)+sin(135*(pi/180))*(10800-10800))+10800"); 2734 equation(out,"f4","-(sin(135*(pi/180))*(?f0 -10800)-cos(135*(pi/180))*(10800-10800))+10800"); 2735 equation(out,"f5","(cos(0*(pi/180))*(0-10800)+sin(0*(pi/180))*(10800-10800))+10800"); 2736 equation(out,"f6","-(sin(0*(pi/180))*(0-10800)-cos(0*(pi/180))*(10800-10800))+10800"); 2737 equation(out,"f7","(cos(7*(pi/180))*(?f0 -10800)+sin(7*(pi/180))*(10800-10800))+10800"); 2738 equation(out,"f8","-(sin(7*(pi/180))*(?f0 -10800)-cos(7*(pi/180))*(10800-10800))+10800"); 2739 equation(out,"f9","(cos(15*(pi/180))*(0-10800)+sin(15*(pi/180))*(10800-10800))+10800"); 2740 equation(out,"f10","-(sin(15*(pi/180))*(0-10800)-cos(15*(pi/180))*(10800-10800))+10800"); 2741 equation(out,"f11","(cos(22*(pi/180))*(?f0 -10800)+sin(22*(pi/180))*(10800-10800))+10800"); 2742 equation(out,"f12","-(sin(22*(pi/180))*(?f0 -10800)-cos(22*(pi/180))*(10800-10800))+10800"); 2743 equation(out,"f13","(cos(30*(pi/180))*(0-10800)+sin(30*(pi/180))*(10800-10800))+10800"); 2744 equation(out,"f14","-(sin(30*(pi/180))*(0-10800)-cos(30*(pi/180))*(10800-10800))+10800"); 2745 equation(out,"f15","(cos(37*(pi/180))*(?f0 -10800)+sin(37*(pi/180))*(10800-10800))+10800"); 2746 equation(out,"f16","-(sin(37*(pi/180))*(?f0 -10800)-cos(37*(pi/180))*(10800-10800))+10800"); 2747 equation(out,"f17","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800"); 2748 equation(out,"f18","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800"); 2749 equation(out,"f19","(cos(52*(pi/180))*(?f0 -10800)+sin(52*(pi/180))*(10800-10800))+10800"); 2750 equation(out,"f20","-(sin(52*(pi/180))*(?f0 -10800)-cos(52*(pi/180))*(10800-10800))+10800"); 2751 equation(out,"f21","(cos(60*(pi/180))*(0-10800)+sin(60*(pi/180))*(10800-10800))+10800"); 2752 equation(out,"f22","-(sin(60*(pi/180))*(0-10800)-cos(60*(pi/180))*(10800-10800))+10800"); 2753 equation(out,"f23","(cos(67*(pi/180))*(?f0 -10800)+sin(67*(pi/180))*(10800-10800))+10800"); 2754 equation(out,"f24","-(sin(67*(pi/180))*(?f0 -10800)-cos(67*(pi/180))*(10800-10800))+10800"); 2755 equation(out,"f25","(cos(75*(pi/180))*(0-10800)+sin(75*(pi/180))*(10800-10800))+10800"); 2756 equation(out,"f26","-(sin(75*(pi/180))*(0-10800)-cos(75*(pi/180))*(10800-10800))+10800"); 2757 equation(out,"f27","(cos(82*(pi/180))*(?f0 -10800)+sin(82*(pi/180))*(10800-10800))+10800"); 2758 equation(out,"f28","-(sin(82*(pi/180))*(?f0 -10800)-cos(82*(pi/180))*(10800-10800))+10800"); 2759 equation(out,"f29","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800"); 2760 equation(out,"f30","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800"); 2761 equation(out,"f31","(cos(97*(pi/180))*(?f0 -10800)+sin(97*(pi/180))*(10800-10800))+10800"); 2762 equation(out,"f32","-(sin(97*(pi/180))*(?f0 -10800)-cos(97*(pi/180))*(10800-10800))+10800"); 2763 equation(out,"f33","(cos(105*(pi/180))*(0-10800)+sin(105*(pi/180))*(10800-10800))+10800"); 2764 equation(out,"f34","-(sin(105*(pi/180))*(0-10800)-cos(105*(pi/180))*(10800-10800))+10800"); 2765 equation(out,"f35","(cos(112*(pi/180))*(?f0 -10800)+sin(112*(pi/180))*(10800-10800))+10800"); 2766 equation(out,"f36","-(sin(112*(pi/180))*(?f0 -10800)-cos(112*(pi/180))*(10800-10800))+10800"); 2767 equation(out,"f37","(cos(120*(pi/180))*(0-10800)+sin(120*(pi/180))*(10800-10800))+10800"); 2768 equation(out,"f38","-(sin(120*(pi/180))*(0-10800)-cos(120*(pi/180))*(10800-10800))+10800"); 2769 equation(out,"f39","(cos(127*(pi/180))*(?f0 -10800)+sin(127*(pi/180))*(10800-10800))+10800"); 2770 equation(out,"f40","-(sin(127*(pi/180))*(?f0 -10800)-cos(127*(pi/180))*(10800-10800))+10800"); 2771 equation(out,"f41","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800"); 2772 equation(out,"f42","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800"); 2773 equation(out,"f43","(cos(142*(pi/180))*(?f0 -10800)+sin(142*(pi/180))*(10800-10800))+10800"); 2774 equation(out,"f44","-(sin(142*(pi/180))*(?f0 -10800)-cos(142*(pi/180))*(10800-10800))+10800"); 2775 equation(out,"f45","(cos(150*(pi/180))*(0-10800)+sin(150*(pi/180))*(10800-10800))+10800"); 2776 equation(out,"f46","-(sin(150*(pi/180))*(0-10800)-cos(150*(pi/180))*(10800-10800))+10800"); 2777 equation(out,"f47","(cos(157*(pi/180))*(?f0 -10800)+sin(157*(pi/180))*(10800-10800))+10800"); 2778 equation(out,"f48","-(sin(157*(pi/180))*(?f0 -10800)-cos(157*(pi/180))*(10800-10800))+10800"); 2779 equation(out,"f49","(cos(165*(pi/180))*(0-10800)+sin(165*(pi/180))*(10800-10800))+10800"); 2780 equation(out,"f50","-(sin(165*(pi/180))*(0-10800)-cos(165*(pi/180))*(10800-10800))+10800"); 2781 equation(out,"f51","(cos(172*(pi/180))*(?f0 -10800)+sin(172*(pi/180))*(10800-10800))+10800"); 2782 equation(out,"f52","-(sin(172*(pi/180))*(?f0 -10800)-cos(172*(pi/180))*(10800-10800))+10800"); 2783 equation(out,"f53","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800"); 2784 equation(out,"f54","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800"); 2785 equation(out,"f55","(cos(187*(pi/180))*(?f0 -10800)+sin(187*(pi/180))*(10800-10800))+10800"); 2786 equation(out,"f56","-(sin(187*(pi/180))*(?f0 -10800)-cos(187*(pi/180))*(10800-10800))+10800"); 2787 equation(out,"f57","(cos(195*(pi/180))*(0-10800)+sin(195*(pi/180))*(10800-10800))+10800"); 2788 equation(out,"f58","-(sin(195*(pi/180))*(0-10800)-cos(195*(pi/180))*(10800-10800))+10800"); 2789 equation(out,"f59","(cos(202*(pi/180))*(?f0 -10800)+sin(202*(pi/180))*(10800-10800))+10800"); 2790 equation(out,"f60","-(sin(202*(pi/180))*(?f0 -10800)-cos(202*(pi/180))*(10800-10800))+10800"); 2791 equation(out,"f61","(cos(210*(pi/180))*(0-10800)+sin(210*(pi/180))*(10800-10800))+10800"); 2792 equation(out,"f62","-(sin(210*(pi/180))*(0-10800)-cos(210*(pi/180))*(10800-10800))+10800"); 2793 equation(out,"f63","(cos(217*(pi/180))*(?f0 -10800)+sin(217*(pi/180))*(10800-10800))+10800"); 2794 equation(out,"f64","-(sin(217*(pi/180))*(?f0 -10800)-cos(217*(pi/180))*(10800-10800))+10800"); 2795 equation(out,"f65","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800"); 2796 equation(out,"f66","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800"); 2797 equation(out,"f67","(cos(232*(pi/180))*(?f0 -10800)+sin(232*(pi/180))*(10800-10800))+10800"); 2798 equation(out,"f68","-(sin(232*(pi/180))*(?f0 -10800)-cos(232*(pi/180))*(10800-10800))+10800"); 2799 equation(out,"f69","(cos(240*(pi/180))*(0-10800)+sin(240*(pi/180))*(10800-10800))+10800"); 2800 equation(out,"f70","-(sin(240*(pi/180))*(0-10800)-cos(240*(pi/180))*(10800-10800))+10800"); 2801 equation(out,"f71","(cos(247*(pi/180))*(?f0 -10800)+sin(247*(pi/180))*(10800-10800))+10800"); 2802 equation(out,"f72","-(sin(247*(pi/180))*(?f0 -10800)-cos(247*(pi/180))*(10800-10800))+10800"); 2803 equation(out,"f73","(cos(255*(pi/180))*(0-10800)+sin(255*(pi/180))*(10800-10800))+10800"); 2804 equation(out,"f74","-(sin(255*(pi/180))*(0-10800)-cos(255*(pi/180))*(10800-10800))+10800"); 2805 equation(out,"f75","(cos(262*(pi/180))*(?f0 -10800)+sin(262*(pi/180))*(10800-10800))+10800"); 2806 equation(out,"f76","-(sin(262*(pi/180))*(?f0 -10800)-cos(262*(pi/180))*(10800-10800))+10800"); 2807 equation(out,"f77","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800"); 2808 equation(out,"f78","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800"); 2809 equation(out,"f79","(cos(277*(pi/180))*(?f0 -10800)+sin(277*(pi/180))*(10800-10800))+10800"); 2810 equation(out,"f80","-(sin(277*(pi/180))*(?f0 -10800)-cos(277*(pi/180))*(10800-10800))+10800"); 2811 equation(out,"f81","(cos(285*(pi/180))*(0-10800)+sin(285*(pi/180))*(10800-10800))+10800"); 2812 equation(out,"f82","-(sin(285*(pi/180))*(0-10800)-cos(285*(pi/180))*(10800-10800))+10800"); 2813 equation(out,"f83","(cos(292*(pi/180))*(?f0 -10800)+sin(292*(pi/180))*(10800-10800))+10800"); 2814 equation(out,"f84","-(sin(292*(pi/180))*(?f0 -10800)-cos(292*(pi/180))*(10800-10800))+10800"); 2815 equation(out,"f85","(cos(300*(pi/180))*(0-10800)+sin(300*(pi/180))*(10800-10800))+10800"); 2816 equation(out,"f86","-(sin(300*(pi/180))*(0-10800)-cos(300*(pi/180))*(10800-10800))+10800"); 2817 equation(out,"f87","(cos(307*(pi/180))*(?f0 -10800)+sin(307*(pi/180))*(10800-10800))+10800"); 2818 equation(out,"f88","-(sin(307*(pi/180))*(?f0 -10800)-cos(307*(pi/180))*(10800-10800))+10800"); 2819 equation(out,"f89","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800"); 2820 equation(out,"f90","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800"); 2821 equation(out,"f91","(cos(322*(pi/180))*(?f0 -10800)+sin(322*(pi/180))*(10800-10800))+10800"); 2822 equation(out,"f92","-(sin(322*(pi/180))*(?f0 -10800)-cos(322*(pi/180))*(10800-10800))+10800"); 2823 equation(out,"f93","(cos(330*(pi/180))*(0-10800)+sin(330*(pi/180))*(10800-10800))+10800"); 2824 equation(out,"f94","-(sin(330*(pi/180))*(0-10800)-cos(330*(pi/180))*(10800-10800))+10800"); 2825 equation(out,"f95","(cos(337*(pi/180))*(?f0 -10800)+sin(337*(pi/180))*(10800-10800))+10800"); 2826 equation(out,"f96","-(sin(337*(pi/180))*(?f0 -10800)-cos(337*(pi/180))*(10800-10800))+10800"); 2827 equation(out,"f97","(cos(345*(pi/180))*(0-10800)+sin(345*(pi/180))*(10800-10800))+10800"); 2828 equation(out,"f98","-(sin(345*(pi/180))*(0-10800)-cos(345*(pi/180))*(10800-10800))+10800"); 2829 equation(out,"f99","(cos(352*(pi/180))*(?f0 -10800)+sin(352*(pi/180))*(10800-10800))+10800"); 2830 equation(out,"f100","-(sin(352*(pi/180))*(?f0 -10800)-cos(352*(pi/180))*(10800-10800))+10800"); 2831 out.xml.startElement("draw:handle"); 2832 out.xml.addAttribute("draw:handle-position", "$0 10800"); 2833 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 2834 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 2835 out.xml.endElement(); // draw:handle 2836 out.xml.endElement(); // enhanced geometry 2837 out.xml.endElement(); // custom shape 2838 } 2839 2840 2841 void ODrawToOdf::processSeal16(const MSO::OfficeArtSpContainer& o, Writer& out) { 2842 out.xml.startElement("draw:custom-shape"); 2843 processStyleAndText(o, out); 2844 2845 out.xml.startElement("draw:enhanced-geometry"); 2846 processModifiers(o, out, QList<int>() << 2500); 2847 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2848 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"); 2849 out.xml.addAttribute("draw:type", "mso-spt59"); 2850 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4"); 2851 setShapeMirroring(o, out); 2852 equation(out,"f0","$0 "); 2853 equation(out,"f1","(cos(315*(pi/180))*(?f0 -10800)+sin(315*(pi/180))*(10800-10800))+10800"); 2854 equation(out,"f2","-(sin(315*(pi/180))*(?f0 -10800)-cos(315*(pi/180))*(10800-10800))+10800"); 2855 equation(out,"f3","(cos(135*(pi/180))*(?f0 -10800)+sin(135*(pi/180))*(10800-10800))+10800"); 2856 equation(out,"f4","-(sin(135*(pi/180))*(?f0 -10800)-cos(135*(pi/180))*(10800-10800))+10800"); 2857 equation(out,"f5","(cos(0*(pi/180))*(0-10800)+sin(0*(pi/180))*(10800-10800))+10800"); 2858 equation(out,"f6","-(sin(0*(pi/180))*(0-10800)-cos(0*(pi/180))*(10800-10800))+10800"); 2859 equation(out,"f7","(cos(11*(pi/180))*(?f0 -10800)+sin(11*(pi/180))*(10800-10800))+10800"); 2860 equation(out,"f8","-(sin(11*(pi/180))*(?f0 -10800)-cos(11*(pi/180))*(10800-10800))+10800"); 2861 equation(out,"f9","(cos(22*(pi/180))*(0-10800)+sin(22*(pi/180))*(10800-10800))+10800"); 2862 equation(out,"f10","-(sin(22*(pi/180))*(0-10800)-cos(22*(pi/180))*(10800-10800))+10800"); 2863 equation(out,"f11","(cos(33*(pi/180))*(?f0 -10800)+sin(33*(pi/180))*(10800-10800))+10800"); 2864 equation(out,"f12","-(sin(33*(pi/180))*(?f0 -10800)-cos(33*(pi/180))*(10800-10800))+10800"); 2865 equation(out,"f13","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800"); 2866 equation(out,"f14","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800"); 2867 equation(out,"f15","(cos(56*(pi/180))*(?f0 -10800)+sin(56*(pi/180))*(10800-10800))+10800"); 2868 equation(out,"f16","-(sin(56*(pi/180))*(?f0 -10800)-cos(56*(pi/180))*(10800-10800))+10800"); 2869 equation(out,"f17","(cos(67*(pi/180))*(0-10800)+sin(67*(pi/180))*(10800-10800))+10800"); 2870 equation(out,"f18","-(sin(67*(pi/180))*(0-10800)-cos(67*(pi/180))*(10800-10800))+10800"); 2871 equation(out,"f19","(cos(78*(pi/180))*(?f0 -10800)+sin(78*(pi/180))*(10800-10800))+10800"); 2872 equation(out,"f20","-(sin(78*(pi/180))*(?f0 -10800)-cos(78*(pi/180))*(10800-10800))+10800"); 2873 equation(out,"f21","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800"); 2874 equation(out,"f22","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800"); 2875 equation(out,"f23","(cos(101*(pi/180))*(?f0 -10800)+sin(101*(pi/180))*(10800-10800))+10800"); 2876 equation(out,"f24","-(sin(101*(pi/180))*(?f0 -10800)-cos(101*(pi/180))*(10800-10800))+10800"); 2877 equation(out,"f25","(cos(112*(pi/180))*(0-10800)+sin(112*(pi/180))*(10800-10800))+10800"); 2878 equation(out,"f26","-(sin(112*(pi/180))*(0-10800)-cos(112*(pi/180))*(10800-10800))+10800"); 2879 equation(out,"f27","(cos(123*(pi/180))*(?f0 -10800)+sin(123*(pi/180))*(10800-10800))+10800"); 2880 equation(out,"f28","-(sin(123*(pi/180))*(?f0 -10800)-cos(123*(pi/180))*(10800-10800))+10800"); 2881 equation(out,"f29","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800"); 2882 equation(out,"f30","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800"); 2883 equation(out,"f31","(cos(146*(pi/180))*(?f0 -10800)+sin(146*(pi/180))*(10800-10800))+10800"); 2884 equation(out,"f32","-(sin(146*(pi/180))*(?f0 -10800)-cos(146*(pi/180))*(10800-10800))+10800"); 2885 equation(out,"f33","(cos(157*(pi/180))*(0-10800)+sin(157*(pi/180))*(10800-10800))+10800"); 2886 equation(out,"f34","-(sin(157*(pi/180))*(0-10800)-cos(157*(pi/180))*(10800-10800))+10800"); 2887 equation(out,"f35","(cos(168*(pi/180))*(?f0 -10800)+sin(168*(pi/180))*(10800-10800))+10800"); 2888 equation(out,"f36","-(sin(168*(pi/180))*(?f0 -10800)-cos(168*(pi/180))*(10800-10800))+10800"); 2889 equation(out,"f37","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800"); 2890 equation(out,"f38","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800"); 2891 equation(out,"f39","(cos(191*(pi/180))*(?f0 -10800)+sin(191*(pi/180))*(10800-10800))+10800"); 2892 equation(out,"f40","-(sin(191*(pi/180))*(?f0 -10800)-cos(191*(pi/180))*(10800-10800))+10800"); 2893 equation(out,"f41","(cos(202*(pi/180))*(0-10800)+sin(202*(pi/180))*(10800-10800))+10800"); 2894 equation(out,"f42","-(sin(202*(pi/180))*(0-10800)-cos(202*(pi/180))*(10800-10800))+10800"); 2895 equation(out,"f43","(cos(213*(pi/180))*(?f0 -10800)+sin(213*(pi/180))*(10800-10800))+10800"); 2896 equation(out,"f44","-(sin(213*(pi/180))*(?f0 -10800)-cos(213*(pi/180))*(10800-10800))+10800"); 2897 equation(out,"f45","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800"); 2898 equation(out,"f46","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800"); 2899 equation(out,"f47","(cos(236*(pi/180))*(?f0 -10800)+sin(236*(pi/180))*(10800-10800))+10800"); 2900 equation(out,"f48","-(sin(236*(pi/180))*(?f0 -10800)-cos(236*(pi/180))*(10800-10800))+10800"); 2901 equation(out,"f49","(cos(247*(pi/180))*(0-10800)+sin(247*(pi/180))*(10800-10800))+10800"); 2902 equation(out,"f50","-(sin(247*(pi/180))*(0-10800)-cos(247*(pi/180))*(10800-10800))+10800"); 2903 equation(out,"f51","(cos(258*(pi/180))*(?f0 -10800)+sin(258*(pi/180))*(10800-10800))+10800"); 2904 equation(out,"f52","-(sin(258*(pi/180))*(?f0 -10800)-cos(258*(pi/180))*(10800-10800))+10800"); 2905 equation(out,"f53","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800"); 2906 equation(out,"f54","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800"); 2907 equation(out,"f55","(cos(281*(pi/180))*(?f0 -10800)+sin(281*(pi/180))*(10800-10800))+10800"); 2908 equation(out,"f56","-(sin(281*(pi/180))*(?f0 -10800)-cos(281*(pi/180))*(10800-10800))+10800"); 2909 equation(out,"f57","(cos(292*(pi/180))*(0-10800)+sin(292*(pi/180))*(10800-10800))+10800"); 2910 equation(out,"f58","-(sin(292*(pi/180))*(0-10800)-cos(292*(pi/180))*(10800-10800))+10800"); 2911 equation(out,"f59","(cos(303*(pi/180))*(?f0 -10800)+sin(303*(pi/180))*(10800-10800))+10800"); 2912 equation(out,"f60","-(sin(303*(pi/180))*(?f0 -10800)-cos(303*(pi/180))*(10800-10800))+10800"); 2913 equation(out,"f61","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800"); 2914 equation(out,"f62","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800"); 2915 equation(out,"f63","(cos(326*(pi/180))*(?f0 -10800)+sin(326*(pi/180))*(10800-10800))+10800"); 2916 equation(out,"f64","-(sin(326*(pi/180))*(?f0 -10800)-cos(326*(pi/180))*(10800-10800))+10800"); 2917 equation(out,"f65","(cos(337*(pi/180))*(0-10800)+sin(337*(pi/180))*(10800-10800))+10800"); 2918 equation(out,"f66","-(sin(337*(pi/180))*(0-10800)-cos(337*(pi/180))*(10800-10800))+10800"); 2919 equation(out,"f67","(cos(348*(pi/180))*(?f0 -10800)+sin(348*(pi/180))*(10800-10800))+10800"); 2920 equation(out,"f68","-(sin(348*(pi/180))*(?f0 -10800)-cos(348*(pi/180))*(10800-10800))+10800"); 2921 out.xml.startElement("draw:handle"); 2922 out.xml.addAttribute("draw:handle-position", "$0 10800"); 2923 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 2924 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 2925 out.xml.endElement(); // draw:handle 2926 out.xml.endElement(); // enhanced geometry 2927 out.xml.endElement(); // custom shape 2928 } 2929 2930 2931 void ODrawToOdf::processSeal24(const MSO::OfficeArtSpContainer& o, Writer& out) { 2932 out.xml.startElement("draw:custom-shape"); 2933 processStyleAndText(o, out); 2934 2935 out.xml.startElement("draw:enhanced-geometry"); 2936 processModifiers(o, out, QList<int>() << 2500); 2937 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 2938 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"); 2939 out.xml.addAttribute("draw:type", "star24"); 2940 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4"); 2941 setShapeMirroring(o, out); 2942 equation(out,"f0","$0 "); 2943 equation(out,"f1","(cos(315*(pi/180))*(?f0 -10800)+sin(315*(pi/180))*(10800-10800))+10800"); 2944 equation(out,"f2","-(sin(315*(pi/180))*(?f0 -10800)-cos(315*(pi/180))*(10800-10800))+10800"); 2945 equation(out,"f3","(cos(135*(pi/180))*(?f0 -10800)+sin(135*(pi/180))*(10800-10800))+10800"); 2946 equation(out,"f4","-(sin(135*(pi/180))*(?f0 -10800)-cos(135*(pi/180))*(10800-10800))+10800"); 2947 equation(out,"f5","(cos(0*(pi/180))*(0-10800)+sin(0*(pi/180))*(10800-10800))+10800"); 2948 equation(out,"f6","-(sin(0*(pi/180))*(0-10800)-cos(0*(pi/180))*(10800-10800))+10800"); 2949 equation(out,"f7","(cos(7*(pi/180))*(?f0 -10800)+sin(7*(pi/180))*(10800-10800))+10800"); 2950 equation(out,"f8","-(sin(7*(pi/180))*(?f0 -10800)-cos(7*(pi/180))*(10800-10800))+10800"); 2951 equation(out,"f9","(cos(15*(pi/180))*(0-10800)+sin(15*(pi/180))*(10800-10800))+10800"); 2952 equation(out,"f10","-(sin(15*(pi/180))*(0-10800)-cos(15*(pi/180))*(10800-10800))+10800"); 2953 equation(out,"f11","(cos(22*(pi/180))*(?f0 -10800)+sin(22*(pi/180))*(10800-10800))+10800"); 2954 equation(out,"f12","-(sin(22*(pi/180))*(?f0 -10800)-cos(22*(pi/180))*(10800-10800))+10800"); 2955 equation(out,"f13","(cos(30*(pi/180))*(0-10800)+sin(30*(pi/180))*(10800-10800))+10800"); 2956 equation(out,"f14","-(sin(30*(pi/180))*(0-10800)-cos(30*(pi/180))*(10800-10800))+10800"); 2957 equation(out,"f15","(cos(37*(pi/180))*(?f0 -10800)+sin(37*(pi/180))*(10800-10800))+10800"); 2958 equation(out,"f16","-(sin(37*(pi/180))*(?f0 -10800)-cos(37*(pi/180))*(10800-10800))+10800"); 2959 equation(out,"f17","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800"); 2960 equation(out,"f18","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800"); 2961 equation(out,"f19","(cos(52*(pi/180))*(?f0 -10800)+sin(52*(pi/180))*(10800-10800))+10800"); 2962 equation(out,"f20","-(sin(52*(pi/180))*(?f0 -10800)-cos(52*(pi/180))*(10800-10800))+10800"); 2963 equation(out,"f21","(cos(60*(pi/180))*(0-10800)+sin(60*(pi/180))*(10800-10800))+10800"); 2964 equation(out,"f22","-(sin(60*(pi/180))*(0-10800)-cos(60*(pi/180))*(10800-10800))+10800"); 2965 equation(out,"f23","(cos(67*(pi/180))*(?f0 -10800)+sin(67*(pi/180))*(10800-10800))+10800"); 2966 equation(out,"f24","-(sin(67*(pi/180))*(?f0 -10800)-cos(67*(pi/180))*(10800-10800))+10800"); 2967 equation(out,"f25","(cos(75*(pi/180))*(0-10800)+sin(75*(pi/180))*(10800-10800))+10800"); 2968 equation(out,"f26","-(sin(75*(pi/180))*(0-10800)-cos(75*(pi/180))*(10800-10800))+10800"); 2969 equation(out,"f27","(cos(82*(pi/180))*(?f0 -10800)+sin(82*(pi/180))*(10800-10800))+10800"); 2970 equation(out,"f28","-(sin(82*(pi/180))*(?f0 -10800)-cos(82*(pi/180))*(10800-10800))+10800"); 2971 equation(out,"f29","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800"); 2972 equation(out,"f30","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800"); 2973 equation(out,"f31","(cos(97*(pi/180))*(?f0 -10800)+sin(97*(pi/180))*(10800-10800))+10800"); 2974 equation(out,"f32","-(sin(97*(pi/180))*(?f0 -10800)-cos(97*(pi/180))*(10800-10800))+10800"); 2975 equation(out,"f33","(cos(105*(pi/180))*(0-10800)+sin(105*(pi/180))*(10800-10800))+10800"); 2976 equation(out,"f34","-(sin(105*(pi/180))*(0-10800)-cos(105*(pi/180))*(10800-10800))+10800"); 2977 equation(out,"f35","(cos(112*(pi/180))*(?f0 -10800)+sin(112*(pi/180))*(10800-10800))+10800"); 2978 equation(out,"f36","-(sin(112*(pi/180))*(?f0 -10800)-cos(112*(pi/180))*(10800-10800))+10800"); 2979 equation(out,"f37","(cos(120*(pi/180))*(0-10800)+sin(120*(pi/180))*(10800-10800))+10800"); 2980 equation(out,"f38","-(sin(120*(pi/180))*(0-10800)-cos(120*(pi/180))*(10800-10800))+10800"); 2981 equation(out,"f39","(cos(127*(pi/180))*(?f0 -10800)+sin(127*(pi/180))*(10800-10800))+10800"); 2982 equation(out,"f40","-(sin(127*(pi/180))*(?f0 -10800)-cos(127*(pi/180))*(10800-10800))+10800"); 2983 equation(out,"f41","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800"); 2984 equation(out,"f42","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800"); 2985 equation(out,"f43","(cos(142*(pi/180))*(?f0 -10800)+sin(142*(pi/180))*(10800-10800))+10800"); 2986 equation(out,"f44","-(sin(142*(pi/180))*(?f0 -10800)-cos(142*(pi/180))*(10800-10800))+10800"); 2987 equation(out,"f45","(cos(150*(pi/180))*(0-10800)+sin(150*(pi/180))*(10800-10800))+10800"); 2988 equation(out,"f46","-(sin(150*(pi/180))*(0-10800)-cos(150*(pi/180))*(10800-10800))+10800"); 2989 equation(out,"f47","(cos(157*(pi/180))*(?f0 -10800)+sin(157*(pi/180))*(10800-10800))+10800"); 2990 equation(out,"f48","-(sin(157*(pi/180))*(?f0 -10800)-cos(157*(pi/180))*(10800-10800))+10800"); 2991 equation(out,"f49","(cos(165*(pi/180))*(0-10800)+sin(165*(pi/180))*(10800-10800))+10800"); 2992 equation(out,"f50","-(sin(165*(pi/180))*(0-10800)-cos(165*(pi/180))*(10800-10800))+10800"); 2993 equation(out,"f51","(cos(172*(pi/180))*(?f0 -10800)+sin(172*(pi/180))*(10800-10800))+10800"); 2994 equation(out,"f52","-(sin(172*(pi/180))*(?f0 -10800)-cos(172*(pi/180))*(10800-10800))+10800"); 2995 equation(out,"f53","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800"); 2996 equation(out,"f54","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800"); 2997 equation(out,"f55","(cos(187*(pi/180))*(?f0 -10800)+sin(187*(pi/180))*(10800-10800))+10800"); 2998 equation(out,"f56","-(sin(187*(pi/180))*(?f0 -10800)-cos(187*(pi/180))*(10800-10800))+10800"); 2999 equation(out,"f57","(cos(195*(pi/180))*(0-10800)+sin(195*(pi/180))*(10800-10800))+10800"); 3000 equation(out,"f58","-(sin(195*(pi/180))*(0-10800)-cos(195*(pi/180))*(10800-10800))+10800"); 3001 equation(out,"f59","(cos(202*(pi/180))*(?f0 -10800)+sin(202*(pi/180))*(10800-10800))+10800"); 3002 equation(out,"f60","-(sin(202*(pi/180))*(?f0 -10800)-cos(202*(pi/180))*(10800-10800))+10800"); 3003 equation(out,"f61","(cos(210*(pi/180))*(0-10800)+sin(210*(pi/180))*(10800-10800))+10800"); 3004 equation(out,"f62","-(sin(210*(pi/180))*(0-10800)-cos(210*(pi/180))*(10800-10800))+10800"); 3005 equation(out,"f63","(cos(217*(pi/180))*(?f0 -10800)+sin(217*(pi/180))*(10800-10800))+10800"); 3006 equation(out,"f64","-(sin(217*(pi/180))*(?f0 -10800)-cos(217*(pi/180))*(10800-10800))+10800"); 3007 equation(out,"f65","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800"); 3008 equation(out,"f66","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800"); 3009 equation(out,"f67","(cos(232*(pi/180))*(?f0 -10800)+sin(232*(pi/180))*(10800-10800))+10800"); 3010 equation(out,"f68","-(sin(232*(pi/180))*(?f0 -10800)-cos(232*(pi/180))*(10800-10800))+10800"); 3011 equation(out,"f69","(cos(240*(pi/180))*(0-10800)+sin(240*(pi/180))*(10800-10800))+10800"); 3012 equation(out,"f70","-(sin(240*(pi/180))*(0-10800)-cos(240*(pi/180))*(10800-10800))+10800"); 3013 equation(out,"f71","(cos(247*(pi/180))*(?f0 -10800)+sin(247*(pi/180))*(10800-10800))+10800"); 3014 equation(out,"f72","-(sin(247*(pi/180))*(?f0 -10800)-cos(247*(pi/180))*(10800-10800))+10800"); 3015 equation(out,"f73","(cos(255*(pi/180))*(0-10800)+sin(255*(pi/180))*(10800-10800))+10800"); 3016 equation(out,"f74","-(sin(255*(pi/180))*(0-10800)-cos(255*(pi/180))*(10800-10800))+10800"); 3017 equation(out,"f75","(cos(262*(pi/180))*(?f0 -10800)+sin(262*(pi/180))*(10800-10800))+10800"); 3018 equation(out,"f76","-(sin(262*(pi/180))*(?f0 -10800)-cos(262*(pi/180))*(10800-10800))+10800"); 3019 equation(out,"f77","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800"); 3020 equation(out,"f78","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800"); 3021 equation(out,"f79","(cos(277*(pi/180))*(?f0 -10800)+sin(277*(pi/180))*(10800-10800))+10800"); 3022 equation(out,"f80","-(sin(277*(pi/180))*(?f0 -10800)-cos(277*(pi/180))*(10800-10800))+10800"); 3023 equation(out,"f81","(cos(285*(pi/180))*(0-10800)+sin(285*(pi/180))*(10800-10800))+10800"); 3024 equation(out,"f82","-(sin(285*(pi/180))*(0-10800)-cos(285*(pi/180))*(10800-10800))+10800"); 3025 equation(out,"f83","(cos(292*(pi/180))*(?f0 -10800)+sin(292*(pi/180))*(10800-10800))+10800"); 3026 equation(out,"f84","-(sin(292*(pi/180))*(?f0 -10800)-cos(292*(pi/180))*(10800-10800))+10800"); 3027 equation(out,"f85","(cos(300*(pi/180))*(0-10800)+sin(300*(pi/180))*(10800-10800))+10800"); 3028 equation(out,"f86","-(sin(300*(pi/180))*(0-10800)-cos(300*(pi/180))*(10800-10800))+10800"); 3029 equation(out,"f87","(cos(307*(pi/180))*(?f0 -10800)+sin(307*(pi/180))*(10800-10800))+10800"); 3030 equation(out,"f88","-(sin(307*(pi/180))*(?f0 -10800)-cos(307*(pi/180))*(10800-10800))+10800"); 3031 equation(out,"f89","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800"); 3032 equation(out,"f90","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800"); 3033 equation(out,"f91","(cos(322*(pi/180))*(?f0 -10800)+sin(322*(pi/180))*(10800-10800))+10800"); 3034 equation(out,"f92","-(sin(322*(pi/180))*(?f0 -10800)-cos(322*(pi/180))*(10800-10800))+10800"); 3035 equation(out,"f93","(cos(330*(pi/180))*(0-10800)+sin(330*(pi/180))*(10800-10800))+10800"); 3036 equation(out,"f94","-(sin(330*(pi/180))*(0-10800)-cos(330*(pi/180))*(10800-10800))+10800"); 3037 equation(out,"f95","(cos(337*(pi/180))*(?f0 -10800)+sin(337*(pi/180))*(10800-10800))+10800"); 3038 equation(out,"f96","-(sin(337*(pi/180))*(?f0 -10800)-cos(337*(pi/180))*(10800-10800))+10800"); 3039 equation(out,"f97","(cos(345*(pi/180))*(0-10800)+sin(345*(pi/180))*(10800-10800))+10800"); 3040 equation(out,"f98","-(sin(345*(pi/180))*(0-10800)-cos(345*(pi/180))*(10800-10800))+10800"); 3041 equation(out,"f99","(cos(352*(pi/180))*(?f0 -10800)+sin(352*(pi/180))*(10800-10800))+10800"); 3042 equation(out,"f100","-(sin(352*(pi/180))*(?f0 -10800)-cos(352*(pi/180))*(10800-10800))+10800"); 3043 out.xml.startElement("draw:handle"); 3044 out.xml.addAttribute("draw:handle-position", "$0 10800"); 3045 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 3046 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 3047 out.xml.endElement(); // draw:handle 3048 out.xml.endElement(); // enhanced geometry 3049 out.xml.endElement(); // custom shape 3050 } 3051 3052 3053 void ODrawToOdf::processSeal32(const MSO::OfficeArtSpContainer& o, Writer& out) { 3054 out.xml.startElement("draw:custom-shape"); 3055 processStyleAndText(o, out); 3056 3057 out.xml.startElement("draw:enhanced-geometry"); 3058 processModifiers(o, out, QList<int>() << 2500); 3059 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3060 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"); 3061 out.xml.addAttribute("draw:type", "mso-spt60"); 3062 out.xml.addAttribute("draw:text-areas", "?f1 ?f2 ?f3 ?f4"); 3063 setShapeMirroring(o, out); 3064 equation(out,"f0","$0 "); 3065 equation(out,"f1","(cos(315*(pi/180))*(?f0 -10800)+sin(315*(pi/180))*(10800-10800))+10800"); 3066 equation(out,"f2","-(sin(315*(pi/180))*(?f0 -10800)-cos(315*(pi/180))*(10800-10800))+10800"); 3067 equation(out,"f3","(cos(135*(pi/180))*(?f0 -10800)+sin(135*(pi/180))*(10800-10800))+10800"); 3068 equation(out,"f4","-(sin(135*(pi/180))*(?f0 -10800)-cos(135*(pi/180))*(10800-10800))+10800"); 3069 equation(out,"f5","(cos(0*(pi/180))*(0-10800)+sin(0*(pi/180))*(10800-10800))+10800"); 3070 equation(out,"f6","-(sin(0*(pi/180))*(0-10800)-cos(0*(pi/180))*(10800-10800))+10800"); 3071 equation(out,"f7","(cos(5*(pi/180))*(?f0 -10800)+sin(5*(pi/180))*(10800-10800))+10800"); 3072 equation(out,"f8","-(sin(5*(pi/180))*(?f0 -10800)-cos(5*(pi/180))*(10800-10800))+10800"); 3073 equation(out,"f9","(cos(11*(pi/180))*(0-10800)+sin(11*(pi/180))*(10800-10800))+10800"); 3074 equation(out,"f10","-(sin(11*(pi/180))*(0-10800)-cos(11*(pi/180))*(10800-10800))+10800"); 3075 equation(out,"f11","(cos(16*(pi/180))*(?f0 -10800)+sin(16*(pi/180))*(10800-10800))+10800"); 3076 equation(out,"f12","-(sin(16*(pi/180))*(?f0 -10800)-cos(16*(pi/180))*(10800-10800))+10800"); 3077 equation(out,"f13","(cos(22*(pi/180))*(0-10800)+sin(22*(pi/180))*(10800-10800))+10800"); 3078 equation(out,"f14","-(sin(22*(pi/180))*(0-10800)-cos(22*(pi/180))*(10800-10800))+10800"); 3079 equation(out,"f15","(cos(28*(pi/180))*(?f0 -10800)+sin(28*(pi/180))*(10800-10800))+10800"); 3080 equation(out,"f16","-(sin(28*(pi/180))*(?f0 -10800)-cos(28*(pi/180))*(10800-10800))+10800"); 3081 equation(out,"f17","(cos(33*(pi/180))*(0-10800)+sin(33*(pi/180))*(10800-10800))+10800"); 3082 equation(out,"f18","-(sin(33*(pi/180))*(0-10800)-cos(33*(pi/180))*(10800-10800))+10800"); 3083 equation(out,"f19","(cos(39*(pi/180))*(?f0 -10800)+sin(39*(pi/180))*(10800-10800))+10800"); 3084 equation(out,"f20","-(sin(39*(pi/180))*(?f0 -10800)-cos(39*(pi/180))*(10800-10800))+10800"); 3085 equation(out,"f21","(cos(45*(pi/180))*(0-10800)+sin(45*(pi/180))*(10800-10800))+10800"); 3086 equation(out,"f22","-(sin(45*(pi/180))*(0-10800)-cos(45*(pi/180))*(10800-10800))+10800"); 3087 equation(out,"f23","(cos(50*(pi/180))*(?f0 -10800)+sin(50*(pi/180))*(10800-10800))+10800"); 3088 equation(out,"f24","-(sin(50*(pi/180))*(?f0 -10800)-cos(50*(pi/180))*(10800-10800))+10800"); 3089 equation(out,"f25","(cos(56*(pi/180))*(0-10800)+sin(56*(pi/180))*(10800-10800))+10800"); 3090 equation(out,"f26","-(sin(56*(pi/180))*(0-10800)-cos(56*(pi/180))*(10800-10800))+10800"); 3091 equation(out,"f27","(cos(61*(pi/180))*(?f0 -10800)+sin(61*(pi/180))*(10800-10800))+10800"); 3092 equation(out,"f28","-(sin(61*(pi/180))*(?f0 -10800)-cos(61*(pi/180))*(10800-10800))+10800"); 3093 equation(out,"f29","(cos(67*(pi/180))*(0-10800)+sin(67*(pi/180))*(10800-10800))+10800"); 3094 equation(out,"f30","-(sin(67*(pi/180))*(0-10800)-cos(67*(pi/180))*(10800-10800))+10800"); 3095 equation(out,"f31","(cos(73*(pi/180))*(?f0 -10800)+sin(73*(pi/180))*(10800-10800))+10800"); 3096 equation(out,"f32","-(sin(73*(pi/180))*(?f0 -10800)-cos(73*(pi/180))*(10800-10800))+10800"); 3097 equation(out,"f33","(cos(78*(pi/180))*(0-10800)+sin(78*(pi/180))*(10800-10800))+10800"); 3098 equation(out,"f34","-(sin(78*(pi/180))*(0-10800)-cos(78*(pi/180))*(10800-10800))+10800"); 3099 equation(out,"f35","(cos(84*(pi/180))*(?f0 -10800)+sin(84*(pi/180))*(10800-10800))+10800"); 3100 equation(out,"f36","-(sin(84*(pi/180))*(?f0 -10800)-cos(84*(pi/180))*(10800-10800))+10800"); 3101 equation(out,"f37","(cos(90*(pi/180))*(0-10800)+sin(90*(pi/180))*(10800-10800))+10800"); 3102 equation(out,"f38","-(sin(90*(pi/180))*(0-10800)-cos(90*(pi/180))*(10800-10800))+10800"); 3103 equation(out,"f39","(cos(95*(pi/180))*(?f0 -10800)+sin(95*(pi/180))*(10800-10800))+10800"); 3104 equation(out,"f40","-(sin(95*(pi/180))*(?f0 -10800)-cos(95*(pi/180))*(10800-10800))+10800"); 3105 equation(out,"f41","(cos(101*(pi/180))*(0-10800)+sin(101*(pi/180))*(10800-10800))+10800"); 3106 equation(out,"f42","-(sin(101*(pi/180))*(0-10800)-cos(101*(pi/180))*(10800-10800))+10800"); 3107 equation(out,"f43","(cos(106*(pi/180))*(?f0 -10800)+sin(106*(pi/180))*(10800-10800))+10800"); 3108 equation(out,"f44","-(sin(106*(pi/180))*(?f0 -10800)-cos(106*(pi/180))*(10800-10800))+10800"); 3109 equation(out,"f45","(cos(112*(pi/180))*(0-10800)+sin(112*(pi/180))*(10800-10800))+10800"); 3110 equation(out,"f46","-(sin(112*(pi/180))*(0-10800)-cos(112*(pi/180))*(10800-10800))+10800"); 3111 equation(out,"f47","(cos(118*(pi/180))*(?f0 -10800)+sin(118*(pi/180))*(10800-10800))+10800"); 3112 equation(out,"f48","-(sin(118*(pi/180))*(?f0 -10800)-cos(118*(pi/180))*(10800-10800))+10800"); 3113 equation(out,"f49","(cos(123*(pi/180))*(0-10800)+sin(123*(pi/180))*(10800-10800))+10800"); 3114 equation(out,"f50","-(sin(123*(pi/180))*(0-10800)-cos(123*(pi/180))*(10800-10800))+10800"); 3115 equation(out,"f51","(cos(129*(pi/180))*(?f0 -10800)+sin(129*(pi/180))*(10800-10800))+10800"); 3116 equation(out,"f52","-(sin(129*(pi/180))*(?f0 -10800)-cos(129*(pi/180))*(10800-10800))+10800"); 3117 equation(out,"f53","(cos(135*(pi/180))*(0-10800)+sin(135*(pi/180))*(10800-10800))+10800"); 3118 equation(out,"f54","-(sin(135*(pi/180))*(0-10800)-cos(135*(pi/180))*(10800-10800))+10800"); 3119 equation(out,"f55","(cos(140*(pi/180))*(?f0 -10800)+sin(140*(pi/180))*(10800-10800))+10800"); 3120 equation(out,"f56","-(sin(140*(pi/180))*(?f0 -10800)-cos(140*(pi/180))*(10800-10800))+10800"); 3121 equation(out,"f57","(cos(146*(pi/180))*(0-10800)+sin(146*(pi/180))*(10800-10800))+10800"); 3122 equation(out,"f58","-(sin(146*(pi/180))*(0-10800)-cos(146*(pi/180))*(10800-10800))+10800"); 3123 equation(out,"f59","(cos(151*(pi/180))*(?f0 -10800)+sin(151*(pi/180))*(10800-10800))+10800"); 3124 equation(out,"f60","-(sin(151*(pi/180))*(?f0 -10800)-cos(151*(pi/180))*(10800-10800))+10800"); 3125 equation(out,"f61","(cos(157*(pi/180))*(0-10800)+sin(157*(pi/180))*(10800-10800))+10800"); 3126 equation(out,"f62","-(sin(157*(pi/180))*(0-10800)-cos(157*(pi/180))*(10800-10800))+10800"); 3127 equation(out,"f63","(cos(163*(pi/180))*(?f0 -10800)+sin(163*(pi/180))*(10800-10800))+10800"); 3128 equation(out,"f64","-(sin(163*(pi/180))*(?f0 -10800)-cos(163*(pi/180))*(10800-10800))+10800"); 3129 equation(out,"f65","(cos(168*(pi/180))*(0-10800)+sin(168*(pi/180))*(10800-10800))+10800"); 3130 equation(out,"f66","-(sin(168*(pi/180))*(0-10800)-cos(168*(pi/180))*(10800-10800))+10800"); 3131 equation(out,"f67","(cos(174*(pi/180))*(?f0 -10800)+sin(174*(pi/180))*(10800-10800))+10800"); 3132 equation(out,"f68","-(sin(174*(pi/180))*(?f0 -10800)-cos(174*(pi/180))*(10800-10800))+10800"); 3133 equation(out,"f69","(cos(180*(pi/180))*(0-10800)+sin(180*(pi/180))*(10800-10800))+10800"); 3134 equation(out,"f70","-(sin(180*(pi/180))*(0-10800)-cos(180*(pi/180))*(10800-10800))+10800"); 3135 equation(out,"f71","(cos(185*(pi/180))*(?f0 -10800)+sin(185*(pi/180))*(10800-10800))+10800"); 3136 equation(out,"f72","-(sin(185*(pi/180))*(?f0 -10800)-cos(185*(pi/180))*(10800-10800))+10800"); 3137 equation(out,"f73","(cos(191*(pi/180))*(0-10800)+sin(191*(pi/180))*(10800-10800))+10800"); 3138 equation(out,"f74","-(sin(191*(pi/180))*(0-10800)-cos(191*(pi/180))*(10800-10800))+10800"); 3139 equation(out,"f75","(cos(196*(pi/180))*(?f0 -10800)+sin(196*(pi/180))*(10800-10800))+10800"); 3140 equation(out,"f76","-(sin(196*(pi/180))*(?f0 -10800)-cos(196*(pi/180))*(10800-10800))+10800"); 3141 equation(out,"f77","(cos(202*(pi/180))*(0-10800)+sin(202*(pi/180))*(10800-10800))+10800"); 3142 equation(out,"f78","-(sin(202*(pi/180))*(0-10800)-cos(202*(pi/180))*(10800-10800))+10800"); 3143 equation(out,"f79","(cos(208*(pi/180))*(?f0 -10800)+sin(208*(pi/180))*(10800-10800))+10800"); 3144 equation(out,"f80","-(sin(208*(pi/180))*(?f0 -10800)-cos(208*(pi/180))*(10800-10800))+10800"); 3145 equation(out,"f81","(cos(213*(pi/180))*(0-10800)+sin(213*(pi/180))*(10800-10800))+10800"); 3146 equation(out,"f82","-(sin(213*(pi/180))*(0-10800)-cos(213*(pi/180))*(10800-10800))+10800"); 3147 equation(out,"f83","(cos(219*(pi/180))*(?f0 -10800)+sin(219*(pi/180))*(10800-10800))+10800"); 3148 equation(out,"f84","-(sin(219*(pi/180))*(?f0 -10800)-cos(219*(pi/180))*(10800-10800))+10800"); 3149 equation(out,"f85","(cos(225*(pi/180))*(0-10800)+sin(225*(pi/180))*(10800-10800))+10800"); 3150 equation(out,"f86","-(sin(225*(pi/180))*(0-10800)-cos(225*(pi/180))*(10800-10800))+10800"); 3151 equation(out,"f87","(cos(230*(pi/180))*(?f0 -10800)+sin(230*(pi/180))*(10800-10800))+10800"); 3152 equation(out,"f88","-(sin(230*(pi/180))*(?f0 -10800)-cos(230*(pi/180))*(10800-10800))+10800"); 3153 equation(out,"f89","(cos(236*(pi/180))*(0-10800)+sin(236*(pi/180))*(10800-10800))+10800"); 3154 equation(out,"f90","-(sin(236*(pi/180))*(0-10800)-cos(236*(pi/180))*(10800-10800))+10800"); 3155 equation(out,"f91","(cos(241*(pi/180))*(?f0 -10800)+sin(241*(pi/180))*(10800-10800))+10800"); 3156 equation(out,"f92","-(sin(241*(pi/180))*(?f0 -10800)-cos(241*(pi/180))*(10800-10800))+10800"); 3157 equation(out,"f93","(cos(247*(pi/180))*(0-10800)+sin(247*(pi/180))*(10800-10800))+10800"); 3158 equation(out,"f94","-(sin(247*(pi/180))*(0-10800)-cos(247*(pi/180))*(10800-10800))+10800"); 3159 equation(out,"f95","(cos(253*(pi/180))*(?f0 -10800)+sin(253*(pi/180))*(10800-10800))+10800"); 3160 equation(out,"f96","-(sin(253*(pi/180))*(?f0 -10800)-cos(253*(pi/180))*(10800-10800))+10800"); 3161 equation(out,"f97","(cos(258*(pi/180))*(0-10800)+sin(258*(pi/180))*(10800-10800))+10800"); 3162 equation(out,"f98","-(sin(258*(pi/180))*(0-10800)-cos(258*(pi/180))*(10800-10800))+10800"); 3163 equation(out,"f99","(cos(264*(pi/180))*(?f0 -10800)+sin(264*(pi/180))*(10800-10800))+10800"); 3164 equation(out,"f100","-(sin(264*(pi/180))*(?f0 -10800)-cos(264*(pi/180))*(10800-10800))+10800"); 3165 equation(out,"f101","(cos(270*(pi/180))*(0-10800)+sin(270*(pi/180))*(10800-10800))+10800"); 3166 equation(out,"f102","-(sin(270*(pi/180))*(0-10800)-cos(270*(pi/180))*(10800-10800))+10800"); 3167 equation(out,"f103","(cos(275*(pi/180))*(?f0 -10800)+sin(275*(pi/180))*(10800-10800))+10800"); 3168 equation(out,"f104","-(sin(275*(pi/180))*(?f0 -10800)-cos(275*(pi/180))*(10800-10800))+10800"); 3169 equation(out,"f105","(cos(281*(pi/180))*(0-10800)+sin(281*(pi/180))*(10800-10800))+10800"); 3170 equation(out,"f106","-(sin(281*(pi/180))*(0-10800)-cos(281*(pi/180))*(10800-10800))+10800"); 3171 equation(out,"f107","(cos(286*(pi/180))*(?f0 -10800)+sin(286*(pi/180))*(10800-10800))+10800"); 3172 equation(out,"f108","-(sin(286*(pi/180))*(?f0 -10800)-cos(286*(pi/180))*(10800-10800))+10800"); 3173 equation(out,"f109","(cos(292*(pi/180))*(0-10800)+sin(292*(pi/180))*(10800-10800))+10800"); 3174 equation(out,"f110","-(sin(292*(pi/180))*(0-10800)-cos(292*(pi/180))*(10800-10800))+10800"); 3175 equation(out,"f111","(cos(298*(pi/180))*(?f0 -10800)+sin(298*(pi/180))*(10800-10800))+10800"); 3176 equation(out,"f112","-(sin(298*(pi/180))*(?f0 -10800)-cos(298*(pi/180))*(10800-10800))+10800"); 3177 equation(out,"f113","(cos(303*(pi/180))*(0-10800)+sin(303*(pi/180))*(10800-10800))+10800"); 3178 equation(out,"f114","-(sin(303*(pi/180))*(0-10800)-cos(303*(pi/180))*(10800-10800))+10800"); 3179 equation(out,"f115","(cos(309*(pi/180))*(?f0 -10800)+sin(309*(pi/180))*(10800-10800))+10800"); 3180 equation(out,"f116","-(sin(309*(pi/180))*(?f0 -10800)-cos(309*(pi/180))*(10800-10800))+10800"); 3181 equation(out,"f117","(cos(315*(pi/180))*(0-10800)+sin(315*(pi/180))*(10800-10800))+10800"); 3182 equation(out,"f118","-(sin(315*(pi/180))*(0-10800)-cos(315*(pi/180))*(10800-10800))+10800"); 3183 equation(out,"f119","(cos(320*(pi/180))*(?f0 -10800)+sin(320*(pi/180))*(10800-10800))+10800"); 3184 equation(out,"f120","-(sin(320*(pi/180))*(?f0 -10800)-cos(320*(pi/180))*(10800-10800))+10800"); 3185 equation(out,"f121","(cos(326*(pi/180))*(0-10800)+sin(326*(pi/180))*(10800-10800))+10800"); 3186 equation(out,"f122","-(sin(326*(pi/180))*(0-10800)-cos(326*(pi/180))*(10800-10800))+10800"); 3187 equation(out,"f123","(cos(331*(pi/180))*(?f0 -10800)+sin(331*(pi/180))*(10800-10800))+10800"); 3188 equation(out,"f124","-(sin(331*(pi/180))*(?f0 -10800)-cos(331*(pi/180))*(10800-10800))+10800"); 3189 equation(out,"f125","(cos(337*(pi/180))*(0-10800)+sin(337*(pi/180))*(10800-10800))+10800"); 3190 equation(out,"f126","-(sin(337*(pi/180))*(0-10800)-cos(337*(pi/180))*(10800-10800))+10800"); 3191 equation(out,"f127","(cos(343*(pi/180))*(?f0 -10800)+sin(343*(pi/180))*(10800-10800))+10800"); 3192 equation(out,"f128","-(sin(343*(pi/180))*(?f0 -10800)-cos(343*(pi/180))*(10800-10800))+10800"); 3193 equation(out,"f129","(cos(348*(pi/180))*(0-10800)+sin(348*(pi/180))*(10800-10800))+10800"); 3194 equation(out,"f130","-(sin(348*(pi/180))*(0-10800)-cos(348*(pi/180))*(10800-10800))+10800"); 3195 equation(out,"f131","(cos(354*(pi/180))*(?f0 -10800)+sin(354*(pi/180))*(10800-10800))+10800"); 3196 equation(out,"f132","-(sin(354*(pi/180))*(?f0 -10800)-cos(354*(pi/180))*(10800-10800))+10800"); 3197 out.xml.startElement("draw:handle"); 3198 out.xml.addAttribute("draw:handle-position", "$0 10800"); 3199 out.xml.addAttribute("draw:handle-range-x-maximum", "10800"); 3200 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 3201 out.xml.endElement(); // draw:handle 3202 out.xml.endElement(); // enhanced geometry 3203 out.xml.endElement(); // custom shape 3204 } 3205 3206 3207 void ODrawToOdf::processRibbon2(const MSO::OfficeArtSpContainer& o, Writer& out) { 3208 out.xml.startElement("draw:custom-shape"); 3209 processStyleAndText(o, out); 3210 3211 out.xml.startElement("draw:enhanced-geometry"); 3212 processModifiers(o, out, QList<int>() << 5400<< 18900); 3213 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3214 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"); 3215 out.xml.addAttribute("draw:type", "mso-spt54"); 3216 out.xml.addAttribute("draw:text-areas", "?f0 0 ?f19 ?f1"); 3217 setShapeMirroring(o, out); 3218 equation(out,"f0","$0 "); 3219 equation(out,"f1","$1 "); 3220 equation(out,"f2","21600-?f1 "); 3221 equation(out,"f3","?f2 /2"); 3222 equation(out,"f4","?f3 /2"); 3223 equation(out,"f5","?f4 /2"); 3224 equation(out,"f6","?f1 /2"); 3225 equation(out,"f7","21600-?f6 "); 3226 equation(out,"f8","420"); 3227 equation(out,"f9","?f8 *2"); 3228 equation(out,"f10","?f0 +?f8 "); 3229 equation(out,"f11","?f0 +?f9 "); 3230 equation(out,"f12","?f0 +2700"); 3231 equation(out,"f13","21600-?f4 "); 3232 equation(out,"f14","21600-?f5 "); 3233 equation(out,"f15","?f12 -?f8 "); 3234 equation(out,"f16","?f12 -?f9 "); 3235 equation(out,"f17","21600-?f11 "); 3236 equation(out,"f18","21600-?f10 "); 3237 equation(out,"f19","21600-?f0 "); 3238 equation(out,"f20","21600-?f16 "); 3239 equation(out,"f21","21600-?f15 "); 3240 equation(out,"f22","21600-?f12 "); 3241 equation(out,"f23","?f13 -?f5 "); 3242 equation(out,"f24","?f1 +?f3 "); 3243 equation(out,"f25","?f1 +?f4 "); 3244 equation(out,"f26","?f25 +?f5 "); 3245 equation(out,"f27","?f25 -?f5 "); 3246 out.xml.startElement("draw:handle"); 3247 out.xml.addAttribute("draw:handle-position", "$0 top"); 3248 out.xml.addAttribute("draw:handle-range-x-maximum", "8100"); 3249 out.xml.addAttribute("draw:handle-range-x-minimum", "2700"); 3250 out.xml.endElement(); // draw:handle 3251 out.xml.startElement("draw:handle"); 3252 out.xml.addAttribute("draw:handle-position", "10800 $1"); 3253 out.xml.addAttribute("draw:handle-range-y-minimum", "14400"); 3254 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 3255 out.xml.endElement(); // draw:handle 3256 out.xml.endElement(); // enhanced geometry 3257 out.xml.endElement(); // custom shape 3258 } 3259 3260 3261 void ODrawToOdf::processRibbon(const MSO::OfficeArtSpContainer& o, Writer& out) { 3262 out.xml.startElement("draw:custom-shape"); 3263 processStyleAndText(o, out); 3264 3265 out.xml.startElement("draw:enhanced-geometry"); 3266 out.xml.addAttribute("draw:glue-points", "?f17 ?f10 2700 ?f14 ?f17 21600 ?f18 ?f14"); 3267 processModifiers(o, out, QList<int>() << 5400<< 2700); 3268 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3269 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"); 3270 out.xml.addAttribute("draw:type", "mso-spt53"); 3271 out.xml.addAttribute("draw:text-areas", "?f0 ?f10 ?f9 21600"); 3272 setShapeMirroring(o, out); 3273 equation(out,"f0","$0 "); 3274 equation(out,"f1","?f0 +675"); 3275 equation(out,"f2","?f1 +675"); 3276 equation(out,"f3","?f2 +675"); 3277 equation(out,"f4","?f3 +675"); 3278 equation(out,"f5","21600-?f4 "); 3279 equation(out,"f6","21600-?f3 "); 3280 equation(out,"f7","21600-?f2 "); 3281 equation(out,"f8","21600-?f1 "); 3282 equation(out,"f9","21600-?f0 "); 3283 equation(out,"f10","$1 "); 3284 equation(out,"f11","?f10 /4"); 3285 equation(out,"f12","?f11 *2"); 3286 equation(out,"f13","?f11 *3"); 3287 equation(out,"f14","10800-?f12 "); 3288 equation(out,"f15","21600-?f10 "); 3289 equation(out,"f16","21600-?f11 "); 3290 equation(out,"f17","21600/2"); 3291 equation(out,"f18","21600-2700"); 3292 equation(out,"f19","?f17 -2700"); 3293 out.xml.startElement("draw:handle"); 3294 out.xml.addAttribute("draw:handle-position", "$0 top"); 3295 out.xml.addAttribute("draw:handle-range-x-maximum", "8100"); 3296 out.xml.addAttribute("draw:handle-range-x-minimum", "2700"); 3297 out.xml.endElement(); // draw:handle 3298 out.xml.startElement("draw:handle"); 3299 out.xml.addAttribute("draw:handle-position", "10800 $1"); 3300 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 3301 out.xml.addAttribute("draw:handle-range-y-maximum", "7200"); 3302 out.xml.endElement(); // draw:handle 3303 out.xml.endElement(); // enhanced geometry 3304 out.xml.endElement(); // custom shape 3305 } 3306 3307 3308 void ODrawToOdf::processEllipseRibbon2(const MSO::OfficeArtSpContainer& o, Writer& out) { 3309 out.xml.startElement("draw:custom-shape"); 3310 processStyleAndText(o, out); 3311 3312 out.xml.startElement("draw:enhanced-geometry"); 3313 processModifiers(o, out, QList<int>() << 5400<< 18900); 3314 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3315 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"); 3316 out.xml.addAttribute("draw:type", "mso-spt108"); 3317 out.xml.addAttribute("draw:text-areas", "?f0 0 ?f19 ?f1"); 3318 setShapeMirroring(o, out); 3319 equation(out,"f0","$0 "); 3320 equation(out,"f1","$1 "); 3321 equation(out,"f2","21600-?f1 "); 3322 equation(out,"f3","?f2 /2"); 3323 equation(out,"f4","?f3 /2"); 3324 equation(out,"f5","?f4 /2"); 3325 equation(out,"f6","?f1 /2"); 3326 equation(out,"f7","21600-?f6 "); 3327 equation(out,"f8","420"); 3328 equation(out,"f9","?f8 *2"); 3329 equation(out,"f10","?f0 +?f8 "); 3330 equation(out,"f11","?f0 +?f9 "); 3331 equation(out,"f12","?f0 +2700"); 3332 equation(out,"f13","21600-?f4 "); 3333 equation(out,"f14","21600-?f5 "); 3334 equation(out,"f15","?f12 -?f8 "); 3335 equation(out,"f16","?f12 -?f9 "); 3336 equation(out,"f17","21600-?f11 "); 3337 equation(out,"f18","21600-?f10 "); 3338 equation(out,"f19","21600-?f0 "); 3339 equation(out,"f20","21600-?f16 "); 3340 equation(out,"f21","21600-?f15 "); 3341 equation(out,"f22","21600-?f12 "); 3342 equation(out,"f23","?f13 -?f5 "); 3343 equation(out,"f24","?f1 +?f3 "); 3344 equation(out,"f25","?f1 +?f4 "); 3345 equation(out,"f26","?f25 +?f5 "); 3346 equation(out,"f27","?f25 -?f5 "); 3347 out.xml.startElement("draw:handle"); 3348 out.xml.addAttribute("draw:handle-position", "$0 top"); 3349 out.xml.addAttribute("draw:handle-range-x-maximum", "8100"); 3350 out.xml.addAttribute("draw:handle-range-x-minimum", "2700"); 3351 out.xml.endElement(); // draw:handle 3352 out.xml.startElement("draw:handle"); 3353 out.xml.addAttribute("draw:handle-position", "10800 $1"); 3354 out.xml.addAttribute("draw:handle-range-y-minimum", "14400"); 3355 out.xml.addAttribute("draw:handle-range-y-maximum", "21600"); 3356 out.xml.endElement(); // draw:handle 3357 out.xml.endElement(); // enhanced geometry 3358 out.xml.endElement(); // custom shape 3359 } 3360 3361 3362 void ODrawToOdf::processEllipseRibbon(const MSO::OfficeArtSpContainer& o, Writer& out) { 3363 out.xml.startElement("draw:custom-shape"); 3364 processStyleAndText(o, out); 3365 3366 out.xml.startElement("draw:enhanced-geometry"); 3367 out.xml.addAttribute("draw:glue-points", "?f17 ?f10 2700 ?f14 ?f17 21600 ?f18 ?f14"); 3368 processModifiers(o, out, QList<int>() << 5400<< 2700); 3369 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3370 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"); 3371 out.xml.addAttribute("draw:type", "mso-spt107"); 3372 out.xml.addAttribute("draw:text-areas", "?f0 ?f10 ?f9 21600"); 3373 setShapeMirroring(o, out); 3374 equation(out,"f0","$0 "); 3375 equation(out,"f1","?f0 +675"); 3376 equation(out,"f2","?f1 +675"); 3377 equation(out,"f3","?f2 +675"); 3378 equation(out,"f4","?f3 +675"); 3379 equation(out,"f5","21600-?f4 "); 3380 equation(out,"f6","21600-?f3 "); 3381 equation(out,"f7","21600-?f2 "); 3382 equation(out,"f8","21600-?f1 "); 3383 equation(out,"f9","21600-?f0 "); 3384 equation(out,"f10","$1 "); 3385 equation(out,"f11","?f10 /4"); 3386 equation(out,"f12","?f11 *2"); 3387 equation(out,"f13","?f11 *3"); 3388 equation(out,"f14","10800-?f12 "); 3389 equation(out,"f15","21600-?f10 "); 3390 equation(out,"f16","21600-?f11 "); 3391 equation(out,"f17","21600/2"); 3392 equation(out,"f18","21600-2700"); 3393 equation(out,"f19","?f17 -2700"); 3394 out.xml.startElement("draw:handle"); 3395 out.xml.addAttribute("draw:handle-position", "$0 top"); 3396 out.xml.addAttribute("draw:handle-range-x-maximum", "8100"); 3397 out.xml.addAttribute("draw:handle-range-x-minimum", "2700"); 3398 out.xml.endElement(); // draw:handle 3399 out.xml.startElement("draw:handle"); 3400 out.xml.addAttribute("draw:handle-position", "10800 $1"); 3401 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 3402 out.xml.addAttribute("draw:handle-range-y-maximum", "7200"); 3403 out.xml.endElement(); // draw:handle 3404 out.xml.endElement(); // enhanced geometry 3405 out.xml.endElement(); // custom shape 3406 } 3407 3408 3409 void ODrawToOdf::processVerticalScroll(const MSO::OfficeArtSpContainer& o, Writer& out) { 3410 out.xml.startElement("draw:custom-shape"); 3411 processStyleAndText(o, out); 3412 3413 out.xml.startElement("draw:enhanced-geometry"); 3414 processModifiers(o, out, QList<int>() << 2700); 3415 out.xml.addAttribute("draw:path-stretchpoint-x", "11000"); 3416 out.xml.addAttribute("draw:path-stretchpoint-y", "10800"); 3417 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3418 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"); 3419 out.xml.addAttribute("draw:type", "vertical-scroll"); 3420 out.xml.addAttribute("draw:text-areas", "?f0 ?f0 ?f3 ?f12"); 3421 setShapeMirroring(o, out); 3422 equation(out,"f0","$0 "); 3423 equation(out,"f1","?f0 /2"); 3424 equation(out,"f2","right-?f1 "); 3425 equation(out,"f3","right-?f0 "); 3426 equation(out,"f4","?f0 +?f1 "); 3427 equation(out,"f5","right-?f4 "); 3428 equation(out,"f6","?f0 *2"); 3429 equation(out,"f7","?f1 /2"); 3430 equation(out,"f8","?f0 +?f7 "); 3431 equation(out,"f9","?f1 +?f7 "); 3432 equation(out,"f10","bottom-?f9 "); 3433 equation(out,"f11","bottom-?f1 "); 3434 equation(out,"f12","bottom-?f0 "); 3435 equation(out,"f13","bottom-?f4 "); 3436 out.xml.startElement("draw:handle"); 3437 out.xml.addAttribute("draw:handle-position", "left $0"); 3438 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 3439 out.xml.addAttribute("draw:handle-range-y-maximum", "5400"); 3440 out.xml.endElement(); // draw:handle 3441 out.xml.endElement(); // enhanced geometry 3442 out.xml.endElement(); // custom shape 3443 } 3444 3445 3446 void ODrawToOdf::processHorizontalScroll(const MSO::OfficeArtSpContainer& o, Writer& out) { 3447 out.xml.startElement("draw:custom-shape"); 3448 processStyleAndText(o, out); 3449 3450 out.xml.startElement("draw:enhanced-geometry"); 3451 processModifiers(o, out, QList<int>() << 2700); 3452 out.xml.addAttribute("draw:path-stretchpoint-x", "10800"); 3453 out.xml.addAttribute("draw:path-stretchpoint-y", "11000"); 3454 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3455 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"); 3456 out.xml.addAttribute("draw:type", "horizontal-scroll"); 3457 out.xml.addAttribute("draw:text-areas", "?f0 ?f0 ?f3 ?f12"); 3458 setShapeMirroring(o, out); 3459 equation(out,"f0","$0 "); 3460 equation(out,"f1","?f0 /2"); 3461 equation(out,"f2","right-?f1 "); 3462 equation(out,"f3","right-?f0 "); 3463 equation(out,"f4","?f0 +?f1 "); 3464 equation(out,"f5","right-?f4 "); 3465 equation(out,"f6","?f0 *2"); 3466 equation(out,"f7","?f1 /2"); 3467 equation(out,"f8","?f0 +?f7 "); 3468 equation(out,"f9","?f1 +?f7 "); 3469 equation(out,"f10","bottom-?f9 "); 3470 equation(out,"f11","bottom-?f1 "); 3471 equation(out,"f12","bottom-?f0 "); 3472 equation(out,"f13","bottom-?f4 "); 3473 out.xml.startElement("draw:handle"); 3474 out.xml.addAttribute("draw:handle-position", "$0 top"); 3475 out.xml.addAttribute("draw:handle-range-x-maximum", "5400"); 3476 out.xml.addAttribute("draw:handle-range-x-minimum", "0"); 3477 out.xml.endElement(); // draw:handle 3478 out.xml.endElement(); // enhanced geometry 3479 out.xml.endElement(); // custom shape 3480 } 3481 3482 3483 void ODrawToOdf::processWave(const MSO::OfficeArtSpContainer& o, Writer& out) { 3484 out.xml.startElement("draw:custom-shape"); 3485 processStyleAndText(o, out); 3486 3487 out.xml.startElement("draw:enhanced-geometry"); 3488 out.xml.addAttribute("draw:glue-points", "?f18 ?f0 ?f20 10800 ?f19 ?f1 ?f21 10800"); 3489 processModifiers(o, out, QList<int>() << 1400<< 10800); 3490 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3491 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"); 3492 out.xml.addAttribute("draw:type", "mso-spt64"); 3493 out.xml.addAttribute("draw:text-areas", "?f5 ?f22 ?f11 ?f23"); 3494 setShapeMirroring(o, out); 3495 equation(out,"f0","$0 "); 3496 equation(out,"f1","21600-?f0 "); 3497 equation(out,"f2","$1 "); 3498 equation(out,"f3","?f2 -10800"); 3499 equation(out,"f4","?f3 *2"); 3500 equation(out,"f5","abs(?f4 )"); 3501 equation(out,"f6","4320-?f5 "); 3502 equation(out,"f7","if(?f3 ,0,?f5 )"); 3503 equation(out,"f8","15800*?f0 /4460"); 3504 equation(out,"f9","?f0 -?f8 "); 3505 equation(out,"f10","?f0 +?f8 "); 3506 equation(out,"f11","21600-?f4 "); 3507 equation(out,"f12","if(?f3 ,?f11 ,21600)"); 3508 equation(out,"f13","?f12 -?f7 "); 3509 equation(out,"f14","?f5 /2"); 3510 equation(out,"f15","?f7 +7200-?f14 "); 3511 equation(out,"f16","?f12 +?f14 -7200"); 3512 equation(out,"f17","?f13 /2"); 3513 equation(out,"f18","?f7 +?f17 "); 3514 equation(out,"f19","21600-?f18 "); 3515 equation(out,"f20","?f5 /2"); 3516 equation(out,"f21","21600-?f20 "); 3517 equation(out,"f22","?f0 *2"); 3518 equation(out,"f23","21600-?f22 "); 3519 equation(out,"f24","21600-?f7 "); 3520 equation(out,"f25","21600-?f15 "); 3521 equation(out,"f26","?f1 +?f8 "); 3522 equation(out,"f27","21600-?f16 "); 3523 equation(out,"f28","?f1 -?f8 "); 3524 equation(out,"f29","21600-?f12 "); 3525 out.xml.startElement("draw:handle"); 3526 out.xml.addAttribute("draw:handle-position", "left $0"); 3527 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 3528 out.xml.addAttribute("draw:handle-range-y-maximum", "4460"); 3529 out.xml.endElement(); // draw:handle 3530 out.xml.startElement("draw:handle"); 3531 out.xml.addAttribute("draw:handle-position", "$1 21600"); 3532 out.xml.addAttribute("draw:handle-range-x-maximum", "12960"); 3533 out.xml.addAttribute("draw:handle-range-x-minimum", "8640"); 3534 out.xml.endElement(); // draw:handle 3535 out.xml.endElement(); // enhanced geometry 3536 out.xml.endElement(); // custom shape 3537 } 3538 3539 3540 void ODrawToOdf::processDoubleWave(const MSO::OfficeArtSpContainer& o, Writer& out) { 3541 out.xml.startElement("draw:custom-shape"); 3542 processStyleAndText(o, out); 3543 3544 out.xml.startElement("draw:enhanced-geometry"); 3545 out.xml.addAttribute("draw:glue-points", "?f18 ?f0 ?f20 10800 ?f19 ?f1 ?f21 10800"); 3546 processModifiers(o, out, QList<int>() << 1400<< 10800); 3547 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3548 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"); 3549 out.xml.addAttribute("draw:type", "mso-spt188"); 3550 out.xml.addAttribute("draw:text-areas", "?f5 ?f22 ?f11 ?f23"); 3551 setShapeMirroring(o, out); 3552 equation(out,"f0","$0 "); 3553 equation(out,"f1","21600-?f0 "); 3554 equation(out,"f2","$1 "); 3555 equation(out,"f3","?f2 -10800"); 3556 equation(out,"f4","?f3 *2"); 3557 equation(out,"f5","abs(?f4 )"); 3558 equation(out,"f6","4320-?f5 "); 3559 equation(out,"f7","if(?f3 ,0,?f5 )"); 3560 equation(out,"f8","7900*?f0 /2230"); 3561 equation(out,"f9","?f0 -?f8 "); 3562 equation(out,"f10","?f0 +?f8 "); 3563 equation(out,"f11","21600-?f4 "); 3564 equation(out,"f12","if(?f3 ,?f11 ,21600)"); 3565 equation(out,"f13","?f12 -?f7 "); 3566 equation(out,"f14","?f5 /2"); 3567 equation(out,"f15","?f7 +3600-?f14 "); 3568 equation(out,"f16","?f12 +?f14 -3600"); 3569 equation(out,"f17","?f13 /2"); 3570 equation(out,"f18","?f7 +?f17 "); 3571 equation(out,"f19","21600-?f18 "); 3572 equation(out,"f20","?f5 /2"); 3573 equation(out,"f21","21600-?f20 "); 3574 equation(out,"f22","?f0 *2"); 3575 equation(out,"f23","21600-?f22 "); 3576 equation(out,"f24","21600-?f7 "); 3577 equation(out,"f25","21600-?f15 "); 3578 equation(out,"f26","?f1 +?f8 "); 3579 equation(out,"f27","21600-?f16 "); 3580 equation(out,"f28","?f1 -?f8 "); 3581 equation(out,"f29","21600-?f12 "); 3582 equation(out,"f30","?f18 -?f14 "); 3583 equation(out,"f31","?f18 +?f14 "); 3584 equation(out,"f32","?f19 -?f14 "); 3585 equation(out,"f33","?f19 +?f14 "); 3586 out.xml.startElement("draw:handle"); 3587 out.xml.addAttribute("draw:handle-position", "left $0"); 3588 out.xml.addAttribute("draw:handle-range-y-minimum", "0"); 3589 out.xml.addAttribute("draw:handle-range-y-maximum", "2230"); 3590 out.xml.endElement(); // draw:handle 3591 out.xml.startElement("draw:handle"); 3592 out.xml.addAttribute("draw:handle-position", "$1 21600"); 3593 out.xml.addAttribute("draw:handle-range-x-maximum", "12960"); 3594 out.xml.addAttribute("draw:handle-range-x-minimum", "8640"); 3595 out.xml.endElement(); // draw:handle 3596 out.xml.endElement(); // enhanced geometry 3597 out.xml.endElement(); // custom shape 3598 } 3599 3600 3601 void ODrawToOdf::processWedgeRectCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 3602 out.xml.startElement("draw:custom-shape"); 3603 processStyleAndText(o, out); 3604 3605 out.xml.startElement("draw:enhanced-geometry"); 3606 out.xml.addAttribute("draw:glue-points", "10800 0 0 10800 10800 21600 21600 10800 ?f40 ?f41"); 3607 processModifiers(o, out, QList<int>() << 1400<< 25920); 3608 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3609 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"); 3610 out.xml.addAttribute("draw:type", "rectangular-callout"); 3611 out.xml.addAttribute("draw:text-areas", "0 0 21600 21600"); 3612 setShapeMirroring(o, out); 3613 equation(out,"f0","$0 -10800"); 3614 equation(out,"f1","$1 -10800"); 3615 equation(out,"f2","if(?f18 ,$0 ,0)"); 3616 equation(out,"f3","if(?f18 ,$1 ,6280)"); 3617 equation(out,"f4","if(?f23 ,$0 ,0)"); 3618 equation(out,"f5","if(?f23 ,$1 ,15320)"); 3619 equation(out,"f6","if(?f26 ,$0 ,6280)"); 3620 equation(out,"f7","if(?f26 ,$1 ,21600)"); 3621 equation(out,"f8","if(?f29 ,$0 ,15320)"); 3622 equation(out,"f9","if(?f29 ,$1 ,21600)"); 3623 equation(out,"f10","if(?f32 ,$0 ,21600)"); 3624 equation(out,"f11","if(?f32 ,$1 ,15320)"); 3625 equation(out,"f12","if(?f34 ,$0 ,21600)"); 3626 equation(out,"f13","if(?f34 ,$1 ,6280)"); 3627 equation(out,"f14","if(?f36 ,$0 ,15320)"); 3628 equation(out,"f15","if(?f36 ,$1 ,0)"); 3629 equation(out,"f16","if(?f38 ,$0 ,6280)"); 3630 equation(out,"f17","if(?f38 ,$1 ,0)"); 3631 equation(out,"f18","if($0 ,-1,?f19 )"); 3632 equation(out,"f19","if(?f1 ,-1,?f22 )"); 3633 equation(out,"f20","abs(?f0 )"); 3634 equation(out,"f21","abs(?f1 )"); 3635 equation(out,"f22","?f20 -?f21 "); 3636 equation(out,"f23","if($0 ,-1,?f24 )"); 3637 equation(out,"f24","if(?f1 ,?f22 ,-1)"); 3638 equation(out,"f25","$1 -21600"); 3639 equation(out,"f26","if(?f25 ,?f27 ,-1)"); 3640 equation(out,"f27","if(?f0 ,-1,?f28 )"); 3641 equation(out,"f28","?f21 -?f20 "); 3642 equation(out,"f29","if(?f25 ,?f30 ,-1)"); 3643 equation(out,"f30","if(?f0 ,?f28 ,-1)"); 3644 equation(out,"f31","$0 -21600"); 3645 equation(out,"f32","if(?f31 ,?f33 ,-1)"); 3646 equation(out,"f33","if(?f1 ,?f22 ,-1)"); 3647 equation(out,"f34","if(?f31 ,?f35 ,-1)"); 3648 equation(out,"f35","if(?f1 ,-1,?f22 )"); 3649 equation(out,"f36","if($1 ,-1,?f37 )"); 3650 equation(out,"f37","if(?f0 ,?f28 ,-1)"); 3651 equation(out,"f38","if($1 ,-1,?f39 )"); 3652 equation(out,"f39","if(?f0 ,-1,?f28 )"); 3653 equation(out,"f40","$0 "); 3654 equation(out,"f41","$1 "); 3655 out.xml.startElement("draw:handle"); 3656 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3657 out.xml.endElement(); // draw:handle 3658 out.xml.endElement(); // enhanced geometry 3659 out.xml.endElement(); // custom shape 3660 } 3661 3662 3663 void ODrawToOdf::processWedgeRRectCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 3664 out.xml.startElement("draw:custom-shape"); 3665 processStyleAndText(o, out); 3666 3667 out.xml.startElement("draw:enhanced-geometry"); 3668 processModifiers(o, out, QList<int>() << 1400<< 25920); 3669 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3670 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"); 3671 out.xml.addAttribute("draw:type", "round-rectangular-callout"); 3672 out.xml.addAttribute("draw:text-areas", "800 800 20800 20800"); 3673 setShapeMirroring(o, out); 3674 equation(out,"f0","$0 -10800"); 3675 equation(out,"f1","$1 -10800"); 3676 equation(out,"f2","if(?f18 ,$0 ,0)"); 3677 equation(out,"f3","if(?f18 ,$1 ,6280)"); 3678 equation(out,"f4","if(?f23 ,$0 ,0)"); 3679 equation(out,"f5","if(?f23 ,$1 ,15320)"); 3680 equation(out,"f6","if(?f26 ,$0 ,6280)"); 3681 equation(out,"f7","if(?f26 ,$1 ,21600)"); 3682 equation(out,"f8","if(?f29 ,$0 ,15320)"); 3683 equation(out,"f9","if(?f29 ,$1 ,21600)"); 3684 equation(out,"f10","if(?f32 ,$0 ,21600)"); 3685 equation(out,"f11","if(?f32 ,$1 ,15320)"); 3686 equation(out,"f12","if(?f34 ,$0 ,21600)"); 3687 equation(out,"f13","if(?f34 ,$1 ,6280)"); 3688 equation(out,"f14","if(?f36 ,$0 ,15320)"); 3689 equation(out,"f15","if(?f36 ,$1 ,0)"); 3690 equation(out,"f16","if(?f38 ,$0 ,6280)"); 3691 equation(out,"f17","if(?f38 ,$1 ,0)"); 3692 equation(out,"f18","if($0 ,-1,?f19 )"); 3693 equation(out,"f19","if(?f1 ,-1,?f22 )"); 3694 equation(out,"f20","abs(?f0 )"); 3695 equation(out,"f21","abs(?f1 )"); 3696 equation(out,"f22","?f20 -?f21 "); 3697 equation(out,"f23","if($0 ,-1,?f24 )"); 3698 equation(out,"f24","if(?f1 ,?f22 ,-1)"); 3699 equation(out,"f25","$1 -21600"); 3700 equation(out,"f26","if(?f25 ,?f27 ,-1)"); 3701 equation(out,"f27","if(?f0 ,-1,?f28 )"); 3702 equation(out,"f28","?f21 -?f20 "); 3703 equation(out,"f29","if(?f25 ,?f30 ,-1)"); 3704 equation(out,"f30","if(?f0 ,?f28 ,-1)"); 3705 equation(out,"f31","$0 -21600"); 3706 equation(out,"f32","if(?f31 ,?f33 ,-1)"); 3707 equation(out,"f33","if(?f1 ,?f22 ,-1)"); 3708 equation(out,"f34","if(?f31 ,?f35 ,-1)"); 3709 equation(out,"f35","if(?f1 ,-1,?f22 )"); 3710 equation(out,"f36","if($1 ,-1,?f37 )"); 3711 equation(out,"f37","if(?f0 ,?f28 ,-1)"); 3712 equation(out,"f38","if($1 ,-1,?f39 )"); 3713 equation(out,"f39","if(?f0 ,-1,?f28 )"); 3714 equation(out,"f40","$0 "); 3715 equation(out,"f41","$1 "); 3716 out.xml.startElement("draw:handle"); 3717 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3718 out.xml.endElement(); // draw:handle 3719 out.xml.endElement(); // enhanced geometry 3720 out.xml.endElement(); // custom shape 3721 } 3722 3723 3724 void ODrawToOdf::processWedgeEllipseCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 3725 out.xml.startElement("draw:custom-shape"); 3726 processStyleAndText(o, out); 3727 3728 out.xml.startElement("draw:enhanced-geometry"); 3729 out.xml.addAttribute("draw:glue-points", "10800 0 3160 3160 0 10800 3160 18440 10800 21600 18440 18440 21600 10800 18440 3160 ?f14 ?f15"); 3730 processModifiers(o, out, QList<int>() << 1350<< 25920); 3731 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3732 out.xml.addAttribute("draw:enhanced-path", "V 0 0 21600 21600 ?f22 ?f23 ?f18 ?f19 L ?f14 ?f15 Z N"); 3733 out.xml.addAttribute("draw:type", "round-callout"); 3734 out.xml.addAttribute("draw:text-areas", "3200 3200 18400 18400"); 3735 setShapeMirroring(o, out); 3736 equation(out,"f0","$0 -10800"); 3737 equation(out,"f1","$1 -10800"); 3738 equation(out,"f2","?f0 *?f0 "); 3739 equation(out,"f3","?f1 *?f1 "); 3740 equation(out,"f4","?f2 +?f3 "); 3741 equation(out,"f5","sqrt(?f4 )"); 3742 equation(out,"f6","?f5 -10800"); 3743 equation(out,"f7","atan2(?f1 ,?f0 )/(pi/180)"); 3744 equation(out,"f8","?f7 -10"); 3745 equation(out,"f9","?f7 +10"); 3746 equation(out,"f10","10800*cos(?f7 *(pi/180))"); 3747 equation(out,"f11","10800*sin(?f7 *(pi/180))"); 3748 equation(out,"f12","?f10 +10800"); 3749 equation(out,"f13","?f11 +10800"); 3750 equation(out,"f14","if(?f6 ,$0 ,?f12 )"); 3751 equation(out,"f15","if(?f6 ,$1 ,?f13 )"); 3752 equation(out,"f16","10800*cos(?f8 *(pi/180))"); 3753 equation(out,"f17","10800*sin(?f8 *(pi/180))"); 3754 equation(out,"f18","?f16 +10800"); 3755 equation(out,"f19","?f17 +10800"); 3756 equation(out,"f20","10800*cos(?f9 *(pi/180))"); 3757 equation(out,"f21","10800*sin(?f9 *(pi/180))"); 3758 equation(out,"f22","?f20 +10800"); 3759 equation(out,"f23","?f21 +10800"); 3760 out.xml.startElement("draw:handle"); 3761 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3762 out.xml.endElement(); // draw:handle 3763 out.xml.endElement(); // enhanced geometry 3764 out.xml.endElement(); // custom shape 3765 } 3766 3767 3768 void ODrawToOdf::processCloudCallout(const MSO::OfficeArtSpContainer& o, Writer& out) { 3769 out.xml.startElement("draw:custom-shape"); 3770 processStyleAndText(o, out); 3771 3772 out.xml.startElement("draw:enhanced-geometry"); 3773 processModifiers(o, out, QList<int>() << 1350<< 25920); 3774 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3775 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"); 3776 out.xml.addAttribute("draw:type", "cloud-callout"); 3777 out.xml.addAttribute("draw:text-areas", "3000 3320 17110 17330"); 3778 setShapeMirroring(o, out); 3779 equation(out,"f0","$0 -10800"); 3780 equation(out,"f1","$1 -10800"); 3781 equation(out,"f2","atan2(?f1 ,?f0 )/(pi/180)"); 3782 equation(out,"f3","10800*cos(?f2 *(pi/180))"); 3783 equation(out,"f4","10800*sin(?f2 *(pi/180))"); 3784 equation(out,"f5","?f3 +10800"); 3785 equation(out,"f6","?f4 +10800"); 3786 equation(out,"f7","$0 -?f5 "); 3787 equation(out,"f8","$1 -?f6 "); 3788 equation(out,"f9","?f7 /3"); 3789 equation(out,"f10","?f8 /3"); 3790 equation(out,"f11","?f7 *2/3"); 3791 equation(out,"f12","?f8 *2/3"); 3792 equation(out,"f13","$0 "); 3793 equation(out,"f14","$1 "); 3794 equation(out,"f15","?f3 /12"); 3795 equation(out,"f16","?f4 /12"); 3796 equation(out,"f17","?f9 +?f5 -?f15 "); 3797 equation(out,"f18","?f10 +?f6 -?f16 "); 3798 equation(out,"f19","?f11 +?f5 "); 3799 equation(out,"f20","?f12 +?f6 "); 3800 out.xml.startElement("draw:handle"); 3801 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3802 out.xml.endElement(); // draw:handle 3803 out.xml.endElement(); // enhanced geometry 3804 out.xml.endElement(); // custom shape 3805 } 3806 3807 3808 void ODrawToOdf::processBorderCallout90(const MSO::OfficeArtSpContainer& o, Writer& out) { 3809 out.xml.startElement("draw:custom-shape"); 3810 processStyleAndText(o, out); 3811 3812 out.xml.startElement("draw:enhanced-geometry"); 3813 processModifiers(o, out, QList<int>() << -1800<< 22950<< -1800<< 2700); 3814 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3815 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"); 3816 out.xml.addAttribute("draw:type", "mso-spt180"); 3817 setShapeMirroring(o, out); 3818 equation(out,"f0","$0 "); 3819 equation(out,"f1","$1 "); 3820 equation(out,"f2","$2 "); 3821 equation(out,"f3","$3 "); 3822 equation(out,"f4","$4 "); 3823 equation(out,"f5","$5 "); 3824 equation(out,"f6","$6 "); 3825 equation(out,"f7","$7 "); 3826 out.xml.startElement("draw:handle"); 3827 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3828 out.xml.endElement(); // draw:handle 3829 out.xml.startElement("draw:handle"); 3830 out.xml.addAttribute("draw:handle-position", "$2 $3"); 3831 out.xml.endElement(); // draw:handle 3832 out.xml.endElement(); // enhanced geometry 3833 out.xml.endElement(); // custom shape 3834 } 3835 3836 3837 void ODrawToOdf::processBorderCallout1(const MSO::OfficeArtSpContainer& o, Writer& out) { 3838 out.xml.startElement("draw:custom-shape"); 3839 processStyleAndText(o, out); 3840 3841 out.xml.startElement("draw:enhanced-geometry"); 3842 processModifiers(o, out, QList<int>() << -8288<< 24500<< -1800<< 4000); 3843 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3844 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"); 3845 out.xml.addAttribute("draw:type", "line-callout-1"); 3846 setShapeMirroring(o, out); 3847 equation(out,"f0","$0 "); 3848 equation(out,"f1","$1 "); 3849 equation(out,"f2","$2 "); 3850 equation(out,"f3","$3 "); 3851 equation(out,"f4","$4 "); 3852 equation(out,"f5","$5 "); 3853 equation(out,"f6","$6 "); 3854 equation(out,"f7","$7 "); 3855 out.xml.startElement("draw:handle"); 3856 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3857 out.xml.endElement(); // draw:handle 3858 out.xml.startElement("draw:handle"); 3859 out.xml.addAttribute("draw:handle-position", "$2 $3"); 3860 out.xml.endElement(); // draw:handle 3861 out.xml.endElement(); // enhanced geometry 3862 out.xml.endElement(); // custom shape 3863 } 3864 3865 3866 void ODrawToOdf::processBorderCallout2(const MSO::OfficeArtSpContainer& o, Writer& out) { 3867 out.xml.startElement("draw:custom-shape"); 3868 processStyleAndText(o, out); 3869 3870 out.xml.startElement("draw:enhanced-geometry"); 3871 processModifiers(o, out, QList<int>() << -10088<< 24500<< -3600<< 4000<< -1800<< 4000); 3872 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3873 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"); 3874 out.xml.addAttribute("draw:type", "line-callout-2"); 3875 setShapeMirroring(o, out); 3876 equation(out,"f0","$0 "); 3877 equation(out,"f1","$1 "); 3878 equation(out,"f2","$2 "); 3879 equation(out,"f3","$3 "); 3880 equation(out,"f4","$4 "); 3881 equation(out,"f5","$5 "); 3882 equation(out,"f6","$6 "); 3883 equation(out,"f7","$7 "); 3884 out.xml.startElement("draw:handle"); 3885 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3886 out.xml.endElement(); // draw:handle 3887 out.xml.startElement("draw:handle"); 3888 out.xml.addAttribute("draw:handle-position", "$2 $3"); 3889 out.xml.endElement(); // draw:handle 3890 out.xml.startElement("draw:handle"); 3891 out.xml.addAttribute("draw:handle-position", "$4 $5"); 3892 out.xml.endElement(); // draw:handle 3893 out.xml.endElement(); // enhanced geometry 3894 out.xml.endElement(); // custom shape 3895 } 3896 3897 3898 void ODrawToOdf::processBorderCallout3(const MSO::OfficeArtSpContainer& o, Writer& out) { 3899 out.xml.startElement("draw:custom-shape"); 3900 processStyleAndText(o, out); 3901 3902 out.xml.startElement("draw:enhanced-geometry"); 3903 processModifiers(o, out, QList<int>() << 23400<< 24413<< 25200<< 21600<< 25200<< 4000<< 23400<< 4000); 3904 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3905 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"); 3906 out.xml.addAttribute("draw:type", "mso-spt49"); 3907 setShapeMirroring(o, out); 3908 equation(out,"f0","$0 "); 3909 equation(out,"f1","$1 "); 3910 equation(out,"f2","$2 "); 3911 equation(out,"f3","$3 "); 3912 equation(out,"f4","$4 "); 3913 equation(out,"f5","$5 "); 3914 equation(out,"f6","$6 "); 3915 equation(out,"f7","$7 "); 3916 out.xml.startElement("draw:handle"); 3917 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3918 out.xml.endElement(); // draw:handle 3919 out.xml.startElement("draw:handle"); 3920 out.xml.addAttribute("draw:handle-position", "$2 $3"); 3921 out.xml.endElement(); // draw:handle 3922 out.xml.startElement("draw:handle"); 3923 out.xml.addAttribute("draw:handle-position", "$4 $5"); 3924 out.xml.endElement(); // draw:handle 3925 out.xml.startElement("draw:handle"); 3926 out.xml.addAttribute("draw:handle-position", "$6 $7"); 3927 out.xml.endElement(); // draw:handle 3928 out.xml.endElement(); // enhanced geometry 3929 out.xml.endElement(); // custom shape 3930 } 3931 3932 3933 void ODrawToOdf::processAccentCallout90(const MSO::OfficeArtSpContainer& o, Writer& out) { 3934 out.xml.startElement("draw:custom-shape"); 3935 processStyleAndText(o, out); 3936 3937 out.xml.startElement("draw:enhanced-geometry"); 3938 processModifiers(o, out, QList<int>() << -1800<< 22950<< -1800<< 2700); 3939 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3940 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"); 3941 out.xml.addAttribute("draw:type", "mso-spt179"); 3942 setShapeMirroring(o, out); 3943 equation(out,"f0","$0 "); 3944 equation(out,"f1","$1 "); 3945 equation(out,"f2","$2 "); 3946 equation(out,"f3","$3 "); 3947 equation(out,"f4","$4 "); 3948 equation(out,"f5","$5 "); 3949 equation(out,"f6","$6 "); 3950 equation(out,"f7","$7 "); 3951 out.xml.startElement("draw:handle"); 3952 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3953 out.xml.endElement(); // draw:handle 3954 out.xml.startElement("draw:handle"); 3955 out.xml.addAttribute("draw:handle-position", "$2 $3"); 3956 out.xml.endElement(); // draw:handle 3957 out.xml.endElement(); // enhanced geometry 3958 out.xml.endElement(); // custom shape 3959 } 3960 3961 3962 void ODrawToOdf::processAccentCallout1(const MSO::OfficeArtSpContainer& o, Writer& out) { 3963 out.xml.startElement("draw:custom-shape"); 3964 processStyleAndText(o, out); 3965 3966 out.xml.startElement("draw:enhanced-geometry"); 3967 processModifiers(o, out, QList<int>() << -8288<< 24500<< -1800<< 4000); 3968 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3969 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"); 3970 out.xml.addAttribute("draw:type", "mso-spt44"); 3971 setShapeMirroring(o, out); 3972 equation(out,"f0","$0 "); 3973 equation(out,"f1","$1 "); 3974 equation(out,"f2","$2 "); 3975 equation(out,"f3","$3 "); 3976 equation(out,"f4","$4 "); 3977 equation(out,"f5","$5 "); 3978 equation(out,"f6","$6 "); 3979 equation(out,"f7","$7 "); 3980 out.xml.startElement("draw:handle"); 3981 out.xml.addAttribute("draw:handle-position", "$0 $1"); 3982 out.xml.endElement(); // draw:handle 3983 out.xml.startElement("draw:handle"); 3984 out.xml.addAttribute("draw:handle-position", "$2 $3"); 3985 out.xml.endElement(); // draw:handle 3986 out.xml.endElement(); // enhanced geometry 3987 out.xml.endElement(); // custom shape 3988 } 3989 3990 3991 void ODrawToOdf::processAccentCallout2(const MSO::OfficeArtSpContainer& o, Writer& out) { 3992 out.xml.startElement("draw:custom-shape"); 3993 processStyleAndText(o, out); 3994 3995 out.xml.startElement("draw:enhanced-geometry"); 3996 processModifiers(o, out, QList<int>() << -10088<< 24500<< -3600<< 4000<< -1800<< 4000); 3997 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 3998 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"); 3999 out.xml.addAttribute("draw:type", "mso-spt45"); 4000 setShapeMirroring(o, out); 4001 equation(out,"f0","$0 "); 4002 equation(out,"f1","$1 "); 4003 equation(out,"f2","$2 "); 4004 equation(out,"f3","$3 "); 4005 equation(out,"f4","$4 "); 4006 equation(out,"f5","$5 "); 4007 equation(out,"f6","$6 "); 4008 equation(out,"f7","$7 "); 4009 out.xml.startElement("draw:handle"); 4010 out.xml.addAttribute("draw:handle-position", "$0 $1"); 4011 out.xml.endElement(); // draw:handle 4012 out.xml.startElement("draw:handle"); 4013 out.xml.addAttribute("draw:handle-position", "$2 $3"); 4014 out.xml.endElement(); // draw:handle 4015 out.xml.startElement("draw:handle"); 4016 out.xml.addAttribute("draw:handle-position", "$4 $5"); 4017 out.xml.endElement(); // draw:handle 4018 out.xml.endElement(); // enhanced geometry 4019 out.xml.endElement(); // custom shape 4020 } 4021 4022 4023 void ODrawToOdf::processAccentCallout3(const MSO::OfficeArtSpContainer& o, Writer& out) { 4024 out.xml.startElement("draw:custom-shape"); 4025 processStyleAndText(o, out); 4026 4027 out.xml.startElement("draw:enhanced-geometry"); 4028 processModifiers(o, out, QList<int>() << 23400<< 24413<< 25200<< 21600<< 25200<< 4000<< 23400<< 4000); 4029 out.xml.addAttribute("svg:viewBox", "0 0 21600 21600"); 4030 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"); 4031 out.xml.addAttribute("draw:type", "mso-spt46"); 4032 setShapeMirroring(o, out); 4033 equation(out,"f0",