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