tdf#130857 qt weld: Support mail merge "Server Auth" dialog
[LibreOffice.git] / svx / source / customshapes / EnhancedCustomShapeGeometry.cxx
blob026eac6204165f8c891f021cb05f7349bef3eaf3
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <sal/config.h>
22 #include <cmath>
23 #include <limits>
24 #include <span>
26 #include <svx/EnhancedCustomShapeGeometry.hxx>
27 #include <com/sun/star/drawing/EnhancedCustomShapeGluePointType.hpp>
29 const sal_Int32 MIN_INT32 = std::numeric_limits<sal_Int32>::min();
31 const sal_Int32 mso_sptDefault1400[] =
33 1, 1400
35 const sal_Int32 mso_sptDefault1800[] =
37 1, 1800
39 const sal_Int32 mso_sptDefault2500[] =
41 1, 2500
43 const sal_Int32 mso_sptDefault2700[] =
45 1, 2700
47 const sal_Int32 mso_sptDefault3600[] =
49 1, 3600
51 const sal_Int32 mso_sptDefault3700[] =
53 1, 3700
55 const sal_Int32 mso_sptDefault5400[] =
57 1, 5400
59 const sal_Int32 mso_sptDefault7200[] =
61 1, 7200
63 const sal_Int32 mso_sptDefault8100[] =
65 1, 8100
67 const sal_Int32 mso_sptDefault9600[] =
69 1, 9600
71 const sal_Int32 mso_sptDefault10800[] =
73 1, 10800
75 const sal_Int32 mso_sptDefault12000[] =
77 1, 12000
79 const sal_Int32 mso_sptDefault13500[] =
81 1, 13500
83 const sal_Int32 mso_sptDefault16200[] =
85 1, 16200
87 const sal_Int32 mso_sptDefault16200and5400[] =
89 2, 16200, 5400
92 const SvxMSDffVertPair mso_sptArcVert[] =
94 { 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }, { 10800, 10800 },
95 { 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }
97 const sal_uInt16 mso_sptArcSegm[] =
99 0xa604, 0xab00, 0x0001, 0x6001, 0x8000,
100 0xa604, 0xaa00, 0x8000
102 const SvxMSDffCalculationData mso_sptArcCalc[] =
104 { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
105 { 0x2000, { 0x400, 10800, 0 } },
106 { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
107 { 0x2000, { 0x402, 10800, 0 } },
108 { 0x4009, { 10800, DFF_Prop_adjust2Value, 0 } },
109 { 0x2000, { 0x404, 10800, 0 } },
110 { 0x400a, { 10800, DFF_Prop_adjust2Value, 0 } },
111 { 0x2000, { 0x406, 10800, 0 } }
113 const sal_Int32 mso_sptArcDefault[] =
115 2, 270, 0
117 const SvxMSDffVertPair mso_sptStandardGluePoints[] =
119 { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
121 const SvxMSDffHandle mso_sptArcHandle[] =
123 { SvxMSDffHandleFlags::POLAR | SvxMSDffHandleFlags::RADIUS_RANGE,
124 10800, 0x100, 10800, 10800, 10800, 10800, MIN_INT32, 0x7fffffff },
125 { SvxMSDffHandleFlags::POLAR | SvxMSDffHandleFlags::RADIUS_RANGE,
126 10800, 0x101, 10800, 10800, 10800, 10800, MIN_INT32, 0x7fffffff }
128 const mso_CustomShape msoArc =
130 std::span<const SvxMSDffVertPair>(mso_sptArcVert),
131 const_cast<sal_uInt16*>(mso_sptArcSegm), sizeof( mso_sptArcSegm ) >> 1,
132 std::span<const SvxMSDffCalculationData>(mso_sptArcCalc),
133 const_cast<sal_Int32*>(mso_sptArcDefault),
134 std::span<const SvxMSDffTextRectangles>(),
135 21600, 21600,
136 MIN_INT32, MIN_INT32,
137 std::span<const SvxMSDffVertPair>(),
138 std::span<const SvxMSDffHandle>(mso_sptArcHandle),
141 const SvxMSDffVertPair mso_sptTextSimpleVert[] =
143 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
145 const mso_CustomShape msoTextSimple =
147 std::span<const SvxMSDffVertPair>(mso_sptTextSimpleVert),
148 nullptr, 0,
149 std::span<const SvxMSDffCalculationData>(),
150 nullptr,
151 std::span<const SvxMSDffTextRectangles>(),
152 21600, 21600,
153 MIN_INT32, MIN_INT32,
154 std::span<const SvxMSDffVertPair>(),
155 std::span<const SvxMSDffHandle>() // handles
158 const SvxMSDffVertPair mso_sptRectangleVert[] =
160 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
162 const mso_CustomShape msoRectangle =
164 std::span<const SvxMSDffVertPair>(mso_sptRectangleVert),
165 nullptr, 0,
166 std::span<const SvxMSDffCalculationData>(),
167 nullptr,
168 std::span<const SvxMSDffTextRectangles>(),
169 21600, 21600,
170 MIN_INT32, MIN_INT32,
171 std::span<const SvxMSDffVertPair>(),
172 std::span<const SvxMSDffHandle>() // handles
175 const SvxMSDffVertPair mso_sptRoundRectangleVert[] = // adj value 0 -> 10800
177 { 7 MSO_I, 0 }, { 0, 8 MSO_I }, { 0, 9 MSO_I }, { 7 MSO_I, 21600 },
178 { 10 MSO_I, 21600 }, { 21600, 9 MSO_I }, { 21600, 8 MSO_I }, { 10 MSO_I, 0 }
180 const sal_uInt16 mso_sptRoundRectangleSegm[] =
182 0x4000, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x6000, 0x8000
184 const SvxMSDffCalculationData mso_sptRoundRectangleCalc[] =
186 { 0x000e, { 0, 45, 0 } },
187 { 0x6009, { DFF_Prop_adjustValue, 0x400, 0 } },
188 { 0x2001, { 0x401, 3163, 7636 } },
189 { 0x6000, { DFF_Prop_geoLeft, 0x402, 0 } },
190 { 0x6000, { DFF_Prop_geoTop, 0x402, 0 } },
191 { 0xa000, { DFF_Prop_geoRight, 0, 0x402 } },
192 { 0xa000, { DFF_Prop_geoBottom, 0, 0x402 } },
193 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
194 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
195 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
196 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } }
198 const SvxMSDffTextRectangles mso_sptRoundRectangleTextRect[] =
200 { { 3 MSO_I, 4 MSO_I }, { 5 MSO_I, 6 MSO_I } }
202 const SvxMSDffHandle mso_sptRoundRectangleHandle[] =
204 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::SWITCHED,
205 0x100, 0, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
207 const mso_CustomShape msoRoundRectangle =
209 std::span<const SvxMSDffVertPair>(mso_sptRoundRectangleVert),
210 const_cast<sal_uInt16*>(mso_sptRoundRectangleSegm), sizeof( mso_sptRoundRectangleSegm ) >> 1,
211 std::span<const SvxMSDffCalculationData>(mso_sptRoundRectangleCalc),
212 const_cast<sal_Int32*>(mso_sptDefault3600),
213 std::span<const SvxMSDffTextRectangles>(mso_sptRoundRectangleTextRect),
214 21600, 21600,
215 10800, 10800,
216 std::span<const SvxMSDffVertPair>(),
217 std::span<const SvxMSDffHandle>(mso_sptRoundRectangleHandle),
220 const SvxMSDffVertPair mso_sptRightTriangleVert[] =
222 { 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
224 const SvxMSDffTextRectangles mso_sptRightTriangleTextRect[] =
226 { { 1900, 12700 }, { 12700, 19700 } }
228 const SvxMSDffVertPair mso_sptRightTriangleGluePoints[] =
230 { 0, 0 }, { 0, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 10800, 10800 }
232 const mso_CustomShape msoRightTriangle =
234 std::span<const SvxMSDffVertPair>(mso_sptRightTriangleVert),
235 nullptr, 0,
236 std::span<const SvxMSDffCalculationData>(),
237 nullptr,
238 std::span<const SvxMSDffTextRectangles>(mso_sptRightTriangleTextRect),
239 21600, 21600,
240 MIN_INT32, MIN_INT32,
241 std::span<const SvxMSDffVertPair>(mso_sptRightTriangleGluePoints),
242 std::span<const SvxMSDffHandle>() // handles
245 const SvxMSDffVertPair mso_sptEllipseVert[] =
247 { 10800, 10800 }, { 10800, 10800 }, { 0, 360 }
249 const sal_uInt16 mso_sptEllipseSegm[] =
251 0xa203, 0x6000, 0x8000
253 const SvxMSDffTextRectangles mso_sptEllipseTextRect[] =
255 { { 3163, 3163 }, { 18437, 18437 } }
257 const SvxMSDffVertPair mso_sptEllipseGluePoints[] =
259 { 10800, 0 }, { 3163, 3163 }, { 0, 10800 }, { 3163, 18437 }, { 10800, 21600 }, { 18437, 18437 }, { 21600, 10800 }, { 18437, 3163 }
261 const mso_CustomShape msoEllipse =
263 std::span<const SvxMSDffVertPair>(mso_sptEllipseVert),
264 const_cast<sal_uInt16*>(mso_sptEllipseSegm), sizeof( mso_sptEllipseSegm ) >> 1,
265 std::span<const SvxMSDffCalculationData>(),
266 nullptr,
267 std::span<const SvxMSDffTextRectangles>(mso_sptEllipseTextRect),
268 21600, 21600,
269 MIN_INT32, MIN_INT32,
270 std::span<const SvxMSDffVertPair>(mso_sptEllipseGluePoints),
271 std::span<const SvxMSDffHandle>() // handles
274 const SvxMSDffVertPair mso_sptParallelogramVert[] = // adjustment1 : 0 - 21600
276 { 0 MSO_I, 0 }, { 21600, 0 }, { 1 MSO_I, 21600 }, { 0, 21600 }
278 const sal_uInt16 mso_sptParallelogramSegm[] =
280 0x4000, 0x0003, 0x6001, 0x8000
282 const SvxMSDffCalculationData mso_sptParallelogramCalc[] =
284 { 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
285 { 0x8000, { 0, 21600, DFF_Prop_adjustValue } },
286 { 0x2001, { DFF_Prop_adjustValue, 10, 24 } },
287 { 0x2000, { 0x0402, 1750, 0 } },
288 { 0x8000, { 21600, 0, 0x0403 } },
289 { 0x2001, { 0x400, 1, 2 } },
290 { 0x4000, { 10800, 0x405, 0 } },
291 { 0x2000, { 0x400, 0, 10800 } },
292 { 0x6006, { 0x407, 0x40d, 0 } },
293 { 0x8000, { 10800, 0, 0x405 } },
294 { 0x6006, { 0x407, 0x40c, 21600 } },
295 { 0x8000, { 21600, 0, 0x405 } },
296 { 0x8001, { 21600, 10800, 0x400 } },
297 { 0x8000, { 21600, 0, 0x40c } }
299 const SvxMSDffTextRectangles mso_sptParallelogramTextRect[] =
301 { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
303 const SvxMSDffVertPair mso_sptParallelogramGluePoints[] =
305 { 6 MSO_I, 0 }, { 10800, 8 MSO_I }, { 11 MSO_I, 10800 }, { 9 MSO_I, 21600 }, { 10800, 10 MSO_I }, { 5 MSO_I, 10800 }
307 const SvxMSDffHandle mso_sptParallelogramHandle[] =
309 { SvxMSDffHandleFlags::RANGE,
310 0x100, 0, 10800, 10800, 0, 21600, MIN_INT32, 0x7fffffff }
312 const mso_CustomShape msoParallelogram =
314 std::span<const SvxMSDffVertPair>(mso_sptParallelogramVert),
315 const_cast<sal_uInt16*>(mso_sptParallelogramSegm), sizeof( mso_sptParallelogramSegm ) >> 1,
316 std::span<const SvxMSDffCalculationData>(mso_sptParallelogramCalc),
317 const_cast<sal_Int32*>(mso_sptDefault5400),
318 std::span<const SvxMSDffTextRectangles>(mso_sptParallelogramTextRect),
319 21600, 21600,
320 MIN_INT32, MIN_INT32,
321 std::span<const SvxMSDffVertPair>(mso_sptParallelogramGluePoints),
322 std::span<const SvxMSDffHandle>(mso_sptParallelogramHandle),
325 const SvxMSDffVertPair mso_sptDiamondVert[] =
327 { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 }, { 10800, 0 }
329 const SvxMSDffTextRectangles mso_sptDiamondTextRect[] =
331 { { 5400, 5400 }, { 16200, 16200 } }
333 const mso_CustomShape msoDiamond =
335 std::span<const SvxMSDffVertPair>(mso_sptDiamondVert),
336 nullptr, 0,
337 std::span<const SvxMSDffCalculationData>(),
338 nullptr,
339 std::span<const SvxMSDffTextRectangles>(mso_sptDiamondTextRect),
340 21600, 21600,
341 MIN_INT32, MIN_INT32,
342 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
343 std::span<const SvxMSDffHandle>() // handles
346 const SvxMSDffVertPair mso_sptTrapezoidVert[] = // adjustment1 : 0 - 10800
348 { 0, 0 }, { 21600, 0 }, {0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
350 const sal_uInt16 mso_sptTrapezoidSegm[] =
352 0x4000, 0x0003, 0x6001, 0x8000
354 const SvxMSDffCalculationData mso_sptTrapezoidCalc[] =
356 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
357 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
358 { 0x2001, { DFF_Prop_adjustValue, 10, 18 } },
359 { 0x2000, { 0x0402, 1750, 0 } },
360 { 0x8000, { 21600, 0, 0x403 } },
361 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
362 { 0x8000, { 21600, 0, 0x405 } }
364 const SvxMSDffTextRectangles mso_sptTrapezoidTextRect[] =
366 { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
368 const SvxMSDffVertPair mso_sptTrapezoidGluePoints[] =
370 { 6 MSO_I, 10800 }, { 10800, 21600 }, { 5 MSO_I, 10800 }, { 10800, 0 }
372 const SvxMSDffHandle mso_sptTrapezoidHandle[] =
374 { SvxMSDffHandleFlags::RANGE,
375 0x100, 1, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
377 const mso_CustomShape msoTrapezoid =
379 std::span<const SvxMSDffVertPair>(mso_sptTrapezoidVert),
380 const_cast<sal_uInt16*>(mso_sptTrapezoidSegm), sizeof( mso_sptTrapezoidSegm ) >> 1,
381 std::span<const SvxMSDffCalculationData>(mso_sptTrapezoidCalc),
382 const_cast<sal_Int32*>(mso_sptDefault5400),
383 std::span<const SvxMSDffTextRectangles>(mso_sptTrapezoidTextRect),
384 21600, 21600,
385 MIN_INT32, MIN_INT32,
386 std::span<const SvxMSDffVertPair>(mso_sptTrapezoidGluePoints),
387 std::span<const SvxMSDffHandle>(mso_sptTrapezoidHandle),
392 The side of the enclosing square for the regular (all sides the
393 same, all angles the same) octagon described below is 21600. Let's
394 call that 'a'.
396 The "adjustment1" is the horizontal (or vertical) distance from a
397 side of the square to the nearest vertex. Let's call that 'd'.
399 Let's call the side of the regular octagon 'b'.
401 We know a. We want d. d=(a-b)/2
403 Pythagoras says that b^2 = 2d^2
405 Solving for b, we get b = (sqrt(2)-1)a
408 !------------a=21600-------!
410 !--d--!
411 x--------------x
430 x--------------x
434 const SvxMSDffVertPair mso_sptOctagonVert[] = // adjustment1 : 0 - 10800
436 { 0 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 3 MSO_I },
437 { 2 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }, { 0, 1 MSO_I }
439 const sal_uInt16 mso_sptOctagonSegm[] =
441 0x4000, 0x0007, 0x6001, 0x8000
443 const SvxMSDffCalculationData mso_sptOctagonCalc[] =
445 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
446 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
447 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
448 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
449 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
450 { 0x6000, { DFF_Prop_geoLeft, 0x404, 0 } },
451 { 0x6000, { DFF_Prop_geoTop, 0x404, 0 } },
452 { 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
453 { 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
455 const sal_Int32 mso_sptOctagonDefault[] =
457 1, static_cast<sal_Int32>((21600 - ((M_SQRT2-1)*21600)) / 2)
459 const SvxMSDffTextRectangles mso_sptOctagonTextRect[] =
461 { { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 8 MSO_I } }
463 const SvxMSDffHandle mso_sptOctagonHandle[] =
465 { SvxMSDffHandleFlags::RANGE,
466 0x100, 0, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
468 const mso_CustomShape msoOctagon =
470 std::span<const SvxMSDffVertPair>(mso_sptOctagonVert),
471 const_cast<sal_uInt16*>(mso_sptOctagonSegm), sizeof( mso_sptOctagonSegm ) >> 1,
472 std::span<const SvxMSDffCalculationData>(mso_sptOctagonCalc),
473 const_cast<sal_Int32*>(mso_sptOctagonDefault),
474 std::span<const SvxMSDffTextRectangles>(mso_sptOctagonTextRect),
475 21600, 21600,
476 10800, 10800,
477 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
478 std::span<const SvxMSDffHandle>(mso_sptOctagonHandle),
481 const SvxMSDffVertPair mso_sptIsocelesTriangleVert[] = // adjustment1 : 0 - 21600
483 { 0 MSO_I, 0 }, { 21600, 21600 }, { 0, 21600 }
485 const sal_uInt16 mso_sptIsocelesTriangleSegm[] =
487 0x4000, 0x0002, 0x6001, 0x8000
489 const SvxMSDffCalculationData mso_sptIsocelesTriangleCalc[] =
491 { 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
492 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
493 { 0x2000, { 0x401, 10800, 0 } },
494 { 0x2001, { DFF_Prop_adjustValue, 2, 3 } },
495 { 0x2000, { 0x403, 7200, 0 } },
496 { 0x8000, { 21600, 0, 0x400 } },
497 { 0x2001, { 0x405, 1, 2 } },
498 { 0x8000, { 21600, 0, 0x406 } }
500 const SvxMSDffTextRectangles mso_sptIsocelesTriangleTextRect[] =
502 { { 1 MSO_I, 10800 }, { 2 MSO_I, 18000 } },
503 { { 3 MSO_I, 7200 }, { 4 MSO_I, 21600 } }
505 const SvxMSDffVertPair mso_sptIsocelesTriangleGluePoints[] =
507 { 0 MSO_I, 0 }, { 1 MSO_I, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 7 MSO_I, 10800 }
509 const SvxMSDffHandle mso_sptIsocelesTriangleHandle[] =
511 { SvxMSDffHandleFlags::RANGE,
512 0x100, 0, 10800, 10800, 0, 21600, MIN_INT32, 0x7fffffff }
514 const mso_CustomShape msoIsocelesTriangle =
516 std::span<const SvxMSDffVertPair>(mso_sptIsocelesTriangleVert),
517 const_cast<sal_uInt16*>(mso_sptIsocelesTriangleSegm), sizeof( mso_sptIsocelesTriangleSegm ) >> 1,
518 std::span<const SvxMSDffCalculationData>(mso_sptIsocelesTriangleCalc),
519 const_cast<sal_Int32*>(mso_sptDefault10800),
520 std::span<const SvxMSDffTextRectangles>(mso_sptIsocelesTriangleTextRect),
521 21600, 21600,
522 MIN_INT32, MIN_INT32,
523 std::span<const SvxMSDffVertPair>(mso_sptIsocelesTriangleGluePoints),
524 std::span<const SvxMSDffHandle>(mso_sptIsocelesTriangleHandle),
527 const SvxMSDffVertPair mso_sptHexagonVert[] = // adjustment1 : 0 - 10800
529 { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 10800 }, { 1 MSO_I, 21600 },
530 { 0 MSO_I, 21600 }, { 0, 10800 }
532 const sal_uInt16 mso_sptHexagonSegm[] =
534 0x4000, 0x0005, 0x6001, 0x8000
536 const SvxMSDffCalculationData mso_sptHexagonCalc[] =
538 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
539 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
540 { 0x2001, { DFF_Prop_adjustValue, 100, 234 } },
541 { 0x2000, { 0x402, 1700, 0 } },
542 { 0x8000, { 21600, 0, 0x403 } }
544 const SvxMSDffTextRectangles mso_sptHexagonTextRect[] =
546 { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
548 const SvxMSDffHandle mso_sptHexagonHandle[] =
550 { SvxMSDffHandleFlags::RANGE,
551 0x100, 0, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
553 const mso_CustomShape msoHexagon =
555 std::span<const SvxMSDffVertPair>(mso_sptHexagonVert),
556 const_cast<sal_uInt16*>(mso_sptHexagonSegm), sizeof( mso_sptHexagonSegm ) >> 1,
557 std::span<const SvxMSDffCalculationData>(mso_sptHexagonCalc),
558 const_cast<sal_Int32*>(mso_sptDefault5400),
559 std::span<const SvxMSDffTextRectangles>(mso_sptHexagonTextRect),
560 21600, 21600,
561 MIN_INT32, MIN_INT32,
562 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
563 std::span<const SvxMSDffHandle>(mso_sptHexagonHandle),
566 const SvxMSDffVertPair mso_sptPentagonVert[] =
568 { 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 17370, 21600 },
569 { 21600, 8260 }, { 10800, 0 }
571 const SvxMSDffTextRectangles mso_sptPentagonTextRect[] =
573 { { 4230, 5080 }, { 17370, 21600 } }
575 const SvxMSDffVertPair mso_sptPentagonGluePoints[] =
577 { 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 10800, 21600 },
578 { 17370, 21600 }, { 21600, 8260 }
580 const mso_CustomShape msoPentagon =
582 std::span<const SvxMSDffVertPair>(mso_sptPentagonVert),
583 nullptr, 0,
584 std::span<const SvxMSDffCalculationData>(),
585 nullptr,
586 std::span<const SvxMSDffTextRectangles>(mso_sptPentagonTextRect),
587 21600, 21600,
588 MIN_INT32, MIN_INT32,
589 std::span<const SvxMSDffVertPair>(mso_sptPentagonGluePoints),
590 std::span<const SvxMSDffHandle>() // handles
593 const SvxMSDffVertPair mso_sptPlusVert[] = // adjustment1 : 0 - 10800
595 { 1 MSO_I, 0 }, { 2 MSO_I, 0 }, { 2 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I },
596 { 21600, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 21600 }, { 1 MSO_I, 21600 },
597 { 1 MSO_I, 3 MSO_I }, { 0, 3 MSO_I }, { 0, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 0 }
599 const SvxMSDffCalculationData mso_sptPlusCalc[] =
601 { 0x2001, { DFF_Prop_adjustValue, 10799, 10800 } },
602 { 0x2000, { 0x400, 0, 0 } },
603 { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
604 { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
606 const SvxMSDffTextRectangles mso_sptPlusTextRect[] =
608 { { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I } }
610 const SvxMSDffHandle mso_sptPlusHandle[] =
612 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::SWITCHED,
613 0x100, 0, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
615 const mso_CustomShape msoPlus =
617 std::span<const SvxMSDffVertPair>(mso_sptPlusVert),
618 nullptr, 0,
619 std::span<const SvxMSDffCalculationData>(mso_sptPlusCalc),
620 const_cast<sal_Int32*>(mso_sptDefault5400),
621 std::span<const SvxMSDffTextRectangles>(mso_sptPlusTextRect),
622 21600, 21600,
623 10800, 10800,
624 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
625 std::span<const SvxMSDffHandle>(mso_sptPlusHandle),
628 const SvxMSDffVertPair mso_sptCanVert[] = // adjustment1 : 0 - 10800
630 { 44, 0 },
631 { 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I }, // ccp
632 { 0, 3 MSO_I }, // p
633 { 0, 4 MSO_I }, { 20, 21600 }, { 44, 21600 }, // ccp
634 { 68, 21600 }, { 88, 4 MSO_I }, { 88, 3 MSO_I }, // ccp
635 { 88, 0 MSO_I }, // p
636 { 88, 2 MSO_I }, { 68, 0 }, { 44, 0 }, // ccp
637 { 44, 0 }, // p
638 { 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I }, // ccp
639 { 0, 5 MSO_I }, { 20, 6 MSO_I }, { 44, 6 MSO_I }, // ccp
640 { 68, 6 MSO_I },{ 88, 5 MSO_I }, { 88, 0 MSO_I }, // ccp
641 { 88, 2 MSO_I },{ 68, 0 }, { 44, 0 } // ccp
643 const sal_uInt16 mso_sptCanSegm[] =
645 0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x6001, 0x8000,
646 0x4000, 0x2004, 0x6001, 0x8000
648 const SvxMSDffCalculationData mso_sptCanCalc[] =
650 { 0x2001, { DFF_Prop_adjustValue, 2, 4 } }, // 1/4
651 { 0x2001, { 0x0400, 6, 11 } },
652 { 0xa000, { 0x0400, 0, 0x0401 } },
653 { 0x8000, { 21600, 0, 0x0400 } },
654 { 0x6000, { 0x0403, 0x0401, 0 } },
655 { 0x6000, { 0x0400, 0x0401, 0 } },
656 { 0x2001, { DFF_Prop_adjustValue, 2, 2 } },
657 { 0x0000, { 44, 0, 0 } }
659 const SvxMSDffTextRectangles mso_sptCanTextRect[] =
661 { { 0, 6 MSO_I }, { 88, 3 MSO_I } }
663 const SvxMSDffVertPair mso_sptCanGluePoints[] =
665 { 44, 6 MSO_I }, { 44, 0 }, { 0, 10800 }, { 44, 21600 }, { 88, 10800 }
667 const SvxMSDffHandle mso_sptCanHandle[] =
669 { SvxMSDffHandleFlags::RANGE,
670 7 + 3, 0x100, 44, 10800, MIN_INT32, 0x7fffffff, 0, 10800 }
672 const mso_CustomShape msoCan =
674 std::span<const SvxMSDffVertPair>(mso_sptCanVert),
675 const_cast<sal_uInt16*>(mso_sptCanSegm), sizeof( mso_sptCanSegm ) >> 1,
676 std::span<const SvxMSDffCalculationData>(mso_sptCanCalc),
677 const_cast<sal_Int32*>(mso_sptDefault5400),
678 std::span<const SvxMSDffTextRectangles>(mso_sptCanTextRect),
679 88, 21600,
680 MIN_INT32, MIN_INT32,
681 std::span<const SvxMSDffVertPair>(mso_sptCanGluePoints),
682 std::span<const SvxMSDffHandle>(mso_sptCanHandle),
685 const SvxMSDffVertPair mso_sptArrowVert[] = // adjustment1: x 0 - 21600
686 { // adjustment2: y 0 - 10800
687 { 0, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
688 { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }
690 const sal_uInt16 mso_sptArrowSegm[] =
692 0x4000, 0x0006, 0x6001, 0x8000
694 const SvxMSDffCalculationData mso_sptArrowCalc[] =
696 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
697 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
698 { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
699 { 0x8000, { 21600, 0, 0x401 } },
700 { 0x6001, { 0x403, 0x400, 10800 } },
701 { 0x6000, { 0x401, 0x404, 0 } },
702 { 0x6001, { 0x401, 0x400, 10800 } },
703 { 0xa000, { 0x401, 0, 0x406 } }
705 const SvxMSDffTextRectangles mso_sptArrowTextRect[] =
707 { { 0, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
709 const SvxMSDffHandle mso_sptArrowHandle[] =
711 { SvxMSDffHandleFlags::RANGE,
712 0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
714 const mso_CustomShape msoArrow =
716 std::span<const SvxMSDffVertPair>(mso_sptArrowVert),
717 const_cast<sal_uInt16*>(mso_sptArrowSegm), sizeof( mso_sptArrowSegm ) >> 1,
718 std::span<const SvxMSDffCalculationData>(mso_sptArrowCalc),
719 const_cast<sal_Int32*>(mso_sptDefault16200and5400),
720 std::span<const SvxMSDffTextRectangles>(mso_sptArrowTextRect),
721 21600, 21600,
722 MIN_INT32, MIN_INT32,
723 std::span<const SvxMSDffVertPair>(),
724 std::span<const SvxMSDffHandle>(mso_sptArrowHandle),
727 const SvxMSDffVertPair mso_sptLeftArrowVert[] = // adjustment1: x 0 - 21600
728 { // adjustment2: y 0 - 10800
729 { 21600, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 0, 10800 },
730 { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }
732 const sal_uInt16 mso_sptLeftArrowSegm[] =
734 0x4000, 0x0006, 0x6001, 0x8000
736 const sal_Int32 mso_sptLeftArrowDefault[] =
738 2, 5400, 5400
740 const SvxMSDffTextRectangles mso_sptLeftArrowTextRect[] =
742 { { 7 MSO_I, 0 MSO_I }, { 21600, 2 MSO_I } }
744 const SvxMSDffHandle mso_sptLeftArrowHandle[] =
746 { SvxMSDffHandleFlags::RANGE,
747 0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
749 const mso_CustomShape msoLeftArrow =
751 std::span<const SvxMSDffVertPair>(mso_sptLeftArrowVert),
752 const_cast<sal_uInt16*>(mso_sptLeftArrowSegm), sizeof( mso_sptLeftArrowSegm ) >> 1,
753 std::span<const SvxMSDffCalculationData>(mso_sptArrowCalc),
754 const_cast<sal_Int32*>(mso_sptLeftArrowDefault),
755 std::span<const SvxMSDffTextRectangles>(mso_sptLeftArrowTextRect),
756 21600, 21600,
757 MIN_INT32, MIN_INT32,
758 std::span<const SvxMSDffVertPair>(),
759 std::span<const SvxMSDffHandle>(mso_sptLeftArrowHandle),
762 const SvxMSDffVertPair mso_sptDownArrowVert[] = // adjustment1: x 0 - 21600
763 { // adjustment2: y 0 - 10800
764 { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 21600 },
765 { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 }
767 const sal_uInt16 mso_sptDownArrowSegm[] =
769 0x4000, 0x0006, 0x6001, 0x8000
771 const SvxMSDffTextRectangles mso_sptDownArrowTextRect[] =
773 { { 0 MSO_I, 0 }, { 2 MSO_I, 5 MSO_I } }
775 const SvxMSDffHandle mso_sptDownArrowHandle[] =
777 { SvxMSDffHandleFlags::RANGE,
778 0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
780 const mso_CustomShape msoDownArrow =
782 std::span<const SvxMSDffVertPair>(mso_sptDownArrowVert),
783 const_cast<sal_uInt16*>(mso_sptDownArrowSegm), sizeof( mso_sptDownArrowSegm ) >> 1,
784 std::span<const SvxMSDffCalculationData>(mso_sptArrowCalc),
785 const_cast<sal_Int32*>(mso_sptDefault16200and5400),
786 std::span<const SvxMSDffTextRectangles>(mso_sptDownArrowTextRect),
787 21600, 21600,
788 MIN_INT32, MIN_INT32,
789 std::span<const SvxMSDffVertPair>(),
790 std::span<const SvxMSDffHandle>(mso_sptDownArrowHandle),
793 const SvxMSDffVertPair mso_sptUpArrowVert[] = // adjustment1: x 0 - 21600
794 { // adjustment2: y 0 - 10800
795 { 0 MSO_I, 21600 }, { 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 0 },
796 { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
798 const sal_uInt16 mso_sptUpArrowSegm[] =
800 0x4000, 0x0006, 0x6001, 0x8000
802 const sal_Int32 mso_sptUpArrowDefault[] =
804 2, 5400, 5400
806 const SvxMSDffTextRectangles mso_sptUpArrowTextRect[] =
808 { { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 21600 } }
810 const SvxMSDffHandle mso_sptUpArrowHandle[] =
812 { SvxMSDffHandleFlags::RANGE,
813 0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
815 const mso_CustomShape msoUpArrow =
817 std::span<const SvxMSDffVertPair>(mso_sptUpArrowVert),
818 const_cast<sal_uInt16*>(mso_sptUpArrowSegm), sizeof( mso_sptUpArrowSegm ) >> 1,
819 std::span<const SvxMSDffCalculationData>(mso_sptArrowCalc),
820 const_cast<sal_Int32*>(mso_sptUpArrowDefault),
821 std::span<const SvxMSDffTextRectangles>(mso_sptUpArrowTextRect),
822 21600, 21600,
823 MIN_INT32, MIN_INT32,
824 std::span<const SvxMSDffVertPair>(),
825 std::span<const SvxMSDffHandle>(mso_sptUpArrowHandle),
828 const SvxMSDffVertPair mso_sptLeftRightArrowVert[] = // adjustment1: x 0 - 10800
829 { // adjustment2: y 0 - 10800
830 { 0, 10800 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },
831 { 2 MSO_I, 0 }, { 21600, 10800 }, { 2 MSO_I, 21600 }, { 2 MSO_I, 3 MSO_I },
832 { 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 21600 }
834 const sal_uInt16 mso_sptLeftRightArrowSegm[] =
836 0x4000, 0x0009, 0x6001, 0x8000
838 const SvxMSDffCalculationData mso_sptDoubleArrowCalc[] =
840 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
841 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
842 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
843 { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
844 { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
845 { 0x6001, { DFF_Prop_adjustValue, 0x404, 10800 } },
846 { 0x8000, { 21600, 0, 0x405 } },
847 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
848 { 0x6001, { DFF_Prop_adjust2Value, 0x407, 10800 } },
849 { 0x8000, { 21600, 0, 0x408 } }
851 const sal_Int32 mso_sptLeftRightArrowDefault[] =
853 2, 4300, 5400
855 const SvxMSDffTextRectangles mso_sptLeftRightArrowTextRect[] =
857 { { 5 MSO_I, 1 MSO_I }, { 6 MSO_I, 3 MSO_I } }
859 const SvxMSDffHandle mso_sptLeftRightArrowHandle[] =
861 { SvxMSDffHandleFlags::RANGE,
862 0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
864 const mso_CustomShape msoLeftRightArrow =
866 std::span<const SvxMSDffVertPair>(mso_sptLeftRightArrowVert),
867 const_cast<sal_uInt16*>(mso_sptLeftRightArrowSegm), sizeof( mso_sptLeftRightArrowSegm ) >> 1,
868 std::span<const SvxMSDffCalculationData>(mso_sptDoubleArrowCalc),
869 const_cast<sal_Int32*>(mso_sptLeftRightArrowDefault),
870 std::span<const SvxMSDffTextRectangles>(mso_sptLeftRightArrowTextRect),
871 21600, 21600,
872 MIN_INT32, MIN_INT32,
873 std::span<const SvxMSDffVertPair>(),
874 std::span<const SvxMSDffHandle>(mso_sptLeftRightArrowHandle),
877 const SvxMSDffVertPair mso_sptUpDownArrowVert[] = // adjustment1: x 0 - 10800
878 { // adjustment2: y 0 - 10800
879 { 0, 1 MSO_I }, { 10800, 0 }, { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },
880 { 2 MSO_I, 3 MSO_I }, { 21600, 3 MSO_I }, { 10800, 21600 }, { 0, 3 MSO_I },
881 { 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
883 const sal_uInt16 mso_sptUpDownArrowSegm[] =
885 0x4000, 0x0009, 0x6001, 0x8000
887 const sal_Int32 mso_sptUpDownArrowDefault[] =
889 2, 5400, 4300
891 const SvxMSDffTextRectangles mso_sptUpDownArrowTextRect[] =
893 { { 0 MSO_I, 8 MSO_I }, { 2 MSO_I, 9 MSO_I } }
895 const SvxMSDffHandle mso_sptUpDownArrowHandle[] =
897 { SvxMSDffHandleFlags::RANGE,
898 0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
900 const mso_CustomShape msoUpDownArrow =
902 std::span<const SvxMSDffVertPair>(mso_sptUpDownArrowVert),
903 const_cast<sal_uInt16*>(mso_sptUpDownArrowSegm), sizeof( mso_sptUpDownArrowSegm ) >> 1,
904 std::span<const SvxMSDffCalculationData>(mso_sptDoubleArrowCalc),
905 const_cast<sal_Int32*>(mso_sptUpDownArrowDefault),
906 std::span<const SvxMSDffTextRectangles>(mso_sptUpDownArrowTextRect),
907 21600, 21600,
908 MIN_INT32, MIN_INT32,
909 std::span<const SvxMSDffVertPair>(),
910 std::span<const SvxMSDffHandle>(mso_sptUpDownArrowHandle),
913 const SvxMSDffVertPair mso_sptQuadArrowVert[] = // adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
914 { // adjustment3: y 0 - 10800
915 { 0, 10800 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 2 MSO_I, 2 MSO_I },
916 { 2 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 10800, 0 }, { 3 MSO_I, 0 MSO_I },
917 { 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 1 MSO_I },
918 { 21600, 10800 }, { 5 MSO_I, 3 MSO_I }, { 5 MSO_I, 4 MSO_I }, { 4 MSO_I, 4 MSO_I },
919 { 4 MSO_I, 5 MSO_I }, { 3 MSO_I, 5 MSO_I }, { 10800, 21600 }, { 1 MSO_I, 5 MSO_I },
920 { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 3 MSO_I }
922 const sal_uInt16 mso_sptQuadArrowSegm[] =
924 0x4000, 0x0017, 0x6001, 0x8000
926 const SvxMSDffCalculationData mso_sptQuadArrowCalc[] =
928 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
929 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
930 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
931 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
932 { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
933 { 0x8000, { 21600, 0, DFF_Prop_adjust3Value } }
935 const sal_Int32 mso_sptQuadArrowDefault[] =
937 3, 6500, 8600, 4300
939 const SvxMSDffTextRectangles mso_sptQuadArrowTextRect[] = // todo
941 { { 0, 0 }, { 21600, 21600 } }
943 const SvxMSDffHandle mso_sptQuadArrowHandle[] =
945 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
946 0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
947 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
948 0x100, 0, 10800, 10800, 0x102, 0x101, MIN_INT32, 0x7fffffff }
950 const mso_CustomShape msoQuadArrow =
952 std::span<const SvxMSDffVertPair>(mso_sptQuadArrowVert),
953 const_cast<sal_uInt16*>(mso_sptQuadArrowSegm), sizeof( mso_sptQuadArrowSegm ) >> 1,
954 std::span<const SvxMSDffCalculationData>(mso_sptQuadArrowCalc),
955 const_cast<sal_Int32*>(mso_sptQuadArrowDefault),
956 std::span<const SvxMSDffTextRectangles>(mso_sptQuadArrowTextRect),
957 21600, 21600,
958 MIN_INT32, MIN_INT32,
959 std::span<const SvxMSDffVertPair>(),
960 std::span<const SvxMSDffHandle>(mso_sptQuadArrowHandle),
963 const SvxMSDffVertPair mso_sptLeftRightUpArrowVert[] = // adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
964 { // adjustment3: y 0 - 21600
965 { 10800, 0 }, { 3 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 4 MSO_I, 1 MSO_I },
966 { 5 MSO_I, 1 MSO_I }, { 5 MSO_I, 0 MSO_I }, { 21600, 10800 }, { 5 MSO_I, 3 MSO_I },
967 { 5 MSO_I, 4 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0, 10800 },
968 { 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 2 MSO_I },
969 { 0 MSO_I, 2 MSO_I }
971 const sal_uInt16 mso_sptLeftRightUpArrowSegm[] =
973 0x4000, 0x0010, 0x6001, 0x8000
975 const SvxMSDffCalculationData mso_sptLeftRightUpArrowCalc[] =
977 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0
978 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 1
979 { 0x6001, { 0x0403, DFF_Prop_adjust3Value, 21600 } }, // 2
980 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3
981 { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, // 4
982 { 0x8000, { 21600, 0, 0x0402 } } // 5
984 const sal_Int32 mso_sptLeftRightUpArrowDefault[] =
986 3, 6500, 8600, 6200
988 const SvxMSDffTextRectangles mso_sptLeftRightUpArrowTextRect[] = // todo
990 { { 0, 0 }, { 21600, 21600 } }
992 const SvxMSDffHandle mso_sptLeftRightUpArrowHandle[] =
994 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
995 0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
996 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
997 0x100, 0, 10800, 10800, 0x102, 0x101, MIN_INT32, 0x7fffffff }
999 const mso_CustomShape msoLeftRightUpArrow =
1001 std::span<const SvxMSDffVertPair>(mso_sptLeftRightUpArrowVert),
1002 const_cast<sal_uInt16*>(mso_sptLeftRightUpArrowSegm), sizeof( mso_sptLeftRightUpArrowSegm ) >> 1,
1003 std::span<const SvxMSDffCalculationData>(mso_sptLeftRightUpArrowCalc),
1004 const_cast<sal_Int32*>(mso_sptLeftRightUpArrowDefault),
1005 std::span<const SvxMSDffTextRectangles>(mso_sptLeftRightUpArrowTextRect),
1006 21600, 21600,
1007 MIN_INT32, MIN_INT32,
1008 std::span<const SvxMSDffVertPair>(),
1009 std::span<const SvxMSDffHandle>(mso_sptLeftRightUpArrowHandle),
1012 const SvxMSDffVertPair mso_sptBentArrowVert[] = // adjustment1 : x 12427 - 21600
1013 { // adjustment2 : y 0 - 6079
1014 { 0, 21600 }, { 0, 12160 }, { 12427, 1 MSO_I }, { 0 MSO_I, 1 MSO_I },
1015 { 0 MSO_I, 0 }, { 21600, 6079 }, { 0 MSO_I, 12158 }, { 0 MSO_I, 2 MSO_I },
1016 { 12427, 2 MSO_I }, { 4 MSO_I, 12160 }, { 4 MSO_I, 21600 }
1018 const sal_uInt16 mso_sptBentArrowSegm[] =
1020 0x4000, 0x0001, 0xa801, 0x0006, 0xa701, 0x0001, 0x6001, 0x8000
1022 const SvxMSDffCalculationData mso_sptBentArrowCalc[] =
1024 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1025 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1026 { 0x8000, { 12158, 0, DFF_Prop_adjust2Value } },
1027 { 0x8000, { 6079, 0, DFF_Prop_adjust2Value } },
1028 { 0x2001, { 0x0403, 2, 1 } }
1030 const sal_Int32 mso_sptBentArrowDefault[] =
1032 2, 15100, 2900
1034 const SvxMSDffTextRectangles mso_sptBentArrowTextRect[] = // todo
1036 { { 0, 0 }, { 21600, 21600 } }
1038 const SvxMSDffHandle mso_sptBentArrowHandle[] =
1040 { SvxMSDffHandleFlags::RANGE,
1041 0x100, 0x101, 10800, 10800, 12427, 21600, 0, 6079 }
1043 const mso_CustomShape msoBentArrow =
1045 std::span<const SvxMSDffVertPair>(mso_sptBentArrowVert),
1046 const_cast<sal_uInt16*>(mso_sptBentArrowSegm), sizeof( mso_sptBentArrowSegm ) >> 1,
1047 std::span<const SvxMSDffCalculationData>(mso_sptBentArrowCalc),
1048 const_cast<sal_Int32*>(mso_sptBentArrowDefault),
1049 std::span<const SvxMSDffTextRectangles>(mso_sptBentArrowTextRect),
1050 21600, 21600,
1051 MIN_INT32, MIN_INT32,
1052 std::span<const SvxMSDffVertPair>(),
1053 std::span<const SvxMSDffHandle>(mso_sptBentArrowHandle),
1056 const SvxMSDffVertPair mso_sptUturnArrowVert[] =
1058 { 0, 21600 }, { 0, 8550 }, // pp
1059 { 0, 3540 }, { 4370, 0 }, { 9270, 0 }, // ccp
1060 { 13890, 0 }, { 18570, 3230 }, { 18600, 8300 }, // ccp
1061 { 21600, 8300 }, { 15680, 14260 }, { 9700, 8300 }, { 12500, 8300 }, // pppp
1062 { 12320, 6380 }, { 10870, 5850 }, { 9320, 5850 }, // ccp
1063 { 7770, 5850 }, { 6040, 6410 }, { 6110, 8520 }, // ccp
1064 { 6110, 21600 }
1066 const sal_uInt16 mso_sptUturnArrowSegm[] =
1068 0x4000, 0x0001, 0x2002, 0x0004, 0x2002, 0x0001, 0x6000, 0x8000
1070 const SvxMSDffTextRectangles mso_sptUturnArrowTextRect[] =
1072 { { 0, 8280 }, { 6110, 21600 } }
1074 const mso_CustomShape msoUturnArrow =
1076 std::span<const SvxMSDffVertPair>(mso_sptUturnArrowVert),
1077 const_cast<sal_uInt16*>(mso_sptUturnArrowSegm), sizeof( mso_sptUturnArrowSegm ) >> 1,
1078 std::span<const SvxMSDffCalculationData>(),
1079 nullptr,
1080 std::span<const SvxMSDffTextRectangles>(mso_sptUturnArrowTextRect),
1081 21600, 21600,
1082 MIN_INT32, MIN_INT32,
1083 std::span<const SvxMSDffVertPair>(),
1084 std::span<const SvxMSDffHandle>() // handles
1087 const SvxMSDffVertPair mso_sptLeftUpArrowVert[] = // adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1088 { // adjustment3 : y 0 - 21600
1089 { 0, 5 MSO_I }, { 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 7 MSO_I, 7 MSO_I },
1090 { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 }, { 21600, 2 MSO_I },
1091 { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
1093 const sal_uInt16 mso_sptLeftUpArrowSegm[] =
1095 0x4000, 0x000b, 0x6001, 0x8000
1097 const SvxMSDffCalculationData mso_sptLeftUpArrowCalc[] =
1099 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0
1100 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 1
1101 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, // 2
1102 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3
1103 { 0x2001, { 0x0403, 1, 2 } }, // 4
1104 { 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } }, // 5
1105 { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, // 6
1106 { 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } }, // 7
1107 { 0x8000, { 21600, 0, 0x406 } }, // 8
1108 { 0xa000, { 0x408, 0, 0x406 } } // 9
1110 const sal_Int32 mso_sptLeftUpArrowDefault[] =
1112 3, 9340, 18500, 6200
1114 const SvxMSDffTextRectangles mso_sptLeftUpArrowTextRect[] =
1116 { { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1117 { { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1119 const SvxMSDffHandle mso_sptLeftUpArrowHandle[] =
1121 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
1122 0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1123 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1124 0x100, 0, 10800, 10800, 0x102, 3 + 9, MIN_INT32, 0x7fffffff }
1126 const mso_CustomShape msoLeftUpArrow =
1128 std::span<const SvxMSDffVertPair>(mso_sptLeftUpArrowVert),
1129 const_cast<sal_uInt16*>(mso_sptLeftUpArrowSegm), sizeof( mso_sptLeftUpArrowSegm ) >> 1,
1130 std::span<const SvxMSDffCalculationData>(mso_sptLeftUpArrowCalc),
1131 const_cast<sal_Int32*>(mso_sptLeftUpArrowDefault),
1132 std::span<const SvxMSDffTextRectangles>(mso_sptLeftUpArrowTextRect),
1133 21600, 21600,
1134 MIN_INT32, MIN_INT32,
1135 std::span<const SvxMSDffVertPair>(),
1136 std::span<const SvxMSDffHandle>(mso_sptLeftUpArrowHandle),
1139 const SvxMSDffVertPair mso_sptBentUpArrowVert[] = // adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1140 { // adjustment3 : y 0 - 21600
1141 { 0, 8 MSO_I }, { 7 MSO_I, 8 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },
1142 { 5 MSO_I, 0 }, { 21600, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 21600 },
1143 { 0, 21600 }
1145 const sal_uInt16 mso_sptBentUpArrowSegm[] =
1147 0x4000, 0x0008, 0x6001, 0x8000
1149 const SvxMSDffCalculationData mso_sptBentUpArrowCalc[] =
1151 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0
1152 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 1
1153 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, // 2
1154 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3
1155 { 0x2001, { 0x0403, 1, 2 } }, // 4
1156 { 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } }, // 5
1157 { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, // 6
1158 { 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } }, // 7
1159 { 0x6000, { 0x0407, 0x0406, 0 } }, // 8
1160 { 0x8000, { 21600, 0, 0x406 } }, // 9
1161 { 0xa000, { 0x409, 0, 0x406 } } // a
1163 const sal_Int32 mso_sptBentUpArrowDefault[] =
1165 3, 9340, 18500, 7200
1167 const SvxMSDffTextRectangles mso_sptBentUpArrowTextRect[] =
1169 { { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1170 { { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1172 const SvxMSDffHandle mso_sptBentUpArrowHandle[] =
1174 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
1175 0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1176 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1177 0x100, 0, 10800, 10800, 0x102, 3 + 10, MIN_INT32, 0x7fffffff }
1179 const mso_CustomShape msoBentUpArrow =
1181 std::span<const SvxMSDffVertPair>(mso_sptBentUpArrowVert),
1182 const_cast<sal_uInt16*>(mso_sptBentUpArrowSegm), sizeof( mso_sptBentUpArrowSegm ) >> 1,
1183 std::span<const SvxMSDffCalculationData>(mso_sptBentUpArrowCalc),
1184 const_cast<sal_Int32*>(mso_sptBentUpArrowDefault),
1185 std::span<const SvxMSDffTextRectangles>(mso_sptBentUpArrowTextRect),
1186 21600, 21600,
1187 MIN_INT32, MIN_INT32,
1188 std::span<const SvxMSDffVertPair>(),
1189 std::span<const SvxMSDffHandle>(mso_sptBentUpArrowHandle),
1192 const SvxMSDffVertPair mso_sptCurvedRightVert[] =
1194 { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 0, 7 MSO_I }, { 2 MSO_I, 13 MSO_I },
1195 { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I },
1196 { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I },
1197 { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I },
1198 { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 0, 4 MSO_I }, { 26 MSO_I, 17 MSO_I },
1199 { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I }
1201 const sal_uInt16 mso_sptCurvedRightSegm[] =
1203 0xa404,
1204 0xa304,
1205 0x0003,
1206 0xa508,
1207 0x6000,
1208 0x8000,
1209 0xa404,
1210 0xa304,
1211 0xa504,
1212 0x6000,
1213 0x8000
1215 const SvxMSDffCalculationData mso_sptCurvedRightCalc[] =
1217 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1218 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1219 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1220 { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1221 { 0x2001, { 0x403, 1, 2 } },
1222 { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1223 { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1224 { 0x2001, { 0x406, 1, 2 } },
1225 { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1226 { 0x8000, { 21600, 0, DFF_Prop_adjust3Value } },
1227 { 0xa00f, { 0x409, 21600, 0x404 } },
1228 { 0x6000, { 0x404, 0x40a, 0 } },
1229 { 0x6000, { 0x40b, DFF_Prop_adjust2Value, 21600 } },
1230 { 0x6000, { 0x407, 0x40a, 0 } },
1231 { 0xa000, { 0x40c, 21600, DFF_Prop_adjustValue } },
1232 { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1233 { 0x2001, { 0x40f, 1, 2 } },
1234 { 0x6002, { 0x404, 0x407, 0 } },
1235 { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1236 { 0x2001, { 0x412, 1, 2 } },
1237 { 0xa000, { 0x411, 0, 0x413 } },
1238 { 0x0000, { 21600, 0, 0 } },
1239 { 0x0000, { 21600, 0, 0 } },
1240 { 0x0001, { 21600, 2, 1 } },
1241 { 0xa000, { 0x411, 0, 0x404 } },
1242 { 0x600f, { 0x418, 0x404, 21600 } },
1243 { 0x8000, { 21600, 0, 0x419 } },
1244 { 0x2000, { 0x408, 128, 0 } },
1245 { 0x2001, { 0x405, 1, 2 } },
1246 { 0x2000, { 0x405, 0, 128 } },
1247 { 0xe000, { DFF_Prop_adjustValue, 0x411, 0x40c } },
1248 { 0x600f, { 0x414, 0x404, 21600 } },
1249 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1250 { 0x2001, { 0x420, 1, 2 } },
1251 { 0x0001, { 21600, 21600, 1 } },
1252 { 0x6001, { 0x409, 0x409, 1 } },
1253 { 0xa000, { 0x422, 0, 0x423 } },
1254 { 0x200d, { 0x424, 0, 0 } },
1255 { 0x2000, { 0x425, 21600, 0 } },
1256 { 0x8001, { 21600, 21600, 0x426 } },
1257 { 0x2000, { 0x427, 64, 0 } },
1258 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1259 { 0x600f, { 0x421, 0x429, 21600 } },
1260 { 0x8000, { 21600, 0, 0x42a } },
1261 { 0x2000, { 0x42b, 64, 0 } },
1262 { 0x2001, { 0x404, 1, 2 } },
1263 { 0xa000, { DFF_Prop_adjust2Value, 0, 0x42d } },
1264 { 0x0001, { 21600, 2195, 16384 } },
1265 { 0x0001, { 21600, 14189, 16384 } }
1267 const sal_Int32 mso_sptCurvedRightDefault[] =
1269 3, 12960, 19440, 14400
1271 const SvxMSDffTextRectangles mso_sptCurvedRightTextRect[] =
1273 { { 47 MSO_I, 45 MSO_I }, { 48 MSO_I, 46 MSO_I } }
1275 const SvxMSDffVertPair mso_sptCurvedRightGluePoints[] =
1277 { 0, 17 MSO_I }, { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I }, { 22 MSO_I, 16 MSO_I }
1279 const SvxMSDffHandle mso_sptCurvedRightHandles[] =
1281 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1282 21600, 0x100, 10800, 10800, 0, 10800, 3 + 40, 3 + 29 },
1283 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1284 21600, 0x101, 10800, 10800, 0, 10800, 3 + 27, 3 + 21 },
1285 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1286 0x102, 21600, 10800, 10800, 3 + 44, 3 + 22, 3375, 21600 }
1288 const mso_CustomShape msoCurvedRightArrow =
1290 std::span<const SvxMSDffVertPair>(mso_sptCurvedRightVert),
1291 const_cast<sal_uInt16*>(mso_sptCurvedRightSegm), sizeof( mso_sptCurvedRightSegm ) >> 1,
1292 std::span<const SvxMSDffCalculationData>(mso_sptCurvedRightCalc),
1293 const_cast<sal_Int32*>(mso_sptCurvedRightDefault),
1294 std::span<const SvxMSDffTextRectangles>(mso_sptCurvedRightTextRect),
1295 21600, 21600,
1296 MIN_INT32, MIN_INT32,
1297 std::span<const SvxMSDffVertPair>(mso_sptCurvedRightGluePoints),
1298 std::span<const SvxMSDffHandle>(mso_sptCurvedRightHandles),
1301 const SvxMSDffVertPair mso_sptCurvedDownVert[] =
1303 { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1304 { 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 7 MSO_I, 0 }, { 13 MSO_I, 2 MSO_I },
1305 { 14 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I },
1306 { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 11 MSO_I, 2 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 0 },
1307 { 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I },
1308 { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1309 { 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 4 MSO_I, 0 }, { 17 MSO_I, 26 MSO_I },
1310 { 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I }
1312 const sal_uInt16 mso_sptCurvedDownSegm[] =
1314 0xa604,
1315 0xa504,
1316 0x0003,
1317 0xa308,
1318 0x6000,
1319 0x8000,
1320 0xa604,
1321 0xa504,
1322 0xa304,
1323 0x6000,
1324 0x8000
1326 const SvxMSDffTextRectangles mso_sptCurvedDownTextRect[] =
1328 { { 45 MSO_I, 47 MSO_I }, { 46 MSO_I, 48 MSO_I } }
1330 const SvxMSDffVertPair mso_sptCurvedDownGluePoints[] =
1332 { 17 MSO_I, 0 }, { 16 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 14 MSO_I, 2 MSO_I }
1334 const SvxMSDffHandle mso_sptCurvedDownHandles[] =
1336 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1337 0x100, 21600, 10800, 10800, 3 + 40, 3 + 29, 0, 10800 },
1338 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1339 0x101, 21600, 10800, 10800, 3 + 27, 3 + 21, 0, 10800 },
1340 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1341 21600, 0x102, 10800, 10800, 3375, 21600, 3 + 44, 3 + 22 }
1344 const mso_CustomShape msoCurvedDownArrow =
1346 std::span<const SvxMSDffVertPair>(mso_sptCurvedDownVert),
1347 const_cast<sal_uInt16*>(mso_sptCurvedDownSegm), sizeof( mso_sptCurvedDownSegm ) >> 1,
1348 std::span<const SvxMSDffCalculationData>(mso_sptCurvedRightCalc),
1349 const_cast<sal_Int32*>(mso_sptCurvedRightDefault),
1350 std::span<const SvxMSDffTextRectangles>(mso_sptCurvedDownTextRect),
1351 21600, 21600,
1352 MIN_INT32, MIN_INT32,
1353 std::span<const SvxMSDffVertPair>(mso_sptCurvedDownGluePoints),
1354 std::span<const SvxMSDffHandle>(mso_sptCurvedDownHandles),
1357 const SvxMSDffVertPair mso_sptCurvedUpVert[] =
1359 { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1360 { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I },
1361 { 12 MSO_I, 2 MSO_I }, { 13 MSO_I, 2 MSO_I }, { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I },
1362 { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 10 MSO_I, 2 MSO_I }, { 16 MSO_I, 24 MSO_I },
1363 { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 },
1364 { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1365 { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I },
1366 { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 }
1368 const sal_uInt16 mso_sptCurvedUpSegm[] =
1370 0xa404,
1371 0xa304,
1372 0x0003,
1373 0xa508,
1374 0x6000,
1375 0x8000,
1376 0xa404,
1377 0xa508,
1378 0xa504,
1379 0x6000,
1380 0x8000
1382 const SvxMSDffCalculationData mso_sptCurvedUpCalc[] =
1384 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1385 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1386 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1387 { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1388 { 0x2001, { 0x403, 1, 2 } },
1389 { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1390 { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1391 { 0x2001, { 0x406, 1, 2 } },
1392 { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1393 { 0xa00f, { DFF_Prop_adjust3Value, 21600, 0x404 } },
1394 { 0x6000, { 0x404, 0x409, 0 } },
1395 { 0x6000, { 0x40a, DFF_Prop_adjust2Value, 21600 } },
1396 { 0x6000, { 0x407, 0x409, 0 } },
1397 { 0xa000, { 0x40b, 21600, DFF_Prop_adjustValue } },
1398 { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1399 { 0x2001, { 0x40e, 1, 2 } },
1400 { 0x6002, { 0x404, 0x407, 0 } },
1401 { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1402 { 0x2001, { 0x411, 1, 2 } },
1403 { 0xa000, { 0x410, 0, 0x412 } },
1404 { 0x0000, { 21600, 0, 0 } },
1405 { 0x0000, { 21600, 0, 0 } },
1406 { 0x0000, { 0, 0, 21600 } },
1407 { 0xa000, { 0x410, 0, 0x404 } },
1408 { 0x600f, { 0x417, 0x404, 21600 } },
1409 { 0x2000, { 0x408, 128, 0 } },
1410 { 0x2001, { 0x405, 1, 2 } },
1411 { 0x2000, { 0x405, 0, 128 } },
1412 { 0xe000, { DFF_Prop_adjustValue, 0x410, 0x40b } },
1413 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1414 { 0x2001, { 0x41d, 1, 2 } },
1415 { 0x0001, { 21600, 21600, 1 } },
1416 { 0x6001, { DFF_Prop_adjust3Value, DFF_Prop_adjust3Value, 1 } },
1417 { 0xa000, { 0x41f, 0, 0x420 } },
1418 { 0x200d, { 0x421, 0, 0 } },
1419 { 0x2000, { 0x422, 21600, 0 } },
1420 { 0x8001, { 21600, 21600, 0x423 } },
1421 { 0x2000, { 0x424, 64, 0 } },
1422 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1423 { 0x600f, { 0x41e, 0x426, 21600 } },
1424 { 0x2000, { 0x427, 0, 64 } },
1425 { 0x2001, { 0x404, 1, 2 } },
1426 { 0xa000, { DFF_Prop_adjust2Value, 0, 0x429 } },
1427 { 0x0001, { 21600, 2195, 16384 } },
1428 { 0x0001, { 21600, 14189, 16384 } }
1430 const sal_Int32 mso_sptCurvedUpDefault[] =
1432 3, 12960, 19440, 7200
1434 const SvxMSDffTextRectangles mso_sptCurvedUpTextRect[] =
1436 { { 41 MSO_I, 43 MSO_I }, { 42 MSO_I, 44 MSO_I } }
1438 const SvxMSDffVertPair mso_sptCurvedUpGluePoints[] =
1440 { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I }, { 15 MSO_I, 0 }, { 16 MSO_I, 21 MSO_I }, { 13 MSO_I, 2 MSO_I }
1442 const SvxMSDffHandle mso_sptCurvedUpHandles[] =
1444 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1445 0x100, 0, 10800, 10800, 3 + 37, 3 + 27, 0, 10800 },
1446 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1447 0x101, 0, 10800, 10800, 3 + 25, 3 + 20, 0, 10800 },
1448 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1449 21600, 0x102, 10800, 10800, 3375, 21600, 0, 3 + 40 }
1451 const mso_CustomShape msoCurvedUpArrow =
1453 std::span<const SvxMSDffVertPair>(mso_sptCurvedUpVert),
1454 const_cast<sal_uInt16*>(mso_sptCurvedUpSegm), sizeof( mso_sptCurvedUpSegm ) >> 1,
1455 std::span<const SvxMSDffCalculationData>(mso_sptCurvedUpCalc),
1456 const_cast<sal_Int32*>(mso_sptCurvedUpDefault),
1457 std::span<const SvxMSDffTextRectangles>(mso_sptCurvedUpTextRect),
1458 21600, 21600,
1459 MIN_INT32, MIN_INT32,
1460 std::span<const SvxMSDffVertPair>(mso_sptCurvedUpGluePoints),
1461 std::span<const SvxMSDffHandle>(mso_sptCurvedUpHandles),
1464 const SvxMSDffVertPair mso_sptCurvedLeftVert[] =
1466 { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1467 { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 2 MSO_I, 12 MSO_I },
1468 { 2 MSO_I, 13 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 11 MSO_I },
1469 { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 2 MSO_I, 10 MSO_I }, { 24 MSO_I, 16 MSO_I },
1470 { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I },
1471 { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1472 { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 24 MSO_I, 16 MSO_I },
1473 { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I }
1475 const sal_uInt16 mso_sptCurvedLeftSegm[] =
1477 0xa604,
1478 0xa504,
1479 0x0003,
1480 0xa308,
1481 0x6000,
1482 0x8000,
1483 0xa604,
1484 0xa308,
1485 0x6000,
1486 0x8000
1488 const SvxMSDffTextRectangles mso_sptCurvedLeftTextRect[] =
1490 { { 43 MSO_I, 41 MSO_I }, { 44 MSO_I, 42 MSO_I } }
1492 const SvxMSDffVertPair mso_sptCurvedLeftGluePoints[] =
1494 { 0, 15 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 13 MSO_I }, { 21 MSO_I, 16 MSO_I }
1496 const SvxMSDffHandle mso_sptCurvedLeftHandles[] =
1498 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1499 0, 0x100, 10800, 10800, 0, 10800, 3 + 37, 3 + 27 },
1500 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1501 0, 0x101, 10800, 10800, 0, 10800, 3 + 25, 3 + 20 },
1502 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1503 0x102, 21600, 10800, 10800, 0, 3 + 40, 3375, 21600 }
1505 const mso_CustomShape msoCurvedLeftArrow =
1507 std::span<const SvxMSDffVertPair>(mso_sptCurvedLeftVert),
1508 const_cast<sal_uInt16*>(mso_sptCurvedLeftSegm), sizeof( mso_sptCurvedLeftSegm ) >> 1,
1509 std::span<const SvxMSDffCalculationData>(mso_sptCurvedUpCalc),
1510 const_cast<sal_Int32*>(mso_sptCurvedUpDefault),
1511 std::span<const SvxMSDffTextRectangles>(mso_sptCurvedLeftTextRect),
1512 21600, 21600,
1513 MIN_INT32, MIN_INT32,
1514 std::span<const SvxMSDffVertPair>(mso_sptCurvedLeftGluePoints),
1515 std::span<const SvxMSDffHandle>(mso_sptCurvedLeftHandles),
1518 const SvxMSDffVertPair mso_sptStripedRightArrowVert[] = // adjustment1 : x 3375 - 21600
1519 { // adjustment2 : y 0 - 10800
1520 { 3375, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
1521 { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 3375, 2 MSO_I }, { 0, 0 MSO_I },
1522 { 675, 0 MSO_I }, { 675, 2 MSO_I }, { 0, 2 MSO_I }, { 1350, 0 MSO_I },
1523 { 2700, 0 MSO_I }, { 2700, 2 MSO_I }, { 1350, 2 MSO_I }
1525 const sal_uInt16 mso_sptStripedRightArrowSegm[] =
1527 0x4000, 0x0006, 0x6001, 0x8000,
1528 0x4000, 0x0003, 0x6001, 0x8000,
1529 0x4000, 0x0003, 0x6001, 0x8000
1531 const SvxMSDffCalculationData mso_sptStripedRightArrowCalc[] =
1533 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1534 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1535 { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1536 { 0x8000, { 21600, 0, 0x401 } },
1537 { 0x6001, { 0x403, 0x400, 10800 } },
1538 { 0x6000, { 0x401, 0x404, 0 } }
1540 const SvxMSDffTextRectangles mso_sptStripedRightArrowTextRect[] =
1542 { { 3375, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
1544 const SvxMSDffHandle mso_sptStripedRightArrowHandle[] =
1546 { SvxMSDffHandleFlags::RANGE,
1547 0x100, 0x101, 10800, 10800, 3375, 21600, 0, 10800 }
1549 const mso_CustomShape msoStripedRightArrow =
1551 std::span<const SvxMSDffVertPair>(mso_sptStripedRightArrowVert),
1552 const_cast<sal_uInt16*>(mso_sptStripedRightArrowSegm), sizeof( mso_sptStripedRightArrowSegm ) >> 1,
1553 std::span<const SvxMSDffCalculationData>(mso_sptStripedRightArrowCalc),
1554 const_cast<sal_Int32*>(mso_sptDefault16200and5400),
1555 std::span<const SvxMSDffTextRectangles>(mso_sptStripedRightArrowTextRect),
1556 21600, 21600,
1557 MIN_INT32, MIN_INT32,
1558 std::span<const SvxMSDffVertPair>(),
1559 std::span<const SvxMSDffHandle>(mso_sptStripedRightArrowHandle),
1562 const SvxMSDffVertPair mso_sptNotchedRightArrowVert[] = // adjustment1 : x 0 - 21600 (default 16200)
1563 { // adjustment2 : y 0 - 10800 (default 5400)
1564 { 0, 1 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 0 }, { 21600, 10800 },
1565 { 0 MSO_I, 21600 }, { 0 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }, { 5 MSO_I, 10800 }, { 0, 1 MSO_I }
1567 const SvxMSDffCalculationData mso_sptNotchedRightArrowCalc[] =
1569 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1570 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1571 { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1572 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1573 { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
1574 { 0x6001, { 0x403, 0x404, 10800 } },
1575 { 0x8000, { 21600, 0, 0x405 }}
1577 const SvxMSDffTextRectangles mso_sptNotchedRightArrowTextRect[] = // todo
1579 { { 5 MSO_I, 1 MSO_I }, { 6 MSO_I, 2 MSO_I } }
1581 const SvxMSDffHandle mso_sptNotchedRightArrowHandle[] =
1583 { SvxMSDffHandleFlags::RANGE,
1584 0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
1586 const mso_CustomShape msoNotchedRightArrow =
1588 std::span<const SvxMSDffVertPair>(mso_sptNotchedRightArrowVert),
1589 nullptr, 0,
1590 std::span<const SvxMSDffCalculationData>(mso_sptNotchedRightArrowCalc),
1591 const_cast<sal_Int32*>(mso_sptDefault16200and5400),
1592 std::span<const SvxMSDffTextRectangles>(mso_sptNotchedRightArrowTextRect),
1593 21600, 21600,
1594 MIN_INT32, MIN_INT32,
1595 std::span<const SvxMSDffVertPair>(),
1596 std::span<const SvxMSDffHandle>(mso_sptNotchedRightArrowHandle),
1599 const SvxMSDffVertPair mso_sptHomePlateVert[] = // adjustment1 : x 0 - 21600
1601 { 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1602 { 0, 21600 }
1604 const sal_uInt16 mso_sptHomePlateSegm[] =
1606 0x4000, 0x0004, 0x6001, 0x8000
1608 const SvxMSDffCalculationData mso_sptHomePlateCalc[] =
1610 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
1612 const sal_Int32 mso_sptHomePlateDefault[] =
1614 1, 16200
1616 const SvxMSDffTextRectangles mso_sptHomePlateTextRect[] = // todo
1618 { { 0, 0 }, { 21600, 21600 } }
1620 const SvxMSDffHandle mso_sptHomePlateHandle[] =
1622 { SvxMSDffHandleFlags::RANGE,
1623 0x100, 0, 10800, 10800, 0, 21600, MIN_INT32, 0x7fffffff }
1625 const mso_CustomShape msoHomePlate =
1627 std::span<const SvxMSDffVertPair>(mso_sptHomePlateVert),
1628 const_cast<sal_uInt16*>(mso_sptHomePlateSegm), sizeof( mso_sptHomePlateSegm ) >> 1,
1629 std::span<const SvxMSDffCalculationData>(mso_sptHomePlateCalc),
1630 const_cast<sal_Int32*>(mso_sptHomePlateDefault),
1631 std::span<const SvxMSDffTextRectangles>(mso_sptHomePlateTextRect),
1632 21600, 21600,
1633 MIN_INT32, MIN_INT32,
1634 std::span<const SvxMSDffVertPair>(),
1635 std::span<const SvxMSDffHandle>(mso_sptHomePlateHandle),
1638 const SvxMSDffVertPair mso_sptChevronVert[] = // adjustment1 : x 0 - 21600
1640 { 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1641 { 0, 21600 }, { 1 MSO_I, 10800 }
1643 const sal_uInt16 mso_sptChevronSegm[] =
1645 0x4000, 0x0005, 0x6001, 0x8000
1647 const SvxMSDffCalculationData mso_sptChevronCalc[] =
1649 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1650 { 0x8000, { 21600, 0, 0x0400 } }
1652 const sal_Int32 mso_sptChevronDefault[] =
1654 1, 16200
1656 const SvxMSDffTextRectangles mso_sptChevronTextRect[] = // todo
1658 { { 0, 0 }, { 21600, 21600 } }
1660 const SvxMSDffHandle mso_sptChevronHandle[] =
1662 { SvxMSDffHandleFlags::RANGE,
1663 0x100, 0, 10800, 10800, 0, 21600, MIN_INT32, 0x7fffffff }
1665 const mso_CustomShape msoChevron =
1667 std::span<const SvxMSDffVertPair>(mso_sptChevronVert),
1668 const_cast<sal_uInt16*>(mso_sptChevronSegm), sizeof( mso_sptChevronSegm ) >> 1,
1669 std::span<const SvxMSDffCalculationData>(mso_sptChevronCalc),
1670 const_cast<sal_Int32*>(mso_sptChevronDefault),
1671 std::span<const SvxMSDffTextRectangles>(mso_sptChevronTextRect),
1672 21600, 21600,
1673 MIN_INT32, MIN_INT32,
1674 std::span<const SvxMSDffVertPair>(),
1675 std::span<const SvxMSDffHandle>(mso_sptChevronHandle),
1678 const SvxMSDffVertPair mso_sptRightArrowCalloutVert[] = // adjustment1 : x 0 - 21000
1679 { // adjustment2 : y 0 - 10800
1680 { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
1681 { 2 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 5 MSO_I },
1682 { 0 MSO_I, 5 MSO_I }, { 0 MSO_I, 21600 }, { 0, 21600 }
1684 const sal_uInt16 mso_sptRightArrowCalloutSegm[] =
1686 0x4000, 0x000a, 0x6001, 0x8000
1688 const SvxMSDffCalculationData mso_sptRightArrowCalloutCalc[] =
1690 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1691 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1692 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1693 { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1694 { 0x8000, { 21600, 0, 0x0401 } },
1695 { 0x8000, { 21600, 0, 0x0403 } }
1697 const sal_Int32 mso_sptRightArrowCalloutDefault[] =
1699 4, 14400, 5400, 18000, 8100
1701 const SvxMSDffTextRectangles mso_sptRightArrowCalloutTextRect[] =
1703 { { 0, 0 }, { 0 MSO_I, 21600 } }
1705 const SvxMSDffHandle mso_sptRightArrowCalloutHandle[] =
1707 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1708 0x100, 0, 10800, 10800, 0, 0x102, MIN_INT32, 0x7fffffff },
1709 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
1710 0x102, 0x103, 10800, 10800, 0x100, 21600, 0x101, 10800 },
1711 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1712 1, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 0x103 }
1714 const mso_CustomShape msoRightArrowCallout =
1716 std::span<const SvxMSDffVertPair>(mso_sptRightArrowCalloutVert),
1717 const_cast<sal_uInt16*>(mso_sptRightArrowCalloutSegm), sizeof( mso_sptRightArrowCalloutSegm ) >> 1,
1718 std::span<const SvxMSDffCalculationData>(mso_sptRightArrowCalloutCalc),
1719 const_cast<sal_Int32*>(mso_sptRightArrowCalloutDefault),
1720 std::span<const SvxMSDffTextRectangles>(mso_sptRightArrowCalloutTextRect),
1721 21600, 21600,
1722 MIN_INT32, MIN_INT32,
1723 std::span<const SvxMSDffVertPair>(),
1724 std::span<const SvxMSDffHandle>(mso_sptRightArrowCalloutHandle),
1727 const SvxMSDffVertPair mso_sptLeftArrowCalloutVert[] = // adjustment1 : x 0 - 21600, adjustment2 : y 0 - 10800
1728 { // adjustment3 : x 0 - 21600, adjustment4 : y 0 - 10800
1729 { 0 MSO_I, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0 MSO_I, 21600 },
1730 { 0 MSO_I, 5 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0, 10800 },
1731 { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1733 const sal_uInt16 mso_sptLeftArrowCalloutSegm[] =
1735 0x4000, 0x000a, 0x6001, 0x8000
1737 const SvxMSDffCalculationData mso_sptLeftArrowCalloutCalc[] =
1739 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1740 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1741 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1742 { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1743 { 0x8000, { 21600, 0, 0x0401 } },
1744 { 0x8000, { 21600, 0, 0x0403 } }
1746 const sal_Int32 mso_sptLeftArrowCalloutDefault[] =
1748 4, 7200, 5400, 3600, 8100
1750 const SvxMSDffTextRectangles mso_sptLeftArrowCalloutTextRect[] =
1752 { { 0 MSO_I, 0 }, { 21600, 21600 } }
1754 const SvxMSDffHandle mso_sptLeftArrowCalloutHandle[] =
1756 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
1757 0x100, 0, 10800, 10800, 0x102, 21600, MIN_INT32, 0x7fffffff },
1758 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
1759 0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1760 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1761 0, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 0x103 }
1763 const mso_CustomShape msoLeftArrowCallout =
1765 std::span<const SvxMSDffVertPair>(mso_sptLeftArrowCalloutVert),
1766 const_cast<sal_uInt16*>(mso_sptLeftArrowCalloutSegm), sizeof( mso_sptLeftArrowCalloutSegm ) >> 1,
1767 std::span<const SvxMSDffCalculationData>(mso_sptLeftArrowCalloutCalc),
1768 const_cast<sal_Int32*>(mso_sptLeftArrowCalloutDefault),
1769 std::span<const SvxMSDffTextRectangles>(mso_sptLeftArrowCalloutTextRect),
1770 21600, 21600,
1771 MIN_INT32, MIN_INT32,
1772 std::span<const SvxMSDffVertPair>(),
1773 std::span<const SvxMSDffHandle>(mso_sptLeftArrowCalloutHandle),
1776 const SvxMSDffVertPair mso_sptUpArrowCalloutVert[] =
1778 { 21600, 0 MSO_I }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 MSO_I },
1779 { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 10800, 0 },
1780 { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 MSO_I }
1782 const sal_uInt16 mso_sptUpArrowCalloutSegm[] =
1784 0x4000, 0x000a, 0x6001, 0x8000
1786 const SvxMSDffCalculationData mso_sptUpArrowCalloutCalc[] =
1788 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1789 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1790 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1791 { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1792 { 0x8000, { 21600, 0, 0x0401 } },
1793 { 0x8000, { 21600, 0, 0x0403 } }
1795 const sal_Int32 mso_sptUpArrowCalloutDefault[] =
1797 4, 7200, 5400, 3600, 8100
1799 const SvxMSDffTextRectangles mso_sptUpArrowCalloutTextRect[] =
1801 { { 0, 0 MSO_I }, { 21600, 21600 } }
1803 const SvxMSDffHandle mso_sptUpArrowCalloutHandle[] =
1805 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
1806 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0x102, 21600 },
1807 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1808 0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1809 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1810 0x101, 0, 10800, 10800, 0, 0x103, MIN_INT32, 0x7fffffff }
1812 const mso_CustomShape msoUpArrowCallout =
1814 std::span<const SvxMSDffVertPair>(mso_sptUpArrowCalloutVert),
1815 const_cast<sal_uInt16*>(mso_sptUpArrowCalloutSegm), sizeof( mso_sptUpArrowCalloutSegm ) >> 1,
1816 std::span<const SvxMSDffCalculationData>(mso_sptUpArrowCalloutCalc),
1817 const_cast<sal_Int32*>(mso_sptUpArrowCalloutDefault),
1818 std::span<const SvxMSDffTextRectangles>(mso_sptUpArrowCalloutTextRect),
1819 21600, 21600,
1820 MIN_INT32, MIN_INT32,
1821 std::span<const SvxMSDffVertPair>(),
1822 std::span<const SvxMSDffHandle>(mso_sptUpArrowCalloutHandle),
1825 const SvxMSDffVertPair mso_sptDownArrowCalloutVert[] =
1827 { 0, 0 MSO_I }, { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I },
1828 { 5 MSO_I, 0 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 10800, 21600 },
1829 { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1831 const sal_uInt16 mso_sptDownArrowCalloutSegm[] =
1833 0x4000, 0x000a, 0x6001, 0x8000
1835 const SvxMSDffCalculationData mso_sptDownArrowCalloutCalc[] =
1837 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1838 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1839 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1840 { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1841 { 0x8000, { 21600, 0, 0x0401 } },
1842 { 0x8000, { 21600, 0, 0x0403 } }
1844 const sal_Int32 mso_sptDownArrowCalloutDefault[] =
1846 4, 14400, 5400, 18000, 8100
1848 const SvxMSDffTextRectangles mso_sptDownArrowCalloutTextRect[] =
1850 { { 0, 0 }, { 21600, 0 MSO_I } }
1852 const SvxMSDffHandle mso_sptDownArrowCalloutHandle[] =
1854 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1855 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 0x102 },
1856 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
1857 0x103, 0x102, 10800, 10800, 0x101, 10800, 0x100, 21600 },
1858 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1859 0x101, 1, 10800, 10800, 0, 0x103, MIN_INT32, 0x7fffffff }
1861 const mso_CustomShape msoDownArrowCallout =
1863 std::span<const SvxMSDffVertPair>(mso_sptDownArrowCalloutVert),
1864 const_cast<sal_uInt16*>(mso_sptDownArrowCalloutSegm), sizeof( mso_sptDownArrowCalloutSegm ) >> 1,
1865 std::span<const SvxMSDffCalculationData>(mso_sptDownArrowCalloutCalc),
1866 const_cast<sal_Int32*>(mso_sptDownArrowCalloutDefault),
1867 std::span<const SvxMSDffTextRectangles>(mso_sptDownArrowCalloutTextRect),
1868 21600, 21600,
1869 MIN_INT32, MIN_INT32,
1870 std::span<const SvxMSDffVertPair>(),
1871 std::span<const SvxMSDffHandle>(mso_sptDownArrowCalloutHandle),
1874 const SvxMSDffVertPair mso_sptLeftRightArrowCalloutVert[] =
1876 { 0 MSO_I, 0 }, { 4 MSO_I, 0 }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I },
1877 { 6 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I },
1878 { 4 MSO_I, 7 MSO_I }, { 4 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0 MSO_I, 7 MSO_I },
1879 { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 0, 10800 }, { 2 MSO_I, 1 MSO_I },
1880 { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1882 const sal_uInt16 mso_sptLeftRightArrowCalloutSegm[] =
1884 0x4000, 0x0011, 0x6001, 0x8000
1886 const SvxMSDffCalculationData mso_sptLeftRightArrowCalloutCalc[] =
1888 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1889 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1890 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1891 { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1892 { 0x8000, { 21600, 0, 0x0400 } },
1893 { 0x8000, { 21600, 0, 0x0401 } },
1894 { 0x8000, { 21600, 0, 0x0402 } },
1895 { 0x8000, { 21600, 0, 0x0403 } }
1897 const sal_Int32 mso_sptLeftRightArrowCalloutDefault[] =
1899 4, 5400, 5500, 2700, 8100
1901 const SvxMSDffTextRectangles mso_sptLeftRightArrowCalloutTextRect[] =
1903 { { 0 MSO_I, 0 }, { 4 MSO_I, 21600 } }
1905 const SvxMSDffHandle mso_sptLeftRightArrowCalloutHandle[] =
1907 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
1908 0x100, 0, 10800, 10800, 0x102, 10800, MIN_INT32, 0x7fffffff },
1909 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
1910 0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1911 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1912 0, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 0x103 }
1914 const mso_CustomShape msoLeftRightArrowCallout =
1916 std::span<const SvxMSDffVertPair>(mso_sptLeftRightArrowCalloutVert),
1917 const_cast<sal_uInt16*>(mso_sptLeftRightArrowCalloutSegm), sizeof( mso_sptLeftRightArrowCalloutSegm ) >> 1,
1918 std::span<const SvxMSDffCalculationData>(mso_sptLeftRightArrowCalloutCalc),
1919 const_cast<sal_Int32*>(mso_sptLeftRightArrowCalloutDefault),
1920 std::span<const SvxMSDffTextRectangles>(mso_sptLeftRightArrowCalloutTextRect),
1921 21600, 21600,
1922 MIN_INT32, MIN_INT32,
1923 std::span<const SvxMSDffVertPair>(),
1924 std::span<const SvxMSDffHandle>(mso_sptLeftRightArrowCalloutHandle),
1927 const SvxMSDffVertPair mso_sptUpDownArrowCalloutVert[] =
1929 { 0, 0 MSO_I }, { 0, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 6 MSO_I },
1930 { 1 MSO_I, 6 MSO_I }, { 10800, 21600 }, { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 6 MSO_I },
1931 { 7 MSO_I, 4 MSO_I }, { 21600, 4 MSO_I }, { 21600, 0 MSO_I }, { 7 MSO_I, 0 MSO_I },
1932 { 7 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 10800, 0 }, { 1 MSO_I, 2 MSO_I },
1933 { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1935 const sal_uInt16 mso_sptUpDownArrowCalloutSegm[] =
1937 0x4000, 0x0011, 0x6001, 0x8000
1939 const SvxMSDffCalculationData mso_sptUpDownArrowCalloutCalc[] =
1941 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1942 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1943 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1944 { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1945 { 0x8000, { 21600, 0, 0x0400 } },
1946 { 0x8000, { 21600, 0, 0x0401 } },
1947 { 0x8000, { 21600, 0, 0x0402 } },
1948 { 0x8000, { 21600, 0, 0x0403 } }
1950 const sal_Int32 mso_sptUpDownArrowCalloutDefault[] =
1952 4, 5400, 5500, 2700, 8100
1954 const SvxMSDffTextRectangles mso_sptUpDownArrowCalloutTextRect[] =
1956 { { 0, 0 MSO_I }, { 21600, 4 MSO_I } }
1958 const SvxMSDffHandle mso_sptUpDownArrowCalloutHandle[] =
1960 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
1961 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0x102, 10800 },
1962 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
1963 0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1964 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
1965 0x101, 0, 10800, 10800, 0, 0x103, MIN_INT32, 0x7fffffff }
1967 const mso_CustomShape msoUpDownArrowCallout =
1969 std::span<const SvxMSDffVertPair>(mso_sptUpDownArrowCalloutVert),
1970 const_cast<sal_uInt16*>(mso_sptUpDownArrowCalloutSegm), sizeof( mso_sptUpDownArrowCalloutSegm ) >> 1,
1971 std::span<const SvxMSDffCalculationData>(mso_sptUpDownArrowCalloutCalc),
1972 const_cast<sal_Int32*>(mso_sptUpDownArrowCalloutDefault),
1973 std::span<const SvxMSDffTextRectangles>(mso_sptUpDownArrowCalloutTextRect),
1974 21600, 21600,
1975 MIN_INT32, MIN_INT32,
1976 std::span<const SvxMSDffVertPair>(),
1977 std::span<const SvxMSDffHandle>(mso_sptUpDownArrowCalloutHandle),
1980 const SvxMSDffVertPair mso_sptQuadArrowCalloutVert[] =
1982 { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
1983 { 10800, 0 }, { 5 MSO_I, 2 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 7 MSO_I, 0 MSO_I },
1984 { 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I }, { 6 MSO_I, 1 MSO_I },
1985 { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 7 MSO_I },
1986 { 4 MSO_I, 4 MSO_I }, { 7 MSO_I, 4 MSO_I }, { 7 MSO_I, 6 MSO_I }, { 5 MSO_I, 6 MSO_I },
1987 { 10800, 21600 }, { 1 MSO_I, 6 MSO_I }, { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 4 MSO_I },
1988 { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I },
1989 { 0, 10800 }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1991 const sal_uInt16 mso_sptQuadArrowCalloutSegm[] =
1993 0x4000, 0x001f, 0x6001, 0x8000
1995 const SvxMSDffCalculationData mso_sptQuadArrowCalloutCalc[] =
1997 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1998 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1999 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
2000 { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
2001 { 0x8000, { 21600, 0, 0x0400 } },
2002 { 0x8000, { 21600, 0, 0x0401 } },
2003 { 0x8000, { 21600, 0, 0x0402 } },
2004 { 0x8000, { 21600, 0, 0x0403 } }
2006 const sal_Int32 mso_sptQuadArrowCalloutDefault[] =
2008 4, 5400, 8100, 2700, 9400
2010 const SvxMSDffTextRectangles mso_sptQuadArrowCalloutTextRect[] =
2012 { { 0 MSO_I, 0 MSO_I }, { 4 MSO_I, 4 MSO_I } }
2014 const SvxMSDffHandle mso_sptQuadArrowCalloutHandle[] =
2016 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
2017 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0x102, 0x101 },
2018 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
2019 0x101, 0, 10800, 10800, 0x100, 10800, MIN_INT32, 0x7fffffff },
2020 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
2021 0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 }
2023 const mso_CustomShape msoQuadArrowCallout =
2025 std::span<const SvxMSDffVertPair>(mso_sptQuadArrowCalloutVert),
2026 const_cast<sal_uInt16*>(mso_sptQuadArrowCalloutSegm), sizeof( mso_sptQuadArrowCalloutSegm ) >> 1,
2027 std::span<const SvxMSDffCalculationData>(mso_sptQuadArrowCalloutCalc),
2028 const_cast<sal_Int32*>(mso_sptQuadArrowCalloutDefault),
2029 std::span<const SvxMSDffTextRectangles>(mso_sptQuadArrowCalloutTextRect),
2030 21600, 21600,
2031 MIN_INT32, MIN_INT32,
2032 std::span<const SvxMSDffVertPair>(),
2033 std::span<const SvxMSDffHandle>(mso_sptQuadArrowCalloutHandle),
2036 const SvxMSDffVertPair mso_sptCircularArrowVert[] =
2038 { 0x03 MSO_I, 0x03 MSO_I },
2039 { 0x14 MSO_I, 0x14 MSO_I },
2040 { 0x13 MSO_I, 0x12 MSO_I },
2041 { 0x11 MSO_I, 0x10 MSO_I },
2042 { 0, 0 }, { 21600, 21600 },
2043 { 0x09 MSO_I, 0x08 MSO_I },
2044 { 0x0B MSO_I, 0x0A MSO_I },
2045 { 0x18 MSO_I, 0x17 MSO_I },
2046 { 0x2F MSO_I, 0x2E MSO_I },
2047 { 0x1D MSO_I, 0x1C MSO_I }
2049 const sal_uInt16 mso_sptCircularArrowSegm[] =
2051 0xa404, 0xa504, 0x0003, 0x6001, 0x8000
2053 const SvxMSDffCalculationData mso_sptCircularArrowCalc[] =
2055 { 0x2000, { 0x0147, 0x0000, 0x0000 } },
2056 { 0x2000, { 0x0148, 0x0000, 0x0000 } },
2057 { 0x2000, { 0x0149, 0x0000, 0x0000 } },
2058 { 0x4000, { 0x2A30, 0x0149, 0x0000 } },
2059 { 0x4009, { 0x2A30, 0x0147, 0x0000 } },
2060 { 0x400A, { 0x2A30, 0x0147, 0x0000 } },
2061 { 0x4009, { 0x2A30, 0x0148, 0x0000 } },
2062 { 0x400A, { 0x2A30, 0x0148, 0x0000 } },
2063 { 0x2000, { 0x0404, 0x2A30, 0x0000 } },
2064 { 0x2000, { 0x0405, 0x2A30, 0x0000 } },
2065 { 0x2000, { 0x0406, 0x2A30, 0x0000 } },
2066 { 0x2000, { 0x0407, 0x2A30, 0x0000 } },
2067 { 0x6009, { 0x0403, 0x0147, 0x0000 } },
2068 { 0x600A, { 0x0403, 0x0147, 0x0000 } },
2069 { 0x6009, { 0x0403, 0x0148, 0x0000 } },
2070 { 0x600A, { 0x0403, 0x0148, 0x0000 } },
2071 { 0x2000, { 0x040C, 0x2A30, 0x0000 } },
2072 { 0x2000, { 0x040D, 0x2A30, 0x0000 } },
2073 { 0x2000, { 0x040E, 0x2A30, 0x0000 } },
2074 { 0x2000, { 0x040F, 0x2A30, 0x0000 } },
2075 { 0x8000, { 0x5460, 0x0000, 0x0403 } },
2076 { 0x4009, { 0x34BC, 0x0148, 0x0000 } },
2077 { 0x400A, { 0x34BC, 0x0148, 0x0000 } },
2078 { 0x2000, { 0x0415, 0x2A30, 0x0000 } },
2079 { 0x2000, { 0x0416, 0x2A30, 0x0000 } },
2080 { 0x2000, { 0x0149, 0x0000, 0x0A8C } },
2081 { 0x6009, { 0x0419, 0x0148, 0x0000 } },
2082 { 0x600A, { 0x0419, 0x0148, 0x0000 } },
2083 { 0x2000, { 0x041A, 0x2A30, 0x0000 } },
2084 { 0x2000, { 0x041B, 0x2A30, 0x0000 } },
2085 { 0xA000, { 0x041D, 0x0000, 0x0418 } },
2086 { 0xA000, { 0x041D, 0x0000, 0x0418 } },
2087 { 0x6001, { 0x041E, 0x041F, 0x0001 } },
2088 { 0xA000, { 0x041C, 0x0000, 0x0417 } },
2089 { 0xA000, { 0x041C, 0x0000, 0x0417 } },
2090 { 0x6001, { 0x0421, 0x0422, 0x0001 } },
2091 { 0x6000, { 0x0420, 0x0423, 0x0000 } },
2092 { 0x200D, { 0x0424, 0x0000, 0x0000 } },
2093 { 0x200E, { 0x0148, 0x002D, 0x0000 } },
2094 { 0x6009, { 0x0425, 0x0426, 0x0000 } },
2095 { 0x200E, { 0x0148, 0x002D, 0x0000 } },
2096 { 0x600A, { 0x0425, 0x0428, 0x0000 } },
2097 { 0x000E, { 0x0000, 0x002D, 0x0000 } },
2098 { 0x6009, { 0x0427, 0x042A, 0x0000 } },
2099 { 0x000E, { 0x0000, 0x002D, 0x0000 } },
2100 { 0x6009, { 0x0429, 0x042C, 0x0000 } },
2101 { 0x6000, { 0x041C, 0x042B, 0x0000 } },
2102 { 0x6000, { 0x041D, 0x042D, 0x0000 } }
2104 const sal_Int32 mso_sptCircularArrowDefault[] =
2106 3, 180, 0, 5500
2108 const SvxMSDffTextRectangles mso_sptCircularArrowTextRect[] = // todo
2110 { { 0, 0 }, { 21600, 21600 } }
2112 const SvxMSDffHandle mso_sptCircularArrowHandle[] =
2114 { SvxMSDffHandleFlags::POLAR | SvxMSDffHandleFlags::RADIUS_RANGE,
2115 10800, 0x100, 10800, 10800, 10800, 10800, -0x7f4c0000, 0x00b40000 },
2116 { SvxMSDffHandleFlags::POLAR | SvxMSDffHandleFlags::RADIUS_RANGE,
2117 0x102, 0x101, 10800, 10800, 0, 10800, -0x7f4c0000, 0x00b40000 }
2119 const mso_CustomShape msoCircularArrow =
2121 std::span<const SvxMSDffVertPair>(mso_sptCircularArrowVert),
2122 const_cast<sal_uInt16*>(mso_sptCircularArrowSegm), sizeof( mso_sptCircularArrowSegm ) >> 1,
2123 std::span<const SvxMSDffCalculationData>(mso_sptCircularArrowCalc),
2124 const_cast<sal_Int32*>(mso_sptCircularArrowDefault),
2125 std::span<const SvxMSDffTextRectangles>(mso_sptCircularArrowTextRect),
2126 21600, 21600,
2127 MIN_INT32, MIN_INT32,
2128 std::span<const SvxMSDffVertPair>(),
2129 std::span<const SvxMSDffHandle>(mso_sptCircularArrowHandle),
2132 const SvxMSDffVertPair mso_sptCubeVert[] =
2134 { 0, 12 MSO_I }, { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }, { 4 MSO_I, 12 MSO_I },
2135 { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 4 MSO_I, 1 MSO_I },
2136 { 4 MSO_I, 12 MSO_I }, { 4 MSO_I, 1 MSO_I }, { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }
2138 const sal_uInt16 mso_sptCubeSegm[] =
2140 0x4000, 0x0005, 0x6001, 0x8000,
2141 0x4000, 0x0003, 0x6001, 0x8000,
2142 0x4000, 0x0003, 0x6001, 0x8000
2144 const SvxMSDffCalculationData mso_sptCubeCalc[] =
2146 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2147 { 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
2148 { 0x6000, { DFF_Prop_geoLeft, 0x400, 0 } },
2149 { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
2150 { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2151 { 0xa000, { DFF_Prop_geoRight, 0, 0x402 } }, // 5
2152 { 0x2001, { 0x405, 1, 2 } }, // 6
2153 { 0x6000, { 0x402, 0x406, 0 } }, // 7
2154 { 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } }, // 8
2155 { 0x2001, { 0x408, 1, 2 } }, // 9
2156 { 0x6000, { 0x401, 0x409, 0 } }, // 10
2157 { 0x2000, { DFF_Prop_geoRight, 0, 0 } }, // 11
2158 { 0x2000, { DFF_Prop_geoBottom, 0, 0 } } // 12
2160 const SvxMSDffTextRectangles mso_sptCubeTextRect[] =
2162 { { 0, 1 MSO_I }, { 4 MSO_I, 12 MSO_I } }
2164 const SvxMSDffHandle mso_sptCubeHandle[] =
2166 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::SWITCHED,
2167 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 21600 }
2169 const SvxMSDffVertPair mso_sptCubeGluePoints[] =
2171 { 7 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I }, { 0, 10 MSO_I }, { 6 MSO_I, 21600 }, { 4 MSO_I, 10 MSO_I }, { 21600, 9 MSO_I }
2173 const mso_CustomShape msoCube =
2175 std::span<const SvxMSDffVertPair>(mso_sptCubeVert),
2176 const_cast<sal_uInt16*>(mso_sptCubeSegm), sizeof( mso_sptCubeSegm ) >> 1,
2177 std::span<const SvxMSDffCalculationData>(mso_sptCubeCalc),
2178 const_cast<sal_Int32*>(mso_sptDefault5400),
2179 std::span<const SvxMSDffTextRectangles>(mso_sptCubeTextRect),
2180 21600, 21600,
2181 10800, 10800,
2182 std::span<const SvxMSDffVertPair>(mso_sptCubeGluePoints),
2183 std::span<const SvxMSDffHandle>(mso_sptCubeHandle),
2186 const SvxMSDffVertPair mso_sptBevelVert[] =
2188 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2189 { 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2190 { 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2191 { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2192 { 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2194 const sal_uInt16 mso_sptBevelSegm[] =
2196 0x4000, 0x0003, 0x6001, 0x8000,
2197 0x4000, 0x0003, 0x6001, 0x8000,
2198 0x4000, 0x0003, 0x6001, 0x8000,
2199 0x4000, 0x0003, 0x6001, 0x8000,
2200 0x4000, 0x0003, 0x6001, 0x8000
2202 const SvxMSDffCalculationData mso_sptBevelCalc[] =
2204 { 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2205 { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2206 { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2209 const SvxMSDffTextRectangles mso_sptBevelTextRect[] =
2211 { { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2213 const SvxMSDffHandle mso_sptBevelHandle[] =
2215 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::SWITCHED,
2216 0x100, 0, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
2218 const mso_CustomShape msoBevel =
2220 std::span<const SvxMSDffVertPair>(mso_sptBevelVert),
2221 const_cast<sal_uInt16*>(mso_sptBevelSegm), sizeof( mso_sptBevelSegm ) >> 1,
2222 std::span<const SvxMSDffCalculationData>(mso_sptBevelCalc),
2223 const_cast<sal_Int32*>(mso_sptDefault2700),
2224 std::span<const SvxMSDffTextRectangles>(mso_sptBevelTextRect),
2225 21600, 21600,
2226 10800, 10800,
2227 std::span<const SvxMSDffVertPair>(),
2228 std::span<const SvxMSDffHandle>(mso_sptBevelHandle),
2231 const SvxMSDffVertPair mso_sptFoldedCornerVert[] = // adjustment1 : x 10800 - 21600
2233 { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I }, { 0 MSO_I, 21600 },
2234 { 0, 21600 }, { 0 MSO_I, 21600 }, { 3 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I },
2235 { 10 MSO_I, 11 MSO_I }, { 21600, 0 MSO_I }
2237 const sal_uInt16 mso_sptFoldedCornerSegm[] =
2239 0x4000, 0x0004, 0x6001, 0x8000,
2240 0x4000, 0x0001, 0x2001, 0x6001, 0x8000
2242 const SvxMSDffCalculationData mso_sptFoldedCornerCalc[] =
2244 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2245 { 0x8000, { 21600, 0, 0x400 } },
2246 { 0x2001, { 0x0401, 8000, 10800 } },
2247 { 0x8000, { 21600, 0, 0x0402 } },
2248 { 0x2001, { 0x0401, 1, 2 } },
2249 { 0x2001, { 0x0401, 1, 4 } },
2250 { 0x2001, { 0x0401, 1, 7 } },
2251 { 0x2001, { 0x0401, 1, 16 } },
2252 { 0x6000, { 0x0403, 0x405, 0 } },
2253 { 0x6000, { 0x0400, 0x406, 0 } },
2254 { 0x8000, { 21600, 0, 0x404 } },
2255 { 0x6000, { 0x400, 0x407, 0 } }
2257 const sal_Int32 mso_sptFoldedCornerDefault[] =
2259 1, 18900
2261 const SvxMSDffTextRectangles mso_sptFoldedCornerTextRect[] =
2263 { { 0, 0 }, { 21600, 11 MSO_I } }
2265 const SvxMSDffHandle mso_sptFoldedCornerHandle[] =
2267 { SvxMSDffHandleFlags::RANGE,
2268 0x100, 1, 10800, 10800, 10800, 21600, MIN_INT32, 0x7fffffff }
2270 const mso_CustomShape msoFoldedCorner =
2272 std::span<const SvxMSDffVertPair>(mso_sptFoldedCornerVert),
2273 const_cast<sal_uInt16*>(mso_sptFoldedCornerSegm), sizeof( mso_sptFoldedCornerSegm ) >> 1,
2274 std::span<const SvxMSDffCalculationData>(mso_sptFoldedCornerCalc),
2275 const_cast<sal_Int32*>(mso_sptFoldedCornerDefault),
2276 std::span<const SvxMSDffTextRectangles>(mso_sptFoldedCornerTextRect),
2277 21600, 21600,
2278 MIN_INT32, MIN_INT32,
2279 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
2280 std::span<const SvxMSDffHandle>(mso_sptFoldedCornerHandle),
2283 const SvxMSDffVertPair mso_sptActionButtonBlankVert[] =
2285 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2286 { 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2287 { 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2288 { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2289 { 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2291 const sal_uInt16 mso_sptActionButtonBlankSegm[] =
2293 0x4000, 0x0003, 0x6001, 0x8000,
2294 0x4000, 0x0003, 0x6001, 0x8000,
2295 0x4000, 0x0003, 0x6001, 0x8000,
2296 0x4000, 0x0003, 0x6001, 0x8000,
2297 0x4000, 0x0003, 0x6001, 0x8000
2299 const SvxMSDffCalculationData mso_sptActionButtonBlankCalc[] =
2301 { 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2302 { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2303 { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2305 const SvxMSDffTextRectangles mso_sptActionButtonBlankTextRect[] =
2307 { { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2309 const SvxMSDffHandle mso_sptButtonHandle[] =
2311 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::SWITCHED,
2312 0x100, 0, 10800, 10800, 0, 5400, MIN_INT32, 0x7fffffff }
2314 const mso_CustomShape msoActionButtonBlank =
2316 std::span<const SvxMSDffVertPair>(mso_sptActionButtonBlankVert),
2317 const_cast<sal_uInt16*>(mso_sptActionButtonBlankSegm), sizeof( mso_sptActionButtonBlankSegm ) >> 1,
2318 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonBlankCalc),
2319 const_cast<sal_Int32*>(mso_sptDefault1400),
2320 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonBlankTextRect),
2321 21600, 21600,
2322 10800, 10800,
2323 std::span<const SvxMSDffVertPair>(),
2324 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2327 const SvxMSDffTextRectangles mso_sptActionButtonTextRect[] =
2329 { { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
2331 const SvxMSDffVertPair mso_sptActionButtonHomeVert[] =
2333 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2334 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2335 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2336 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2337 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2339 { 7 MSO_I, 0xa MSO_I }, { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },
2340 { 0x12 MSO_I, 0x14 MSO_I }, { 0x16 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2341 { 0x1c MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1e MSO_I, 8 MSO_I },
2343 { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },{ 0x12 MSO_I, 0x14 MSO_I },
2345 { 0x20 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x1a MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2346 { 0x18 MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x20 MSO_I, 0x1a MSO_I }
2349 const sal_uInt16 mso_sptActionButtonHomeSegm[] =
2351 0x4000, 0x0003, 0x6001, 0x8000,
2352 0x4000, 0x0003, 0x6001, 0x8000,
2353 0x4000, 0x0003, 0x6001, 0x8000,
2354 0x4000, 0x0003, 0x6001, 0x8000,
2355 0x4000, 0x0003, 0x6001, 0x8000,
2356 0x4000, 0x000a, 0x6001, 0x8000,
2357 0x4000, 0x0003, 0x6001, 0x8000,
2358 0x4000, 0x0007, 0x6001, 0x8000
2360 const SvxMSDffCalculationData mso_sptActionButtonHomeCalc[] = // adj value 0 - 5400
2362 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2363 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2364 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2365 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2366 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2367 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2368 { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6
2369 { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7
2370 { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8
2372 { 0x4001, { -8000, 0x0406, 1 } }, // 9
2373 { 0x6000, { 0x0409, 0x0408, 0 } }, // a
2374 { 0x4001, { 2960, 0x0406, 1 } }, // b
2375 { 0x6000, { 0x040b, 0x0407, 0 } }, // c
2376 { 0x4001, { -5000, 0x0406, 1 } }, // d
2377 { 0x6000, { 0x040d, 0x0408, 0 } }, // e
2378 { 0x4001, { -7000, 0x0406, 1 } }, // f
2379 { 0x6000, { 0x040f, 0x0408, 0 } }, // 10
2380 { 0x4001, { 5000, 0x0406, 1 } }, // 11
2381 { 0x6000, { 0x0411, 0x0407, 0 } }, // 12
2382 { 0x4001, { -2960, 0x0406, 1 } }, // 13
2383 { 0x6000, { 0x0413, 0x0408, 0 } }, // 14
2384 { 0x4001, { 8000, 0x0406, 1 } }, // 15
2385 { 0x6000, { 0x0415,0x0407, 0 } }, // 16
2386 { 0x4001, { 6100, 0x0406, 1 } }, // 17
2387 { 0x6000, { 0x0417,0x0407, 0 } }, // 18
2388 { 0x4001, { 8260, 0x0406, 1 } }, // 19
2389 { 0x6000, { 0x0419, 0x0408, 0 } }, // 1a
2390 { 0x4001, { -6100, 0x0406, 1 } }, // 1b
2391 { 0x6000, { 0x041b, 0x0407, 0 } }, // 1c
2392 { 0x4001, { -8000, 0x0406, 1 } }, // 1d
2393 { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e
2394 { 0x4001, { -1060, 0x0406, 1 } }, // 1f
2395 { 0x6000, { 0x041f, 0x0407, 0 } }, // 20
2396 { 0x4001, { 1060, 0x0406, 1 } }, // 21
2397 { 0x6000, { 0x0421, 0x0407, 0 } }, // 22
2398 { 0x4001, { 4020, 0x0406, 1 } }, // 23
2399 { 0x6000, { 0x0423, 0x0408, 0 } } // 24
2402 const mso_CustomShape msoActionButtonHome =
2404 std::span<const SvxMSDffVertPair>(mso_sptActionButtonHomeVert),
2405 const_cast<sal_uInt16*>(mso_sptActionButtonHomeSegm), sizeof( mso_sptActionButtonHomeSegm ) >> 1,
2406 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonHomeCalc),
2407 const_cast<sal_Int32*>(mso_sptDefault1400),
2408 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
2409 21600, 21600,
2410 10800, 10800,
2411 std::span<const SvxMSDffVertPair>(),
2412 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2415 const SvxMSDffVertPair mso_sptActionButtonHelpVert[] =
2417 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2418 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2419 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2420 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2421 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I,4 MSO_I },
2422 { 7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0xc MSO_I },
2423 { 0x12 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x16 MSO_I }, // pp
2424 { 0x12 MSO_I, 0x18 MSO_I }, { 0x1a MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I }, // ccp
2425 { 0x1e MSO_I, 8 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x20 MSO_I, 0x24 MSO_I }, // ccp
2426 { 0x20 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I }, // ccp
2427 { 0x2c MSO_I, 0x2a MSO_I }, { 0x2e MSO_I, 0x26 MSO_I }, { 0x2e MSO_I, 0x24 MSO_I }, // ccp
2428 { 0x30 MSO_I, 0x24 MSO_I }, { 0x30 MSO_I, 0x32 MSO_I }, { 0x34 MSO_I, 0x36 MSO_I }, // ccp
2429 { 7 MSO_I, 0x36 MSO_I }, // p
2430 { 0x12 MSO_I, 0x36 MSO_I }, { 0x1c MSO_I, 0x32 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I }, // ccp
2431 { 0x1c MSO_I, 0x38 MSO_I }, { 0x3a MSO_I, 0x3c MSO_I }, { 0x12 MSO_I, 0x3c MSO_I }, // ccp
2432 { 7 MSO_I, 0x3c MSO_I }, { 0x34 MSO_I, 8 MSO_I }, { 0x34 MSO_I, 0x16 MSO_I }, // ccp
2433 { 0x34 MSO_I, 0x14 MSO_I }
2435 const sal_uInt16 mso_sptActionButtonHelpSegm[] =
2437 0x4000, 0x0003, 0x6001, 0x8000,
2438 0x4000, 0x0003, 0x6001, 0x8000,
2439 0x4000, 0x0003, 0x6001, 0x8000,
2440 0x4000, 0x0003, 0x6001, 0x8000,
2441 0x4000, 0x0003, 0x6001, 0x8000,
2442 0x4000, 0xa704, 0x6000, 0x8000,
2443 0x4000, 0x0001, 0x2004, 0x0001, 0x2004, 0x0001, 0x6001, 0x8000
2445 const SvxMSDffCalculationData mso_sptActionButtonHelpCalc[] = // adj value 0 - 5400
2447 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2448 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2449 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2450 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2451 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2452 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2453 { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6
2454 { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7
2455 { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8
2457 { 0x4001, { -1690, 0x0406, 1 } }, // 9
2458 { 0x6000, { 0x0409, 0x0407, 0 } }, // a
2459 { 0x4001, { 4600, 0x0406, 1 } }, // b
2460 { 0x6000, { 0x040b, 0x0408, 0 } }, // c
2461 { 0x4001, { 1690, 0x0406, 1 } }, // d
2462 { 0x6000, { 0x040d, 0x0407, 0 } }, // e
2463 { 0x4001, { 7980, 0x0406, 1 } }, // f
2464 { 0x6000, { 0x040f, 0x0408, 0 } }, // 10
2465 { 0x4001, { 1270, 0x0406, 1 } }, // 11
2466 { 0x6000, { 0x0411, 0x0407, 0 } }, // 12
2467 { 0x4001, { 4000, 0x0406, 1 } }, // 13
2468 { 0x6000, { 0x0413, 0x0408, 0 } }, // 14
2469 { 0x4001, { 1750, 0x0406, 1 } }, // 15
2470 { 0x6000, { 0x0415, 0x0408, 0 } }, // 16
2471 { 0x4001, { 800, 0x0406, 1 } }, // 17
2472 { 0x6000, { 0x0417, 0x0408, 0 } }, // 18
2473 { 0x4001, { 1650, 0x0406, 1 } }, // 19
2474 { 0x6000, { 0x0419, 0x0407, 0 } }, // 1a
2475 { 0x4001, { 2340, 0x0406, 1 } }, // 1b
2476 { 0x6000, { 0x041b, 0x0407, 0 } }, // 1c
2477 { 0x4001, { 3640, 0x0406, 1 } }, // 1d
2478 { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e
2479 { 0x4001, { 4670, 0x0406, 1 } }, // 1f
2480 { 0x6000, { 0x041f, 0x0407, 0 } }, // 20
2481 { 0x4001, { -1570, 0x0406, 1 } }, // 21
2482 { 0x6000, { 0x0421, 0x0408, 0 } }, // 22
2483 { 0x4001, { -3390, 0x0406, 1 } }, // 23
2484 { 0x6000, { 0x0423, 0x0408, 0 } }, // 24
2485 { 0x4001, { -6050, 0x0406, 1 } }, // 25
2486 { 0x6000, { 0x0425, 0x0408, 0 } }, // 26
2487 { 0x4001, { 2540, 0x0406, 1 } }, // 27
2488 { 0x6000, { 0x0427, 0x0407, 0 } }, // 28
2489 { 0x4001, { -8050, 0x0406, 1 } }, // 29
2490 { 0x6000, { 0x0429, 0x0408, 0 } }, // 2a
2491 { 0x4001, { -2540, 0x0406, 1 } }, // 2b
2492 { 0x6000, { 0x042b, 0x0407, 0 } }, // 2c
2493 { 0x4001, { -4460, 0x0406, 1 } }, // 2d
2494 { 0x6000, { 0x042d, 0x0407, 0 } }, // 2e
2495 { 0x4001, { -2330, 0x0406, 1 } }, // 2f
2496 { 0x6000, { 0x042f, 0x0407, 0 } }, // 30
2497 { 0x4001, { -4700, 0x0406, 1 } }, // 31
2498 { 0x6000, { 0x0431, 0x0408, 0 } }, // 32
2499 { 0x4001, { -1270, 0x0406, 1 } }, // 33
2500 { 0x6000, { 0x0433, 0x0407, 0 } }, // 34
2501 { 0x4001, { -5720, 0x0406, 1 } }, // 35
2502 { 0x6000, { 0x0435, 0x0408, 0 } }, // 36
2503 { 0x4001, { -2540, 0x0406, 1 } }, // 37
2504 { 0x6000, { 0x0437, 0x0408, 0 } }, // 38
2505 { 0x4001, { 1800, 0x0406, 1 } }, // 39
2506 { 0x6000, { 0x0439, 0x0407, 0 } }, // 3a
2507 { 0x4001, { -1700, 0x0406, 1 } }, // 3b
2508 { 0x6000, { 0x043b, 0x0408, 0 } }, // 3c
2509 { 0x4001, { 6290, 0x0406, 1 } }, // 3d
2510 { 0x6000, { 0x043d, 0x0408, 0 } } // 3e
2512 const mso_CustomShape msoActionButtonHelp =
2514 std::span<const SvxMSDffVertPair>(mso_sptActionButtonHelpVert),
2515 const_cast<sal_uInt16*>(mso_sptActionButtonHelpSegm), sizeof( mso_sptActionButtonHelpSegm ) >> 1,
2516 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonHelpCalc),
2517 const_cast<sal_Int32*>(mso_sptDefault1400),
2518 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
2519 21600, 21600,
2520 10800, 10800,
2521 std::span<const SvxMSDffVertPair>(),
2522 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2525 const SvxMSDffVertPair mso_sptActionButtonInformationVert[] =
2527 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2528 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2529 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2530 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2531 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2532 { 0x7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x8 MSO_I }, { 0x7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0x7 MSO_I, 0xc MSO_I },
2533 { 0x7 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x14 MSO_I },
2534 { 0x1a MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0x20 MSO_I },
2535 { 0x22 MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x20 MSO_I }, { 0x26 MSO_I, 0x20 MSO_I },
2536 { 0x26 MSO_I, 0x28 MSO_I }, { 0x1a MSO_I, 0x28 MSO_I }
2538 const sal_uInt16 mso_sptActionButtonInformationSegm[] =
2540 0x4000, 0x0003, 0x6001, 0x8000,
2541 0x4000, 0x0003, 0x6001, 0x8000,
2542 0x4000, 0x0003, 0x6001, 0x8000,
2543 0x4000, 0x0003, 0x6001, 0x8000,
2544 0x4000, 0x0003, 0x6001, 0x8000,
2545 0x4000, 0xa704, 0x6000, 0x8000,
2546 0x4000, 0xa704, 0x6000, 0x8000,
2547 0x4000, 0x0009, 0x6001, 0x8000
2549 const SvxMSDffCalculationData mso_sptActionButtonInformationCalc[] = // adj value 0 - 5400
2551 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2552 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2553 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2554 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2555 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2556 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2557 { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6
2558 { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7
2559 { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8
2561 { 0x4001, { -8050, 0x0406, 1 } }, // 9
2562 { 0x6000, { 0x0409, 0x0407, 0 } }, // a
2563 { 0x4001, { -8050, 0x0406, 1 } }, // b
2564 { 0x6000, { 0x040b, 0x0408, 0 } }, // c
2565 { 0x4001, { 8050, 0x0406, 1 } }, // d
2566 { 0x6000, { 0x040d, 0x0407, 0 } }, // e
2567 { 0x4001, { 8050, 0x0406, 1 } }, // f
2568 { 0x6000, { 0x040f, 0x0408, 0 } }, // 10
2570 { 0x4001, { -2060, 0x0406, 1 } }, // 11
2571 { 0x6000, { 0x0411, 0x0407, 0 } }, // 12
2572 { 0x4001, { -7620, 0x0406, 1 } }, // 13
2573 { 0x6000, { 0x0413, 0x0408, 0 } }, // 14
2574 { 0x4001, { 2060, 0x0406, 1 } }, // 15
2575 { 0x6000, { 0x0415, 0x0407, 0 } }, // 16
2576 { 0x4001, { -3500, 0x0406, 1 } }, // 17
2577 { 0x6000, { 0x0417, 0x0408, 0 } }, // 18
2579 { 0x4001, { -2960, 0x0406, 1 } }, // 19
2580 { 0x6000, { 0x0419, 0x0407, 0 } }, // 1a
2581 { 0x4001, { -2960, 0x0406, 1 } }, // 1b
2582 { 0x6000, { 0x041b, 0x0408, 0 } }, // 1c
2583 { 0x4001, { 1480, 0x0406, 1 } }, // 1d
2584 { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e
2585 { 0x4001, { 5080, 0x0406, 1 } }, // 1f
2586 { 0x6000, { 0x041f, 0x0408, 0 } }, // 20
2587 { 0x4001, { 2960, 0x0406, 1 } }, // 21
2588 { 0x6000, { 0x0421, 0x0407, 0 } }, // 22
2589 { 0x4001, { 6140, 0x0406, 1 } }, // 23
2590 { 0x6000, { 0x0423, 0x0408, 0 } }, // 24
2591 { 0x4001, { -1480, 0x0406, 1 } }, // 25
2592 { 0x6000, { 0x0425, 0x0407, 0 } }, // 26
2593 { 0x4001, { -1920, 0x0406, 1 } }, // 27
2594 { 0x6000, { 0x0427, 0x0408, 0 } }, // 28
2596 { 0x4001, { -5560, 0x0406, 1 } }, // 29
2597 { 0x6000, { 0x0429, 0x0408, 0 } }, // 2a
2600 const mso_CustomShape msoActionButtonInformation =
2602 std::span<const SvxMSDffVertPair>(mso_sptActionButtonInformationVert),
2603 const_cast<sal_uInt16*>(mso_sptActionButtonInformationSegm), sizeof( mso_sptActionButtonInformationSegm ) >> 1,
2604 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonInformationCalc),
2605 const_cast<sal_Int32*>(mso_sptDefault1400),
2606 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
2607 21600, 21600,
2608 10800, 10800,
2609 std::span<const SvxMSDffVertPair>(),
2610 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2613 const SvxMSDffVertPair mso_sptActionButtonBackPreviousVert[] =
2615 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2616 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2617 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2618 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I,4 MSO_I },
2619 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2621 { 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }
2623 const sal_uInt16 mso_sptActionButtonForwardBackSegm[] =
2625 0x4000, 0x0003, 0x6001, 0x8000,
2626 0x4000, 0x0003, 0x6001, 0x8000,
2627 0x4000, 0x0003, 0x6001, 0x8000,
2628 0x4000, 0x0003, 0x6001, 0x8000,
2629 0x4000, 0x0003, 0x6001, 0x8000,
2630 0x4000, 0x0002, 0x6001, 0x8000
2632 const SvxMSDffCalculationData mso_sptActionButtonForwardBackCalc[] = // adj value 0 - 5400
2634 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2635 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2636 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2637 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2638 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2639 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2640 { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6
2641 { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7
2642 { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8
2644 { 0x4001, { -8050, 0x0406, 1 } }, // 9
2645 { 0x6000, { 0x0409, 0x0407, 0 } }, // a
2646 { 0x4001, { -8050, 0x0406, 1 } }, // b
2647 { 0x6000, { 0x040b, 0x0408, 0 } }, // c
2648 { 0x4001, { 8050, 0x0406, 1 } }, // d
2649 { 0x6000, { 0x040d, 0x0407, 0 } }, // e
2650 { 0x4001, { 8050, 0x0406, 1 } }, // f
2651 { 0x6000, { 0x040f, 0x0408, 0 } } // 10
2653 const mso_CustomShape msoActionButtonBackPrevious =
2655 std::span<const SvxMSDffVertPair>(mso_sptActionButtonBackPreviousVert),
2656 const_cast<sal_uInt16*>(mso_sptActionButtonForwardBackSegm), sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2657 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonForwardBackCalc),
2658 const_cast<sal_Int32*>(mso_sptDefault1400),
2659 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
2660 21600, 21600,
2661 10800, 10800,
2662 std::span<const SvxMSDffVertPair>(),
2663 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2666 const SvxMSDffVertPair mso_sptActionButtonForwardNextVert[] =
2668 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2669 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2670 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2671 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2672 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2674 { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0xa MSO_I, 0x10 MSO_I }
2676 const mso_CustomShape msoActionButtonForwardNext =
2678 std::span<const SvxMSDffVertPair>(mso_sptActionButtonForwardNextVert),
2679 const_cast<sal_uInt16*>(mso_sptActionButtonForwardBackSegm), sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2680 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonForwardBackCalc),
2681 const_cast<sal_Int32*>(mso_sptDefault1400),
2682 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
2683 21600, 21600,
2684 10800, 10800,
2685 std::span<const SvxMSDffVertPair>(),
2686 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2689 const SvxMSDffVertPair mso_sptActionButtonBeginningVert[] =
2691 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2692 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2693 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2694 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2695 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2697 { 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2698 { 0x14 MSO_I, 0xc MSO_I }, { 0x14 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }
2700 const sal_uInt16 mso_sptActionButtonBeginningEndSegm[] =
2702 0x4000, 0x0003, 0x6001, 0x8000,
2703 0x4000, 0x0003, 0x6001, 0x8000,
2704 0x4000, 0x0003, 0x6001, 0x8000,
2705 0x4000, 0x0003, 0x6001, 0x8000,
2706 0x4000, 0x0003, 0x6001, 0x8000,
2708 0x4000, 0x0002, 0x6001, 0x8000,
2709 0x4000, 0x0003, 0x6001, 0x8000
2711 const SvxMSDffCalculationData mso_sptActionButtonBeginningEndCalc[] = // adj value 0 - 5400
2713 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2714 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2715 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2716 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2717 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2718 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2719 { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6
2720 { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7
2721 { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8
2723 { 0x4001, { -4020, 0x0406, 1 } }, // 9
2724 { 0x6000, { 0x0409, 0x0407, 0 } }, // a
2725 { 0x4001, { -8050, 0x0406, 1 } }, // b
2726 { 0x6000, { 0x040b, 0x0408, 0 } }, // c
2727 { 0x4001, { 8050, 0x0406, 1 } }, // d
2728 { 0x6000, { 0x040d, 0x0407, 0 } }, // e
2729 { 0x4001, { 8050, 0x0406, 1 } }, // f
2730 { 0x6000, { 0x040f, 0x0408, 0 } }, // 10
2732 { 0x4001, { -8050, 0x0406, 1 } }, // 11
2733 { 0x6000, { 0x0411, 0x0407, 0 } }, // 12
2734 { 0x4001, { -6140, 0x0406, 1 } }, // 13
2735 { 0x6000, { 0x0413, 0x0407, 0 } }, // 14
2738 { 0x4001, { 4020, 0x0406, 1 } }, // 15
2739 { 0x6000, { 0x0415, 0x0407, 0 } }, // 16
2740 { 0x4001, { 6140, 0x0406, 1 } }, // 17
2741 { 0x6000, { 0x0417, 0x0407, 0 } } // 18
2743 const mso_CustomShape msoActionButtonBeginning =
2745 std::span<const SvxMSDffVertPair>(mso_sptActionButtonBeginningVert),
2746 const_cast<sal_uInt16*>(mso_sptActionButtonBeginningEndSegm), sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2747 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonBeginningEndCalc),
2748 const_cast<sal_Int32*>(mso_sptDefault1400),
2749 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
2750 21600, 21600,
2751 10800, 10800,
2752 std::span<const SvxMSDffVertPair>(),
2753 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2756 const SvxMSDffVertPair mso_sptActionButtonEndVert[] =
2758 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2759 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2760 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2761 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2762 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2764 { 0x16 MSO_I, 8 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2766 { 0x18 MSO_I, 0xc MSO_I }, { 0x18 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0xc MSO_I }
2768 const mso_CustomShape msoActionButtonEnd =
2770 std::span<const SvxMSDffVertPair>(mso_sptActionButtonEndVert),
2771 const_cast<sal_uInt16*>(mso_sptActionButtonBeginningEndSegm), sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2772 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonBeginningEndCalc),
2773 const_cast<sal_Int32*>(mso_sptDefault1400),
2774 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
2775 21600, 21600,
2776 10800, 10800,
2777 std::span<const SvxMSDffVertPair>(),
2778 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2781 const SvxMSDffVertPair mso_sptActionButtonReturnVert[] =
2783 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2784 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2785 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2786 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2787 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2789 { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, // ppp
2790 { 0xe MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 0x16 MSO_I }, // ccp
2791 { 7 MSO_I, 0x16 MSO_I }, // p
2792 { 0x1a MSO_I, 0x16 MSO_I }, { 0x1c MSO_I, 0x12 MSO_I }, { 0x1c MSO_I, 0x10 MSO_I }, // ccp
2793 { 0x1c MSO_I, 0xc MSO_I }, { 7 MSO_I, 0xc MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0xc MSO_I },// pppp
2794 { 0x24 MSO_I, 0xc MSO_I }, { 0x24 MSO_I, 0x10 MSO_I }, // pp
2795 { 0x24 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I }, // ccp
2796 { 0x18 MSO_I, 0x2a MSO_I }, // p
2797 { 0x2c MSO_I, 0x2a MSO_I }, { 0xa MSO_I, 0x26 MSO_I }, { 0xa MSO_I, 0x10 MSO_I } // ccp
2799 const sal_uInt16 mso_sptActionButtonReturnSegm[] =
2801 0x4000, 0x0003, 0x6001, 0x8000,
2802 0x4000, 0x0003, 0x6001, 0x8000,
2803 0x4000, 0x0003, 0x6001, 0x8000,
2804 0x4000, 0x0003, 0x6001, 0x8000,
2805 0x4000, 0x0003, 0x6001, 0x8000,
2806 0x4000, 0x0002, 0x2001, 0x0001, 0x2001, 0x0006,0x2001, 0x0001, 0x2001, 0x6001, 0x8000
2808 const SvxMSDffCalculationData mso_sptActionButtonReturnCalc[] = // adj value 0 - 5400
2810 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2811 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2812 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2813 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2814 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2815 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2816 { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6
2817 { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7
2818 { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8
2820 { 0x4001, { -8050, 0x0406, 1 } }, // 9
2821 { 0x6000, { 0x0409, 0x0407, 0 } }, // a
2822 { 0x4001, { -3800, 0x0406, 1 } }, // b
2823 { 0x6000, { 0x040b, 0x0408, 0 } }, // c
2824 { 0x4001, { -4020, 0x0406, 1 } }, // d
2825 { 0x6000, { 0x040d, 0x0407, 0 } }, // e
2826 { 0x4001, { 2330, 0x0406, 1 } }, // f
2827 { 0x6000, { 0x040f, 0x0408, 0 } }, // 10
2828 { 0x4001, { 3390, 0x0406, 1 } }, // 11
2829 { 0x6000, { 0x0411, 0x0408, 0 } }, // 12
2830 { 0x4001, { -3100, 0x0406, 1 } }, // 13
2831 { 0x6000, { 0x0413, 0x0407, 0 } }, // 14
2832 { 0x4001, { 4230, 0x0406, 1 } }, // 15
2833 { 0x6000, { 0x0415, 0x0408, 0 } }, // 16
2834 { 0x4001, { -1910, 0x0406, 1 } }, // 17
2835 { 0x6000, { 0x0417, 0x0407, 0 } }, // 18
2836 { 0x4001, { 1190, 0x0406, 1 } }, // 19
2837 { 0x6000, { 0x0419, 0x0407, 0 } }, // 1a
2838 { 0x4001, { 2110, 0x0406, 1 } }, // 1b
2839 { 0x6000, { 0x041b, 0x0407, 0 } }, // 1c
2840 { 0x4001, { 4030, 0x0406, 1 } }, // 1d
2841 { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e
2842 { 0x4001, { -7830, 0x0406, 1 } }, // 1f
2843 { 0x6000, { 0x041f, 0x0408, 0 } }, // 20
2844 { 0x4001, { 8250, 0x0406, 1 } }, // 21
2845 { 0x6000, { 0x0421, 0x0407, 0 } }, // 22
2846 { 0x4001, { 6140, 0x0406, 1 } }, // 23
2847 { 0x6000, { 0x0423, 0x0407, 0 } }, // 24
2848 { 0x4001, { 5510, 0x0406, 1 } }, // 25
2849 { 0x6000, { 0x0425, 0x0408, 0 } }, // 26
2850 { 0x4001, { 3180, 0x0406, 1 } }, // 27
2851 { 0x6000, { 0x0427, 0x0407, 0 } }, // 28
2852 { 0x4001, { 8450, 0x0406, 1 } }, // 29
2853 { 0x6000, { 0x0429, 0x0408, 0 } }, // 2a
2854 { 0x4001, { -5090, 0x0406, 1 } }, // 2b
2855 { 0x6000, { 0x042b, 0x0407, 0 } } // 2c
2857 const mso_CustomShape msoActionButtonReturn =
2859 std::span<const SvxMSDffVertPair>(mso_sptActionButtonReturnVert),
2860 const_cast<sal_uInt16*>(mso_sptActionButtonReturnSegm), sizeof( mso_sptActionButtonReturnSegm ) >> 1,
2861 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonReturnCalc),
2862 const_cast<sal_Int32*>(mso_sptDefault1400),
2863 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
2864 21600, 21600,
2865 10800, 10800,
2866 std::span<const SvxMSDffVertPair>(),
2867 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2870 const SvxMSDffVertPair mso_sptActionButtonDocumentVert[] =
2872 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2873 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2874 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2875 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2876 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2878 { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2879 { 0xa MSO_I, 0x14 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0xe MSO_I, 0x12 MSO_I }
2881 const sal_uInt16 mso_sptActionButtonDocumentSegm[] =
2883 0x4000, 0x0003, 0x6001, 0x8000,
2884 0x4000, 0x0003, 0x6001, 0x8000,
2885 0x4000, 0x0003, 0x6001, 0x8000,
2886 0x4000, 0x0003, 0x6001, 0x8000,
2887 0x4000, 0x0003, 0x6001, 0x8000,
2889 0x4000, 0x0004, 0x6001, 0x8000,
2890 0x4000, 0x0002, 0x6001, 0x8000
2892 const SvxMSDffCalculationData mso_sptActionButtonDocumentCalc[] = // adj value 0 - 5400
2894 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2895 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2896 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2897 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2898 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2899 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2900 { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6
2901 { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7
2902 { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8
2904 { 0x4001, { -6350, 0x0406, 1 } }, // 9
2905 { 0x6000, { 0x0409, 0x0407, 0 } }, // a
2906 { 0x4001, { -7830, 0x0406, 1 } }, // b
2907 { 0x6000, { 0x040b, 0x0408, 0 } }, // c
2908 { 0x4001, { 1690, 0x0406, 1 } }, // d
2909 { 0x6000, { 0x040d, 0x0407, 0 } }, // e
2910 { 0x4001, { 6350, 0x0406, 1 } }, // f
2911 { 0x6000, { 0x040f, 0x0407, 0 } }, // 10
2912 { 0x4001, { -3810, 0x0406, 1 } }, // 11
2913 { 0x6000, { 0x0411, 0x0408, 0 } }, // 12
2914 { 0x4001, { 7830, 0x0406, 1 } }, // 13
2915 { 0x6000, { 0x0413, 0x0408, 0 } } // 14
2917 const mso_CustomShape msoActionButtonDocument =
2919 std::span<const SvxMSDffVertPair>(mso_sptActionButtonDocumentVert),
2920 const_cast<sal_uInt16*>(mso_sptActionButtonDocumentSegm), sizeof( mso_sptActionButtonDocumentSegm ) >> 1,
2921 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonDocumentCalc),
2922 const_cast<sal_Int32*>(mso_sptDefault1400),
2923 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
2924 21600, 21600,
2925 10800, 10800,
2926 std::span<const SvxMSDffVertPair>(),
2927 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
2930 const SvxMSDffVertPair mso_sptActionButtonSoundVert[] =
2932 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2933 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2934 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2935 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2936 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2938 { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2939 { 0xe MSO_I, 0x16 MSO_I }, { 0xa MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x1a MSO_I, 8 MSO_I },
2941 { 0x18 MSO_I, 0xc MSO_I }, { 0x1a MSO_I, 0x1c MSO_I },
2943 { 0x18 MSO_I, 0x16 MSO_I }, { 0x1a MSO_I, 0x1e MSO_I }
2945 const sal_uInt16 mso_sptActionButtonSoundSegm[] =
2947 0x4000, 0x0003, 0x6001, 0x8000,
2948 0x4000, 0x0003, 0x6001, 0x8000,
2949 0x4000, 0x0003, 0x6001, 0x8000,
2950 0x4000, 0x0003, 0x6001, 0x8000,
2951 0x4000, 0x0003, 0x6001, 0x8000,
2953 0x4000, 0x0005, 0x6001, 0x8000,
2954 0x4000, 0x0001, 0x8000,
2955 0x4000, 0x0001, 0x8000,
2956 0x4000, 0x0001, 0x8000
2958 const SvxMSDffCalculationData mso_sptActionButtonSoundCalc[] = // adj value 0 - 5400
2960 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2961 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2962 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2963 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2964 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2965 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2966 { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6
2967 { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7
2968 { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8
2970 { 0x4001, { -8050, 0x0406, 1 } }, // 9
2971 { 0x6000, { 0x0409, 0x0407, 0 } }, // a
2972 { 0x4001, { -2750, 0x0406, 1 } }, // b
2973 { 0x6000, { 0x040b, 0x0408, 0 } }, // c
2974 { 0x4001, { -2960, 0x0406, 1 } }, // d
2975 { 0x6000, { 0x040d, 0x0407, 0 } }, // e
2976 { 0x4001, { 2120, 0x0406, 1 } }, // f
2977 { 0x6000, { 0x040f, 0x0407, 0 } }, // 10
2978 { 0x4001, { -8050, 0x0406, 1 } }, // 11
2979 { 0x6000, { 0x0411, 0x0408, 0 } }, // 12
2980 { 0x4001, { 8050, 0x0406, 1 } }, // 13
2981 { 0x6000, { 0x0413, 0x0408, 0 } }, // 14
2982 { 0x4001, { 2750, 0x0406, 1 } }, // 15
2983 { 0x6000, { 0x0415, 0x0408, 0 } }, // 16
2984 { 0x4001, { 4020, 0x0406, 1 } }, // 17
2985 { 0x6000, { 0x0417, 0x0407, 0 } }, // 18
2986 { 0x4001, { 8050, 0x0406, 1 } }, // 19
2987 { 0x6000, { 0x0419, 0x0407, 0 } }, // 1a
2988 { 0x4001, { -5930, 0x0406, 1 } }, // 1b
2989 { 0x6000, { 0x041b, 0x0408, 0 } }, // 1c
2990 { 0x4001, { 5930, 0x0406, 1 } }, // 1d
2991 { 0x6000, { 0x041d, 0x0408, 0 } } // 1e
2993 const mso_CustomShape msoActionButtonSound =
2995 std::span<const SvxMSDffVertPair>(mso_sptActionButtonSoundVert),
2996 const_cast<sal_uInt16*>(mso_sptActionButtonSoundSegm), sizeof( mso_sptActionButtonSoundSegm ) >> 1,
2997 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonSoundCalc),
2998 const_cast<sal_Int32*>(mso_sptDefault1400),
2999 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
3000 21600, 21600,
3001 10800, 10800,
3002 std::span<const SvxMSDffVertPair>(),
3003 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
3006 const SvxMSDffVertPair mso_sptActionButtonMovieVert[] =
3008 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
3009 { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
3010 { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
3011 { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
3012 { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
3014 { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x12 MSO_I },
3015 { 0x16 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x1e MSO_I, 0x18 MSO_I },
3016 { 0x20 MSO_I, 0x18 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x1e MSO_I, 0x22 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I },
3017 { 0x16 MSO_I, 0x24 MSO_I }, { 0x16 MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x28 MSO_I },
3018 { 0x10 MSO_I, 0x28 MSO_I }, { 0xe MSO_I, 0x2c MSO_I }, { 0xa MSO_I, 0x2c MSO_I }
3020 const sal_uInt16 mso_sptActionButtonMovieSegm[] =
3022 0x4000, 0x0003, 0x6001, 0x8000,
3023 0x4000, 0x0003, 0x6001, 0x8000,
3024 0x4000, 0x0003, 0x6001, 0x8000,
3025 0x4000, 0x0003, 0x6001, 0x8000,
3026 0x4000, 0x0003, 0x6001, 0x8000,
3027 0x4000, 0x0012, 0x6001, 0x8000
3029 const SvxMSDffCalculationData mso_sptActionButtonMovieCalc[] = // adj value 0 - 5400
3031 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3032 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3033 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3034 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3035 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3036 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
3037 { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6
3038 { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7
3039 { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8
3041 { 0x4001, { -8050, 0x0406, 1 } }, // 9
3042 { 0x6000, { 0x0409, 0x0407, 0 } }, // a
3043 { 0x4001, { -4020, 0x0406, 1 } }, // b
3044 { 0x6000, { 0x040b, 0x0408, 0 } }, // c
3045 { 0x4001, { -7000, 0x0406, 1 } }, // d
3046 { 0x6000, { 0x040d, 0x0407, 0 } }, // e
3047 { 0x4001, { -6560, 0x0406, 1 } }, // f
3048 { 0x6000, { 0x040f, 0x0407, 0 } }, // 10
3049 { 0x4001, { -3600, 0x0406, 1 } }, // 11
3050 { 0x6000, { 0x0411, 0x0408, 0 } }, // 12
3051 { 0x4001, { 4020, 0x0406, 1 } }, // 13
3052 { 0x6000, { 0x0413, 0x0407, 0 } }, // 14
3053 { 0x4001, { 4660, 0x0406, 1 } }, // 15
3054 { 0x6000, { 0x0415, 0x0407, 0 } }, // 16
3055 { 0x4001, { -2960, 0x0406, 1 } }, // 17
3056 { 0x6000, { 0x0417, 0x0408, 0 } }, // 18
3057 { 0x4001, { -2330, 0x0406, 1 } }, // 19
3058 { 0x6000, { 0x0419, 0x0408, 0 } }, // 1a
3059 { 0x4001, { 6780, 0x0406, 1 } }, // 1b
3060 { 0x6000, { 0x041b, 0x0407, 0 } }, // 1c
3061 { 0x4001, { 7200, 0x0406, 1 } }, // 1d
3062 { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e
3063 { 0x4001, { 8050, 0x0406, 1 } }, // 1f
3064 { 0x6000, { 0x041f, 0x0407, 0 } }, // 20
3065 { 0x4001, { 2960, 0x0406, 1 } }, // 21
3066 { 0x6000, { 0x0421, 0x0408, 0 } }, // 22
3067 { 0x4001, { 2330, 0x0406, 1 } }, // 23
3068 { 0x6000, { 0x0423, 0x0408, 0 } }, // 24
3069 { 0x4001, { 3800, 0x0406, 1 } }, // 25
3070 { 0x6000, { 0x0425, 0x0408, 0 } }, // 26
3071 { 0x4001, { -1060, 0x0406, 1 } }, // 27
3072 { 0x6000, { 0x0427, 0x0408, 0 } }, // 28
3073 { 0x4001, { -6350, 0x0406, 1 } }, // 29
3074 { 0x6000, { 0x0429, 0x0407, 0 } }, // 2a
3075 { 0x4001, { -640, 0x0406, 1 } }, // 2b
3076 { 0x6000, { 0x042b, 0x0408, 0 } } // 2c
3078 const mso_CustomShape msoActionButtonMovie =
3080 std::span<const SvxMSDffVertPair>(mso_sptActionButtonMovieVert),
3081 const_cast<sal_uInt16*>(mso_sptActionButtonMovieSegm), sizeof( mso_sptActionButtonMovieSegm ) >> 1,
3082 std::span<const SvxMSDffCalculationData>(mso_sptActionButtonMovieCalc),
3083 const_cast<sal_Int32*>(mso_sptDefault1400),
3084 std::span<const SvxMSDffTextRectangles>(mso_sptActionButtonTextRect),
3085 21600, 21600,
3086 10800, 10800,
3087 std::span<const SvxMSDffVertPair>(),
3088 std::span<const SvxMSDffHandle>(mso_sptButtonHandle),
3091 const SvxMSDffVertPair mso_sptSmileyFaceVert[] = // adj value 15510 - 17520
3093 { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3094 { 7305, 7515 }, { 1000, 1865 }, { 0, 360 },
3095 { 14295, 7515 }, { 1000, 1865 }, { 0, 360 },
3096 { 4870, 1 MSO_I }, { 8680, 2 MSO_I }, { 12920, 2 MSO_I }, { 16730, 1 MSO_I }
3098 const sal_uInt16 mso_sptSmileyFaceSegm[] =
3100 0xa203, 0x6000, 0x8000,
3101 0xa203, 0x6000, 0x8000,
3102 0xa203, 0x6000, 0x8000,
3103 0x4000, 0x2001, 0xaa00, 0x8000
3105 const SvxMSDffCalculationData mso_sptSmileyFaceCalc[] =
3107 { 0x2000, { DFF_Prop_adjustValue, 0, 14510 } },
3108 { 0x8000, { 18520, 0, 0x400 } },
3109 { 0x4000, { 14510, 0x400, 0 } }
3112 const sal_Int32 mso_sptSmileyFaceDefault[] =
3114 1, 18520
3116 const SvxMSDffHandle mso_sptSmileyHandle[] =
3118 { SvxMSDffHandleFlags::RANGE,
3119 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 14510, 18520 }
3121 const mso_CustomShape msoSmileyFace =
3123 std::span<const SvxMSDffVertPair>(mso_sptSmileyFaceVert),
3124 const_cast<sal_uInt16*>(mso_sptSmileyFaceSegm), sizeof( mso_sptSmileyFaceSegm ) >> 1,
3125 std::span<const SvxMSDffCalculationData>(mso_sptSmileyFaceCalc),
3126 const_cast<sal_Int32*>(mso_sptSmileyFaceDefault),
3127 std::span<const SvxMSDffTextRectangles>(mso_sptEllipseTextRect),
3128 21600, 21600,
3129 MIN_INT32, MIN_INT32,
3130 std::span<const SvxMSDffVertPair>(mso_sptEllipseGluePoints),
3131 std::span<const SvxMSDffHandle>(mso_sptSmileyHandle),
3134 const SvxMSDffVertPair mso_sptDonutVert[] = // adj value 0 - 10800
3136 { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3137 { 10800, 10800 }, { 1 MSO_I, 1 MSO_I }, { 0, 360 }
3139 const sal_uInt16 mso_sptDonutSegm[] =
3141 0xa203, 0x6000, 0xa203, 0x8000
3143 const SvxMSDffCalculationData mso_sptDonutCalc[] =
3145 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3146 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3148 const SvxMSDffHandle mso_sptDonutHandle[] =
3150 { SvxMSDffHandleFlags::RANGE,
3151 0x100, 10800, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
3153 const mso_CustomShape msoDonut =
3155 std::span<const SvxMSDffVertPair>(mso_sptDonutVert),
3156 const_cast<sal_uInt16*>(mso_sptDonutSegm), sizeof( mso_sptDonutSegm ) >> 1,
3157 std::span<const SvxMSDffCalculationData>(mso_sptDonutCalc),
3158 const_cast<sal_Int32*>(mso_sptDefault5400),
3159 std::span<const SvxMSDffTextRectangles>(mso_sptEllipseTextRect),
3160 21600, 21600,
3161 MIN_INT32, MIN_INT32,
3162 std::span<const SvxMSDffVertPair>(mso_sptEllipseGluePoints),
3163 std::span<const SvxMSDffHandle>(mso_sptDonutHandle),
3166 const SvxMSDffVertPair mso_sptNoSmokingVert[] = // adj value 0 - 7200
3168 { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3169 { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3170 { 9 MSO_I, 0xa MSO_I }, { 0xb MSO_I, 0xc MSO_I }, { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3171 { 0xd MSO_I, 0xe MSO_I }, { 0xf MSO_I, 0x10 MSO_I }
3173 const sal_uInt16 mso_sptNoSmokingSegm[] =
3175 0xa203, 0x6000, 0xa404, 0x6000, 0xa404, 0x6000, 0x8000
3177 const SvxMSDffCalculationData mso_sptNoSmokingCalc[] =
3179 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0
3180 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 1
3181 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, // 2
3182 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } }, // 3
3183 { 0xa080, { 0x403, 0, 0x402 } }, // 4
3184 { 0x8000, { 10800, 0, 0x403 } }, // 5 x1
3185 { 0x4000, { 10800, 0x403, 0 } }, // 6 x2
3186 { 0x8000, { 10800, 0, 0x404 } }, // 7 y1
3187 { 0x4000, { 10800, 0x404, 0 } }, // 8 y2
3188 { 0x6081, { 0x405, 0x407, 45 } }, // 9
3189 { 0x6082, { 0x405, 0x407, 45 } }, // a
3190 { 0x6081, { 0x405, 0x408, 45 } }, // b
3191 { 0x6082, { 0x405, 0x408, 45 } }, // c
3192 { 0x6081, { 0x406, 0x408, 45 } }, // d
3193 { 0x6082, { 0x406, 0x408, 45 } }, // e
3194 { 0x6081, { 0x406, 0x407, 45 } }, // f
3195 { 0x6082, { 0x406, 0x407, 45 } } // 10
3197 const SvxMSDffHandle mso_sptNoSmokingHandle[] =
3199 { SvxMSDffHandleFlags::RANGE,
3200 0x100, 10800, 10800, 10800, 0, 7200, MIN_INT32, 0x7fffffff }
3202 const mso_CustomShape msoNoSmoking =
3204 std::span<const SvxMSDffVertPair>(mso_sptNoSmokingVert),
3205 const_cast<sal_uInt16*>(mso_sptNoSmokingSegm), sizeof( mso_sptNoSmokingSegm ) >> 1,
3206 std::span<const SvxMSDffCalculationData>(mso_sptNoSmokingCalc),
3207 const_cast<sal_Int32*>(mso_sptDefault2700),
3208 std::span<const SvxMSDffTextRectangles>(mso_sptEllipseTextRect),
3209 21600, 21600,
3210 MIN_INT32, MIN_INT32,
3211 std::span<const SvxMSDffVertPair>(mso_sptEllipseGluePoints),
3212 std::span<const SvxMSDffHandle>(mso_sptNoSmokingHandle),
3215 const SvxMSDffVertPair mso_sptBlockArcVert[] = // adj value 0 (degrees)
3216 { // adj value 1: 0 -> 10800;
3217 { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
3218 { 5 MSO_I, 5 MSO_I }, { 6 MSO_I, 6 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
3220 const sal_uInt16 mso_sptBlockArcSegm[] =
3222 0xA404, 0xa504, 0x6001, 0x8000
3224 const sal_Int32 mso_sptBlockArcDefault[] =
3226 2, 180, 5400
3228 const SvxMSDffCalculationData mso_sptBlockArcCalc[] =
3230 { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
3231 { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
3232 { 0x2000, { 0x400, 10800, 0 } },
3233 { 0x2000, { 0x401, 10800, 0 } },
3234 { 0x8000, { 21600, 0, 0x402 } },
3235 { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
3236 { 0x4000, { 10800, DFF_Prop_adjust2Value, 0 } },
3237 { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } },
3238 { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } }
3240 const SvxMSDffHandle mso_sptBlockArcHandle[] =
3242 { SvxMSDffHandleFlags::POLAR | SvxMSDffHandleFlags::RADIUS_RANGE,
3243 0x101, 0x100, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
3245 const mso_CustomShape msoBlockArc =
3247 std::span<const SvxMSDffVertPair>(mso_sptBlockArcVert),
3248 const_cast<sal_uInt16*>(mso_sptBlockArcSegm), sizeof( mso_sptBlockArcSegm ) >> 1,
3249 std::span<const SvxMSDffCalculationData>(mso_sptBlockArcCalc),
3250 const_cast<sal_Int32*>(mso_sptBlockArcDefault),
3251 std::span<const SvxMSDffTextRectangles>(),
3252 21600, 21600,
3253 MIN_INT32, MIN_INT32,
3254 std::span<const SvxMSDffVertPair>(),
3255 std::span<const SvxMSDffHandle>(mso_sptBlockArcHandle),
3258 // aware : control points are always part of the bounding box
3259 const SvxMSDffVertPair mso_sptHeartVert[] =
3261 { 10800, 21599 }, { 321, 6886 }, { 70, 6036 }, // ppp
3262 { -9, 5766 }, { -1, 5474 }, { 2, 5192 }, // ccp
3263 { 6, 4918 }, { 43, 4641 }, { 101, 4370 }, // ccp
3264 { 159, 4103 }, { 245, 3837 }, { 353, 3582 }, // ccp
3265 { 460, 3326 }, { 591, 3077 }, { 741, 2839 }, // ccp
3266 { 892, 2598 }, { 1066, 2369 }, { 1253, 2155 }, // ccp
3267 { 1443, 1938 }, { 1651, 1732 }, { 1874, 1543 }, // ccp
3268 { 2097, 1351 }, { 2337, 1174 }, { 2587, 1014 }, // ccp
3269 { 2839, 854 }, { 3106, 708 }, { 3380, 584 }, // ccp
3270 { 3656, 459 }, { 3945, 350 }, { 4237, 264 }, // ccp
3271 { 4533, 176 }, { 4838, 108 }, { 5144, 66 }, // ccp
3272 { 5454, 22 }, { 5771, 1 }, { 6086, 3 }, // ccp
3273 { 6407, 7 }, { 6731, 35 }, { 7048, 89 }, // ccp
3274 { 7374, 144 }, { 7700, 226 }, { 8015, 335 }, // ccp
3275 { 8344, 447 }, { 8667, 590 }, { 8972, 756 }, // ccp
3276 { 9297, 932 }, { 9613, 1135 }, { 9907, 1363 }, // ccp
3277 { 10224, 1609 }, { 10504, 1900 }, { 10802, 2169 }, // ccp
3278 { 11697, 1363 }, // p
3279 { 11971, 1116 }, { 12304, 934 }, { 12630, 756 }, // ccp
3280 { 12935, 590 }, { 13528, 450 }, { 13589, 335 }, // ccp
3281 { 13901, 226 }, { 14227, 144 }, { 14556, 89 }, // ccp
3282 { 14872, 35 }, { 15195, 7 }, { 15517, 3 }, // ccp
3283 { 15830, 0 }, { 16147, 22 }, { 16458, 66 }, // ccp
3284 { 16764, 109 }, { 17068, 177 }, { 17365, 264 }, // ccp
3285 { 17658, 349 }, { 17946, 458 }, { 18222, 584 }, // ccp
3286 { 18496, 708 }, { 18762, 854 }, { 19015, 1014 }, // ccp
3287 { 19264, 1172 }, { 19504, 1349 }, { 19730, 1543 }, // ccp
3288 { 19950, 1731 }, { 20158, 1937 }, { 20350, 2155 }, // ccp
3289 { 20536, 2369 }, { 20710, 2598 }, { 20861, 2839 }, // ccp
3290 { 21010, 3074 }, { 21143, 3323 }, { 21251, 3582 }, // ccp
3291 { 21357, 3835 }, { 21443, 4099 }, { 21502, 4370 }, // ccp
3292 { 21561, 4639 }, { 21595, 4916 }, { 21600, 5192 }, // ccp
3293 { 21606, 5474 }, { 21584, 5760 }, { 21532, 6036 }, // ccp
3294 { 21478, 6326 }, { 21366, 6603 }, { 21282, 6887 }, // ccp
3295 { 10802, 21602 } // p
3297 const sal_uInt16 mso_sptHeartSegm[] =
3299 0x4000, 0x0002, 0x2010, 0x0001, 0x2010, 0x0001, 0x6001, 0x8000
3301 const SvxMSDffTextRectangles mso_sptHeartTextRect[] =
3303 { { 5080, 2540 }, { 16520, 13550 } }
3305 const SvxMSDffVertPair mso_sptHeartGluePoints[] =
3307 { 10800, 2180 }, { 3090, 10800 }, { 10800, 21600 }, { 18490, 10800 }
3309 const mso_CustomShape msoHeart =
3311 std::span<const SvxMSDffVertPair>(mso_sptHeartVert),
3312 const_cast<sal_uInt16*>(mso_sptHeartSegm), sizeof( mso_sptHeartSegm ) >> 1,
3313 std::span<const SvxMSDffCalculationData>(),
3314 nullptr,
3315 std::span<const SvxMSDffTextRectangles>(mso_sptHeartTextRect),
3316 21615, 21602,
3317 MIN_INT32, MIN_INT32,
3318 std::span<const SvxMSDffVertPair>(mso_sptHeartGluePoints),
3319 std::span<const SvxMSDffHandle>() // handles
3322 const SvxMSDffVertPair mso_sptLightningBoldVert[] =
3324 { 8458, 0 }, { 0, 3923 }, { 7564, 8416 }, { 4993, 9720 },
3325 { 12197, 13904 }, { 9987, 14934 }, { 21600, 21600 }, { 14768, 12911 },
3326 { 16558, 12016 }, { 11030, 6840 }, { 12831, 6120 }, { 8458, 0 }
3328 const SvxMSDffTextRectangles mso_sptLightningBoldTextRect[] =
3330 { { 8680, 7410 }, { 13970, 14190 } }
3332 const SvxMSDffVertPair mso_sptLightningBoldGluePoints[] =
3334 { 8458, 0 }, { 0, 3923 }, { 4993, 9720 }, { 9987, 14934 }, { 21600, 21600 },
3335 { 16558, 12016 }, { 12831, 6120 }
3337 const mso_CustomShape msoLightningBold =
3339 std::span<const SvxMSDffVertPair>(mso_sptLightningBoldVert),
3340 nullptr, 0,
3341 std::span<const SvxMSDffCalculationData>(),
3342 nullptr,
3343 std::span<const SvxMSDffTextRectangles>(mso_sptLightningBoldTextRect),
3344 21600, 21600,
3345 MIN_INT32, MIN_INT32,
3346 std::span<const SvxMSDffVertPair>(mso_sptLightningBoldGluePoints),
3347 std::span<const SvxMSDffHandle>() // handles
3350 const SvxMSDffVertPair mso_sptSunVert[] = // adj value 2700 -> 10125
3352 { 0, 10800 }, { 4 MSO_I, 8 MSO_I }, { 4 MSO_I, 9 MSO_I },
3353 { 0x0a MSO_I, 0x0b MSO_I }, { 0x0c MSO_I, 0x0d MSO_I }, { 0x0e MSO_I, 0x0f MSO_I },
3354 { 0x10 MSO_I, 0x11 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0x14 MSO_I, 0x15 MSO_I },
3355 { 0x16 MSO_I, 0x17 MSO_I }, { 0x18 MSO_I, 0x19 MSO_I }, { 0x1a MSO_I, 0x1b MSO_I },
3356 { 0x1c MSO_I, 0x1d MSO_I }, { 0x1e MSO_I, 0x1f MSO_I }, { 0x20 MSO_I, 0x21 MSO_I },
3357 { 0x22 MSO_I, 0x23 MSO_I }, { 0x24 MSO_I, 0x25 MSO_I }, { 0x26 MSO_I, 0x27 MSO_I },
3358 { 0x28 MSO_I, 0x29 MSO_I }, { 0x2a MSO_I, 0x2b MSO_I }, { 0x2c MSO_I, 0x2d MSO_I },
3359 { 0x2e MSO_I, 0x2f MSO_I }, { 0x30 MSO_I, 0x31 MSO_I }, { 0x32 MSO_I, 0x33 MSO_I },
3360 { 10800, 10800 }, { 0x36 MSO_I, 0x36 MSO_I }, { 0, 360 }
3362 const sal_uInt16 mso_sptSunSegm[] =
3364 0x4000, 0x0002, 0x6001, 0x8000,
3365 0x4000, 0x0002, 0x6001, 0x8000,
3366 0x4000, 0x0002, 0x6001, 0x8000,
3367 0x4000, 0x0002, 0x6001, 0x8000,
3368 0x4000, 0x0002, 0x6001, 0x8000,
3369 0x4000, 0x0002, 0x6001, 0x8000,
3370 0x4000, 0x0002, 0x6001, 0x8000,
3371 0x4000, 0x0002, 0x6001, 0x8000,
3372 0xa203, 0x6000, 0x8000
3374 const SvxMSDffCalculationData mso_sptSunCalc[] =
3376 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3377 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3378 { 0x2000, { DFF_Prop_adjustValue, 0, 2700 } },
3379 { 0x2001, { 0x402, 5080, 7425 } },
3380 { 0x2000, { 0x403, 2540, 0 } },
3381 { 0x8000, { 10125, 0, DFF_Prop_adjustValue } },
3382 { 0x2001, { 0x405, 2120, 7425 } },
3383 { 0x2000, { 0x406, 210, 0 } },
3384 { 0x4000, { 10800, 0x407, 0 } }, // y1 (0x8)
3385 { 0x8000, { 10800, 0, 0x407 } }, // y2 (0x9)
3386 { 0x0081, { 0, 10800, 45 } }, // 0xa
3387 { 0x0082, { 0, 10800, 45 } }, // 0xb
3388 { 0x6081, { 0x404, 0x408, 45 } }, // 0xc
3389 { 0x6082, { 0x404, 0x408, 45 } }, // 0xd
3390 { 0x6081, { 0x404, 0x409, 45 } }, // 0xe
3391 { 0x6082, { 0x404, 0x409, 45 } }, // 0xf
3392 { 0x0081, { 0, 10800, 90 } }, // 0x10
3393 { 0x0082, { 0, 10800, 90 } }, // 0x11
3394 { 0x6081, { 0x404, 0x408, 90 } }, // 0x12
3395 { 0x6082, { 0x404, 0x408, 90 } }, // 0x13
3396 { 0x6081, { 0x404, 0x409, 90 } }, // 0x14
3397 { 0x6082, { 0x404, 0x409, 90 } }, // 0x15
3398 { 0x0081, { 0, 10800, 135 } }, // 0x16
3399 { 0x0082, { 0, 10800, 135 } }, // 0x17
3400 { 0x6081, { 0x404, 0x408, 135 } }, // 0x18
3401 { 0x6082, { 0x404, 0x408, 135 } }, // 0x19
3402 { 0x6081, { 0x404, 0x409, 135 } }, // 0x1a
3403 { 0x6082, { 0x404, 0x409, 135 } }, // 0x1b
3404 { 0x0081, { 0, 10800, 180 } }, // 0x1c
3405 { 0x0082, { 0, 10800, 180 } }, // 0x1d
3406 { 0x6081, { 0x404, 0x408, 180 } }, // 0x1e
3407 { 0x6082, { 0x404, 0x408, 180 } }, // 0x1f
3408 { 0x6081, { 0x404, 0x409, 180 } }, // 0x20
3409 { 0x6082, { 0x404, 0x409, 180 } }, // 0x21
3410 { 0x0081, { 0, 10800, 225 } }, // 0x22
3411 { 0x0082, { 0, 10800, 225 } }, // 0x23
3412 { 0x6081, { 0x404, 0x408, 225 } }, // 0x24
3413 { 0x6082, { 0x404, 0x408, 225 } }, // 0x25
3414 { 0x6081, { 0x404, 0x409, 225 } }, // 0x26
3415 { 0x6082, { 0x404, 0x409, 225 } }, // 0x27
3416 { 0x0081, { 0, 10800, 270 } }, // 0x28
3417 { 0x0082, { 0, 10800, 270 } }, // 0x29
3418 { 0x6081, { 0x404, 0x408, 270 } }, // 0x2a
3419 { 0x6082, { 0x404, 0x408, 270 } }, // 0x2b
3420 { 0x6081, { 0x404, 0x409, 270 } }, // 0x2c
3421 { 0x6082, { 0x404, 0x409, 270 } }, // 0x2d
3422 { 0x0081, { 0, 10800, 315 } }, // 0x2e
3423 { 0x0082, { 0, 10800, 315 } }, // 0x2f
3424 { 0x6081, { 0x404, 0x408, 315 } }, // 0x30
3425 { 0x6082, { 0x404, 0x408, 315 } }, // 0x31
3426 { 0x6081, { 0x404, 0x409, 315 } }, // 0x32
3427 { 0x6082, { 0x404, 0x409, 315 } }, // 0x33
3428 { 0x2081, { DFF_Prop_adjustValue, 10800, 45 } }, // 0x34 ( textbox )
3429 { 0x2081, { DFF_Prop_adjustValue, 10800, 225 } }, // 0x35
3430 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3432 const SvxMSDffTextRectangles mso_sptSunTextRect[] =
3434 { { 0x34 MSO_I, 0x34 MSO_I }, { 0x35 MSO_I, 0x35 MSO_I } }
3436 const SvxMSDffHandle mso_sptSunHandle[] =
3438 { SvxMSDffHandleFlags::RANGE,
3439 0x100, 10800, 10800, 10800, 2700, 10125, MIN_INT32, 0x7fffffff }
3441 const mso_CustomShape msoSun =
3443 std::span<const SvxMSDffVertPair>(mso_sptSunVert),
3444 const_cast<sal_uInt16*>(mso_sptSunSegm), sizeof( mso_sptSunSegm ) >> 1,
3445 std::span<const SvxMSDffCalculationData>(mso_sptSunCalc),
3446 const_cast<sal_Int32*>(mso_sptDefault5400),
3447 std::span<const SvxMSDffTextRectangles>(mso_sptSunTextRect),
3448 21600, 21600,
3449 MIN_INT32, MIN_INT32,
3450 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
3451 std::span<const SvxMSDffHandle>(mso_sptSunHandle),
3454 const SvxMSDffVertPair mso_sptMoonVert[] = // adj value 0 -> 18900
3456 { 21600, 0 },
3457 { 3 MSO_I, 4 MSO_I }, { 0 MSO_I, 5080 }, { 0 MSO_I, 10800 }, // ccp
3458 { 0 MSO_I, 16520 }, { 3 MSO_I, 5 MSO_I }, { 21600, 21600 }, // ccp
3459 { 9740, 21600 }, { 0, 16730 }, { 0, 10800 }, // ccp
3460 { 0, 4870 }, { 9740, 0 }, { 21600, 0 } // ccp
3462 const sal_uInt16 mso_sptMoonSegm[] =
3464 0x4000, 0x2004, 0x6000, 0x8000
3466 const SvxMSDffCalculationData mso_sptMoonCalc[] =
3468 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3469 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3470 { 0x2001, { 0x401, 1, 2 } },
3471 { 0x6000, { 0x402, DFF_Prop_adjustValue, 0 } },
3472 { 0x2001, { DFF_Prop_adjustValue, 1794, 10000 } },
3473 { 0x8000, { 21600, 0, 0x0404 } },
3474 { 0x2001, { DFF_Prop_adjustValue, 400, 18900 } },
3475 { 0x8081, { 0, 10800, 0x406 } },
3476 { 0x8082, { 0, 10800, 0x406 } },
3477 { 0x6000, { 0x407, 0x407, 0 } },
3478 { 0x8000, { 21600, 0, 0x408 } }
3480 const SvxMSDffTextRectangles mso_sptMoonTextRect[] =
3482 { { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 0xa MSO_I } }
3484 const SvxMSDffVertPair mso_sptMoonGluePoints[] =
3486 { 21600, 0 }, { 0, 10800 }, { 21600, 21600 }, { 0 MSO_I, 10800 }
3488 const SvxMSDffHandle mso_sptMoonHandle[] =
3490 { SvxMSDffHandleFlags::RANGE,
3491 0x100, 10800, 10800, 10800, 0, 18900, MIN_INT32, 0x7fffffff }
3493 const mso_CustomShape msoMoon =
3495 std::span<const SvxMSDffVertPair>(mso_sptMoonVert),
3496 const_cast<sal_uInt16*>(mso_sptMoonSegm), sizeof( mso_sptMoonSegm ) >> 1,
3497 std::span<const SvxMSDffCalculationData>(mso_sptMoonCalc),
3498 const_cast<sal_Int32*>(mso_sptDefault10800),
3499 std::span<const SvxMSDffTextRectangles>(mso_sptMoonTextRect),
3500 21600, 21600,
3501 MIN_INT32, MIN_INT32,
3502 std::span<const SvxMSDffVertPair>(mso_sptMoonGluePoints),
3503 std::span<const SvxMSDffHandle>(mso_sptMoonHandle),
3506 const SvxMSDffVertPair mso_sptBracketPairVert[] = // adj value 0 -> 10800
3508 { 0 MSO_I, 0 }, { 0, 1 MSO_I }, // left top alignment
3509 { 0, 2 MSO_I }, { 0 MSO_I, 21600 }, // left bottom "
3510 { 3 MSO_I, 21600 }, { 21600, 2 MSO_I }, // right bottom "
3511 { 21600, 1 MSO_I }, { 3 MSO_I, 0 }, // right top "
3512 { 0 MSO_I, 0 }, { 0, 1 MSO_I }, // filling area
3513 { 0, 2 MSO_I }, { 0 MSO_I, 21600 },
3514 { 3 MSO_I, 21600 }, { 21600, 2 MSO_I },
3515 { 21600, 1 MSO_I }, { 3 MSO_I, 0 }
3517 const sal_uInt16 mso_sptBracketPairSegm[] =
3519 0x4000, 0xa701, 0x0001, 0xa801, 0xaa00, 0x8000,
3520 0x4000, 0xa701, 0x0001, 0xa801, 0xaa00, 0x8000,
3521 0x4000, 0xa701, 0x0001, 0xa801, 0x0001, // filling area
3522 0xa701, 0x0001, 0xa801, 0x6000, 0xab00, 0x8000
3524 const SvxMSDffCalculationData mso_sptBracketPairCalc[] =
3526 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3527 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3528 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3529 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3530 { 0x2082, { DFF_Prop_adjustValue, 0, 45 } },
3531 { 0x2000, { 0x404, 0, 10800 } },
3532 { 0x8000, { 0, 0, DFF_Prop_adjustValue } },
3533 { 0xa000, { 0x406, 0, 0x405 } },
3534 { 0xa000, { DFF_Prop_geoLeft, 0, 0x407 } },
3535 { 0xa000, { DFF_Prop_geoTop, 0, 0x407 } },
3536 { 0x6000, { DFF_Prop_geoRight, 0x407, 0 } },
3537 { 0x6000, { DFF_Prop_geoBottom, 0x407, 0 } },
3538 { 0xa000, { DFF_Prop_geoLeft, 0, 0x405 } },
3539 { 0xa000, { DFF_Prop_geoTop, 0, 0x405 } },
3540 { 0x6000, { DFF_Prop_geoRight, 0x405, 0 } },
3541 { 0x6000, { DFF_Prop_geoBottom, 0x405, 0 } }
3543 const SvxMSDffTextRectangles mso_sptBracketPairTextRect[] =
3545 { { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 0xb MSO_I } }
3547 const SvxMSDffHandle mso_sptBracketPairHandle[] =
3549 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::SWITCHED,
3550 0x100, 0, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
3552 const mso_CustomShape msoBracketPair =
3554 std::span<const SvxMSDffVertPair>(mso_sptBracketPairVert),
3555 const_cast<sal_uInt16*>(mso_sptBracketPairSegm), sizeof( mso_sptBracketPairSegm ) >> 1,
3556 std::span<const SvxMSDffCalculationData>(mso_sptBracketPairCalc),
3557 const_cast<sal_Int32*>(mso_sptDefault3700),
3558 std::span<const SvxMSDffTextRectangles>(mso_sptBracketPairTextRect),
3559 21600, 21600,
3560 10800, MIN_INT32,
3561 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
3562 std::span<const SvxMSDffHandle>(mso_sptBracketPairHandle),
3565 const sal_uInt16 mso_sptPlaqueSegm[] =
3567 0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
3569 const SvxMSDffTextRectangles mso_sptPlaqueTextRect[] =
3571 { { 0xc MSO_I, 0xd MSO_I }, { 0xe MSO_I, 0xf MSO_I } }
3573 const SvxMSDffHandle mso_sptPlaqueHandle[] =
3575 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::SWITCHED,
3576 0x100, 0, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
3578 const mso_CustomShape msoPlaque =
3580 std::span<const SvxMSDffVertPair>(mso_sptBracketPairVert),
3581 const_cast<sal_uInt16*>(mso_sptPlaqueSegm), sizeof( mso_sptPlaqueSegm ) >> 1,
3582 std::span<const SvxMSDffCalculationData>(mso_sptBracketPairCalc),
3583 const_cast<sal_Int32*>(mso_sptDefault3600),
3584 std::span<const SvxMSDffTextRectangles>(mso_sptPlaqueTextRect),
3585 21600, 21600,
3586 10800, 10800,
3587 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
3588 std::span<const SvxMSDffHandle>(mso_sptPlaqueHandle),
3591 const SvxMSDffVertPair mso_sptBracePairVert[] = // adj value 0 -> 5400
3593 { 4 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 6 MSO_I }, { 0 ,10800 }, // left bracket
3594 { 0 MSO_I, 7 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 4 MSO_I, 21600 },
3595 { 8 MSO_I, 21600 }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 7 MSO_I }, { 21600, 10800 }, // right bracket
3596 { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 8 MSO_I, 0 },
3597 { 4 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 6 MSO_I }, { 0 ,10800 }, // filling area
3598 { 0 MSO_I, 7 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 4 MSO_I, 21600 },
3599 { 8 MSO_I, 21600 }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 7 MSO_I }, { 21600, 10800 },
3600 { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 8 MSO_I, 0 }
3602 const sal_uInt16 mso_sptBracePairSegm[] =
3604 0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0xaa00, 0x8000,
3605 0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0xaa00, 0x8000,
3606 0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x0001, // filling area
3607 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x6000, 0xab00, 0x8000
3609 const SvxMSDffCalculationData mso_sptBracePairCalc[] =
3611 { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3612 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3613 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3614 { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3615 { 0x2001, { 0x400, 2, 1 } }, // 4
3616 { 0x2001, { DFF_Prop_adjustValue, 2, 1 } }, // 5
3617 { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, // 6
3618 { 0x8000, { 21600, 0, 0x406 } }, // 7
3619 { 0xa000, { DFF_Prop_geoRight, 0, 0x405 } }, // 8
3620 { 0x2001, { DFF_Prop_adjustValue, 1, 3 } }, // 9
3621 { 0x6000, { 0x409, DFF_Prop_adjustValue, 0 } }, // xa
3622 { 0x6000, { DFF_Prop_geoLeft, 0x40a, 0 } }, // xb
3623 { 0x6000, { DFF_Prop_geoTop, 0x409, 0 } }, // xc
3624 { 0xa000, { DFF_Prop_geoRight, 0, 0x40a } }, // xd
3625 { 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } } // xe
3627 const SvxMSDffTextRectangles mso_sptBracePairTextRect[] =
3629 { { 0xb MSO_I, 0xc MSO_I }, { 0xd MSO_I, 0xe MSO_I } }
3631 const SvxMSDffHandle mso_sptBracePairHandle[] =
3633 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::SWITCHED,
3634 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 5400 }
3636 const mso_CustomShape msoBracePair =
3638 std::span<const SvxMSDffVertPair>(mso_sptBracePairVert),
3639 const_cast<sal_uInt16*>(mso_sptBracePairSegm), sizeof( mso_sptBracePairSegm ) >> 1,
3640 std::span<const SvxMSDffCalculationData>(mso_sptBracePairCalc),
3641 const_cast<sal_Int32*>(mso_sptDefault1800),
3642 std::span<const SvxMSDffTextRectangles>(mso_sptBracePairTextRect),
3643 21600, 21600,
3644 10800, MIN_INT32,
3645 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
3646 std::span<const SvxMSDffHandle>(mso_sptBracePairHandle),
3649 const SvxMSDffCalculationData mso_sptBracketCalc[] =
3651 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3652 { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3653 { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3654 { 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
3655 { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
3657 const sal_uInt16 mso_sptBracketSegm[] =
3659 0x4000, 0x2001, 0x0001, 0x2001, 0x8000
3661 const SvxMSDffVertPair mso_sptLeftBracketVert[] = // adj value 0 -> 10800
3663 { 21600, 0 }, { 10800, 0 }, { 0, 3 MSO_I }, { 0, 1 MSO_I },
3664 { 0, 2 MSO_I }, { 0, 4 MSO_I }, { 10800, 21600 }, { 21600, 21600 }
3666 const SvxMSDffTextRectangles mso_sptLeftBracketTextRect[] =
3668 { { 6350, 3 MSO_I }, { 21600, 4 MSO_I } }
3670 const SvxMSDffVertPair mso_sptLeftBracketGluePoints[] =
3672 { 21600, 0 }, { 0, 10800 }, { 21600, 21600 }
3674 const SvxMSDffHandle mso_sptLeftBracketHandle[] =
3676 { SvxMSDffHandleFlags::RANGE,
3677 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 10800 }
3679 const mso_CustomShape msoLeftBracket =
3681 std::span<const SvxMSDffVertPair>(mso_sptLeftBracketVert),
3682 const_cast<sal_uInt16*>(mso_sptBracketSegm), sizeof( mso_sptBracketSegm ) >> 1,
3683 std::span<const SvxMSDffCalculationData>(mso_sptBracketCalc),
3684 const_cast<sal_Int32*>(mso_sptDefault1800),
3685 std::span<const SvxMSDffTextRectangles>(mso_sptLeftBracketTextRect),
3686 21600, 21600,
3687 MIN_INT32, MIN_INT32,
3688 std::span<const SvxMSDffVertPair>(mso_sptLeftBracketGluePoints),
3689 std::span<const SvxMSDffHandle>(mso_sptLeftBracketHandle),
3691 const SvxMSDffVertPair mso_sptRightBracketVert[] = // adj value 0 -> 10800
3693 { 0, 0 }, { 10800, 0 }, { 21600, 3 MSO_I }, { 21600, 1 MSO_I },
3694 { 21600, 2 MSO_I }, { 21600, 4 MSO_I }, { 10800, 21600 }, { 0, 21600 }
3696 const SvxMSDffTextRectangles mso_sptRightBracketTextRect[] =
3698 { { 0, 3 MSO_I }, { 15150, 4 MSO_I } }
3700 const SvxMSDffVertPair mso_sptRightBracketGluePoints[] =
3702 { 0, 0 }, { 0, 21600 }, { 21600, 10800 }
3704 const SvxMSDffHandle mso_sptRightBracketHandle[] =
3706 { SvxMSDffHandleFlags::RANGE,
3707 1, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 10800 }
3709 const mso_CustomShape msoRightBracket =
3711 std::span<const SvxMSDffVertPair>(mso_sptRightBracketVert),
3712 const_cast<sal_uInt16*>(mso_sptBracketSegm), sizeof( mso_sptBracketSegm ) >> 1,
3713 std::span<const SvxMSDffCalculationData>(mso_sptBracketCalc),
3714 const_cast<sal_Int32*>(mso_sptDefault1800),
3715 std::span<const SvxMSDffTextRectangles>(mso_sptRightBracketTextRect),
3716 21600, 21600,
3717 MIN_INT32, MIN_INT32,
3718 std::span<const SvxMSDffVertPair>(mso_sptRightBracketGluePoints),
3719 std::span<const SvxMSDffHandle>(mso_sptRightBracketHandle),
3722 const SvxMSDffCalculationData mso_sptBraceCalc[] =
3724 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3725 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3726 { 0xa000, { 0x404, 0, DFF_Prop_adjustValue } },
3727 { 0xa000, { 0x404, 0, 0x400 } },
3728 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
3729 { 0x6000, { 0x404, 0x400, 0 } },
3730 { 0x6000, { 0x404, DFF_Prop_adjustValue, 0 } },
3731 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3732 { 0x8000, { 21600, 0, 0x400 } },
3733 { 0x2001, { DFF_Prop_adjustValue, 10000, 31953 } },
3734 { 0x8000, { 21600, 0, 0x409 } }
3736 const sal_uInt16 mso_sptBraceSegm[] =
3738 0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x8000
3740 const sal_Int32 mso_sptBraceDefault[] =
3742 2, 1800, 10800
3744 const SvxMSDffVertPair mso_sptLeftBraceVert[] =
3746 { 21600, 0 }, // p
3747 { 16200, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I }, // ccp
3748 { 10800, 2 MSO_I }, // p
3749 { 10800, 3 MSO_I }, { 5400, 4 MSO_I }, { 0, 4 MSO_I }, // ccp
3750 { 5400, 4 MSO_I }, { 10800, 5 MSO_I }, { 10800, 6 MSO_I }, // ccp
3751 { 10800, 7 MSO_I }, // p
3752 { 10800, 8 MSO_I }, { 16200, 21600 }, { 21600, 21600 } // ccp
3754 const SvxMSDffTextRectangles mso_sptLeftBraceTextRect[] =
3756 { { 13800, 9 MSO_I }, { 21600, 10 MSO_I } }
3758 const SvxMSDffHandle mso_sptLeftBraceHandle[] =
3760 { SvxMSDffHandleFlags::RANGE,
3761 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 5400 },
3762 { SvxMSDffHandleFlags::RANGE,
3763 0, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 21600 }
3765 const mso_CustomShape msoLeftBrace = // adj value0 0 -> 5400
3766 { // adj value1 0 -> 21600
3767 std::span<const SvxMSDffVertPair>(mso_sptLeftBraceVert),
3768 const_cast<sal_uInt16*>(mso_sptBraceSegm), sizeof( mso_sptBraceSegm ) >> 1,
3769 std::span<const SvxMSDffCalculationData>(mso_sptBraceCalc),
3770 const_cast<sal_Int32*>(mso_sptBraceDefault),
3771 std::span<const SvxMSDffTextRectangles>(mso_sptLeftBraceTextRect),
3772 21600, 21600,
3773 MIN_INT32, MIN_INT32,
3774 std::span<const SvxMSDffVertPair>(mso_sptLeftBracketGluePoints),
3775 std::span<const SvxMSDffHandle>(mso_sptLeftBraceHandle),
3777 const SvxMSDffVertPair mso_sptRightBraceVert[] =
3779 { 0, 0 }, // p
3780 { 5400, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I }, // ccp
3781 { 10800, 2 MSO_I }, // p
3782 { 10800, 3 MSO_I }, { 16200, 4 MSO_I }, { 21600, 4 MSO_I }, // ccp
3783 { 16200, 4 MSO_I }, { 10800, 5 MSO_I }, { 10800, 6 MSO_I }, // ccp
3784 { 10800, 7 MSO_I }, // p
3785 { 10800, 8 MSO_I }, { 5400, 21600 }, { 0, 21600 } // ccp
3787 const SvxMSDffTextRectangles mso_sptRightBraceTextRect[] =
3789 { { 0, 9 MSO_I }, { 7800, 10 MSO_I } }
3791 const SvxMSDffHandle mso_sptRightBraceHandle[] =
3793 { SvxMSDffHandleFlags::RANGE,
3794 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 5400 },
3795 { SvxMSDffHandleFlags::RANGE,
3796 1, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 21600 }
3798 const mso_CustomShape msoRightBrace = // adj value0 0 -> 5400
3799 { // adj value1 0 -> 21600
3800 std::span<const SvxMSDffVertPair>(mso_sptRightBraceVert),
3801 const_cast<sal_uInt16*>(mso_sptBraceSegm), sizeof( mso_sptBraceSegm ) >> 1,
3802 std::span<const SvxMSDffCalculationData>(mso_sptBraceCalc),
3803 const_cast<sal_Int32*>(mso_sptBraceDefault),
3804 std::span<const SvxMSDffTextRectangles>(mso_sptRightBraceTextRect),
3805 21600, 21600,
3806 MIN_INT32, MIN_INT32,
3807 std::span<const SvxMSDffVertPair>(mso_sptRightBracketGluePoints),
3808 std::span<const SvxMSDffHandle>(mso_sptRightBraceHandle),
3811 const SvxMSDffVertPair mso_sptIrregularSeal1Vert[] =
3813 { 10901, 5905 }, { 8458, 2399 }, { 7417, 6425 }, { 476, 2399 },
3814 { 4732, 7722 }, { 106, 8718 }, { 3828, 11880 }, { 243, 14689 },
3815 { 5772, 14041 }, { 4868, 17719 }, { 7819, 15730 }, { 8590, 21600 },
3816 { 10637, 15038 }, { 13349, 19840 }, { 14125, 14561 }, { 18248, 18195 },
3817 { 16938, 13044 }, { 21600, 13393 }, { 17710, 10579 }, { 21198, 8242 },
3818 { 16806, 7417 }, { 18482, 4560 }, { 14257, 5429 }, { 14623, 106 }, { 10901, 5905 }
3820 const SvxMSDffTextRectangles mso_sptIrregularSeal1TextRect[] =
3822 { { 4680, 6570 }, { 16140, 13280 } }
3824 const SvxMSDffVertPair mso_sptIrregularSeal1GluePoints[] =
3826 { 14623, 106 }, { 106, 8718 }, { 8590, 21600 }, { 21600, 13393 }
3828 const mso_CustomShape msoIrregularSeal1 =
3830 std::span<const SvxMSDffVertPair>(mso_sptIrregularSeal1Vert),
3831 nullptr, 0,
3832 std::span<const SvxMSDffCalculationData>(),
3833 nullptr,
3834 std::span<const SvxMSDffTextRectangles>(mso_sptIrregularSeal1TextRect),
3835 21600, 21600,
3836 MIN_INT32, MIN_INT32,
3837 std::span<const SvxMSDffVertPair>(mso_sptIrregularSeal1GluePoints),
3838 std::span<const SvxMSDffHandle>() // handles
3841 const SvxMSDffVertPair mso_sptIrregularSeal2Vert[] =
3843 { 11464, 4340 }, { 9722, 1887 }, { 8548, 6383 }, { 4503, 3626 },
3844 { 5373, 7816 }, { 1174, 8270 }, { 3934, 11592 }, { 0, 12875 },
3845 { 3329, 15372 }, { 1283, 17824 }, { 4804, 18239 }, { 4918, 21600 },
3846 { 7525, 18125 }, { 8698, 19712 }, { 9871, 17371 }, { 11614, 18844 },
3847 { 12178, 15937 }, { 14943, 17371 }, { 14640, 14348 }, { 18878, 15632 },
3848 { 16382, 12311 }, { 18270, 11292 }, { 16986, 9404 }, { 21600, 6646 },
3849 { 16382, 6533 }, { 18005, 3172 }, { 14524, 5778 }, { 14789, 0 },
3850 { 11464, 4340 }
3852 const SvxMSDffTextRectangles mso_sptIrregularSeal2TextRect[] =
3854 { { 5400, 6570 }, { 14160, 15290 } }
3856 const SvxMSDffVertPair mso_sptIrregularSeal2GluePoints[] =
3858 { 9722, 1887 }, { 0, 12875 }, { 11614, 18844 }, { 21600, 6646 }
3860 const mso_CustomShape msoIrregularSeal2 =
3862 std::span<const SvxMSDffVertPair>(mso_sptIrregularSeal2Vert),
3863 nullptr, 0,
3864 std::span<const SvxMSDffCalculationData>(),
3865 nullptr,
3866 std::span<const SvxMSDffTextRectangles>(mso_sptIrregularSeal2TextRect),
3867 21600, 21600,
3868 MIN_INT32, MIN_INT32,
3869 std::span<const SvxMSDffVertPair>(mso_sptIrregularSeal2GluePoints),
3870 std::span<const SvxMSDffHandle>() // handles
3873 const SvxMSDffVertPair mso_sptSeal4Vert[] = // adjustment1 : 0 - 10800
3875 { 0, 10800 }, { 4 MSO_I, 4 MSO_I }, { 10800, 0 }, { 3 MSO_I, 4 MSO_I },
3876 { 21600, 10800 }, { 3 MSO_I, 3 MSO_I }, { 10800, 21600 }, { 4 MSO_I, 3 MSO_I },
3877 { 0, 10800 }
3879 const SvxMSDffCalculationData mso_sptSeal4Calc[] =
3881 { 0x0000, { 7600, 0, 0 } },
3882 { 0x6001, { 0x400, DFF_Prop_adjustValue, 10800 } },
3883 { 0xa000, { 0x400, 0, 0x401 } },
3884 { 0x4000, { 10800, 0x402, 0 } },
3885 { 0x8000, { 10800, 0, 0x402 } }
3887 const SvxMSDffTextRectangles mso_sptSeal4TextRect[] =
3889 { { 4 MSO_I, 4 MSO_I }, { 3 MSO_I, 3 MSO_I } }
3891 const SvxMSDffHandle mso_sptSealHandle[] =
3893 { SvxMSDffHandleFlags::RANGE,
3894 0x100, 10800, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
3896 const mso_CustomShape msoSeal4 =
3898 std::span<const SvxMSDffVertPair>(mso_sptSeal4Vert),
3899 nullptr, 0,
3900 std::span<const SvxMSDffCalculationData>(mso_sptSeal4Calc),
3901 const_cast<sal_Int32*>(mso_sptDefault8100),
3902 std::span<const SvxMSDffTextRectangles>(mso_sptSeal4TextRect),
3903 21600, 21600,
3904 MIN_INT32, MIN_INT32,
3905 std::span<const SvxMSDffVertPair>(),
3906 std::span<const SvxMSDffHandle>(mso_sptSealHandle),
3909 const SvxMSDffVertPair mso_sptStarVert[] =
3911 { 10797, 0 }, { 8278, 8256 }, { 0, 8256 }, { 6722, 13405 },
3912 { 4198, 21600 }, { 10797, 16580 }, { 17401, 21600 }, { 14878, 13405 },
3913 { 21600, 8256 }, { 13321, 8256 }, { 10797, 0 }
3915 const SvxMSDffTextRectangles mso_sptStarTextRect[] =
3917 { { 6722, 8256 }, { 14878, 15460 } }
3920 const SvxMSDffVertPair mso_sptStarGluePoints[] =
3922 { 10800, 0 }, { 0, 8259 }, { 4200, 21600 }, { 17400, 21600 }, { 21600, 8259 }
3924 const mso_CustomShape msoStar =
3926 std::span<const SvxMSDffVertPair>(mso_sptStarVert),
3927 nullptr, 0,
3928 std::span<const SvxMSDffCalculationData>(),
3929 nullptr,
3930 std::span<const SvxMSDffTextRectangles>(mso_sptStarTextRect),
3931 21600, 21600,
3932 MIN_INT32, MIN_INT32,
3933 std::span<const SvxMSDffVertPair>( mso_sptStarGluePoints ),
3934 std::span<const SvxMSDffHandle>() // handles
3937 const SvxMSDffCalculationData mso_sptSeal24Calc[] =
3939 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0x00
3940 { 0x2081, { 0x400, 10800, 315 } }, // 0x01 ( textframe )
3941 { 0x2082, { 0x400, 10800, 315 } }, // 0x02
3942 { 0x2081, { 0x400, 10800, 135 } }, // 0x03
3943 { 0x2082, { 0x400, 10800, 135 } }, // 0x04
3944 { 0x0081, { 0, 10800, 0 } },
3945 { 0x0082, { 0, 10800, 0 } },
3946 { 0x2081, { 0x400, 10800, 7 } },
3947 { 0x2082, { 0x400, 10800, 7 } },
3948 { 0x0081, { 0, 10800, 15 } },
3949 { 0x0082, { 0, 10800, 15 } },
3950 { 0x2081, { 0x400, 10800, 22 } },
3951 { 0x2082, { 0x400, 10800, 22 } },
3952 { 0x0081, { 0, 10800, 30 } },
3953 { 0x0082, { 0, 10800, 30 } },
3954 { 0x2081, { 0x400, 10800, 37 } },
3955 { 0x2082, { 0x400, 10800, 37 } },
3956 { 0x0081, { 0, 10800, 45 } },
3957 { 0x0082, { 0, 10800, 45 } },
3958 { 0x2081, { 0x400, 10800, 52 } },
3959 { 0x2082, { 0x400, 10800, 52 } },
3960 { 0x0081, { 0, 10800, 60 } },
3961 { 0x0082, { 0, 10800, 60 } },
3962 { 0x2081, { 0x400, 10800, 67 } },
3963 { 0x2082, { 0x400, 10800, 67 } },
3964 { 0x0081, { 0, 10800, 75 } },
3965 { 0x0082, { 0, 10800, 75 } },
3966 { 0x2081, { 0x400, 10800, 82 } },
3967 { 0x2082, { 0x400, 10800, 82 } },
3968 { 0x0081, { 0, 10800, 90 } },
3969 { 0x0082, { 0, 10800, 90 } },
3970 { 0x2081, { 0x400, 10800, 97 } },
3971 { 0x2082, { 0x400, 10800, 97 } },
3972 { 0x0081, { 0, 10800, 105 } },
3973 { 0x0082, { 0, 10800, 105 } },
3974 { 0x2081, { 0x400, 10800, 112 } },
3975 { 0x2082, { 0x400, 10800, 112 } },
3976 { 0x0081, { 0, 10800, 120 } },
3977 { 0x0082, { 0, 10800, 120 } },
3978 { 0x2081, { 0x400, 10800, 127 } },
3979 { 0x2082, { 0x400, 10800, 127 } },
3980 { 0x0081, { 0, 10800, 135 } },
3981 { 0x0082, { 0, 10800, 135 } },
3982 { 0x2081, { 0x400, 10800, 142 } },
3983 { 0x2082, { 0x400, 10800, 142 } },
3984 { 0x0081, { 0, 10800, 150 } },
3985 { 0x0082, { 0, 10800, 150 } },
3986 { 0x2081, { 0x400, 10800, 157 } },
3987 { 0x2082, { 0x400, 10800, 157 } },
3988 { 0x0081, { 0, 10800, 165 } },
3989 { 0x0082, { 0, 10800, 165 } },
3990 { 0x2081, { 0x400, 10800, 172 } },
3991 { 0x2082, { 0x400, 10800, 172 } },
3992 { 0x0081, { 0, 10800, 180 } },
3993 { 0x0082, { 0, 10800, 180 } },
3994 { 0x2081, { 0x400, 10800, 187 } },
3995 { 0x2082, { 0x400, 10800, 187 } },
3996 { 0x0081, { 0, 10800, 195 } },
3997 { 0x0082, { 0, 10800, 195 } },
3998 { 0x2081, { 0x400, 10800, 202 } },
3999 { 0x2082, { 0x400, 10800, 202 } },
4000 { 0x0081, { 0, 10800, 210 } },
4001 { 0x0082, { 0, 10800, 210 } },
4002 { 0x2081, { 0x400, 10800, 217 } },
4003 { 0x2082, { 0x400, 10800, 217 } },
4004 { 0x0081, { 0, 10800, 225 } },
4005 { 0x0082, { 0, 10800, 225 } },
4006 { 0x2081, { 0x400, 10800, 232 } },
4007 { 0x2082, { 0x400, 10800, 232 } },
4008 { 0x0081, { 0, 10800, 240 } },
4009 { 0x0082, { 0, 10800, 240 } },
4010 { 0x2081, { 0x400, 10800, 247 } },
4011 { 0x2082, { 0x400, 10800, 247 } },
4012 { 0x0081, { 0, 10800, 255 } },
4013 { 0x0082, { 0, 10800, 255 } },
4014 { 0x2081, { 0x400, 10800, 262 } },
4015 { 0x2082, { 0x400, 10800, 262 } },
4016 { 0x0081, { 0, 10800, 270 } },
4017 { 0x0082, { 0, 10800, 270 } },
4018 { 0x2081, { 0x400, 10800, 277 } },
4019 { 0x2082, { 0x400, 10800, 277 } },
4020 { 0x0081, { 0, 10800, 285 } },
4021 { 0x0082, { 0, 10800, 285 } },
4022 { 0x2081, { 0x400, 10800, 292 } },
4023 { 0x2082, { 0x400, 10800, 292 } },
4024 { 0x0081, { 0, 10800, 300 } },
4025 { 0x0082, { 0, 10800, 300 } },
4026 { 0x2081, { 0x400, 10800, 307 } },
4027 { 0x2082, { 0x400, 10800, 307 } },
4028 { 0x0081, { 0, 10800, 315 } },
4029 { 0x0082, { 0, 10800, 315 } },
4030 { 0x2081, { 0x400, 10800, 322 } },
4031 { 0x2082, { 0x400, 10800, 322 } },
4032 { 0x0081, { 0, 10800, 330 } },
4033 { 0x0082, { 0, 10800, 330 } },
4034 { 0x2081, { 0x400, 10800, 337 } },
4035 { 0x2082, { 0x400, 10800, 337 } },
4036 { 0x0081, { 0, 10800, 345 } },
4037 { 0x0082, { 0, 10800, 345 } },
4038 { 0x2081, { 0x400, 10800, 352 } },
4039 { 0x2082, { 0x400, 10800, 352 } }
4041 const SvxMSDffVertPair mso_sptSeal8Vert[] = // adj value 0 -> 10800
4043 { 5 MSO_I, 6 MSO_I }, { 11 MSO_I, 12 MSO_I }, { 17 MSO_I, 18 MSO_I }, { 23 MSO_I, 24 MSO_I },
4044 { 29 MSO_I, 30 MSO_I }, { 35 MSO_I, 36 MSO_I }, { 41 MSO_I, 42 MSO_I }, { 47 MSO_I, 48 MSO_I },
4045 { 53 MSO_I, 54 MSO_I }, { 59 MSO_I, 60 MSO_I }, { 65 MSO_I, 66 MSO_I }, { 71 MSO_I, 72 MSO_I },
4046 { 77 MSO_I, 78 MSO_I }, { 83 MSO_I, 84 MSO_I }, { 89 MSO_I, 90 MSO_I }, { 95 MSO_I, 96 MSO_I },
4047 { 5 MSO_I, 6 MSO_I }
4049 const SvxMSDffTextRectangles mso_sptSealTextRect[] =
4051 { { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
4053 const mso_CustomShape msoSeal8 =
4055 std::span<const SvxMSDffVertPair>(mso_sptSeal8Vert),
4056 nullptr, 0,
4057 std::span<const SvxMSDffCalculationData>(mso_sptSeal24Calc),
4058 const_cast<sal_Int32*>(mso_sptDefault2500),
4059 std::span<const SvxMSDffTextRectangles>(mso_sptSealTextRect),
4060 21600, 21600,
4061 MIN_INT32, MIN_INT32,
4062 std::span<const SvxMSDffVertPair>(),
4063 std::span<const SvxMSDffHandle>(mso_sptSealHandle),
4065 const SvxMSDffVertPair mso_sptSeal16Vert[] = // adj value 0 -> 10800
4067 { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4068 { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4069 { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4070 { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4071 { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4072 { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4073 { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4074 { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4075 { 0x05 MSO_I, 0x06 MSO_I }
4077 const SvxMSDffCalculationData mso_sptSeal16Calc[] =
4079 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0x00
4080 { 0x2081, { 0x400, 10800, 315 } }, // 0x01 ( textframe )
4081 { 0x2082, { 0x400, 10800, 315 } }, // 0x02
4082 { 0x2081, { 0x400, 10800, 135 } }, // 0x03
4083 { 0x2082, { 0x400, 10800, 135 } }, // 0x04
4084 { 0x0081, { 0, 10800, 0 } },
4085 { 0x0082, { 0, 10800, 0 } },
4086 { 0x2081, { 0x400, 10800, 11 } },
4087 { 0x2082, { 0x400, 10800, 11 } },
4088 { 0x0081, { 0, 10800, 22 } },
4089 { 0x0082, { 0, 10800, 22 } },
4090 { 0x2081, { 0x400, 10800, 33 } },
4091 { 0x2082, { 0x400, 10800, 33 } },
4092 { 0x0081, { 0, 10800, 45 } },
4093 { 0x0082, { 0, 10800, 45 } },
4094 { 0x2081, { 0x400, 10800, 56 } },
4095 { 0x2082, { 0x400, 10800, 56 } },
4096 { 0x0081, { 0, 10800, 67 } },
4097 { 0x0082, { 0, 10800, 67 } },
4098 { 0x2081, { 0x400, 10800, 78 } },
4099 { 0x2082, { 0x400, 10800, 78 } },
4100 { 0x0081, { 0, 10800, 90 } },
4101 { 0x0082, { 0, 10800, 90 } },
4102 { 0x2081, { 0x400, 10800, 101 } },
4103 { 0x2082, { 0x400, 10800, 101 } },
4104 { 0x0081, { 0, 10800, 112 } },
4105 { 0x0082, { 0, 10800, 112 } },
4106 { 0x2081, { 0x400, 10800, 123 } },
4107 { 0x2082, { 0x400, 10800, 123 } },
4108 { 0x0081, { 0, 10800, 135 } },
4109 { 0x0082, { 0, 10800, 135 } },
4110 { 0x2081, { 0x400, 10800, 146 } },
4111 { 0x2082, { 0x400, 10800, 146 } },
4112 { 0x0081, { 0, 10800, 157 } },
4113 { 0x0082, { 0, 10800, 157 } },
4114 { 0x2081, { 0x400, 10800, 168 } },
4115 { 0x2082, { 0x400, 10800, 168 } },
4116 { 0x0081, { 0, 10800, 180 } },
4117 { 0x0082, { 0, 10800, 180 } },
4118 { 0x2081, { 0x400, 10800, 191 } },
4119 { 0x2082, { 0x400, 10800, 191 } },
4120 { 0x0081, { 0, 10800, 202 } },
4121 { 0x0082, { 0, 10800, 202 } },
4122 { 0x2081, { 0x400, 10800, 213 } },
4123 { 0x2082, { 0x400, 10800, 213 } },
4124 { 0x0081, { 0, 10800, 225 } },
4125 { 0x0082, { 0, 10800, 225 } },
4126 { 0x2081, { 0x400, 10800, 236 } },
4127 { 0x2082, { 0x400, 10800, 236 } },
4128 { 0x0081, { 0, 10800, 247 } },
4129 { 0x0082, { 0, 10800, 247 } },
4130 { 0x2081, { 0x400, 10800, 258 } },
4131 { 0x2082, { 0x400, 10800, 258 } },
4132 { 0x0081, { 0, 10800, 270 } },
4133 { 0x0082, { 0, 10800, 270 } },
4134 { 0x2081, { 0x400, 10800, 281 } },
4135 { 0x2082, { 0x400, 10800, 281 } },
4136 { 0x0081, { 0, 10800, 292 } },
4137 { 0x0082, { 0, 10800, 292 } },
4138 { 0x2081, { 0x400, 10800, 303 } },
4139 { 0x2082, { 0x400, 10800, 303 } },
4140 { 0x0081, { 0, 10800, 315 } },
4141 { 0x0082, { 0, 10800, 315 } },
4142 { 0x2081, { 0x400, 10800, 326 } },
4143 { 0x2082, { 0x400, 10800, 326 } },
4144 { 0x0081, { 0, 10800, 337 } },
4145 { 0x0082, { 0, 10800, 337 } },
4146 { 0x2081, { 0x400, 10800, 348 } },
4147 { 0x2082, { 0x400, 10800, 348 } }
4149 const mso_CustomShape msoSeal16 =
4151 std::span<const SvxMSDffVertPair>(mso_sptSeal16Vert),
4152 nullptr, 0,
4153 std::span<const SvxMSDffCalculationData>(mso_sptSeal16Calc),
4154 const_cast<sal_Int32*>(mso_sptDefault2500),
4155 std::span<const SvxMSDffTextRectangles>(mso_sptSealTextRect),
4156 21600, 21600,
4157 MIN_INT32, MIN_INT32,
4158 std::span<const SvxMSDffVertPair>(),
4159 std::span<const SvxMSDffHandle>(mso_sptSealHandle),
4161 const SvxMSDffVertPair mso_sptSeal24Vert[] =
4163 { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4164 { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4165 { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4166 { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4167 { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4168 { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4169 { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4170 { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4171 { 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4172 { 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4173 { 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4174 { 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4175 { 0x05 MSO_I, 0x06 MSO_I }
4177 const mso_CustomShape msoSeal24 =
4179 std::span<const SvxMSDffVertPair>(mso_sptSeal24Vert),
4180 nullptr, 0,
4181 std::span<const SvxMSDffCalculationData>(mso_sptSeal24Calc),
4182 const_cast<sal_Int32*>(mso_sptDefault2500),
4183 std::span<const SvxMSDffTextRectangles>(mso_sptSealTextRect),
4184 21600, 21600,
4185 MIN_INT32, MIN_INT32,
4186 std::span<const SvxMSDffVertPair>(),
4187 std::span<const SvxMSDffHandle>(mso_sptSealHandle),
4189 const SvxMSDffCalculationData mso_sptSeal32Calc[] =
4191 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0x00
4192 { 0x2081, { 0x400, 10800, 315 } }, // 0x01 ( textframe )
4193 { 0x2082, { 0x400, 10800, 315 } }, // 0x02
4194 { 0x2081, { 0x400, 10800, 135 } }, // 0x03
4195 { 0x2082, { 0x400, 10800, 135 } }, // 0x04
4196 { 0x0081, { 0, 10800, 0 } },
4197 { 0x0082, { 0, 10800, 0 } },
4198 { 0x2081, { 0x400, 10800, 5 } },
4199 { 0x2082, { 0x400, 10800, 5 } },
4200 { 0x0081, { 0, 10800, 11 } },
4201 { 0x0082, { 0, 10800, 11 } },
4202 { 0x2081, { 0x400, 10800, 16 } },
4203 { 0x2082, { 0x400, 10800, 16 } },
4204 { 0x0081, { 0, 10800, 22 } },
4205 { 0x0082, { 0, 10800, 22 } },
4206 { 0x2081, { 0x400, 10800, 28 } },
4207 { 0x2082, { 0x400, 10800, 28 } },
4208 { 0x0081, { 0, 10800, 33 } },
4209 { 0x0082, { 0, 10800, 33 } },
4210 { 0x2081, { 0x400, 10800, 39 } },
4211 { 0x2082, { 0x400, 10800, 39 } },
4212 { 0x0081, { 0, 10800, 45 } },
4213 { 0x0082, { 0, 10800, 45 } },
4214 { 0x2081, { 0x400, 10800, 50 } },
4215 { 0x2082, { 0x400, 10800, 50 } },
4216 { 0x0081, { 0, 10800, 56 } },
4217 { 0x0082, { 0, 10800, 56 } },
4218 { 0x2081, { 0x400, 10800, 61 } },
4219 { 0x2082, { 0x400, 10800, 61 } },
4220 { 0x0081, { 0, 10800, 67 } },
4221 { 0x0082, { 0, 10800, 67 } },
4222 { 0x2081, { 0x400, 10800, 73 } },
4223 { 0x2082, { 0x400, 10800, 73 } },
4224 { 0x0081, { 0, 10800, 78 } },
4225 { 0x0082, { 0, 10800, 78 } },
4226 { 0x2081, { 0x400, 10800, 84 } },
4227 { 0x2082, { 0x400, 10800, 84 } },
4228 { 0x0081, { 0, 10800, 90 } },
4229 { 0x0082, { 0, 10800, 90 } },
4230 { 0x2081, { 0x400, 10800, 95 } },
4231 { 0x2082, { 0x400, 10800, 95 } },
4232 { 0x0081, { 0, 10800, 101 } },
4233 { 0x0082, { 0, 10800, 101 } },
4234 { 0x2081, { 0x400, 10800, 106 } },
4235 { 0x2082, { 0x400, 10800, 106 } },
4236 { 0x0081, { 0, 10800, 112 } },
4237 { 0x0082, { 0, 10800, 112 } },
4238 { 0x2081, { 0x400, 10800, 118 } },
4239 { 0x2082, { 0x400, 10800, 118 } },
4240 { 0x0081, { 0, 10800, 123 } },
4241 { 0x0082, { 0, 10800, 123 } },
4242 { 0x2081, { 0x400, 10800, 129 } },
4243 { 0x2082, { 0x400, 10800, 129 } },
4244 { 0x0081, { 0, 10800, 135 } },
4245 { 0x0082, { 0, 10800, 135 } },
4246 { 0x2081, { 0x400, 10800, 140 } },
4247 { 0x2082, { 0x400, 10800, 140 } },
4248 { 0x0081, { 0, 10800, 146 } },
4249 { 0x0082, { 0, 10800, 146 } },
4250 { 0x2081, { 0x400, 10800, 151 } },
4251 { 0x2082, { 0x400, 10800, 151 } },
4252 { 0x0081, { 0, 10800, 157 } },
4253 { 0x0082, { 0, 10800, 157 } },
4254 { 0x2081, { 0x400, 10800, 163 } },
4255 { 0x2082, { 0x400, 10800, 163 } },
4256 { 0x0081, { 0, 10800, 168 } },
4257 { 0x0082, { 0, 10800, 168 } },
4258 { 0x2081, { 0x400, 10800, 174 } },
4259 { 0x2082, { 0x400, 10800, 174 } },
4260 { 0x0081, { 0, 10800, 180 } },
4261 { 0x0082, { 0, 10800, 180 } },
4262 { 0x2081, { 0x400, 10800, 185 } },
4263 { 0x2082, { 0x400, 10800, 185 } },
4264 { 0x0081, { 0, 10800, 191 } },
4265 { 0x0082, { 0, 10800, 191 } },
4266 { 0x2081, { 0x400, 10800, 196 } },
4267 { 0x2082, { 0x400, 10800, 196 } },
4268 { 0x0081, { 0, 10800, 202 } },
4269 { 0x0082, { 0, 10800, 202 } },
4270 { 0x2081, { 0x400, 10800, 208 } },
4271 { 0x2082, { 0x400, 10800, 208 } },
4272 { 0x0081, { 0, 10800, 213 } },
4273 { 0x0082, { 0, 10800, 213 } },
4274 { 0x2081, { 0x400, 10800, 219 } },
4275 { 0x2082, { 0x400, 10800, 219 } },
4276 { 0x0081, { 0, 10800, 225 } },
4277 { 0x0082, { 0, 10800, 225 } },
4278 { 0x2081, { 0x400, 10800, 230 } },
4279 { 0x2082, { 0x400, 10800, 230 } },
4280 { 0x0081, { 0, 10800, 236 } },
4281 { 0x0082, { 0, 10800, 236 } },
4282 { 0x2081, { 0x400, 10800, 241 } },
4283 { 0x2082, { 0x400, 10800, 241 } },
4284 { 0x0081, { 0, 10800, 247 } },
4285 { 0x0082, { 0, 10800, 247 } },
4286 { 0x2081, { 0x400, 10800, 253 } },
4287 { 0x2082, { 0x400, 10800, 253 } },
4288 { 0x0081, { 0, 10800, 258 } },
4289 { 0x0082, { 0, 10800, 258 } },
4290 { 0x2081, { 0x400, 10800, 264 } },
4291 { 0x2082, { 0x400, 10800, 264 } },
4292 { 0x0081, { 0, 10800, 270 } },
4293 { 0x0082, { 0, 10800, 270 } },
4294 { 0x2081, { 0x400, 10800, 275 } },
4295 { 0x2082, { 0x400, 10800, 275 } },
4296 { 0x0081, { 0, 10800, 281 } },
4297 { 0x0082, { 0, 10800, 281 } },
4298 { 0x2081, { 0x400, 10800, 286 } },
4299 { 0x2082, { 0x400, 10800, 286 } },
4300 { 0x0081, { 0, 10800, 292 } },
4301 { 0x0082, { 0, 10800, 292 } },
4302 { 0x2081, { 0x400, 10800, 298 } },
4303 { 0x2082, { 0x400, 10800, 298 } },
4304 { 0x0081, { 0, 10800, 303 } },
4305 { 0x0082, { 0, 10800, 303 } },
4306 { 0x2081, { 0x400, 10800, 309 } },
4307 { 0x2082, { 0x400, 10800, 309 } },
4308 { 0x0081, { 0, 10800, 315 } },
4309 { 0x0082, { 0, 10800, 315 } },
4310 { 0x2081, { 0x400, 10800, 320 } },
4311 { 0x2082, { 0x400, 10800, 320 } },
4312 { 0x0081, { 0, 10800, 326 } },
4313 { 0x0082, { 0, 10800, 326 } },
4314 { 0x2081, { 0x400, 10800, 331 } },
4315 { 0x2082, { 0x400, 10800, 331 } },
4316 { 0x0081, { 0, 10800, 337 } },
4317 { 0x0082, { 0, 10800, 337 } },
4318 { 0x2081, { 0x400, 10800, 343 } },
4319 { 0x2082, { 0x400, 10800, 343 } },
4320 { 0x0081, { 0, 10800, 348 } },
4321 { 0x0082, { 0, 10800, 348 } },
4322 { 0x2081, { 0x400, 10800, 354 } },
4323 { 0x2082, { 0x400, 10800, 354 } }
4325 const SvxMSDffVertPair mso_sptSeal32Vert[] =
4327 { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4328 { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4329 { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4330 { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4331 { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4332 { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4333 { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4334 { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4335 { 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4336 { 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4337 { 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4338 { 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4339 { 0x65 MSO_I, 0x66 MSO_I }, { 0x67 MSO_I, 0x68 MSO_I }, { 0x69 MSO_I, 0x6a MSO_I }, { 0x6b MSO_I, 0x6c MSO_I },
4340 { 0x6d MSO_I, 0x6e MSO_I }, { 0x6f MSO_I, 0x70 MSO_I }, { 0x71 MSO_I, 0x72 MSO_I }, { 0x73 MSO_I, 0x74 MSO_I },
4341 { 0x75 MSO_I, 0x76 MSO_I }, { 0x77 MSO_I, 0x78 MSO_I }, { 0x79 MSO_I, 0x7a MSO_I }, { 0x7b MSO_I, 0x7c MSO_I },
4342 { 0x7d MSO_I, 0x7e MSO_I }, { 0x7f MSO_I, 0x80 MSO_I }, { 0x81 MSO_I, 0x82 MSO_I }, { 0x83 MSO_I, 0x84 MSO_I },
4343 { 0x05 MSO_I, 0x06 MSO_I }
4345 const mso_CustomShape msoSeal32 =
4347 std::span<const SvxMSDffVertPair>(mso_sptSeal32Vert),
4348 nullptr, 0,
4349 std::span<const SvxMSDffCalculationData>(mso_sptSeal32Calc),
4350 const_cast<sal_Int32*>(mso_sptDefault2500),
4351 std::span<const SvxMSDffTextRectangles>(mso_sptSealTextRect),
4352 21600, 21600,
4353 MIN_INT32, MIN_INT32,
4354 std::span<const SvxMSDffVertPair>(),
4355 std::span<const SvxMSDffHandle>(mso_sptSealHandle),
4358 const SvxMSDffVertPair mso_sptRibbon2Vert[] = // adjustment1 : x 2700 - 8100 def 5400
4359 { // adjustment2 : y 14400 - 21600 def 18900
4360 { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I }, // pp
4361 { 12 MSO_I, 14 MSO_I }, { 15 MSO_I, 21600 }, { 16 MSO_I, 21600 }, // ccp
4362 { 0, 21600 }, { 2750, 7 MSO_I }, { 0, 2 MSO_I }, { 0 MSO_I, 2 MSO_I }, // pppp
4363 { 0 MSO_I, 4 MSO_I }, // p
4364 { 0 MSO_I, 5 MSO_I }, { 10 MSO_I, 0 }, { 11 MSO_I, 0 }, // ccp
4365 { 17 MSO_I, 0 }, // p
4366 { 18 MSO_I, 0 }, { 19 MSO_I, 5 MSO_I }, { 19 MSO_I, 4 MSO_I }, // ccp
4367 { 19 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }, { 18850, 7 MSO_I }, { 21600, 21600 }, // pppp
4368 { 20 MSO_I, 21600 }, // p
4369 { 21 MSO_I, 21600 }, { 22 MSO_I, 14 MSO_I }, { 22 MSO_I, 13 MSO_I }, // ccp
4370 { 22 MSO_I, 1 MSO_I }, { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I }, // ppp
4371 { 12 MSO_I, 23 MSO_I }, { 15 MSO_I, 24 MSO_I }, { 16 MSO_I, 24 MSO_I }, // ccp
4372 { 11 MSO_I, 24 MSO_I }, // p
4373 { 10 MSO_I, 24 MSO_I }, { 0 MSO_I, 26 MSO_I }, { 0 MSO_I, 25 MSO_I }, // ccp
4374 { 0 MSO_I, 27 MSO_I }, { 10 MSO_I, 1 MSO_I }, { 11 MSO_I, 1 MSO_I }, // ccp
4376 { 22 MSO_I, 1 MSO_I }, { 22 MSO_I, 13 MSO_I }, // pp
4377 { 22 MSO_I, 23 MSO_I }, { 21 MSO_I, 24 MSO_I }, { 20 MSO_I, 24 MSO_I }, // ccp
4378 { 17 MSO_I, 24 MSO_I }, // p
4379 { 18 MSO_I, 24 MSO_I }, { 19 MSO_I, 26 MSO_I }, { 19 MSO_I, 25 MSO_I }, // ccp
4380 { 19 MSO_I, 27 MSO_I }, { 18 MSO_I, 1 MSO_I }, { 17 MSO_I, 1 MSO_I }, // ccp
4382 { 0 MSO_I, 25 MSO_I }, { 0 MSO_I, 2 MSO_I }, // pp
4384 { 19 MSO_I, 25 MSO_I }, { 19 MSO_I, 2 MSO_I } // pp
4386 const sal_uInt16 mso_sptRibbon2Segm[] =
4388 0x4000, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x6001, 0x8000,
4389 0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4390 0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4391 0x4000, 0x0001, 0x8000,
4392 0x4000, 0x0001, 0x8000
4394 const SvxMSDffCalculationData mso_sptRibbon2Calc[] =
4396 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 00
4397 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 01
4398 { 0x8000, { 21600, 0, 0x401 } }, // 02
4399 { 0x2001, { 0x402, 1, 2 } }, // 03
4400 { 0x2001, { 0x403, 1, 2 } }, // 04
4401 { 0x2001, { 0x404, 1, 2 } }, // 05
4402 { 0x2001, { 0x401, 1, 2 } }, // 06
4403 { 0x8000, { 21600, 0, 0x406 } }, // 07
4404 { 0x0000, { 420, 0, 0 } }, // 08
4405 { 0x2001, { 0x408, 2, 1 } }, // 09
4406 { 0x6000, { 0x400, 0x408, 0 } }, // 10
4407 { 0x6000, { 0x400, 0x409, 0 } }, // 11
4408 { 0x2000, { 0x400, 2700, 0 } }, // 12
4409 { 0x8000, { 21600, 0, 0x404 } }, // 13
4410 { 0x8000, { 21600, 0, 0x405 } }, // 14
4411 { 0xa000, { 0x40c, 0, 0x408 } }, // 15
4412 { 0xa000, { 0x40c, 0, 0x409 } }, // 16
4414 { 0x8000, { 21600, 0, 0x40b } }, // 17
4415 { 0x8000, { 21600, 0, 0x40a } }, // 18
4416 { 0x8000, { 21600, 0, 0x400 } }, // 19
4417 { 0x8000, { 21600, 0, 0x410 } }, // 20
4418 { 0x8000, { 21600, 0, 0x40f } }, // 21
4419 { 0x8000, { 21600, 0, 0x40c } }, // 22
4421 { 0xa000, { 0x40d, 0, 0x405 } }, // 23
4422 { 0x6000, { 0x401, 0x403, 0 } }, // 24
4423 { 0x6000, { 0x401, 0x404, 0 } }, // 25
4424 { 0x6000, { 0x419, 0x405, 0 } }, // 26
4425 { 0xa000, { 0x419, 0, 0x405 } } // 27
4427 const sal_Int32 mso_sptRibbon2Default[] =
4429 2, 5400, 18900
4431 const SvxMSDffTextRectangles mso_sptRibbon2TextRect[] =
4433 { { 0 MSO_I, 0 }, { 19 MSO_I, 1 MSO_I } }
4435 const SvxMSDffHandle mso_sptRibbon2Handle[] =
4437 { SvxMSDffHandleFlags::RANGE,
4438 0x100, 0, 10800, 10800, 2700, 8100, MIN_INT32, 0x7fffffff },
4439 { SvxMSDffHandleFlags::RANGE,
4440 10800, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, 14400, 21600 }
4442 const mso_CustomShape msoRibbon2 =
4444 std::span<const SvxMSDffVertPair>(mso_sptRibbon2Vert),
4445 const_cast<sal_uInt16*>(mso_sptRibbon2Segm), sizeof( mso_sptRibbon2Segm ) >> 1,
4446 std::span<const SvxMSDffCalculationData>(mso_sptRibbon2Calc),
4447 const_cast<sal_Int32*>(mso_sptRibbon2Default),
4448 std::span<const SvxMSDffTextRectangles>(mso_sptRibbon2TextRect),
4449 21600, 21600,
4450 MIN_INT32, MIN_INT32,
4451 std::span<const SvxMSDffVertPair>(),
4452 std::span<const SvxMSDffHandle>(mso_sptRibbon2Handle),
4455 const SvxMSDffVertPair mso_sptRibbonVert[] =
4457 { 0, 0 }, { 3 MSO_I, 0 },
4458 { 4 MSO_I, 11 MSO_I }, { 4 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I }, { 5 MSO_I, 11 MSO_I },
4459 { 6 MSO_I, 0 }, { 21600, 0 }, { 18 MSO_I, 14 MSO_I }, { 21600, 15 MSO_I }, { 9 MSO_I, 15 MSO_I }, { 9 MSO_I, 16 MSO_I }, { 8 MSO_I, 21600 }, { 1 MSO_I, 21600 },
4460 { 0 MSO_I, 16 MSO_I }, { 0 MSO_I, 15 MSO_I }, { 0, 15 MSO_I }, { 2700, 14 MSO_I },
4462 { 4 MSO_I, 11 MSO_I },
4463 { 3 MSO_I, 12 MSO_I }, { 1 MSO_I, 12 MSO_I },
4464 { 0 MSO_I, 13 MSO_I }, { 1 MSO_I, 10 MSO_I }, { 4 MSO_I, 10 MSO_I },
4465 { 5 MSO_I, 11 MSO_I },
4466 { 6 MSO_I, 12 MSO_I }, { 8 MSO_I, 12 MSO_I },
4467 { 9 MSO_I, 13 MSO_I }, { 8 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I },
4468 { 0 MSO_I, 13 MSO_I },
4469 { 0 MSO_I, 15 MSO_I },
4470 { 9 MSO_I, 13 MSO_I },
4471 { 9 MSO_I, 15 MSO_I }
4473 const sal_uInt16 mso_sptRibbonSegm[] =
4475 0x4000, 0x0001, 0xa701, 0x0003, 0xa801, 0x0005, 0xa801, 0x0001, 0xa701, 0x0003, 0x6000, 0x8000,
4476 0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4477 0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4478 0x4000, 0xaa00, 0x0001, 0x8000,
4479 0x4000, 0xaa00, 0x0001, 0x8000
4481 const SvxMSDffCalculationData mso_sptRibbonCalc[] =
4483 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 00
4484 { 0x2000, { 0x400, 675, 0 } }, // 01
4485 { 0x2000, { 0x401, 675, 0 } }, // 02
4486 { 0x2000, { 0x402, 675, 0 } }, // 03
4487 { 0x2000, { 0x403, 675, 0 } }, // 04
4488 { 0x8000, { 21600, 0, 0x404 } }, // 05
4489 { 0x8000, { 21600, 0, 0x403 } }, // 06
4490 { 0x8000, { 21600, 0, 0x402 } }, // 07
4491 { 0x8000, { 21600, 0, 0x401 } }, // 08
4492 { 0x8000, { 21600, 0, 0x400 } }, // 09
4493 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 10
4494 { 0x2001, { 0x40a, 1, 4 } }, // 11
4495 { 0x2001, { 0x40b, 2, 1 } }, // 12
4496 { 0x2001, { 0x40b, 3, 1 } }, // 13
4497 { 0x8000, { 10800, 0, 0x40c } }, // 14
4498 { 0x8000, { 21600, 0, 0x40a } }, // 15
4499 { 0x8000, { 21600, 0, 0x40b } }, // 16
4500 { 0x0001, { 21600, 1, 2 } }, // 17
4501 { 0x0000, { 21600, 0, 2700 } }, // 18
4502 { 0x2000, { 0x411, 0, 2700 } } // 19
4504 const sal_Int32 mso_sptRibbonDefault[] =
4506 2, 5400, 2700
4508 const SvxMSDffTextRectangles mso_sptRibbonTextRect[] =
4510 { { 0 MSO_I, 10 MSO_I }, { 9 MSO_I, 21600 } }
4512 const SvxMSDffVertPair mso_sptRibbonGluePoints[] =
4514 { 17 MSO_I, 10 MSO_I }, { 2700, 14 MSO_I }, { 17 MSO_I, 21600 }, { 18 MSO_I, 14 MSO_I }
4516 const SvxMSDffHandle mso_sptRibbonHandle[] =
4518 { SvxMSDffHandleFlags::RANGE,
4519 0x100, 0, 10800, 10800, 2700, 8100, MIN_INT32, 0x7fffffff },
4520 { SvxMSDffHandleFlags::RANGE,
4521 10800, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 7200 }
4523 const mso_CustomShape msoRibbon =
4525 std::span<const SvxMSDffVertPair>(mso_sptRibbonVert),
4526 const_cast<sal_uInt16*>(mso_sptRibbonSegm), sizeof( mso_sptRibbonSegm ) >> 1,
4527 std::span<const SvxMSDffCalculationData>(mso_sptRibbonCalc),
4528 const_cast<sal_Int32*>(mso_sptRibbonDefault),
4529 std::span<const SvxMSDffTextRectangles>(mso_sptRibbonTextRect),
4530 21600, 21600,
4531 MIN_INT32, MIN_INT32,
4532 std::span<const SvxMSDffVertPair>(mso_sptRibbonGluePoints),
4533 std::span<const SvxMSDffHandle>(mso_sptRibbonHandle),
4535 //msosptEllipseRibbon
4536 //svg path = ar@9@38@8@37,0@27@0@26@9@13@8@4@0@25@22@25@9@38@8@37@22@26@3@27l@7@40@3,wa@9@35@8@10@3,0@21@33@9@36@8@1@21@31@20@31@9@35@8@10@20@33,,l@5@40xewr@9@36@8@1@20@31@0@32nfl@20@33ear@9@36@8@1@21@31@22@32nfl@21@33em@0@26nfl@0@32em@22@26nfl@22@32e
4537 //odp path = A ?f9 ?f38 ?f8 ?f37 0 ?f27 ?f0 ?f26 ?f9 ?f13 ?f8 ?f4 ?f0 ?f25 ?f22 ?f25 ?f9 ?f38 ?f8 ?f37 ?f22 ?f26 ?f3 ?f27 L ?f7 ?f40 ?f3 0 W ?f9 ?f35 ?f8 ?f10 ?f3 0 ?f21 ?f33 ?f9 ?f36 ?f8 ?f1 ?f21 ?f31 ?f20 ?f31 ?f9 ?f35 ?f8 ?f10 ?f20 ?f33 0 0 L ?f5 ?f40 Z N W ?f9 ?f36 ?f8 ?f1 ?f20 ?f31 ?f0 ?f32 F L ?f20 ?f33 N A ?f9 ?f36 ?f8 ?f1 ?f21 ?f31 ?f22 ?f32 F L ?f21 ?f33 N M ?f0 ?f26 F L ?f0 ?f32 N M ?f22 ?f26 F L ?f22 ?f32 N
4538 const SvxMSDffVertPair mso_sptEllipseRibbonVert[] =
4540 { 9 MSO_I , 38 MSO_I },
4541 { 8 MSO_I , 37 MSO_I },
4542 { 0 , 27 MSO_I },
4543 { 0 MSO_I , 26 MSO_I },
4544 { 9 MSO_I , 13 MSO_I },
4545 { 8 MSO_I , 4 MSO_I },
4546 { 0 MSO_I , 25 MSO_I },
4547 { 22 MSO_I , 25 MSO_I },
4548 { 9 MSO_I , 38 MSO_I },
4549 { 8 MSO_I , 37 MSO_I },
4550 { 22 MSO_I , 26 MSO_I },
4551 { 3 MSO_I , 27 MSO_I },
4552 { 7 MSO_I , 40 MSO_I },
4553 { 3 MSO_I , 0 },
4554 { 9 MSO_I , 35 MSO_I },
4555 { 8 MSO_I , 10 MSO_I },
4556 { 3 MSO_I , 0 },
4557 { 21 MSO_I , 33 MSO_I },
4558 { 9 MSO_I , 36 MSO_I },
4559 { 8 MSO_I , 1 MSO_I },
4560 { 21 MSO_I , 31 MSO_I },
4561 { 20 MSO_I , 31 MSO_I },
4562 { 9 MSO_I , 35 MSO_I },
4563 { 8 MSO_I , 10 MSO_I },
4564 { 20 MSO_I , 33 MSO_I },
4565 { 0 , 0 },
4566 { 5 MSO_I , 40 MSO_I },
4567 { 9 MSO_I , 36 MSO_I },
4568 { 8 MSO_I , 1 MSO_I },
4569 { 20 MSO_I , 31 MSO_I },
4570 { 0 MSO_I , 32 MSO_I },
4571 { 20 MSO_I , 33 MSO_I },
4572 { 9 MSO_I , 36 MSO_I },
4573 { 8 MSO_I , 1 MSO_I },
4574 { 21 MSO_I , 31 MSO_I },
4575 { 22 MSO_I , 32 MSO_I },
4576 { 21 MSO_I , 33 MSO_I },
4577 { 0 MSO_I , 26 MSO_I },
4578 { 0 MSO_I , 32 MSO_I },
4579 { 22 MSO_I , 26 MSO_I },
4580 { 22 MSO_I , 32 MSO_I }
4583 const sal_uInt16 mso_sptEllipseRibbonSegm[] =
4585 0xa30c /*ar*/,0x0002/*l*/,0xa50c/*wa*/,0x0001/*l*/,
4586 0x6001/*x*/, 0x8000/*e*/,0xa504/*wr*/,0xaa00/*nf*/,
4587 0x0001/*l*/, 0x8000/*e*/,0xa304/*ar*/,0xaa00/*nf*/,
4588 0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
4589 0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
4590 0x0001/*l*/, 0x8000/*e*/
4593 const SvxMSDffCalculationData mso_sptEllipseRibbonCalc[] =
4595 { 0x2000 , { DFF_Prop_adjustValue , 0 , 0 } }, //val #0
4596 { 0x2000 , { DFF_Prop_adjust2Value , 0 , 0 } }, //val #1
4597 { 0x2000 , { DFF_Prop_adjust3Value , 0 , 0 } }, //val #2
4598 { 0x2000 , { DFF_Prop_geoRight , 0 , 0 } }, //val width
4599 { 0x2000 , { DFF_Prop_geoBottom , 0 , 0 } }, //val height
4600 { 0x2001 , { DFF_Prop_geoRight , 1 , 8 } }, //prod width 1 8
4601 { 0x2001 , { DFF_Prop_geoRight , 1 , 2 } }, //prod width 1 2
4602 { 0x2001 , { DFF_Prop_geoRight , 7 , 8 } }, //prod width 7 8
4603 { 0x2001 , { DFF_Prop_geoRight , 3 , 2 } }, //prod width 3 2
4604 { 0x8000 , { 0 , 0 , 0x406 } }, //sum 0 0 @6
4605 { 0xa000 , { DFF_Prop_geoBottom , 0 , DFF_Prop_adjust3Value } }, //sum height 0 #2
4606 { 0x2001 , { 0x40a , 30573 , 4096 } }, //prod @10 30573 4096
4607 { 0x2001 , { 0x40b , 2 , 1 } }, //prod @11 2 1
4608 { 0xa000 , { DFF_Prop_geoBottom , 0 , 0x40c } }, //sum height 0 @12
4609 { 0x6000 , { 0x40b , DFF_Prop_adjust3Value , 0 } }, //sum @11 #2 0
4610 { 0xe000 , { 0x40b , DFF_Prop_geoBottom , DFF_Prop_adjust2Value } }, //sum @11 height #1
4611 { 0xa000 , { DFF_Prop_geoBottom , 0 , DFF_Prop_adjust2Value } }, //sum height 0 #1
4612 { 0x2001 , { 0x410 , 1 , 2 } }, //prod @16 1 2
4613 { 0x6000 , { 0x40b , 0x411 , 0 } }, //sum @11 @17 0
4614 { 0xe000 , { 0x40e , DFF_Prop_adjust2Value , DFF_Prop_geoBottom } }, //sum @14 #1 height
4615 { 0x6000 , { DFF_Prop_adjustValue , 0x405 , 0 } }, //sum #0 @5 0
4616 { 0xa000 , { DFF_Prop_geoRight , 0 , 0x414 } }, //sum width 0 @20
4617 { 0xa000 , { DFF_Prop_geoRight , 0 , DFF_Prop_adjustValue } }, //sum width 0 #0
4618 { 0xa000 , { 0x406 , 0 , DFF_Prop_adjustValue } }, //sum @6 0 #0
4619 { 0xe00f , { 0x417 , DFF_Prop_geoRight , 0x40b } }, //ellipse @23 width @11
4620 { 0xe000 , { 0x418 , DFF_Prop_geoBottom , 0x40b } }, //sum @24 height @11
4621 { 0xe000 , { 0x419 , 0x40b , 0x413 } }, //sum @25 @11 @19
4622 { 0xe000 , { DFF_Prop_adjust3Value , 0x40b , 0x413 } }, //sum #2 @11 @19
4623 { 0x2001 , { 0x40b , 2391 , 32768 } }, //prod @11 2391 32768
4624 { 0xa000 , { 0x406 , 0 , 0x414 } }, //sum @6 0 @20
4625 { 0xe00f , { 0x41d , DFF_Prop_geoRight , 0x40b } }, //ellipse @29 width @11
4626 { 0xe000 , { DFF_Prop_adjust2Value , 0x41e , 0x40b } }, //sum #1 @30 @11
4627 { 0xe000 , { 0x419 , DFF_Prop_adjust2Value , DFF_Prop_geoBottom } }, //sum @25 #1 height
4628 { 0xe000 , { DFF_Prop_geoBottom , 0x41e , 0x40e } }, //sum height @30 @14
4629 { 0x6000 , { 0x40b , 0x40e , 0 } }, //sum @11 @14 0
4630 { 0xa000 , { DFF_Prop_geoBottom , 0 , 0x422 } }, //sum height 0 @34
4631 { 0xe000 , { 0x423 , 0x413 , 0x40b } }, //sum @35 @19 @11
4632 { 0xe000 , { 0x40a , 0x40f , 0x40b } }, //sum @10 @15 @11
4633 { 0xe000 , { 0x423 , 0x40f , 0x40b } }, //sum @35 @15 @11
4634 { 0xe000 , { 0x41c , 0x40e , 0x412 } }, //sum @28 @14 @18
4635 { 0xa000 , { DFF_Prop_geoBottom , 0 , 0x427 } }, //sum height 0 @39
4636 { 0xa000 , { 0x413 , 0 , 0x412 } }, //sum @19 0 @18
4637 { 0x2001 , { 0x429 , 2 , 3 } }, //prod @41 2 3
4638 { 0xa000 , { DFF_Prop_adjust2Value , 0 , 0x42a } }, //sum #1 0 @42
4639 { 0xa000 , { DFF_Prop_adjust3Value , 0 , 0x42a } }, //sum #2 0 @42
4640 { 0x2004 , { 0x42c , 20925 , 0 } }, //min @44 20925
4641 { 0x2001 , { DFF_Prop_geoRight , 3 , 8 } }, //prod width 3 8
4642 { 0x2000 , { 0x42e , 0 , 4 } }, //sum @46 0 4
4645 const SvxMSDffTextRectangles mso_sptEllipseRibbonTextRect[] =
4646 {//@0,@1,@22,@25
4647 { { 0 MSO_I, 1 MSO_I }, { 22 MSO_I, 25 MSO_I } }
4650 const sal_Int32 mso_sptEllipseRibbonDefault[] =
4652 3,5400,5400,18900
4655 const SvxMSDffHandle mso_sptEllipseRibbonHandle[] =
4657 //position="#0,bottomRight" xrange="@5,@47
4658 //position="center,#1" yrange="@10,@43
4659 //position="topLeft,#2" yrange="@27,@45
4660 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL| SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
4661 0x100, 21600, 0, 0, 0x8/*5+3*/, 0x32/*47+3*/, MIN_INT32, 0x7fffffff },
4662 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
4663 10800, 0x101, 0, 0, MIN_INT32, 0x7fffffff,0xd/*10+3*/, 0x2e /*43+3*/ },
4664 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
4665 0, 0x102, 0, 0, MIN_INT32, 0x7fffffff,0x1e/*27+3*/, 0x30 /*45+3*/ }
4668 const mso_CustomShape msosptEllipseRibbon =
4670 std::span<const SvxMSDffVertPair>(mso_sptEllipseRibbonVert),
4671 const_cast<sal_uInt16*>(mso_sptEllipseRibbonSegm), sizeof( mso_sptEllipseRibbonSegm ) >> 1,
4672 std::span<const SvxMSDffCalculationData>(mso_sptEllipseRibbonCalc),
4673 const_cast<sal_Int32*>(mso_sptEllipseRibbonDefault),
4674 std::span<const SvxMSDffTextRectangles>(mso_sptEllipseRibbonTextRect),
4675 21600, 21600,
4676 MIN_INT32, MIN_INT32,
4677 std::span<const SvxMSDffVertPair>(),
4678 std::span<const SvxMSDffHandle>(mso_sptEllipseRibbonHandle),
4681 //msosptEllipseRibbon2
4682 //svg path = wr@9@34@8@35,0@24@0@23@9,0@8@11@0@22@19@22@9@34@8@35@19@23@3@24l@7@36@3@4at@9@31@8@32@3@4@18@30@9@1@8@33@18@28@17@28@9@31@8@32@17@30,0@4l@5@36xear@9@1@8@33@17@28@0@29nfl@17@30ewr@9@1@8@33@18@28@19@29nfl@18@30em@0@23nfl@0@29em@19@23nfl@19@29e
4683 const SvxMSDffVertPair mso_sptEllipseRibbon2Vert[] =
4685 { 9 MSO_I , 34 MSO_I },
4686 { 8 MSO_I , 35 MSO_I },
4687 { 0 , 24 MSO_I },
4688 { 0 MSO_I , 23 MSO_I },
4689 { 9 MSO_I , 0 },
4690 { 8 MSO_I , 11 MSO_I },
4691 { 0 MSO_I , 22 MSO_I },
4692 { 19 MSO_I , 22 MSO_I },
4693 { 9 MSO_I , 34 MSO_I },
4694 { 8 MSO_I , 35 MSO_I },
4695 { 19 MSO_I , 23 MSO_I },
4696 { 3 MSO_I , 24 MSO_I },
4697 { 7 MSO_I , 36 MSO_I },
4698 { 3 MSO_I , 4 MSO_I },
4699 { 9 MSO_I , 31 MSO_I },
4700 { 8 MSO_I , 32 MSO_I },
4701 { 3 MSO_I , 4 MSO_I },
4702 { 18 MSO_I , 30 MSO_I },
4703 { 9 MSO_I , 1 MSO_I },
4704 { 8 MSO_I , 33 MSO_I },
4705 { 18 MSO_I , 28 MSO_I },
4706 { 17 MSO_I , 28 MSO_I },
4707 { 9 MSO_I , 31 MSO_I },
4708 { 8 MSO_I , 32 MSO_I },
4709 { 17 MSO_I , 30 MSO_I },
4710 { 0 , 4l MSO_I },
4711 { 5 MSO_I , 36 MSO_I },
4712 { 9 MSO_I , 1 MSO_I },
4713 { 8 MSO_I , 33 MSO_I },
4714 { 17 MSO_I , 28 MSO_I },
4715 { 0 MSO_I , 29 MSO_I },
4716 { 17 MSO_I , 30 MSO_I },
4717 { 9 MSO_I , 1 MSO_I },
4718 { 8 MSO_I , 33 MSO_I },
4719 { 18 MSO_I , 28 MSO_I },
4720 { 19 MSO_I , 29 MSO_I },
4721 { 18 MSO_I , 30 MSO_I },
4722 { 0 MSO_I , 23 MSO_I },
4723 { 0 MSO_I , 29 MSO_I },
4724 { 19 MSO_I , 23 MSO_I },
4725 { 19 MSO_I , 29 MSO_I }
4727 const sal_uInt16 mso_sptEllipseRibbon2Segm[] =
4729 0xa50c/*wr*/,0x0002/*l*/,0xa30c/*at*/,0x0001/*l*/,
4730 0x6001/*x*/, 0x8000/*e*/,0xa304/*ar*/,0xaa00/*nf*/,
4731 0x0001/*l*/, 0x8000/*e*/,0xa504/*wr*/,0xaa00/*nf*/,
4732 0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
4733 0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
4734 0x0001/*l*/, 0x8000/*e*/
4737 const SvxMSDffCalculationData mso_sptEllipseRibbon2Calc[] =
4739 { 0x2000 , { DFF_Prop_adjustValue , 0 , 0 } }, //val #0
4740 { 0x2000 , { DFF_Prop_adjust2Value , 0 , 0 } }, //val #1
4741 { 0x2000 , { DFF_Prop_adjust3Value , 0 , 0 } }, //val #2
4742 { 0x2000 , { DFF_Prop_geoRight , 0 , 0 } }, //val width
4743 { 0x2000 , { DFF_Prop_geoBottom , 0 , 0 } }, //val height
4744 { 0x2001 , { DFF_Prop_geoRight , 1 , 8 } }, //prod width 1 8
4745 { 0x2001 , { DFF_Prop_geoRight , 1 , 2 } }, //prod width 1 2
4746 { 0x2001 , { DFF_Prop_geoRight , 7 , 8 } }, //prod width 7 8
4747 { 0x2001 , { DFF_Prop_geoRight , 3 , 2 } }, //prod width 3 2
4748 { 0x8000 , { 0 , 0 , 0x406 } }, //sum 0 0 @6
4749 { 0x2001 , { DFF_Prop_adjust3Value , 30573 , 4096 } }, //prod #2 30573 4096
4750 { 0x2001 , { 0x40a , 2 , 1 } }, //prod @10 2 1
4751 { 0xe000 , { 0x40a , DFF_Prop_geoBottom , DFF_Prop_adjust3Value } }, //sum @10 height #2
4752 { 0x6000 , { 0x40a , DFF_Prop_adjust2Value , 0 } }, //sum @10 #1 0
4753 { 0x2001 , { DFF_Prop_adjust2Value , 1 , 2 } }, //prod #1 1 2
4754 { 0x6000 , { 0x40a , 0x40e , 0 } }, //sum @10 @14 0
4755 { 0xa000 , { 0x40c , 0 , DFF_Prop_adjust2Value } }, //sum @12 0 #1
4756 { 0x6000 , { DFF_Prop_adjustValue , 0x405 , 0 } }, //sum #0 @5 0
4757 { 0xa000 , { DFF_Prop_geoRight , 0 , 0x411 } }, //sum width 0 @17
4758 { 0xa000 , { DFF_Prop_geoRight , 0 , DFF_Prop_adjustValue } }, //sum width 0 #0
4759 { 0xa000 , { 0x406 , 0 , DFF_Prop_adjustValue } }, //sum @6 0 #0
4760 { 0xe00f , { 0x414 , DFF_Prop_geoRight , 0x40a } }, //ellipse @20 width @10
4761 { 0xa000 , { 0x40a , 0 , 0x415 } }, //sum @10 0 @21
4762 { 0xe000 , { 0x416 , 0x410 , 0x40a } }, //sum @22 @16 @10
4763 { 0xe000 , { DFF_Prop_adjust3Value , 0x410 , 0x40a } }, //sum #2 @16 @10
4764 { 0x2001 , { 0x40a , 2391 , 32768 } }, //prod @10 2391 32768
4765 { 0xa000 , { 0x406 , 0 , 0x411 } }, //sum @6 0 @17
4766 { 0xe00f , { 0x41a , DFF_Prop_geoRight , 0x40a } }, //ellipse @26 width @10
4767 { 0xe000 , { 0x40a , DFF_Prop_adjust2Value , 0x41b } }, //sum @10 #1 @27
4768 { 0x6000 , { 0x416 , DFF_Prop_adjust2Value , 0 } }, //sum @22 #1 0
4769 { 0xa000 , { 0x40c , 0 , 0x41b } }, //sum @12 0 @27
4770 { 0xa000 , { DFF_Prop_geoBottom , 0 , DFF_Prop_adjust3Value } }, //sum height 0 #2
4771 { 0x6000 , { 0x40a , 0x40c , 0 } }, //sum @10 @12 0
4772 { 0xe000 , { 0x420 , 0x40a , 0x410 } }, //sum @32 @10 @16
4773 { 0xe000 , { 0x41f , 0x40a , 0x40d } }, //sum @31 @10 @13
4774 { 0xe000 , { 0x420 , 0x40a , 0x40d } }, //sum @32 @10 @13
4775 { 0xe000 , { 0x419 , 0x40c , 0x40f } }, //sum @25 @12 @15
4776 { 0xa000 , { 0x410 , 0 , 0x40f } }, //sum @16 0 @15
4777 { 0x2001 , { 0x425 , 2 , 3 } }, //prod @37 2 3
4778 { 0x6000 , { 0x401 , 0x426 , 0 } }, //sum @1 @38 0
4779 { 0x6000 , { DFF_Prop_adjust3Value , 0x426 , 0 } }, //sum #2 @38 0
4780 { 0x2005 , { 0x428 , 675 , 0 } }, //max @40 675
4781 { 0x2001 , { DFF_Prop_geoRight , 3 , 8 } }, //prod width 3 8
4782 { 0x2000 , { 0x42a , 0 , 4 } } //sum @42 0 4
4785 const SvxMSDffTextRectangles mso_sptEllipseRibbon2TextRect[] =
4786 {//@0,@22,@19,@1
4787 { { 0 MSO_I, 22 MSO_I }, { 19 MSO_I, 1 MSO_I } }
4790 const sal_Int32 mso_sptEllipseRibbon2Default[] =
4792 3,5400,16200,2700
4795 const SvxMSDffHandle mso_sptEllipseRibbon2Handle[] =
4797 //position="#0,topLeft" xrange="@5,@43
4798 //position="center,#1" yrange="@39,@31
4799 //position="topLeft,#2" yrange="@41,@24
4800 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL| SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
4801 0x100, 0, 0, 0, 0x8/*5+3*/, 0x2e/*43+3*/, MIN_INT32, 0x7fffffff },
4802 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
4803 10800, 0x101, 0, 0, MIN_INT32, 0x7fffffff,0x2a/*39+3*/, 0x22 /*31+3*/ },
4804 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
4805 0, 0x102, 0, 0, MIN_INT32, 0x7fffffff,0x2c/*41+3*/, 0x1b /*24+3*/ }
4808 const mso_CustomShape msosptEllipseRibbon2 =
4810 std::span<const SvxMSDffVertPair>(mso_sptEllipseRibbon2Vert),
4811 const_cast<sal_uInt16*>(mso_sptEllipseRibbon2Segm), sizeof( mso_sptEllipseRibbon2Segm ) >> 1,
4812 std::span<const SvxMSDffCalculationData>(mso_sptEllipseRibbon2Calc),
4813 const_cast<sal_Int32*>(mso_sptEllipseRibbon2Default),
4814 std::span<const SvxMSDffTextRectangles>(mso_sptEllipseRibbon2TextRect),
4815 21600, 21600,
4816 MIN_INT32, MIN_INT32,
4817 std::span<const SvxMSDffVertPair>(),
4818 std::span<const SvxMSDffHandle>(mso_sptEllipseRibbon2Handle),
4820 // End
4821 const SvxMSDffVertPair mso_sptVerticalScrollVert[] = // adjustment1 : 0 - 5400
4823 { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I }, { 0 MSO_I, 12 MSO_I },
4824 { 0 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I },
4825 { 2 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 11 MSO_I }, { 5 MSO_I, 21600 },
4827 { 6 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 4 MSO_I, 1 MSO_I },
4829 { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I },
4830 { 9 MSO_I, 10 MSO_I }, { 1 MSO_I, 11 MSO_I },
4832 { 4 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I },
4834 { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
4836 { 4 MSO_I, 0 MSO_I },
4837 { 2 MSO_I, 0 MSO_I }
4839 const sal_uInt16 mso_sptVerticalScrollSegm[] =
4841 0x4000, 0xa702, 0x0002, 0xa801, 0x0001, 0xa702, 0x0002, 0xa801, 0x6001, 0x8000,
4842 0x4000, 0xa801, 0xa702, 0x6000, 0x8000,
4843 0x4000, 0xa803, 0xa702, 0x6001, 0x8000,
4844 0x4000, 0xa701, 0x8000,
4845 0x4000, 0x0001, 0x8000,
4846 0x4000, 0x0001, 0x8000
4848 const SvxMSDffCalculationData mso_sptScrollCalc[] =
4850 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
4851 { 0x2001, { 0x400, 1, 2 } },
4852 { 0xa000, { DFF_Prop_geoRight, 0, 0x401 } },
4853 { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
4854 { 0x6000, { 0x400, 0x401, 0 } },
4855 { 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
4856 { 0x2001, { 0x400, 2, 1 } },
4857 { 0x2001, { 0x401, 1, 2 } },
4858 { 0x6000, { 0x400, 0x407, 0 } },
4859 { 0x6000, { 0x401, 0x407, 0 } },
4860 { 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } },
4861 { 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } },
4862 { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
4863 { 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
4865 const SvxMSDffTextRectangles mso_sptScrollTextRect[] =
4867 { { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 12 MSO_I } }
4869 const SvxMSDffHandle mso_sptVerticalScrollHandle[] =
4871 { SvxMSDffHandleFlags::RANGE,
4872 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 5400 }
4874 const mso_CustomShape msoVerticalScroll =
4876 std::span<const SvxMSDffVertPair>(mso_sptVerticalScrollVert),
4877 const_cast<sal_uInt16*>(mso_sptVerticalScrollSegm), sizeof( mso_sptVerticalScrollSegm ) >> 1,
4878 std::span<const SvxMSDffCalculationData>(mso_sptScrollCalc),
4879 const_cast<sal_Int32*>(mso_sptDefault2700),
4880 std::span<const SvxMSDffTextRectangles>(mso_sptScrollTextRect),
4881 21600, 21600,
4882 11000, 10800,
4883 std::span<const SvxMSDffVertPair>(),
4884 std::span<const SvxMSDffHandle>(mso_sptVerticalScrollHandle),
4886 const SvxMSDffVertPair mso_sptHorizontalScrollVert[] = // adjustment1 : 0 - 5400
4888 { 0, 4 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 1 MSO_I },
4889 { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 13 MSO_I }, { 2 MSO_I, 12 MSO_I },
4890 { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I },
4892 { 1 MSO_I, 4 MSO_I }, { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 6 MSO_I },
4894 { 2 MSO_I, 1 MSO_I }, { 3 MSO_I, 9 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 },
4895 { 21600, 1 MSO_I }, { 2 MSO_I, 0 MSO_I },
4897 { 1 MSO_I, 6 MSO_I },
4898 { 0, 4 MSO_I },
4900 { 2 MSO_I, 0 MSO_I },
4901 { 3 MSO_I, 0 MSO_I },
4903 { 0 MSO_I, 4 MSO_I },
4904 { 0 MSO_I, 11 MSO_I }
4906 const sal_uInt16 mso_sptHorizontalScrollSegm[] =
4908 0x4000, 0xa801, 0x0002, 0xa802, 0x0001, 0xa801, 0x0002, 0xa802, 0x6001, 0x8000,
4909 0x4000, 0xa803, 0x6000, 0x8000,
4910 0x4000, 0xa803, 0xa702, 0x6000, 0x8000,
4911 0x4000, 0xa701, 0x8000,
4912 0x4000, 0x0001, 0x8000,
4913 0x4000, 0x0001, 0x8000
4915 const SvxMSDffHandle mso_sptHorizontalScrollHandle[] =
4917 { SvxMSDffHandleFlags::RANGE,
4918 0x100, 0, 10800, 10800, 0, 5400, MIN_INT32, 0x7fffffff }
4920 const mso_CustomShape msoHorizontalScroll =
4922 std::span<const SvxMSDffVertPair>(mso_sptHorizontalScrollVert),
4923 const_cast<sal_uInt16*>(mso_sptHorizontalScrollSegm), sizeof( mso_sptHorizontalScrollSegm ) >> 1,
4924 std::span<const SvxMSDffCalculationData>(mso_sptScrollCalc),
4925 const_cast<sal_Int32*>(mso_sptDefault2700),
4926 std::span<const SvxMSDffTextRectangles>(mso_sptScrollTextRect),
4927 21600, 21600,
4928 10800, 11000,
4929 std::span<const SvxMSDffVertPair>(),
4930 std::span<const SvxMSDffHandle>(mso_sptHorizontalScrollHandle),
4933 const SvxMSDffVertPair mso_sptFlowChartProcessVert[] =
4935 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
4937 const mso_CustomShape msoFlowChartProcess =
4939 std::span<const SvxMSDffVertPair>(mso_sptFlowChartProcessVert),
4940 nullptr, 0,
4941 std::span<const SvxMSDffCalculationData>(),
4942 nullptr,
4943 std::span<const SvxMSDffTextRectangles>(),
4944 21600, 21600,
4945 MIN_INT32, MIN_INT32,
4946 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
4947 std::span<const SvxMSDffHandle>() // handles
4950 const SvxMSDffVertPair mso_sptFlowChartAlternateProcessVert[] =
4952 { 0, 2 MSO_I }, { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 2 MSO_I },
4953 { 21600, 3 MSO_I }, { 1 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }
4955 const sal_uInt16 mso_sptFlowChartAlternateProcessSegm[] =
4957 0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
4959 const SvxMSDffCalculationData mso_sptFlowChartAlternateProcessCalc[] =
4961 { 0x2000, { DFF_Prop_geoLeft, 3600, 0 } },
4962 { 0x2000, { DFF_Prop_geoRight, 0, 3600 } },
4963 { 0x2000, { DFF_Prop_geoTop, 3600, 0 } },
4964 { 0x2000, { DFF_Prop_geoBottom, 0, 3600 } },
4965 { 0x2000, { DFF_Prop_geoLeft, 1054, 0 } },
4966 { 0x2000, { DFF_Prop_geoRight, 0, 1054 } },
4967 { 0x2000, { DFF_Prop_geoTop, 1054, 0 } },
4968 { 0x2000, { DFF_Prop_geoBottom,0, 1054 } }
4970 const SvxMSDffTextRectangles mso_sptFlowChartAlternateProcessTextRect[] =
4972 { { 4 MSO_I, 6 MSO_I }, { 5 MSO_I, 7 MSO_I } }
4974 const mso_CustomShape msoFlowChartAlternateProcess =
4976 std::span<const SvxMSDffVertPair>(mso_sptFlowChartAlternateProcessVert),
4977 const_cast<sal_uInt16*>(mso_sptFlowChartAlternateProcessSegm), sizeof( mso_sptFlowChartAlternateProcessSegm ) >> 1,
4978 std::span<const SvxMSDffCalculationData>(mso_sptFlowChartAlternateProcessCalc),
4979 nullptr,
4980 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartAlternateProcessTextRect),
4981 21600, 21600,
4982 10800, 10800,
4983 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
4984 std::span<const SvxMSDffHandle>() // handles
4987 const SvxMSDffVertPair mso_sptFlowChartDecisionVert[] =
4989 { 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 }
4991 const SvxMSDffTextRectangles mso_sptFlowChartDecisionTextRect[] =
4993 { { 5400, 5400 }, { 16200, 16200 } }
4995 const mso_CustomShape msoFlowChartDecision =
4997 std::span<const SvxMSDffVertPair>(mso_sptFlowChartDecisionVert),
4998 nullptr, 0,
4999 std::span<const SvxMSDffCalculationData>(),
5000 nullptr,
5001 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartDecisionTextRect),
5002 21600, 21600,
5003 MIN_INT32, MIN_INT32,
5004 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
5005 std::span<const SvxMSDffHandle>() // handles
5008 const SvxMSDffVertPair mso_sptFlowChartInputOutputVert[] =
5010 { 4230, 0 }, { 21600, 0 }, { 17370, 21600 }, { 0, 21600 }, { 4230, 0 }
5012 const SvxMSDffTextRectangles mso_sptFlowChartInputOutputTextRect[] =
5014 { { 4230, 0 }, { 17370, 21600 } }
5016 const SvxMSDffVertPair mso_sptFlowChartInputOutputGluePoints[] =
5018 { 12960, 0 }, { 10800, 0 }, { 2160, 10800 }, { 8600, 21600 }, { 10800, 21600 }, { 19400, 10800 }
5020 const mso_CustomShape msoFlowChartInputOutput =
5022 std::span<const SvxMSDffVertPair>(mso_sptFlowChartInputOutputVert),
5023 nullptr, 0,
5024 std::span<const SvxMSDffCalculationData>(),
5025 nullptr,
5026 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartInputOutputTextRect),
5027 21600, 21600,
5028 MIN_INT32, MIN_INT32,
5029 std::span<const SvxMSDffVertPair>(mso_sptFlowChartInputOutputGluePoints),
5030 std::span<const SvxMSDffHandle>() // handles
5033 const SvxMSDffVertPair mso_sptFlowChartPredefinedProcessVert[] =
5035 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
5037 { 2540, 0 }, { 2540, 21600 },
5039 { 21600 - 2540, 0 }, { 21600 - 2540, 21600 }
5041 const sal_uInt16 mso_sptFlowChartPredefinedProcessSegm[] =
5043 0x4000, 0x0003, 0x6000, 0x8000,
5044 0x4000, 0x0001, 0x8000,
5045 0x4000, 0x0001, 0x8000
5047 const SvxMSDffTextRectangles mso_sptFlowChartPredefinedProcessTextRect[] =
5049 { { 2540, 0 }, { 21600 - 2540, 21600 } }
5051 const mso_CustomShape msoFlowChartPredefinedProcess =
5053 std::span<const SvxMSDffVertPair>(mso_sptFlowChartPredefinedProcessVert),
5054 const_cast<sal_uInt16*>(mso_sptFlowChartPredefinedProcessSegm), sizeof( mso_sptFlowChartPredefinedProcessSegm ) >> 1,
5055 std::span<const SvxMSDffCalculationData>(),
5056 nullptr,
5057 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartPredefinedProcessTextRect),
5058 21600, 21600,
5059 MIN_INT32, MIN_INT32,
5060 std::span<const SvxMSDffVertPair>(),
5061 std::span<const SvxMSDffHandle>() // handles
5064 const SvxMSDffVertPair mso_sptFlowChartInternalStorageVert[] =
5066 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
5068 { 4230, 0 }, { 4230, 21600 },
5070 { 0, 4230 }, { 21600, 4230 }
5072 const sal_uInt16 mso_sptFlowChartInternalStorageSegm[] =
5074 0x4000, 0x0003, 0x6000, 0x8000,
5075 0x4000, 0x0001, 0x8000,
5076 0x4000, 0x0001, 0x8000
5078 const SvxMSDffTextRectangles mso_sptFlowChartInternalStorageTextRect[] =
5080 { { 4230, 4230 }, { 21600, 21600 } }
5082 const mso_CustomShape msoFlowChartInternalStorage =
5084 std::span<const SvxMSDffVertPair>(mso_sptFlowChartInternalStorageVert),
5085 const_cast<sal_uInt16*>(mso_sptFlowChartInternalStorageSegm), sizeof( mso_sptFlowChartInternalStorageSegm ) >> 1,
5086 std::span<const SvxMSDffCalculationData>(),
5087 nullptr,
5088 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartInternalStorageTextRect),
5089 21600, 21600,
5090 MIN_INT32, MIN_INT32,
5091 std::span<const SvxMSDffVertPair>(),
5092 std::span<const SvxMSDffHandle>() // handles
5095 const SvxMSDffVertPair mso_sptFlowChartDocumentVert[] =
5097 { 0, 0 }, { 21600, 0 }, { 21600, 17360 },
5098 { 13050, 17220 }, { 13340, 20770 }, { 5620, 21600 }, // ccp
5099 { 2860, 21100 }, { 1850, 20700 }, { 0, 20120 } // ccp
5101 const sal_uInt16 mso_sptFlowChartDocumentSegm[] =
5103 0x4000, 0x0002, 0x2002, 0x6000, 0x8000
5105 const SvxMSDffTextRectangles mso_sptFlowChartDocumentTextRect[] =
5107 { { 0, 0 }, { 21600, 17360 } }
5109 const SvxMSDffVertPair mso_sptFlowChartDocumentGluePoints[] =
5111 { 10800, 0 }, { 0, 10800 }, { 10800, 20320 }, { 21600, 10800 }
5113 const mso_CustomShape msoFlowChartDocument =
5115 std::span<const SvxMSDffVertPair>(mso_sptFlowChartDocumentVert),
5116 const_cast<sal_uInt16*>(mso_sptFlowChartDocumentSegm), sizeof( mso_sptFlowChartDocumentSegm ) >> 1,
5117 std::span<const SvxMSDffCalculationData>(),
5118 nullptr,
5119 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartDocumentTextRect),
5120 21600, 21600,
5121 MIN_INT32, MIN_INT32,
5122 std::span<const SvxMSDffVertPair>(mso_sptFlowChartDocumentGluePoints),
5123 std::span<const SvxMSDffHandle>() // handles
5126 const SvxMSDffVertPair mso_sptFlowChartMultidocumentVert[] =
5128 { 0, 3600 }, { 1500, 3600 }, { 1500, 1800 }, { 3000, 1800 },
5129 { 3000, 0 }, { 21600, 0 }, { 21600, 14409 }, { 21600 - 1500, 14409 },
5130 { 21600 - 1500, 14409 + 1800 }, { 21600 - 3000, 14409 + 1800 }, { 21600 - 3000, 14409 + 3600 },
5131 { 11610, 14293 + 3600 }, { 11472, 17239 + 3600 }, { 4833, 17928 + 3600 }, // ccp
5132 { 2450, 17513 + 3600 }, { 1591, 17181 + 3600 }, { 0, 16700 + 3600 }, // ccp
5134 { 1500, 3600 }, { 21600 - 3000, 3600 }, { 21600 - 3000, 14409 + 1800 },
5136 { 3000, 1800 }, { 21600 - 1500, 1800 }, { 21600 - 1500, 14409 }
5138 const sal_uInt16 mso_sptFlowChartMultidocumentSegm[] =
5140 0x4000, 0x000a, 0x2002, 0x6000, 0x8000,
5141 0x4000, 0xaa00, 0x0002, 0x8000, // NO FILL
5142 0x4000, 0xaa00, 0x0002, 0x8000 // NO FILL
5144 const SvxMSDffTextRectangles mso_sptFlowChartMultidocumentTextRect[] =
5146 { { 0, 3600 }, { 21600 - 3000, 14409 + 3600 } }
5148 const SvxMSDffVertPair mso_sptFlowChartMultidocumentGluePoints[] =
5150 { 10800, 0 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
5152 const mso_CustomShape msoFlowChartMultidocument =
5154 std::span<const SvxMSDffVertPair>(mso_sptFlowChartMultidocumentVert),
5155 const_cast<sal_uInt16*>(mso_sptFlowChartMultidocumentSegm), sizeof( mso_sptFlowChartMultidocumentSegm ) >> 1,
5156 std::span<const SvxMSDffCalculationData>(),
5157 nullptr,
5158 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartMultidocumentTextRect),
5159 21600, 21600,
5160 MIN_INT32, MIN_INT32,
5161 std::span<const SvxMSDffVertPair>(mso_sptFlowChartMultidocumentGluePoints),
5162 std::span<const SvxMSDffHandle>() // handles
5165 const SvxMSDffVertPair mso_sptFlowChartTerminatorVert[] =
5167 { 3470, 21600 }, { 0, 10800 }, { 3470, 0 }, { 18130, 0 },
5168 { 21600, 10800 }, { 18130, 21600 }
5170 const sal_uInt16 mso_sptFlowChartTerminatorSegm[] =
5172 0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
5174 const SvxMSDffTextRectangles mso_sptFlowChartTerminatorTextRect[] =
5176 { { 1060, 3180 }, { 20540, 18420 } }
5178 const mso_CustomShape msoFlowChartTerminator =
5180 std::span<const SvxMSDffVertPair>(mso_sptFlowChartTerminatorVert),
5181 const_cast<sal_uInt16*>(mso_sptFlowChartTerminatorSegm), sizeof( mso_sptFlowChartTerminatorSegm ) >> 1,
5182 std::span<const SvxMSDffCalculationData>(),
5183 nullptr,
5184 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartTerminatorTextRect),
5185 21600, 21600,
5186 MIN_INT32, MIN_INT32,
5187 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
5188 std::span<const SvxMSDffHandle>() // handles
5191 const SvxMSDffVertPair mso_sptFlowChartPreparationVert[] =
5193 { 4350, 0 }, { 17250, 0 }, { 21600, 10800 }, { 17250, 21600 },
5194 { 4350, 21600 }, { 0, 10800 }, { 4350, 0 }
5196 const SvxMSDffTextRectangles mso_sptFlowChartPreparationTextRect[] =
5198 { { 4350, 0 }, { 17250, 21600 } }
5200 const mso_CustomShape msoFlowChartPreparation =
5202 std::span<const SvxMSDffVertPair>(mso_sptFlowChartPreparationVert),
5203 nullptr, 0,
5204 std::span<const SvxMSDffCalculationData>(),
5205 nullptr,
5206 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartPreparationTextRect),
5207 21600, 21600,
5208 MIN_INT32, MIN_INT32,
5209 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
5210 std::span<const SvxMSDffHandle>() // handles
5213 const SvxMSDffVertPair mso_sptFlowChartManualInputVert[] =
5215 { 0, 4300 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 4300 }
5217 const SvxMSDffTextRectangles mso_sptFlowChartManualInputTextRect[] =
5219 { { 0, 4300 }, { 21600, 21600 } }
5221 const SvxMSDffVertPair mso_sptFlowChartManualInputGluePoints[] =
5223 { 10800, 2150 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
5225 const mso_CustomShape msoFlowChartManualInput =
5227 std::span<const SvxMSDffVertPair>(mso_sptFlowChartManualInputVert),
5228 nullptr, 0,
5229 std::span<const SvxMSDffCalculationData>(),
5230 nullptr,
5231 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartManualInputTextRect),
5232 21600, 21600,
5233 MIN_INT32, MIN_INT32,
5234 std::span<const SvxMSDffVertPair>(mso_sptFlowChartManualInputGluePoints),
5235 std::span<const SvxMSDffHandle>() // handles
5238 const SvxMSDffVertPair mso_sptFlowChartManualOperationVert[] =
5240 { 0, 0 }, { 21600, 0 }, { 17250, 21600 }, { 4350, 21600 }, { 0, 0 }
5242 const SvxMSDffTextRectangles mso_sptFlowChartManualOperationTextRect[] =
5244 { { 4350, 0 }, { 17250, 21600 } }
5246 const SvxMSDffVertPair mso_sptFlowChartManualOperationGluePoints[] =
5248 { 10800, 0 }, { 2160, 10800 }, { 10800, 21600 }, { 19440, 10800 }
5250 const mso_CustomShape msoFlowChartManualOperation =
5252 std::span<const SvxMSDffVertPair>(mso_sptFlowChartManualOperationVert),
5253 nullptr, 0,
5254 std::span<const SvxMSDffCalculationData>(),
5255 nullptr,
5256 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartManualOperationTextRect),
5257 21600, 21600,
5258 MIN_INT32, MIN_INT32,
5259 std::span<const SvxMSDffVertPair>(mso_sptFlowChartManualOperationGluePoints),
5260 std::span<const SvxMSDffHandle>() // handles
5263 const SvxMSDffVertPair mso_sptFlowChartConnectorVert[] =
5265 { 10800, 10800 }, { 10800, 10800 }, { 0, 360 }
5267 const sal_uInt16 mso_sptFlowChartConnectorSegm[] =
5269 0xa203, 0x6000, 0x8000
5271 const SvxMSDffTextRectangles mso_sptFlowChartConnectorTextRect[] =
5273 { { 3180, 3180 }, { 18420, 18420 } }
5275 const mso_CustomShape msoFlowChartConnector =
5277 std::span<const SvxMSDffVertPair>(mso_sptFlowChartConnectorVert),
5278 const_cast<sal_uInt16*>(mso_sptFlowChartConnectorSegm), sizeof( mso_sptFlowChartConnectorSegm ) >> 1,
5279 std::span<const SvxMSDffCalculationData>(),
5280 nullptr,
5281 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartConnectorTextRect),
5282 21600, 21600,
5283 MIN_INT32, MIN_INT32,
5284 std::span<const SvxMSDffVertPair>(mso_sptEllipseGluePoints),
5285 std::span<const SvxMSDffHandle>() // handles
5288 const SvxMSDffVertPair mso_sptFlowChartOffpageConnectorVert[] =
5290 { 0, 0 }, { 21600, 0 }, { 21600, 17150 }, { 10800, 21600 },
5291 { 0, 17150 }, { 0, 0 }
5293 const SvxMSDffTextRectangles mso_sptFlowChartOffpageConnectorTextRect[] =
5295 { { 0, 0 }, { 21600, 17150 } }
5297 const mso_CustomShape msoFlowChartOffpageConnector =
5299 std::span<const SvxMSDffVertPair>(mso_sptFlowChartOffpageConnectorVert),
5300 nullptr, 0,
5301 std::span<const SvxMSDffCalculationData>(),
5302 nullptr,
5303 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartOffpageConnectorTextRect),
5304 21600, 21600,
5305 MIN_INT32, MIN_INT32,
5306 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
5307 std::span<const SvxMSDffHandle>() // handles
5310 const SvxMSDffVertPair mso_sptFlowChartPunchedCardVert[] =
5312 { 4300, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
5313 { 0, 4300 }, { 4300, 0 }
5315 const SvxMSDffTextRectangles mso_sptFlowChartPunchedCardTextRect[] =
5317 { { 0, 4300 }, { 21600, 21600 } }
5319 const mso_CustomShape msoFlowChartPunchedCard =
5321 std::span<const SvxMSDffVertPair>(mso_sptFlowChartPunchedCardVert),
5322 nullptr, 0,
5323 std::span<const SvxMSDffCalculationData>(),
5324 nullptr,
5325 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartPunchedCardTextRect),
5326 21600, 21600,
5327 MIN_INT32, MIN_INT32,
5328 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
5329 std::span<const SvxMSDffHandle>() // handles
5332 const SvxMSDffVertPair mso_sptFlowChartPunchedTapeVert[] =
5334 { 0, 2230 }, // p
5335 { 820, 3990 }, { 3410, 3980 }, { 5370, 4360 }, // ccp
5336 { 7430, 4030 }, { 10110, 3890 }, { 10690, 2270 }, // ccp
5337 { 11440, 300 }, { 14200, 160 }, { 16150, 0 }, // ccp
5338 { 18670, 170 }, { 20690, 390 }, { 21600, 2230 }, // ccp
5339 { 21600, 19420 }, // p
5340 { 20640, 17510 }, { 18320, 17490 }, { 16140, 17240 }, // ccp
5341 { 14710, 17370 }, { 11310, 17510 }, { 10770, 19430 }, // ccp
5342 { 10150, 21150 }, { 7380, 21290 }, { 5290, 21600 }, // ccp
5343 { 3220, 21250 }, { 610, 21130 }, { 0, 19420 } // ccp
5345 const sal_uInt16 mso_sptFlowChartPunchedTapeSegm[] =
5347 0x4000, 0x2004, 0x0001, 0x2004, 0x6000, 0x8000
5349 const SvxMSDffTextRectangles mso_sptFlowChartPunchedTapeTextRect[] =
5351 { { 0, 4360 }, { 21600, 17240 } }
5353 const SvxMSDffVertPair mso_sptFlowChartPunchedTapeGluePoints[] =
5355 { 10800, 2020 }, { 0, 10800 }, { 10800, 19320 }, { 21600, 10800 }
5357 const mso_CustomShape msoFlowChartPunchedTape =
5359 std::span<const SvxMSDffVertPair>(mso_sptFlowChartPunchedTapeVert),
5360 const_cast<sal_uInt16*>(mso_sptFlowChartPunchedTapeSegm), sizeof( mso_sptFlowChartPunchedTapeSegm ) >> 1,
5361 std::span<const SvxMSDffCalculationData>(),
5362 nullptr,
5363 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartPunchedTapeTextRect),
5364 21600, 21600,
5365 MIN_INT32, MIN_INT32,
5366 std::span<const SvxMSDffVertPair>(mso_sptFlowChartPunchedTapeGluePoints),
5367 std::span<const SvxMSDffHandle>() // handles
5370 const SvxMSDffVertPair mso_sptFlowChartSummingJunctionVert[] =
5372 { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5374 { 3100, 3100 },
5375 { 18500, 18500 },
5377 { 3100, 18500 },
5378 { 18500, 3100 }
5380 const sal_uInt16 mso_sptFlowChartSummingJunctionSegm[] =
5382 0xa203, 0x6000, 0x8000,
5383 0x4000, 0x0001, 0x8000,
5384 0x4000, 0x0001, 0x8000
5386 const SvxMSDffTextRectangles mso_sptFlowChartSummingJunctionTextRect[] =
5388 { { 3100, 3100 }, { 18500, 18500 } }
5390 const mso_CustomShape msoFlowChartSummingJunction =
5392 std::span<const SvxMSDffVertPair>(mso_sptFlowChartSummingJunctionVert),
5393 const_cast<sal_uInt16*>(mso_sptFlowChartSummingJunctionSegm), sizeof( mso_sptFlowChartSummingJunctionSegm ) >> 1,
5394 std::span<const SvxMSDffCalculationData>(),
5395 nullptr,
5396 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartSummingJunctionTextRect),
5397 21600, 21600,
5398 MIN_INT32, MIN_INT32,
5399 std::span<const SvxMSDffVertPair>(mso_sptEllipseGluePoints),
5400 std::span<const SvxMSDffHandle>() // handles
5403 const SvxMSDffVertPair mso_sptFlowChartOrVert[] =
5405 { 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5407 { 0, 10800 }, { 21600, 10800 },
5409 { 10800, 0 }, { 10800, 21600 }
5411 const sal_uInt16 mso_sptFlowChartOrSegm[] =
5413 0xa203, 0x6000, 0x8000,
5414 0x4000, 0x0001, 0x8000,
5415 0x4000, 0x0001, 0x8000
5417 const SvxMSDffTextRectangles mso_sptFlowChartOrTextRect[] =
5419 { { 3100, 3100 }, { 18500, 18500 } }
5421 const mso_CustomShape msoFlowChartOr =
5423 std::span<const SvxMSDffVertPair>(mso_sptFlowChartOrVert),
5424 const_cast<sal_uInt16*>(mso_sptFlowChartOrSegm), sizeof( mso_sptFlowChartOrSegm ) >> 1,
5425 std::span<const SvxMSDffCalculationData>(),
5426 nullptr,
5427 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartOrTextRect),
5428 21600, 21600,
5429 MIN_INT32, MIN_INT32,
5430 std::span<const SvxMSDffVertPair>(mso_sptEllipseGluePoints),
5431 std::span<const SvxMSDffHandle>() // handles
5434 const SvxMSDffVertPair mso_sptFlowChartCollateVert[] =
5436 { 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 21600, 0 }, { 0, 0 }
5438 const SvxMSDffTextRectangles mso_sptFlowChartCollateTextRect[] =
5440 { { 5400, 5400 }, { 16200, 16200 } }
5442 const SvxMSDffVertPair mso_sptFlowChartCollateGluePoints[] =
5444 { 10800, 0 }, { 10800, 10800 }, { 10800, 21600 }
5446 const mso_CustomShape msoFlowChartCollate =
5448 std::span<const SvxMSDffVertPair>(mso_sptFlowChartCollateVert),
5449 nullptr, 0,
5450 std::span<const SvxMSDffCalculationData>(),
5451 nullptr,
5452 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartCollateTextRect),
5453 21600, 21600,
5454 MIN_INT32, MIN_INT32,
5455 std::span<const SvxMSDffVertPair>(mso_sptFlowChartCollateGluePoints),
5456 std::span<const SvxMSDffHandle>() // handles
5459 const SvxMSDffVertPair mso_sptFlowChartSortVert[] =
5461 { 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 },
5463 { 0, 10800 }, { 21600, 10800 }
5465 const sal_uInt16 mso_sptFlowChartSortSegm[] =
5467 0x4000, 0x0003, 0x6000, 0x8000,
5468 0x4000, 0x0001, 0x8000
5470 const SvxMSDffTextRectangles mso_sptFlowChartSortTextRect[] =
5472 { { 5400, 5400 }, { 16200, 16200 } }
5474 const mso_CustomShape msoFlowChartSort =
5476 std::span<const SvxMSDffVertPair>(mso_sptFlowChartSortVert),
5477 const_cast<sal_uInt16*>(mso_sptFlowChartSortSegm), sizeof( mso_sptFlowChartSortSegm ) >> 1,
5478 std::span<const SvxMSDffCalculationData>(),
5479 nullptr,
5480 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartSortTextRect),
5481 21600, 21600,
5482 MIN_INT32, MIN_INT32,
5483 std::span<const SvxMSDffVertPair>(),
5484 std::span<const SvxMSDffHandle>() // handles
5487 const SvxMSDffVertPair mso_sptFlowChartExtractVert[] =
5489 { 10800, 0 }, { 21600, 21600 }, { 0, 21600 }, { 10800, 0 }
5491 const SvxMSDffTextRectangles mso_sptFlowChartExtractTextRect[] =
5493 { { 5400, 10800 }, { 16200, 21600 } }
5495 const SvxMSDffVertPair mso_sptFlowChartExtractGluePoints[] =
5497 { 10800, 0 }, { 5400, 10800 }, { 10800, 21600 }, { 16200, 10800 }
5499 const mso_CustomShape msoFlowChartExtract =
5501 std::span<const SvxMSDffVertPair>(mso_sptFlowChartExtractVert),
5502 nullptr, 0,
5503 std::span<const SvxMSDffCalculationData>(),
5504 nullptr,
5505 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartExtractTextRect),
5506 21600, 21600,
5507 MIN_INT32, MIN_INT32,
5508 std::span<const SvxMSDffVertPair>(mso_sptFlowChartExtractGluePoints),
5509 std::span<const SvxMSDffHandle>() // handles
5512 const SvxMSDffVertPair mso_sptFlowChartMergeVert[] =
5514 { 0, 0 }, { 21600, 0 }, { 10800, 21600 }, { 0, 0 }
5516 const SvxMSDffTextRectangles mso_sptFlowChartMergeTextRect[] =
5518 { { 5400, 0 }, { 16200, 10800 } }
5520 const mso_CustomShape msoFlowChartMerge =
5522 std::span<const SvxMSDffVertPair>(mso_sptFlowChartMergeVert),
5523 nullptr, 0,
5524 std::span<const SvxMSDffCalculationData>(),
5525 nullptr,
5526 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartMergeTextRect),
5527 21600, 21600,
5528 MIN_INT32, MIN_INT32,
5529 std::span<const SvxMSDffVertPair>(mso_sptFlowChartExtractGluePoints),
5530 std::span<const SvxMSDffHandle>() // handles
5533 const SvxMSDffVertPair mso_sptFlowChartOnlineStorageVert[] =
5535 { 3600, 21600 }, { 0, 10800 }, { 3600, 0 }, { 21600, 0 },
5536 { 18000, 10800 }, { 21600, 21600 }
5538 const sal_uInt16 mso_sptFlowChartOnlineStorageSegm[] =
5540 0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
5542 const SvxMSDffTextRectangles mso_sptFlowChartOnlineStorageTextRect[] =
5544 { { 3600, 0 }, { 18000, 21600 } }
5546 const SvxMSDffVertPair mso_sptFlowChartOnlineStorageGluePoints[] =
5548 { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 18000, 10800 }
5550 const mso_CustomShape msoFlowChartOnlineStorage =
5552 std::span<const SvxMSDffVertPair>(mso_sptFlowChartOnlineStorageVert),
5553 const_cast<sal_uInt16*>(mso_sptFlowChartOnlineStorageSegm), sizeof( mso_sptFlowChartOnlineStorageSegm ) >> 1,
5554 std::span<const SvxMSDffCalculationData>(),
5555 nullptr,
5556 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartOnlineStorageTextRect),
5557 21600, 21600,
5558 MIN_INT32, MIN_INT32,
5559 std::span<const SvxMSDffVertPair>(mso_sptFlowChartOnlineStorageGluePoints),
5560 std::span<const SvxMSDffHandle>() // handles
5563 const SvxMSDffVertPair mso_sptFlowChartDelayVert[] =
5565 { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 21600 },
5566 { 0, 0 }
5568 const sal_uInt16 mso_sptFlowChartDelaySegm[] =
5570 0x4000, 0xa702, 0x0002, 0x6000, 0x8000
5572 const SvxMSDffTextRectangles mso_sptFlowChartDelayTextRect[] =
5574 { { 0, 3100 }, { 18500, 18500 } }
5576 const mso_CustomShape msoFlowChartDelay =
5578 std::span<const SvxMSDffVertPair>(mso_sptFlowChartDelayVert),
5579 const_cast<sal_uInt16*>(mso_sptFlowChartDelaySegm), sizeof( mso_sptFlowChartDelaySegm ) >> 1,
5580 std::span<const SvxMSDffCalculationData>(),
5581 nullptr,
5582 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartDelayTextRect),
5583 21600, 21600,
5584 MIN_INT32, MIN_INT32,
5585 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
5586 std::span<const SvxMSDffHandle>() // handles
5589 const SvxMSDffVertPair mso_sptFlowChartMagneticTapeVert[] =
5591 { 20980, 18150 }, { 20980, 21600 }, { 10670, 21600 },
5592 { 4770, 21540 }, { 0, 16720 }, { 0, 10800 }, // ccp
5593 { 0, 4840 }, { 4840, 0 }, { 10800, 0 }, // ccp
5594 { 16740, 0 }, { 21600, 4840 }, { 21600, 10800 }, // ccp
5595 { 21600, 13520 }, { 20550, 16160 }, { 18670, 18170 } // ccp
5597 const sal_uInt16 mso_sptFlowChartMagneticTapeSegm[] =
5599 0x4000, 0x0002, 0x2004, 0x6000, 0x8000
5601 const SvxMSDffTextRectangles mso_sptFlowChartMagneticTapeTextRect[] =
5603 { { 3100, 3100 }, { 18500, 18500 } }
5605 const mso_CustomShape msoFlowChartMagneticTape =
5607 std::span<const SvxMSDffVertPair>(mso_sptFlowChartMagneticTapeVert),
5608 const_cast<sal_uInt16*>(mso_sptFlowChartMagneticTapeSegm), sizeof( mso_sptFlowChartMagneticTapeSegm ) >> 1,
5609 std::span<const SvxMSDffCalculationData>(),
5610 nullptr,
5611 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartMagneticTapeTextRect),
5612 21600, 21600,
5613 MIN_INT32, MIN_INT32,
5614 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
5615 std::span<const SvxMSDffHandle>() // handles
5618 const SvxMSDffVertPair mso_sptFlowChartMagneticDiskVert[] =
5620 { 0, 3400 }, { 10800, 0 }, { 21600, 3400 }, { 21600, 18200 },
5621 { 10800, 21600 }, { 0, 18200 },
5623 { 0, 3400 }, { 10800, 6800 }, { 21600, 3400 }
5625 const sal_uInt16 mso_sptFlowChartMagneticDiskSegm[] =
5627 0x4000, 0xa802, 0x0001, 0xa802, 0x6000, 0x8000,
5628 0x4000, 0xa802, 0x8000
5630 const SvxMSDffTextRectangles mso_sptFlowChartMagneticDiskTextRect[] =
5632 { { 0, 6800 }, { 21600, 18200 } }
5634 const SvxMSDffVertPair mso_sptFlowChartMagneticDiskGluePoints[] =
5636 { 10800, 6800 }, { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
5638 const mso_CustomShape msoFlowChartMagneticDisk =
5640 std::span<const SvxMSDffVertPair>(mso_sptFlowChartMagneticDiskVert),
5641 const_cast<sal_uInt16*>(mso_sptFlowChartMagneticDiskSegm), sizeof( mso_sptFlowChartMagneticDiskSegm ) >> 1,
5642 std::span<const SvxMSDffCalculationData>(),
5643 nullptr,
5644 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartMagneticDiskTextRect),
5645 21600, 21600,
5646 MIN_INT32, MIN_INT32,
5647 std::span<const SvxMSDffVertPair>(mso_sptFlowChartMagneticDiskGluePoints),
5648 std::span<const SvxMSDffHandle>() // handles
5651 const SvxMSDffVertPair mso_sptFlowChartMagneticDrumVert[] =
5653 { 18200, 0 }, { 21600, 10800 }, { 18200, 21600 }, { 3400, 21600 },
5654 { 0, 10800 }, { 3400, 0 },
5656 { 18200, 0 }, { 14800, 10800 }, { 18200, 21600 }
5658 const sal_uInt16 mso_sptFlowChartMagneticDrumSegm[] =
5660 0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000,
5661 0x4000, 0xa702, 0x8000
5663 const SvxMSDffTextRectangles mso_sptFlowChartMagneticDrumTextRect[] =
5665 { { 3400, 0 }, { 14800, 21600 } }
5667 const SvxMSDffVertPair mso_sptFlowChartMagneticDrumGluePoints[] =
5669 { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 14800, 10800 }, { 21600, 10800 }
5671 const mso_CustomShape msoFlowChartMagneticDrum =
5673 std::span<const SvxMSDffVertPair>(mso_sptFlowChartMagneticDrumVert),
5674 const_cast<sal_uInt16*>(mso_sptFlowChartMagneticDrumSegm), sizeof( mso_sptFlowChartMagneticDrumSegm ) >> 1,
5675 std::span<const SvxMSDffCalculationData>(),
5676 nullptr,
5677 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartMagneticDrumTextRect),
5678 21600, 21600,
5679 MIN_INT32, MIN_INT32,
5680 std::span<const SvxMSDffVertPair>(mso_sptFlowChartMagneticDrumGluePoints),
5681 std::span<const SvxMSDffHandle>() // handles
5684 const SvxMSDffVertPair mso_sptFlowChartDisplayVert[] =
5686 { 3600, 0 }, { 17800, 0 }, { 21600, 10800 }, { 17800, 21600 },
5687 { 3600, 21600 }, { 0, 10800 }
5689 const sal_uInt16 mso_sptFlowChartDisplaySegm[] =
5691 0x4000, 0x0001, 0xa702, 0x0002, 0x6000, 0x8000
5693 const SvxMSDffTextRectangles mso_sptFlowChartDisplayTextRect[] =
5695 { { 3600, 0 }, { 17800, 21600 } }
5697 const mso_CustomShape msoFlowChartDisplay =
5699 std::span<const SvxMSDffVertPair>(mso_sptFlowChartDisplayVert),
5700 const_cast<sal_uInt16*>(mso_sptFlowChartDisplaySegm), sizeof( mso_sptFlowChartDisplaySegm ) >> 1,
5701 std::span<const SvxMSDffCalculationData>(),
5702 nullptr,
5703 std::span<const SvxMSDffTextRectangles>(mso_sptFlowChartDisplayTextRect),
5704 21600, 21600,
5705 MIN_INT32, MIN_INT32,
5706 std::span<const SvxMSDffVertPair>(mso_sptStandardGluePoints),
5707 std::span<const SvxMSDffHandle>() // handles
5710 const SvxMSDffVertPair mso_sptWedgeRectCalloutVert[] =
5712 { 0, 0 },
5713 { 0, 3590 }, { 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5714 { 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5715 { 0, 21600 },
5716 { 3590, 21600 }, { 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5717 { 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 },
5718 { 21600, 21600 },
5719 { 21600, 18010 }, { 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5720 { 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5721 { 21600, 0 },
5722 { 18010, 0 }, { 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5723 { 8970, 0 }, { 16 MSO_I, 17 MSO_I }, { 3590, 0 },
5724 { 0, 0 }
5726 const SvxMSDffCalculationData mso_sptWedgeRectCalloutCalc[] =
5728 { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } }, //0x400
5729 { 0x2000, { DFF_Prop_adjust2Value, 0,10800 } },
5730 { 0x6006, { 0x412, DFF_Prop_adjustValue, 0 } }, //0x402
5731 { 0x6006, { 0x412, DFF_Prop_adjust2Value, 6280 } },
5732 { 0x6006, { 0x417, DFF_Prop_adjustValue, 0 } }, //0x404
5733 { 0x6006, { 0x417, DFF_Prop_adjust2Value, 15320 } },
5734 { 0x6006, { 0x41a, DFF_Prop_adjustValue, 6280 } }, //0x406
5735 { 0x6006, { 0x41a, DFF_Prop_adjust2Value, 21600 } },
5736 { 0x6006, { 0x41d, DFF_Prop_adjustValue, 15320 } }, //0x408
5737 { 0x6006, { 0x41d, DFF_Prop_adjust2Value, 21600 } },
5738 { 0x6006, { 0x420, DFF_Prop_adjustValue, 21600 } }, //0x40a
5739 { 0x6006, { 0x420, DFF_Prop_adjust2Value, 15320 } },
5740 { 0x6006, { 0x422, DFF_Prop_adjustValue, 21600 } }, //0x40c
5741 { 0x6006, { 0x422, DFF_Prop_adjust2Value, 6280 } },
5742 { 0x6006, { 0x424, DFF_Prop_adjustValue, 15320 } }, //0x40e
5743 { 0x6006, { 0x424, DFF_Prop_adjust2Value, 0 } },
5744 { 0x6006, { 0x426, DFF_Prop_adjustValue, 6280 } }, //0x410
5745 { 0x6006, { 0x426, DFF_Prop_adjust2Value, 0 } },
5746 { 0xa006, { DFF_Prop_adjustValue, -1, 0x413 } }, //0x412
5747 { 0xa006, { 0x401, -1, 0x416 } },
5748 { 0x2003, { 0x400, 0, 0 } }, //0x414
5749 { 0x2003, { 0x401, 0, 0 } },
5750 { 0xa000, { 0x414, 0, 0x415 } }, //0x416
5751 { 0xa006, { DFF_Prop_adjustValue, -1, 0x418 } },
5752 { 0x6006, { 0x401, 0x416, -1 } }, //0x418
5753 { 0x2000, { DFF_Prop_adjust2Value, 0, 21600 } },
5754 { 0x6006, { 0x419, 0x41b, -1 } }, //0x41a
5755 { 0xa006, { 0x400, -1, 0x41c } },
5756 { 0xa000, { 0x415, 0, 0x414 } }, //0x41c
5757 { 0x6006, { 0x419, 0x41e, -1 } },
5758 { 0x6006, { 0x400, 0x41c, -1 } }, //0x41e
5759 { 0x2000, { DFF_Prop_adjustValue, 0, 21600 } },
5760 { 0x6006, { 0x41f, 0x421, -1 } }, //0x420
5761 { 0x6006, { 0x401, 0x416, -1 } },
5762 { 0x6006, { 0x41f, 0x423, -1 } }, //0x422
5763 { 0xa006, { 0x401, -1, 0x416 } },
5764 { 0xa006, { DFF_Prop_adjust2Value, -1, 0x425 } }, //0x424
5765 { 0x6006, { 0x400, 0x41c, -1 } },
5766 { 0xa006, { DFF_Prop_adjust2Value, -1, 0x427 } }, //0x426
5767 { 0xa006, { 0x400, -1, 0x41c } },
5768 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //0x428
5769 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }
5771 const sal_Int32 mso_sptWedgeRectCalloutDefault[] =
5773 2, 1400, 25920
5775 const SvxMSDffTextRectangles mso_sptWedgeRectCalloutTextRect[] =
5777 { { 0, 0 }, { 21600, 21600 } }
5779 const SvxMSDffVertPair mso_sptWedgeRectCalloutGluePoints[] =
5781 { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }, { 40 MSO_I, 41 MSO_I }
5783 const SvxMSDffHandle mso_sptCalloutHandle[] =
5786 SvxMSDffHandleFlags::NONE,
5787 0x100, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff
5790 const mso_CustomShape msoWedgeRectCallout =
5792 std::span<const SvxMSDffVertPair>(mso_sptWedgeRectCalloutVert),
5793 nullptr, 0,
5794 std::span<const SvxMSDffCalculationData>(mso_sptWedgeRectCalloutCalc),
5795 const_cast<sal_Int32*>(mso_sptWedgeRectCalloutDefault),
5796 std::span<const SvxMSDffTextRectangles>(mso_sptWedgeRectCalloutTextRect),
5797 21600, 21600,
5798 MIN_INT32, MIN_INT32,
5799 std::span<const SvxMSDffVertPair>(mso_sptWedgeRectCalloutGluePoints),
5800 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle),
5802 const SvxMSDffVertPair mso_sptWedgeRRectCalloutVert[] =
5804 { 3590, 0 },
5805 { 0, 3590 },
5806 { 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5807 { 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5808 { 3590, 21600 },
5809 { 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5810 { 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 },
5811 { 21600, 18010 },
5812 { 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5813 { 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5814 { 18010, 0 },
5815 { 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5816 { 8970, 0 }, { 16 MSO_I, 17 MSO_I }
5818 const sal_uInt16 mso_sptWedgeRRectCalloutSegm[] =
5820 0x4000, 0xa701, 0x0005, 0xa801, 0x0005, 0xa701, 0x0005, 0xa801, 0x0004, 0x6001, 0x8000
5822 const SvxMSDffTextRectangles mso_sptWedgeRRectCalloutTextRect[] =
5824 { { 800, 800 }, { 20800, 20800 } }
5826 const mso_CustomShape msoWedgeRRectCallout =
5828 std::span<const SvxMSDffVertPair>(mso_sptWedgeRRectCalloutVert),
5829 const_cast<sal_uInt16*>(mso_sptWedgeRRectCalloutSegm), sizeof( mso_sptWedgeRRectCalloutSegm ) >> 1,
5830 std::span<const SvxMSDffCalculationData>(mso_sptWedgeRectCalloutCalc),
5831 const_cast<sal_Int32*>(mso_sptWedgeRectCalloutDefault),
5832 std::span<const SvxMSDffTextRectangles>(mso_sptWedgeRRectCalloutTextRect),
5833 21600, 21600,
5834 MIN_INT32, MIN_INT32,
5835 std::span<const SvxMSDffVertPair>(),
5836 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle),
5838 const SvxMSDffVertPair mso_sptBalloonVert[] =
5840 { 3590, 0 },
5841 { 0, 3590 },
5842 { 0, 14460 },
5843 { 3590, 18050 },
5844 { 40 MSO_I, 21600 }, { 5420, 18050 },
5845 { 18010, 18050 },
5846 { 21600, 14460 },
5847 { 21600, 3590 },
5848 { 18010, 0 }
5850 const sal_uInt16 mso_sptBalloonSegm[] =
5852 0x4000, 0xa701, 0x0001, 0xa801, 0x0003, 0xa701, 0x0001, 0xa801, 0x6001, 0x8000
5854 const SvxMSDffHandle mso_sptBalloonHandle[] =
5857 SvxMSDffHandleFlags::RANGE,
5858 0x100, 1, 10800, 10800, 0, 8990, MIN_INT32, 0x7fffffff
5861 const SvxMSDffTextRectangles mso_sptBalloonTextRect[] =
5863 { { 800, 800 }, { 20800, 17250 } }
5865 const mso_CustomShape msoBalloon =
5867 std::span<const SvxMSDffVertPair>(mso_sptBalloonVert),
5868 const_cast<sal_uInt16*>(mso_sptBalloonSegm), sizeof( mso_sptBalloonSegm ) >> 1,
5869 std::span<const SvxMSDffCalculationData>(mso_sptWedgeRectCalloutCalc),
5870 const_cast<sal_Int32*>(mso_sptWedgeRectCalloutDefault),
5871 std::span<const SvxMSDffTextRectangles>(mso_sptBalloonTextRect),
5872 21600, 21600,
5873 MIN_INT32, MIN_INT32,
5874 std::span<const SvxMSDffVertPair>(),
5875 std::span<const SvxMSDffHandle>(mso_sptBalloonHandle),
5877 const SvxMSDffVertPair mso_sptWedgeEllipseCalloutVert[] =
5879 { 0, 0 }, { 21600, 21600 }, { 0x16 MSO_I, 0x17 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0xe MSO_I, 0xf MSO_I }
5881 const sal_uInt16 mso_sptWedgeEllipseCalloutSegm[] =
5883 0xa504, 0x0001, 0x6001, 0x8000
5885 const SvxMSDffCalculationData mso_sptWedgeEllipseCalloutCalc[] =
5887 { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } }, // 00 rad x
5888 { 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } }, // 01 rad y
5889 { 0x6001, { 0x400, 0x400, 1 } }, // 02 rad x^2
5890 { 0x6001, { 0x401, 0x401, 1 } }, // 03 rad y^2
5891 { 0x6000, { 0x402, 0x403, 0 } }, // 04
5892 { 0x200d, { 0x404, 0, 0 } }, // 05
5893 { 0x2000, { 0x405, 0, 10800 } }, // 06 > 0 ? spur needs to be drawn : 10800
5894 { 0x6008, { 0x400, 0x401, 0 } }, // 07 atan2 -> angle
5895 { 0x2000, { 0x407, 0, 10 } }, // 08
5896 { 0x2000, { 0x407, 10, 0 } }, // 09
5897 { 0x400a, { 10800, 0x407, 0 } }, // 0a
5898 { 0x4009, { 10800, 0x407, 0 } }, // 0b
5899 { 0x2000, { 0x40a, 10800, 0 } }, // 0c
5900 { 0x2000, { 0x40b, 10800, 0 } }, // 0d
5901 { 0xe006, { 0x406, DFF_Prop_adjustValue, 0x40c } }, // 0e
5902 { 0xe006, { 0x406, DFF_Prop_adjust2Value, 0x40d } },// 0f
5903 { 0x400a, { 10800, 0x408, 0 } }, // 10
5904 { 0x4009, { 10800, 0x408, 0 } }, // 11
5905 { 0x2000, { 0x410, 10800, 0 } }, // 12
5906 { 0x2000, { 0x411, 10800, 0 } }, // 13
5907 { 0x400a, { 10800, 0x409, 0 } }, // 14
5908 { 0x4009, { 10800, 0x409, 0 } }, // 15
5909 { 0x2000, { 0x414, 10800, 0 } }, // 16
5910 { 0x2000, { 0x415, 10800, 0 } } // 17
5912 const sal_Int32 mso_sptWedgeEllipseCalloutDefault[] =
5914 2, 1350, 25920
5916 const SvxMSDffVertPair mso_sptWedgeEllipseCalloutGluePoints[] =
5918 { 10800, 0 }, { 3160, 3160 }, { 0, 10800 }, { 3160, 18440 }, { 10800, 21600 }, { 18440, 18440 }, { 21600, 10800 }, { 18440, 3160 }, { 0xe MSO_I, 0xf MSO_I }
5920 const SvxMSDffTextRectangles mso_sptWedgeEllipseCalloutTextRect[] =
5922 { { 3200, 3200 }, { 18400, 18400 } }
5924 const mso_CustomShape msoWedgeEllipseCallout =
5926 std::span<const SvxMSDffVertPair>(mso_sptWedgeEllipseCalloutVert),
5927 const_cast<sal_uInt16*>(mso_sptWedgeEllipseCalloutSegm), sizeof( mso_sptWedgeEllipseCalloutSegm ) >> 1,
5928 std::span<const SvxMSDffCalculationData>(mso_sptWedgeEllipseCalloutCalc),
5929 const_cast<sal_Int32*>(mso_sptWedgeEllipseCalloutDefault),
5930 std::span<const SvxMSDffTextRectangles>(mso_sptWedgeEllipseCalloutTextRect),
5931 21600, 21600,
5932 MIN_INT32, MIN_INT32,
5933 std::span<const SvxMSDffVertPair>(mso_sptWedgeEllipseCalloutGluePoints),
5934 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle),
5937 const SvxMSDffVertPair mso_sptCloudCalloutVert[] =
5939 { 1930,7160 }, // p
5940 { 1530,4490 }, { 3400,1970 }, { 5270,1970 }, // ccp
5941 { 5860,1950 }, { 6470,2210 }, { 6970,2600 }, // ccp
5942 { 7450,1390 }, { 8340,650 }, { 9340,650 }, // ccp
5943 { 10004,690 }, { 10710,1050 }, { 11210,1700 }, // ccp
5944 { 11570,630 }, { 12330,0 }, { 13150,0 }, // ccp
5945 { 13840,0 }, { 14470,460 }, { 14870,1160 }, // ccp
5946 { 15330,440 }, { 16020,0 }, { 16740,0 }, // ccp
5947 { 17910,0 }, { 18900,1130 }, { 19110,2710 }, // ccp
5948 { 20240,3150 }, { 21060,4580 }, { 21060,6220 }, // ccp
5949 { 21060,6720 }, { 21000,7200 }, { 20830,7660 }, // ccp
5950 { 21310,8460 }, { 21600,9450 }, { 21600,10460 }, // ccp
5951 { 21600,12750 }, { 20310,14680 }, { 18650,15010 }, // ccp
5952 { 18650,17200 }, { 17370,18920 }, { 15770,18920 }, // ccp
5953 { 15220,18920 }, { 14700,18710 }, { 14240,18310 }, // ccp
5954 { 13820,20240 }, { 12490,21600 }, { 11000,21600 }, // ccp
5955 { 9890,21600 }, { 8840,20790 }, { 8210,19510 }, // ccp
5956 { 7620,20000 }, { 7930,20290 }, { 6240,20290 }, // ccp
5957 { 4850,20290 }, { 3570,19280 }, { 2900,17640 }, // ccp
5958 { 1300,17600 }, { 480,16300 }, { 480,14660 }, // ccp
5959 { 480,13900 }, { 690,13210 }, { 1070,12640 }, // ccp
5960 { 380,12160 }, { 0,11210 }, { 0,10120 }, // ccp
5961 { 0,8590 }, { 840,7330 }, { 1930,7160 }, // ccp
5963 { 1930, 7160 }, { 1950, 7410 }, { 2040, 7690 }, { 2090, 7920 }, // pccp
5964 { 6970, 2600 }, { 7200, 2790 }, { 7480, 3050 }, { 7670, 3310 }, // pccp
5965 { 11210, 1700 }, { 11130, 1910 }, { 11080, 2160 }, { 11030, 2400 }, // pccp
5966 { 14870, 1160 }, { 14720, 1400 }, { 14640, 1720 }, { 14540, 2010 }, // pccp
5967 { 19110, 2710 }, { 19130, 2890 }, { 19230, 3290 }, { 19190, 3380 }, // pccp
5968 { 20830, 7660 }, { 20660, 8170 }, { 20430, 8620 }, { 20110, 8990 }, // pccp
5969 { 18660, 15010 }, { 18740, 14200 }, { 18280, 12200 }, { 17000, 11450 }, // pccp
5970 { 14240, 18310 }, { 14320, 17980 }, { 14350, 17680 }, { 14370, 17360 }, // pccp
5971 { 8220, 19510 }, { 8060, 19250 }, { 7960, 18950 }, { 7860, 18640 }, // pccp
5972 { 2900, 17640 }, { 3090, 17600 }, { 3280, 17540 }, { 3460, 17450 }, // pccp
5973 { 1070, 12640 }, { 1400, 12900 }, { 1780, 13130 }, { 2330, 13040 }, // pccp
5975 { 0x11 MSO_I, 0x12 MSO_I }, { 1800, 1800 }, { 0, 360 }, // circ1
5976 { 0x13 MSO_I, 0x14 MSO_I }, { 1200, 1200 }, { 0, 360 }, // circ2
5977 { 0xd MSO_I, 0xe MSO_I }, { 700, 700 }, { 0, 360 } // circ3
5979 const sal_uInt16 mso_sptCloudCalloutSegm[] =
5981 0x4000, 0x2016, 0x6001, 0x8000,
5982 0x4000, 0x2001, 0xaa00, 0x8000,
5983 0x4000, 0x2001, 0xaa00, 0x8000,
5984 0x4000, 0x2001, 0xaa00, 0x8000,
5985 0x4000, 0x2001, 0xaa00, 0x8000,
5986 0x4000, 0x2001, 0xaa00, 0x8000,
5987 0x4000, 0x2001, 0xaa00, 0x8000,
5988 0x4000, 0x2001, 0xaa00, 0x8000,
5989 0x4000, 0x2001, 0xaa00, 0x8000,
5990 0x4000, 0x2001, 0xaa00, 0x8000,
5991 0x4000, 0x2001, 0xaa00, 0x8000,
5992 0x4000, 0x2001, 0xaa00, 0x8000,
5993 0xa203, 0x6001, 0x8000,
5994 0xa203, 0x6001, 0x8000,
5995 0xa203, 0x6001, 0x8000
5997 const SvxMSDffCalculationData mso_sptCloudCalloutCalc[] =
5999 { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
6000 { 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } },
6001 { 0x6008, { 0x400, 0x401, 0 } },
6002 { 0x400a, { 10800, 0x402, 0 } }, // 3
6003 { 0x4009, { 10800, 0x402, 0 } }, // 4
6004 { 0x2000, { 0x403, 10800, 0 } }, // 5
6005 { 0x2000, { 0x404, 10800, 0 } }, // 6
6006 { 0xa000, { DFF_Prop_adjustValue, 0, 0x405 } }, // 7
6007 { 0xa000, { DFF_Prop_adjust2Value,0, 0x406 } }, // 8
6008 { 0x2001, { 0x407, 1, 3 } }, // 9
6009 { 0x2001, { 0x408, 1, 3 } }, // 0xa
6010 { 0x2001, { 0x407, 2, 3 } }, // 0xb
6011 { 0x2001, { 0x408, 2, 3 } }, // 0xc
6012 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0xd
6013 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 0xe
6014 { 0x2001, { 0x403, 1, 10800 / 900 } }, // 0xf taking half x distance of the radius from the first bobble
6015 { 0x2001, { 0x404, 1, 10800 / 900 } }, // 0x10
6016 { 0xe000, { 0x409, 0x405, 0x40f } }, // 0x11
6017 { 0xe000, { 0x40a, 0x406, 0x410 } }, // 0x12
6018 { 0x6000, { 0x40b, 0x405, 0 } }, // 0x13
6019 { 0x6000, { 0x40c, 0x406, 0 } } // 0x14
6021 const sal_Int32 mso_sptCloudCalloutDefault[] =
6023 2, 1350, 25920
6025 const SvxMSDffTextRectangles mso_sptCloudCalloutTextRect[] =
6027 { { 3000, 3320 }, { 17110, 17330 } }
6029 const mso_CustomShape msoCloudCallout =
6031 std::span<const SvxMSDffVertPair>(mso_sptCloudCalloutVert),
6032 const_cast<sal_uInt16*>(mso_sptCloudCalloutSegm), sizeof( mso_sptCloudCalloutSegm ) >> 1,
6033 std::span<const SvxMSDffCalculationData>(mso_sptCloudCalloutCalc),
6034 const_cast<sal_Int32*>(mso_sptCloudCalloutDefault),
6035 std::span<const SvxMSDffTextRectangles>(mso_sptCloudCalloutTextRect),
6036 21600, 21600,
6037 MIN_INT32, MIN_INT32,
6038 std::span<const SvxMSDffVertPair>(),
6039 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle),
6042 const SvxMSDffVertPair mso_sptWaveVert[] = // adjustment1 : 0 - 4460
6043 { // adjustment2 : 8640 - 12960
6044 { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
6045 { 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
6047 const SvxMSDffCalculationData mso_sptWaveCalc[] =
6049 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //400 (vert.adj)
6050 { 0x8000, { 21600, 0, 0x400 } }, //401
6051 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
6052 { 0x2000, { 0x402, 0, 10800 } }, //403 -2160 -> 2160 (horz.adj)
6053 { 0x2001, { 0x403, 2, 1 } }, //404 -4320 -> 4320 (horz.adj)
6054 { 0x2003, { 0x404, 0, 0 } }, //405 abs( 0x404 ) (horz.adj)
6055 { 0x8000, { 4320, 0, 0x405 } }, //406
6056 { 0xa006, { 0x403, 0, 0x405 } }, //407
6057 { 0x4001, { 15800, 0x400, 4460 } }, //408 0 -> 15800 (vert.adj)
6058 { 0xa000, { 0x400, 0, 0x408 } }, //409
6059 { 0x6000, { 0x400, 0x408, 0 } }, //40a
6060 { 0x8000, { 21600, 0, 0x404 } }, //40b
6061 { 0x6006, { 0x403, 0x40b, 21600 } }, //40c
6062 { 0xa000, { 0x40c, 0, 0x407 } }, //40d width between p0 and p1
6063 { 0x2001, { 0x405, 1, 2 } }, //40e
6064 { 0xa000, { 0x407, 7200, 0x40e } }, //40f
6065 { 0x6000, { 0x40c, 0x40e, 7200 } }, //410
6066 { 0x2001, { 0x40d, 1, 2 } }, //411 1/2 width
6067 { 0x6000, { 0x407, 0x411, 0 } }, //412 top center glue xpos
6068 { 0x8000, { 21600, 0, 0x412 } }, //413 bottom center glue xpos
6069 { 0x2001, { 0x405, 1, 2 } }, //414 left glue x pos
6070 { 0x8000, { 21600, 0, 0x414 } }, //415 right glue x pos
6071 { 0x2001, { 0x400, 2, 1 } }, //416 y1 (textbox)
6072 { 0x8000, { 21600, 0, 0x416 } }, //417 y2 (textbox)
6074 { 0x8000, { 21600, 0, 0x407 } }, //418 p2
6076 { 0x8000, { 21600, 0, 0x40f } }, //419 c
6077 { 0x6000, { 0x401, 0x408, 0 } }, //41a
6079 { 0x8000, { 21600, 0, 0x410 } }, //41b c
6080 { 0xa000, { 0x401, 0, 0x408 } }, //41c
6082 { 0x8000, { 21600, 0, 0x40c } } //41d p3
6084 const SvxMSDffVertPair mso_sptWaveGluePoints[] =
6086 { 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
6088 const sal_uInt16 mso_sptWaveSegm[] =
6090 0x4000, 0x2001, 0x0001, 0x2001, 0x6000, 0x8000
6092 const SvxMSDffHandle mso_sptWaveHandle[] =
6094 { SvxMSDffHandleFlags::RANGE,
6095 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 4460 },
6096 { SvxMSDffHandleFlags::RANGE,
6097 0x101, 21600, 10800, 10800, 8640, 12960, MIN_INT32, 0x7fffffff }
6099 const sal_Int32 mso_sptWaveDefault[] =
6101 2, 1400, 10800
6103 const SvxMSDffTextRectangles mso_sptWaveTextRect[] =
6105 { { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
6107 const mso_CustomShape msoWave =
6109 std::span<const SvxMSDffVertPair>(mso_sptWaveVert),
6110 const_cast<sal_uInt16*>(mso_sptWaveSegm), sizeof( mso_sptWaveSegm ) >> 1,
6111 std::span<const SvxMSDffCalculationData>(mso_sptWaveCalc),
6112 const_cast<sal_Int32*>(mso_sptWaveDefault),
6113 std::span<const SvxMSDffTextRectangles>(mso_sptWaveTextRect),
6114 21600, 21600,
6115 MIN_INT32, MIN_INT32,
6116 std::span<const SvxMSDffVertPair>(mso_sptWaveGluePoints),
6117 std::span<const SvxMSDffHandle>(mso_sptWaveHandle),
6120 const SvxMSDffVertPair mso_sptDoubleWaveVert[] = // adjustment1 : 0 - 2230
6121 { // adjustment2 : 8640 - 12960
6122 { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1f MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1e MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
6123 { 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 0x20 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
6125 const SvxMSDffCalculationData mso_sptDoubleWaveCalc[] =
6127 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //400 (vert.adj)
6128 { 0x8000, { 21600, 0, 0x400 } }, //401
6129 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
6130 { 0x2000, { 0x402, 0, 10800 } }, //403 -2160 -> 2160 (horz.adj)
6131 { 0x2001, { 0x403, 2, 1 } }, //404 -4320 -> 4320 (horz.adj)
6132 { 0x2003, { 0x404, 0, 0 } }, //405 abs( 0x404 ) (horz.adj)
6133 { 0x8000, { 4320, 0, 0x405 } }, //406 -> not used
6134 { 0xa006, { 0x403, 0, 0x405 } }, //407
6135 { 0x4001, { 7900, 0x400, 2230 } }, //408 0 -> 7900 (vert.adj)
6136 { 0xa000, { 0x400, 0, 0x408 } }, //409
6137 { 0x6000, { 0x400, 0x408, 0 } }, //40a
6138 { 0x8000, { 21600, 0, 0x404 } }, //40b
6139 { 0x6006, { 0x403, 0x40b, 21600 } }, //40c
6140 { 0xa000, { 0x40c, 0, 0x407 } }, //40d width between p0 and p1
6141 { 0x2001, { 0x405, 1, 2 } }, //40e
6142 { 0xa000, { 0x407, 3600, 0x40e } }, //40f
6143 { 0x6000, { 0x40c, 0x40e, 3600 } }, //410
6144 { 0x2001, { 0x40d, 1, 2 } }, //411 1/2 width
6145 { 0x6000, { 0x407, 0x411, 0 } }, //412 top center glue xpos
6146 { 0x8000, { 21600, 0, 0x412 } }, //413 bottom center glue xpos
6147 { 0x2001, { 0x405, 1, 2 } }, //414 left glue x pos
6148 { 0x8000, { 21600, 0, 0x414 } }, //415 right glue x pos
6149 { 0x2001, { 0x400, 2, 1 } }, //416 y1 (textbox)
6150 { 0x8000, { 21600, 0, 0x416 } }, //417 y2 (textbox)
6152 { 0x8000, { 21600, 0, 0x407 } }, //418 p2
6154 { 0x8000, { 21600, 0, 0x40f } }, //419 c
6155 { 0x6000, { 0x401, 0x408, 0 } }, //41a
6157 { 0x8000, { 21600, 0, 0x410 } }, //41b c
6158 { 0xa000, { 0x401, 0, 0x408 } }, //41c
6160 { 0x8000, { 21600, 0, 0x40c } }, //41d p3
6161 { 0xa000, { 0x412, 3600, 0x40e } }, //41e
6162 { 0x6000, { 0x412, 0x40e, 3600 } }, //41f
6163 { 0xa000, { 0x413, 3600, 0x40e } }, //420
6164 { 0x6000, { 0x413, 0x40e, 3600 } } //421
6166 const SvxMSDffVertPair mso_sptDoubleWaveGluePoints[] =
6168 { 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
6170 const sal_uInt16 mso_sptDoubleWaveSegm[] =
6172 0x4000, 0x2002, 0x0001, 0x2002, 0x6000, 0x8000
6174 const SvxMSDffHandle mso_sptDoubleWaveHandle[] =
6176 { SvxMSDffHandleFlags::RANGE,
6177 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 2230 },
6178 { SvxMSDffHandleFlags::RANGE,
6179 0x101, 21600, 10800, 10800, 8640, 12960, MIN_INT32, 0x7fffffff }
6181 const sal_Int32 mso_sptDoubleWaveDefault[] =
6183 2, 1400, 10800
6185 const SvxMSDffTextRectangles mso_sptDoubleWaveTextRect[] =
6187 { { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
6189 const mso_CustomShape msoDoubleWave =
6191 std::span<const SvxMSDffVertPair>(mso_sptDoubleWaveVert),
6192 const_cast<sal_uInt16*>(mso_sptDoubleWaveSegm), sizeof( mso_sptDoubleWaveSegm ) >> 1,
6193 std::span<const SvxMSDffCalculationData>(mso_sptDoubleWaveCalc),
6194 const_cast<sal_Int32*>(mso_sptDoubleWaveDefault),
6195 std::span<const SvxMSDffTextRectangles>(mso_sptDoubleWaveTextRect),
6196 21600, 21600,
6197 MIN_INT32, MIN_INT32,
6198 std::span<const SvxMSDffVertPair>(mso_sptDoubleWaveGluePoints),
6199 std::span<const SvxMSDffHandle>(mso_sptDoubleWaveHandle),
6202 // for each shapetype a bit of 1 is indicating that the shape is NOT filled by default
6203 const sal_uInt16 mso_DefaultFillingTable[] =
6205 0x0000, 0x0018, 0x01ff, 0x0000, 0x0c00, 0x01e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000
6207 bool IsCustomShapeFilledByDefault( MSO_SPT eSpType )
6209 bool bIsFilledByDefault = true;
6210 sal_uInt32 i = static_cast<sal_uInt32>(eSpType);
6211 if ( i < 0x100 )
6212 bIsFilledByDefault = ( mso_DefaultFillingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
6213 return bIsFilledByDefault;
6215 sal_Int16 GetCustomShapeConnectionTypeDefault( MSO_SPT eSpType )
6217 sal_Int16 nGluePointType = css::drawing::EnhancedCustomShapeGluePointType::SEGMENTS;
6218 const mso_CustomShape* pDefCustomShape = GetCustomShapeContent( eSpType );
6219 if (pDefCustomShape && !pDefCustomShape->pGluePoints.empty())
6220 nGluePointType = css::drawing::EnhancedCustomShapeGluePointType::CUSTOM;
6221 else
6223 switch( eSpType )
6225 case mso_sptRectangle :
6226 case mso_sptRoundRectangle :
6227 case mso_sptPictureFrame :
6228 case mso_sptFlowChartProcess :
6229 case mso_sptFlowChartPredefinedProcess :
6230 case mso_sptFlowChartInternalStorage :
6231 case mso_sptTextPlainText :
6232 case mso_sptTextBox :
6233 case mso_sptVerticalScroll :
6234 case mso_sptHorizontalScroll :
6235 nGluePointType = css::drawing::EnhancedCustomShapeGluePointType::RECT;
6236 break;
6237 default: break;
6240 return nGluePointType;
6243 // for each shapetype a bit of 1 is indicating that the shape is NOT stroked by default
6244 // #i28269#
6245 const sal_uInt16 mso_DefaultStrokingTable[] =
6247 0x0000, 0x0000, 0x0000, 0x0000,
6248 0x0800, 0x0000, 0x0000, 0x0000, // #i28269# Added shape 75 (mso_sptPictureFrame)
6249 0x0000, 0x0000, 0x0000, 0x0000,
6250 0x0000, 0x0000, 0x0000, 0x0000
6252 // #i28269#
6253 bool IsCustomShapeStrokedByDefault( MSO_SPT eSpType )
6255 bool bIsStrokedByDefault = true;
6256 sal_uInt32 i = static_cast<sal_uInt32>(eSpType);
6257 if ( i < 0x100 )
6258 bIsStrokedByDefault = ( mso_DefaultStrokingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
6259 return bIsStrokedByDefault;
6262 const sal_uInt16 msoSortFilledObjectsToBackTable[] =
6264 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
6266 bool SortFilledObjectsToBackByDefault( MSO_SPT eSpType )
6268 bool bSortFilledObjectsToBackByDefault = true;
6269 sal_uInt32 i = static_cast<sal_uInt32>(eSpType);
6270 if ( i < 0x100 )
6271 bSortFilledObjectsToBackByDefault = ( msoSortFilledObjectsToBackTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) != 0;
6272 return bSortFilledObjectsToBackByDefault;
6275 const SvxMSDffTextRectangles mso_sptFontWorkTextRect[] =
6277 { { 0, 0 }, { 21600, 21600 } }
6280 const SvxMSDffVertPair mso_sptTextPlainTextVert[] =
6282 { 3 MSO_I, 0 }, { 5 MSO_I, 0 }, { 6 MSO_I, 21600 }, { 7 MSO_I, 21600 }
6284 const SvxMSDffCalculationData mso_sptTextPlainTextCalc[] = // adjustment1 : 6629 - 14971
6286 { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
6287 { 0x2001, { 0x400, 2, 1 } },
6288 { 0x2003, { 0x401, 0, 0 } },
6289 { 0xa006, { 0x401, 0, 0x402 } }, // x1(3)
6290 { 0x8000, { 21600, 0, 0x402 } },
6291 { 0x6006, { 0x401, 0x404, 21600 } }, // x2(5)
6292 { 0x6006, { 0x401, 0x402, 0 } }, // x2
6293 { 0xa006, { 0x401, 21600, 0x404 } } // x3(7)
6295 const sal_uInt16 mso_sptTextPlainTextSegm[] =
6297 0x4000, 0x0001, 0x8000,
6298 0x4000, 0x0001, 0x8000
6300 const SvxMSDffHandle mso_sptTextPlainTextHandle[] =
6302 { SvxMSDffHandleFlags::RANGE,
6303 0x100, 21600, 10800, 10800, 6629, 14971, MIN_INT32, 0x7fffffff }
6305 const mso_CustomShape msoTextPlainText =
6307 std::span<const SvxMSDffVertPair>(mso_sptTextPlainTextVert),
6308 const_cast<sal_uInt16*>(mso_sptTextPlainTextSegm), sizeof( mso_sptTextPlainTextSegm ) >> 1,
6309 std::span<const SvxMSDffCalculationData>(mso_sptTextPlainTextCalc),
6310 const_cast<sal_Int32*>(mso_sptDefault10800),
6311 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6312 21600, 21600,
6313 MIN_INT32, MIN_INT32,
6314 std::span<const SvxMSDffVertPair>(),
6315 std::span<const SvxMSDffHandle>(mso_sptTextPlainTextHandle),
6318 const SvxMSDffVertPair mso_sptTextStopVert[] =
6320 { 0, 0 MSO_I }, { 7200, 0 }, { 14400, 0 }, { 21600, 0 MSO_I },
6321 { 0, 1 MSO_I }, { 7200, 21600 }, { 14400, 21600 }, { 21600, 1 MSO_I }
6323 const SvxMSDffCalculationData mso_sptTextStopCalc[] = // adjustment1 : 3080 - 10800
6325 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6326 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6328 const sal_uInt16 mso_sptTextStopSegm[] =
6330 0x4000, 0x0003, 0x8000,
6331 0x4000, 0x0003, 0x8000
6333 const sal_Int32 mso_sptTextStopDefault[] =
6335 1, 2700
6337 const SvxMSDffHandle mso_sptTextStopHandle[] =
6339 { SvxMSDffHandleFlags::RANGE,
6340 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 3080, 10800 }
6342 const mso_CustomShape msoTextStop =
6344 std::span<const SvxMSDffVertPair>(mso_sptTextStopVert),
6345 const_cast<sal_uInt16*>(mso_sptTextStopSegm), sizeof( mso_sptTextStopSegm ) >> 1,
6346 std::span<const SvxMSDffCalculationData>(mso_sptTextStopCalc),
6347 const_cast<sal_Int32*>(mso_sptTextStopDefault),
6348 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6349 21600, 21600,
6350 MIN_INT32, MIN_INT32,
6351 std::span<const SvxMSDffVertPair>(),
6352 std::span<const SvxMSDffHandle>(mso_sptTextStopHandle),
6355 const SvxMSDffVertPair mso_sptTextTriangleVert[] =
6357 { 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 21600 }
6359 const SvxMSDffCalculationData mso_sptTextTriangleCalc[] = // adjustment1 : 6629 - 14971
6361 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
6363 const sal_uInt16 mso_sptTextTriangleSegm[] =
6365 0x4000, 0x0002, 0x8000,
6366 0x4000, 0x0001, 0x8000
6368 const SvxMSDffHandle mso_sptTextTriangleHandle[] =
6370 { SvxMSDffHandleFlags::RANGE,
6371 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 21600 }
6373 const mso_CustomShape msoTextTriangle =
6375 std::span<const SvxMSDffVertPair>(mso_sptTextTriangleVert),
6376 const_cast<sal_uInt16*>(mso_sptTextTriangleSegm), sizeof( mso_sptTextTriangleSegm ) >> 1,
6377 std::span<const SvxMSDffCalculationData>(mso_sptTextTriangleCalc),
6378 const_cast<sal_Int32*>(mso_sptDefault10800),
6379 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6380 21600, 21600,
6381 MIN_INT32, MIN_INT32,
6382 std::span<const SvxMSDffVertPair>(),
6383 std::span<const SvxMSDffHandle>(mso_sptTextTriangleHandle),
6385 const SvxMSDffVertPair mso_sptTextTriangleInvertedVert[] =
6387 { 0, 0 }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6389 const sal_uInt16 mso_sptTextTriangleInvertedSegm[] =
6391 0x4000, 0x0001, 0x8000,
6392 0x4000, 0x0002, 0x8000
6394 const mso_CustomShape msoTextTriangleInverted =
6396 std::span<const SvxMSDffVertPair>(mso_sptTextTriangleInvertedVert),
6397 const_cast<sal_uInt16*>(mso_sptTextTriangleInvertedSegm), sizeof( mso_sptTextTriangleInvertedSegm ) >> 1,
6398 std::span<const SvxMSDffCalculationData>(mso_sptTextTriangleCalc),
6399 const_cast<sal_Int32*>(mso_sptDefault10800),
6400 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6401 21600, 21600,
6402 MIN_INT32, MIN_INT32,
6403 std::span<const SvxMSDffVertPair>(),
6404 std::span<const SvxMSDffHandle>(mso_sptTextTriangleHandle),
6407 const SvxMSDffVertPair mso_sptTextChevronVert[] =
6409 { 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 10800, 1 MSO_I }, { 21600, 21600 }
6411 const SvxMSDffCalculationData mso_sptTextChevronCalc[] = // adjustment1 : 6629 - 14971
6413 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6414 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6416 const sal_uInt16 mso_sptTextChevronSegm[] =
6418 0x4000, 0x0002, 0x8000,
6419 0x4000, 0x0002, 0x8000
6421 const SvxMSDffHandle mso_sptTextChevronHandle[] =
6423 { SvxMSDffHandleFlags::RANGE,
6424 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 10800 }
6426 const mso_CustomShape msoTextChevron =
6428 std::span<const SvxMSDffVertPair>(mso_sptTextChevronVert),
6429 const_cast<sal_uInt16*>(mso_sptTextChevronSegm), sizeof( mso_sptTextChevronSegm ) >> 1,
6430 std::span<const SvxMSDffCalculationData>(mso_sptTextChevronCalc),
6431 const_cast<sal_Int32*>(mso_sptDefault5400),
6432 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6433 21600, 21600,
6434 MIN_INT32, MIN_INT32,
6435 std::span<const SvxMSDffVertPair>(),
6436 std::span<const SvxMSDffHandle>(mso_sptTextChevronHandle),
6439 const SvxMSDffVertPair mso_sptTextChevronInvertedVert[] =
6441 { 0, 0 }, { 10800, 1 MSO_I }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6443 const SvxMSDffCalculationData mso_sptTextChevronInvertedCalc[] = // adjustment1 : 6629 - 14971
6445 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6446 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6448 const sal_uInt16 mso_sptTextChevronInvertedSegm[] =
6450 0x4000, 0x0002, 0x8000,
6451 0x4000, 0x0002, 0x8000
6453 const SvxMSDffHandle mso_sptTextChevronInvertedHandle[] =
6455 { SvxMSDffHandleFlags::RANGE,
6456 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 10800, 21600 }
6458 const mso_CustomShape msoTextChevronInverted =
6460 std::span<const SvxMSDffVertPair>(mso_sptTextChevronInvertedVert),
6461 const_cast<sal_uInt16*>(mso_sptTextChevronInvertedSegm), sizeof( mso_sptTextChevronInvertedSegm ) >> 1,
6462 std::span<const SvxMSDffCalculationData>(mso_sptTextChevronInvertedCalc),
6463 const_cast<sal_Int32*>(mso_sptDefault16200),
6464 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6465 21600, 21600,
6466 MIN_INT32, MIN_INT32,
6467 std::span<const SvxMSDffVertPair>(),
6468 std::span<const SvxMSDffHandle>(mso_sptTextChevronInvertedHandle),
6470 //V 0 0 21600 ?f2 0 ?f0 21600 ?f0
6471 //W 0 0 21600 ?f2 21600 ?f0 0 ?f0 N
6472 //V 0 ?f3 21600 21600 0 ?f1 21600 ?f1
6473 //W 0 ?f3 21600 21600 21600 ?f1 0 ?f1 N
6474 //mso_sptTextRingInside
6475 const SvxMSDffVertPair mso_sptTextRingInsideVert[] =
6477 { 0, 0 }, { 21600, 2 MSO_I }, { 0, 0 MSO_I },{ 21600, 0 MSO_I },//V
6478 { 0, 0 }, { 21600, 2 MSO_I }, { 21600, 0 MSO_I },{ 0, 0 MSO_I },//W
6479 { 0, 3 MSO_I }, { 21600, 21600 }, { 0, 1 MSO_I },{ 21600, 1 MSO_I },//V
6480 { 0, 3 MSO_I }, { 21600, 21600 }, { 21600, 1 MSO_I },{ 0, 1 MSO_I }//W
6482 const SvxMSDffCalculationData mso_sptTextRingInsideCalc[] = // adjustment1 : 6629 - 14971
6484 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
6485 { 0x8000, { 21600, 0, 0x400 } },
6486 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //$0
6487 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }//21600-$0
6489 const sal_uInt16 mso_sptTextRingInsideSegm[] =
6491 0xa604, 0xa504,0x8000,
6492 0xa604, 0xa504,0x8000
6494 const SvxMSDffHandle mso_sptTextRingInsideHandle[] =
6496 { SvxMSDffHandleFlags::RANGE| SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL,
6497 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 10800, 21600 }
6499 const mso_CustomShape msoTextRingInside =
6501 std::span<const SvxMSDffVertPair>(mso_sptTextRingInsideVert),
6502 const_cast<sal_uInt16*>(mso_sptTextRingInsideSegm), sizeof( mso_sptTextRingInsideSegm ) >> 1,
6503 std::span<const SvxMSDffCalculationData>(mso_sptTextRingInsideCalc),
6504 const_cast<sal_Int32*>(mso_sptDefault13500),
6505 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6506 21600, 21600,
6507 MIN_INT32, MIN_INT32,
6508 std::span<const SvxMSDffVertPair>(),
6509 std::span<const SvxMSDffHandle>(mso_sptTextRingInsideHandle),
6511 //mso_sptTextRingOutside
6512 //path = U 10800 ?f0 10800 ?f2 180 539 N U 10800 ?f1 10800 ?f2 180 539 N
6513 // MSO binary format has swing angle, not end angle, therefore 359 instead of 539.
6514 const SvxMSDffVertPair mso_sptTextRingOutsideVert[] =
6516 { 10800, 0 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 },
6517 { 10800, 1 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 }
6519 const SvxMSDffCalculationData mso_sptTextRingOutsideCalc[] = // adjustment1 : 6629 - 14971
6521 { 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
6522 { 0x8000, { 21600, 0, 0x400 } }
6524 const sal_uInt16 mso_sptTextRingOutsideSegm[] =
6526 0xA203, 0x8000,
6527 0xA203, 0x8000
6529 const SvxMSDffHandle mso_sptTextRingOutsideHandle[] =
6531 { SvxMSDffHandleFlags::RANGE,
6532 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 10800, 21600 }
6534 const mso_CustomShape msoTextRingOutside =
6536 std::span<const SvxMSDffVertPair>(mso_sptTextRingOutsideVert),
6537 const_cast<sal_uInt16*>(mso_sptTextRingOutsideSegm), sizeof( mso_sptTextRingOutsideSegm ) >> 1,
6538 std::span<const SvxMSDffCalculationData>(mso_sptTextRingOutsideCalc),
6539 const_cast<sal_Int32*>(mso_sptDefault13500),
6540 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6541 21600, 21600,
6542 MIN_INT32, MIN_INT32,
6543 std::span<const SvxMSDffVertPair>(),
6544 std::span<const SvxMSDffHandle>(mso_sptTextRingOutsideHandle),
6547 const SvxMSDffVertPair mso_sptTextFadeRightVert[] =
6549 { 0, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 1 MSO_I }
6551 const SvxMSDffCalculationData mso_sptTextFadeCalc[] =
6553 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6554 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6556 const sal_uInt16 mso_sptTextFadeSegm[] =
6558 0x4000, 0x0001, 0x8000,
6559 0x4000, 0x0001, 0x8000
6561 const SvxMSDffHandle mso_sptTextFadeRightHandle[] =
6563 { SvxMSDffHandleFlags::RANGE,
6564 21600, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 10800 }
6566 const mso_CustomShape msoTextFadeRight =
6568 std::span<const SvxMSDffVertPair>(mso_sptTextFadeRightVert),
6569 const_cast<sal_uInt16*>(mso_sptTextFadeSegm), sizeof( mso_sptTextFadeSegm ) >> 1,
6570 std::span<const SvxMSDffCalculationData>(mso_sptTextFadeCalc),
6571 const_cast<sal_Int32*>(mso_sptDefault7200),
6572 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6573 21600, 21600,
6574 MIN_INT32, MIN_INT32,
6575 std::span<const SvxMSDffVertPair>(),
6576 std::span<const SvxMSDffHandle>(mso_sptTextFadeRightHandle),
6579 const SvxMSDffVertPair mso_sptTextFadeLeftVert[] =
6581 { 0, 0 MSO_I }, { 21600, 0 }, { 0, 1 MSO_I }, { 21600, 21600 }
6583 const SvxMSDffHandle mso_sptTextFadeLeftHandle[] =
6585 { SvxMSDffHandleFlags::RANGE,
6586 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 10800 }
6588 const mso_CustomShape msoTextFadeLeft =
6590 std::span<const SvxMSDffVertPair>(mso_sptTextFadeLeftVert),
6591 const_cast<sal_uInt16*>(mso_sptTextFadeSegm), sizeof( mso_sptTextFadeSegm ) >> 1,
6592 std::span<const SvxMSDffCalculationData>(mso_sptTextFadeCalc),
6593 const_cast<sal_Int32*>(mso_sptDefault7200),
6594 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6595 21600, 21600,
6596 MIN_INT32, MIN_INT32,
6597 std::span<const SvxMSDffVertPair>(),
6598 std::span<const SvxMSDffHandle>(mso_sptTextFadeLeftHandle),
6601 const SvxMSDffVertPair mso_sptTextFadeUpVert[] =
6603 { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 0, 21600 }, { 21600, 21600 }
6605 const SvxMSDffHandle mso_sptTextFadeUpHandle[] =
6607 { SvxMSDffHandleFlags::RANGE,
6608 0x100, 0, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
6610 const mso_CustomShape msoTextFadeUp =
6612 std::span<const SvxMSDffVertPair>(mso_sptTextFadeUpVert),
6613 const_cast<sal_uInt16*>(mso_sptTextFadeSegm), sizeof( mso_sptTextFadeSegm ) >> 1,
6614 std::span<const SvxMSDffCalculationData>(mso_sptTextFadeCalc),
6615 const_cast<sal_Int32*>(mso_sptDefault7200),
6616 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6617 21600, 21600,
6618 MIN_INT32, MIN_INT32,
6619 std::span<const SvxMSDffVertPair>(),
6620 std::span<const SvxMSDffHandle>(mso_sptTextFadeUpHandle),
6623 const SvxMSDffVertPair mso_sptTextFadeDownVert[] =
6625 { 0, 0 }, { 21600, 0 }, { 0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
6627 const SvxMSDffHandle mso_sptTextFadeDownHandle[] =
6629 { SvxMSDffHandleFlags::RANGE,
6630 0x100, 21600, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
6632 const mso_CustomShape msoTextFadeDown =
6634 std::span<const SvxMSDffVertPair>(mso_sptTextFadeDownVert),
6635 const_cast<sal_uInt16*>(mso_sptTextFadeSegm), sizeof( mso_sptTextFadeSegm ) >> 1,
6636 std::span<const SvxMSDffCalculationData>(mso_sptTextFadeCalc),
6637 const_cast<sal_Int32*>(mso_sptDefault7200),
6638 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6639 21600, 21600,
6640 MIN_INT32, MIN_INT32,
6641 std::span<const SvxMSDffVertPair>(),
6642 std::span<const SvxMSDffHandle>(mso_sptTextFadeDownHandle),
6645 const SvxMSDffVertPair mso_sptTextSlantUpVert[] =
6647 { 0, 0 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 1 MSO_I }
6649 const SvxMSDffHandle mso_sptTextSlantUpHandle[] =
6651 { SvxMSDffHandleFlags::RANGE,
6652 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 15400 }
6654 const mso_CustomShape msoTextSlantUp =
6656 std::span<const SvxMSDffVertPair>(mso_sptTextSlantUpVert),
6657 const_cast<sal_uInt16*>(mso_sptTextFadeSegm), sizeof( mso_sptTextFadeSegm ) >> 1,
6658 std::span<const SvxMSDffCalculationData>(mso_sptTextFadeCalc),
6659 const_cast<sal_Int32*>(mso_sptDefault12000),
6660 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6661 21600, 21600,
6662 MIN_INT32, MIN_INT32,
6663 std::span<const SvxMSDffVertPair>(),
6664 std::span<const SvxMSDffHandle>(mso_sptTextSlantUpHandle),
6667 const SvxMSDffVertPair mso_sptTextSlantDownVert[] =
6669 { 0, 0 }, { 21600, 1 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6671 const SvxMSDffHandle mso_sptTextSlantDownHandle[] =
6673 { SvxMSDffHandleFlags::RANGE,
6674 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 6200, 21600 }
6676 const mso_CustomShape msoTextSlantDown =
6678 std::span<const SvxMSDffVertPair>(mso_sptTextSlantDownVert),
6679 const_cast<sal_uInt16*>(mso_sptTextFadeSegm), sizeof( mso_sptTextFadeSegm ) >> 1,
6680 std::span<const SvxMSDffCalculationData>(mso_sptTextFadeCalc),
6681 const_cast<sal_Int32*>(mso_sptDefault12000),
6682 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6683 21600, 21600,
6684 MIN_INT32, MIN_INT32,
6685 std::span<const SvxMSDffVertPair>(),
6686 std::span<const SvxMSDffHandle>(mso_sptTextSlantDownHandle),
6689 const SvxMSDffVertPair mso_sptTextCascadeUpVert[] =
6691 { 0, 2 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 0 MSO_I }
6693 const SvxMSDffCalculationData mso_sptTextCascadeCalc[] =
6695 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6696 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
6697 { 0x2001, { 0x401, 1, 4 } }
6699 const SvxMSDffHandle mso_sptTextCascadeUpHandle[] =
6701 { SvxMSDffHandleFlags::RANGE,
6702 21600, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 6200, 21600 }
6704 const mso_CustomShape msoTextCascadeUp =
6706 std::span<const SvxMSDffVertPair>(mso_sptTextCascadeUpVert),
6707 const_cast<sal_uInt16*>(mso_sptTextFadeSegm), sizeof( mso_sptTextFadeSegm ) >> 1,
6708 std::span<const SvxMSDffCalculationData>(mso_sptTextCascadeCalc),
6709 const_cast<sal_Int32*>(mso_sptDefault9600),
6710 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6711 21600, 21600,
6712 MIN_INT32, MIN_INT32,
6713 std::span<const SvxMSDffVertPair>(),
6714 std::span<const SvxMSDffHandle>(mso_sptTextCascadeUpHandle),
6717 const SvxMSDffVertPair mso_sptTextCascadeDownVert[] =
6719 { 0, 0 }, { 21600, 2 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6721 const SvxMSDffHandle mso_sptTextCascadeDownHandle[] =
6723 { SvxMSDffHandleFlags::RANGE,
6724 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 6200, 21600 }
6726 const mso_CustomShape msoTextCascadeDown =
6728 std::span<const SvxMSDffVertPair>(mso_sptTextCascadeDownVert),
6729 const_cast<sal_uInt16*>(mso_sptTextFadeSegm), sizeof( mso_sptTextFadeSegm ) >> 1,
6730 std::span<const SvxMSDffCalculationData>(mso_sptTextCascadeCalc),
6731 const_cast<sal_Int32*>(mso_sptDefault9600),
6732 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6733 21600, 21600,
6734 MIN_INT32, MIN_INT32,
6735 std::span<const SvxMSDffVertPair>(),
6736 std::span<const SvxMSDffHandle>(mso_sptTextCascadeDownHandle),
6739 const SvxMSDffVertPair mso_sptTextArchUpCurveVert[] =
6741 { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
6743 const SvxMSDffCalculationData mso_sptTextArchCurveCalc[] =
6745 { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6746 { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6747 { 0x2000, { 0x400, 10800, 0 } },
6748 { 0x2000, { 0x401, 10800, 0 } },
6749 { 0x8000, { 21600, 0, 0x402 } }
6751 const sal_uInt16 mso_sptTextArchUpCurveSegm[] =
6753 0xA504, 0x8000 // clockwise arc
6755 const SvxMSDffHandle mso_sptTextArchUpCurveHandle[] =
6757 { SvxMSDffHandleFlags::POLAR,
6758 10800, 0x100, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
6760 const sal_Int32 mso_sptTextArchUpCurveDefault[] =
6762 1, 180
6764 const mso_CustomShape msoTextArchUpCurve =
6766 std::span<const SvxMSDffVertPair>(mso_sptTextArchUpCurveVert),
6767 const_cast<sal_uInt16*>(mso_sptTextArchUpCurveSegm), sizeof( mso_sptTextArchUpCurveSegm ) >> 1,
6768 std::span<const SvxMSDffCalculationData>(mso_sptTextArchCurveCalc),
6769 const_cast<sal_Int32*>(mso_sptTextArchUpCurveDefault),
6770 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6771 21600, 21600,
6772 MIN_INT32, MIN_INT32,
6773 std::span<const SvxMSDffVertPair>(),
6774 std::span<const SvxMSDffHandle>(mso_sptTextArchUpCurveHandle),
6777 const SvxMSDffVertPair mso_sptTextArchDownCurveVert[] =
6779 { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6781 const sal_uInt16 mso_sptTextArchDownCurveSegm[] =
6783 0xA304, 0x8000 // counter clockwise arc to
6785 const SvxMSDffHandle mso_sptTextArchDownCurveHandle[] =
6787 { SvxMSDffHandleFlags::POLAR,
6788 10800, 0x100, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
6790 const sal_Int32 mso_sptTextArchDownCurveDefault[] =
6792 1, 0
6794 const mso_CustomShape msoTextArchDownCurve =
6796 std::span<const SvxMSDffVertPair>(mso_sptTextArchDownCurveVert),
6797 const_cast<sal_uInt16*>(mso_sptTextArchDownCurveSegm), sizeof( mso_sptTextArchDownCurveSegm ) >> 1,
6798 std::span<const SvxMSDffCalculationData>(mso_sptTextArchCurveCalc),
6799 const_cast<sal_Int32*>(mso_sptTextArchDownCurveDefault),
6800 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6801 21600, 21600,
6802 MIN_INT32, MIN_INT32,
6803 std::span<const SvxMSDffVertPair>(),
6804 std::span<const SvxMSDffHandle>(mso_sptTextArchDownCurveHandle),
6807 const SvxMSDffVertPair mso_sptTextCircleCurveVert[] =
6809 { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I }
6811 const SvxMSDffCalculationData mso_sptTextCircleCurveCalc[] =
6813 { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6814 { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6815 { 0x2000, { 0x400, 10800, 0 } },
6816 { 0x2000, { 0x401, 10800, 0 } },
6817 { 0x8000, { 21600, 0, 0x403 } }
6819 const sal_uInt16 mso_sptTextCircleCurveSegm[] =
6821 0xA504, 0x8000 // clockwise arc to
6823 const SvxMSDffHandle mso_sptTextCircleCurveHandle[] =
6825 { SvxMSDffHandleFlags::POLAR,
6826 10800, 0x100, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
6828 const sal_Int32 mso_sptTextCircleCurveDefault[] =
6830 1, -179
6832 const mso_CustomShape msoTextCircleCurve =
6834 std::span<const SvxMSDffVertPair>(mso_sptTextCircleCurveVert),
6835 const_cast<sal_uInt16*>(mso_sptTextCircleCurveSegm), sizeof( mso_sptTextCircleCurveSegm ) >> 1,
6836 std::span<const SvxMSDffCalculationData>(mso_sptTextCircleCurveCalc),
6837 const_cast<sal_Int32*>(mso_sptTextCircleCurveDefault),
6838 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6839 21600, 21600,
6840 MIN_INT32, MIN_INT32,
6841 std::span<const SvxMSDffVertPair>(),
6842 std::span<const SvxMSDffHandle>(mso_sptTextCircleCurveHandle),
6845 const SvxMSDffVertPair mso_sptTextButtonCurveVert[] =
6847 { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6848 { 0, 10800 }, { 21600, 10800 },
6849 { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
6851 const SvxMSDffCalculationData mso_sptTextButtonCurveCalc[] =
6853 { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6854 { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6855 { 0x2000, { 0x400, 10800, 0 } },
6856 { 0x2000, { 0x401, 10800, 0 } },
6857 { 0x8000, { 21600, 0, 0x402 } },
6858 { 0x8000, { 21600, 0, 0x403 } }
6860 const sal_uInt16 mso_sptTextButtonCurveSegm[] =
6862 0xA504, 0x8000, // clockwise arc
6863 0x4000, 0x0001, 0x8000,
6864 0xA304, 0x8000 // counter clockwise
6866 const SvxMSDffHandle mso_sptTextButtonCurveHandle[] =
6868 { SvxMSDffHandleFlags::POLAR,
6869 10800, 0x100, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
6871 const sal_Int32 mso_sptTextButtonCurveDefault[] =
6873 1, 180
6875 const mso_CustomShape msoTextButtonCurve =
6877 std::span<const SvxMSDffVertPair>(mso_sptTextButtonCurveVert),
6878 const_cast<sal_uInt16*>(mso_sptTextButtonCurveSegm), sizeof( mso_sptTextButtonCurveSegm ) >> 1,
6879 std::span<const SvxMSDffCalculationData>(mso_sptTextButtonCurveCalc),
6880 const_cast<sal_Int32*>(mso_sptTextButtonCurveDefault),
6881 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6882 21600, 21600,
6883 MIN_INT32, MIN_INT32,
6884 std::span<const SvxMSDffVertPair>(),
6885 std::span<const SvxMSDffHandle>(mso_sptTextButtonCurveHandle),
6888 const SvxMSDffVertPair mso_sptTextArchUpPourVert[] =
6890 { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6891 { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 9 MSO_I }
6893 const SvxMSDffCalculationData mso_sptTextArchPourCalc[] =
6895 { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6896 { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6897 { 0x2000, { 0x400, 10800, 0 } },
6898 { 0x2000, { 0x401, 10800, 0 } },
6899 { 0x8000, { 21600, 0, 0x402 } },
6900 { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6901 { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } }, // 6
6902 { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6903 { 0x2000, { 0x406, 10800, 0 } }, // 8
6904 { 0x2000, { 0x407, 10800, 0 } },
6905 { 0x8000, { 21600, 0, 0x408 } }, // 10
6906 { 0x8000, { 21600, 0, 0x405 } }
6908 const sal_uInt16 mso_sptTextArchUpPourSegm[] =
6910 0xA504, 0x8000, 0xA504, 0x8000
6912 const SvxMSDffHandle mso_sptTextArchPourHandle[] =
6914 { SvxMSDffHandleFlags::POLAR | SvxMSDffHandleFlags::RADIUS_RANGE,
6915 0x101, 0x100, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
6917 const sal_Int32 mso_sptTextArchUpPourDefault[] =
6919 2, 180, 5400
6921 const mso_CustomShape msoTextArchUpPour =
6923 std::span<const SvxMSDffVertPair>(mso_sptTextArchUpPourVert),
6924 const_cast<sal_uInt16*>(mso_sptTextArchUpPourSegm), sizeof( mso_sptTextArchUpPourSegm ) >> 1,
6925 std::span<const SvxMSDffCalculationData>(mso_sptTextArchPourCalc),
6926 const_cast<sal_Int32*>(mso_sptTextArchUpPourDefault),
6927 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6928 21600, 21600,
6929 MIN_INT32, MIN_INT32,
6930 std::span<const SvxMSDffVertPair>(),
6931 std::span<const SvxMSDffHandle>(mso_sptTextArchPourHandle),
6934 const SvxMSDffVertPair mso_sptTextArchDownPourVert[] =
6936 { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 0xa MSO_I, 9 MSO_I }, { 8 MSO_I, 9 MSO_I },
6937 { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6939 const sal_uInt16 mso_sptTextArchDownPourSegm[] =
6941 0xA304, 0x8000, 0xA304, 0x8000
6943 const sal_Int32 mso_sptTextArchDownPourDefault[] =
6945 2, 0, 5400
6947 const mso_CustomShape msoTextArchDownPour =
6949 std::span<const SvxMSDffVertPair>(mso_sptTextArchDownPourVert),
6950 const_cast<sal_uInt16*>(mso_sptTextArchDownPourSegm), sizeof( mso_sptTextArchDownPourSegm ) >> 1,
6951 std::span<const SvxMSDffCalculationData>(mso_sptTextArchPourCalc),
6952 const_cast<sal_Int32*>(mso_sptTextArchDownPourDefault),
6953 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
6954 21600, 21600,
6955 MIN_INT32, MIN_INT32,
6956 std::span<const SvxMSDffVertPair>(),
6957 std::span<const SvxMSDffHandle>(mso_sptTextArchPourHandle),
6960 const SvxMSDffVertPair mso_sptTextCirclePourVert[] =
6962 { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I },
6963 { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 8 MSO_I, 0xa MSO_I }
6965 const SvxMSDffCalculationData mso_sptTextCirclePourCalc[] =
6967 { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6968 { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6969 { 0x2000, { 0x400, 10800, 0 } },
6970 { 0x2000, { 0x401, 10800, 0 } },
6971 { 0x8000, { 21600, 0, 0x403 } },
6972 { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6973 { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } }, // 6
6974 { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6975 { 0x2000, { 0x406, 10800, 0 } }, // 8
6976 { 0x2000, { 0x407, 10800, 0 } },
6977 { 0x8000, { 21600, 0, 0x409 } }, // 10
6978 { 0x8000, { 21600, 0, 0x405 } },
6979 { 0x000, { 21600, 0, 0 } }
6981 const sal_uInt16 mso_sptTextCirclePourSegm[] =
6983 0xA504, 0x8000, 0xA504, 0x8000
6985 const SvxMSDffHandle mso_sptTextCirclePourHandle[] =
6987 { SvxMSDffHandleFlags::POLAR | SvxMSDffHandleFlags::RADIUS_RANGE,
6988 0x101, 0x100, 10800, 10800, 0, 10800, MIN_INT32, 0x7fffffff }
6990 const sal_Int32 mso_sptTextCirclePourDefault[] =
6992 2, -179, 5400
6994 const mso_CustomShape msoTextCirclePour =
6996 std::span<const SvxMSDffVertPair>(mso_sptTextCirclePourVert),
6997 const_cast<sal_uInt16*>(mso_sptTextCirclePourSegm), sizeof( mso_sptTextCirclePourSegm ) >> 1,
6998 std::span<const SvxMSDffCalculationData>(mso_sptTextCirclePourCalc),
6999 const_cast<sal_Int32*>(mso_sptTextCirclePourDefault),
7000 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7001 21600, 21600,
7002 MIN_INT32, MIN_INT32,
7003 std::span<const SvxMSDffVertPair>(),
7004 std::span<const SvxMSDffHandle>(mso_sptTextCirclePourHandle),
7007 const SvxMSDffVertPair mso_sptTextButtonPourVert[] =
7009 { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
7010 { 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 11 MSO_I }, { 12 MSO_I, 11 MSO_I },
7011 { 0x16 MSO_I, 16 MSO_I }, { 0x15 MSO_I, 16 MSO_I },
7012 { 0x16 MSO_I, 15 MSO_I }, { 0x15 MSO_I, 15 MSO_I },
7013 { 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 13 MSO_I }, { 12 MSO_I, 13 MSO_I },
7014 { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
7016 const SvxMSDffCalculationData mso_sptTextButtonPourCalc[] =
7018 { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } }, // 0x00
7019 { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } }, // 0x01
7020 { 0x2000, { 0x400, 10800, 0 } }, // 0x02
7021 { 0x2000, { 0x401, 10800, 0 } }, // 0x03
7022 { 0x8000, { 21600, 0, 0x402 } }, // 0x04
7023 { 0x8000, { 21600, 0, 0x403 } }, // 0x05
7025 { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } }, // 0x06
7026 { 0x8000, { 21600, 0, 0x406 } }, // 0x07
7028 { 0x600a, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } }, // 0x08
7029 { 0x6009, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } }, // 0x09
7030 { 0x2000, { 0x408, 10800, 0 } }, // 0x0a
7031 { 0x2000, { 0x409, 10800, 0 } }, // 0x0b
7032 { 0x8000, { 21600, 0, 0x40a } }, // 0x0c
7033 { 0x8000, { 21600, 0, 0x40b } }, // 0x0d
7034 { 0x2001, { 0x406, 1, 2 } }, // 0x0e
7035 { 0x4000, { 10800, 0x40e, 0 } }, // 0x0f
7036 { 0x8000, { 10800, 0, 0x40e } }, // 0x10
7037 { 0x6001, { 0x40e, 0x40e, 1 } }, // 0x11
7038 { 0x6001, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 1 } }, // 0x12
7039 { 0xA000, { 0x412, 0, 0x411 } }, // 0x13
7040 { 0x200d, { 0x413, 0, 0 } }, // 0x14
7041 { 0x4000, { 10800, 0x414, 0 } }, // 0x15
7042 { 0x8000, { 10800, 0, 0x414 } } // 0x16
7044 const sal_uInt16 mso_sptTextButtonPourSegm[] =
7046 0xA504, 0x8000, // clockwise arc
7047 0xA504, 0x8000, // clockwise arc
7048 0x4000, 0x0001, 0x8000,
7049 0x4000, 0x0001, 0x8000,
7050 0xA304, 0x8000, // counter clockwise
7051 0xA304, 0x8000 // counter clockwise
7053 const SvxMSDffHandle mso_sptTextButtonPourHandle[] =
7055 { SvxMSDffHandleFlags::POLAR | SvxMSDffHandleFlags::RADIUS_RANGE,
7056 0x101, 0x100, 10800, 10800, 4320, 10800, MIN_INT32, 0x7fffffff }
7058 const sal_Int32 mso_sptTextButtonPourDefault[] =
7060 2, 180, 5400
7062 const mso_CustomShape msoTextButtonPour =
7064 std::span<const SvxMSDffVertPair>(mso_sptTextButtonPourVert),
7065 const_cast<sal_uInt16*>(mso_sptTextButtonPourSegm), sizeof( mso_sptTextButtonPourSegm ) >> 1,
7066 std::span<const SvxMSDffCalculationData>(mso_sptTextButtonPourCalc),
7067 const_cast<sal_Int32*>(mso_sptTextButtonPourDefault),
7068 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7069 21600, 21600,
7070 MIN_INT32, MIN_INT32,
7071 std::span<const SvxMSDffVertPair>(),
7072 std::span<const SvxMSDffHandle>(mso_sptTextButtonPourHandle),
7075 const SvxMSDffVertPair mso_sptTextCurveUpVert[] =
7077 { 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
7078 { 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
7080 const SvxMSDffCalculationData mso_sptTextCurveUpCalc[] =
7082 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7083 { 0x4001, { 14250, 0x400, 12170 } }, // 401
7084 { 0x4001, { 12800, 0x400, 12170 } }, // 402
7085 { 0x4001, { 6380, 0x400, 12170 } }, // 403
7086 { 0x8000, { 21600, 0, 0x403 } } // 404
7088 const sal_uInt16 mso_sptTextCurveUpSegm[] =
7090 0x4000, 0x2001, 0x8000,
7091 0x4000, 0x2002, 0x8000
7093 const SvxMSDffHandle mso_sptTextCurveUpHandle[] =
7095 { SvxMSDffHandleFlags::RANGE,
7096 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 12170 }
7098 const sal_Int32 mso_sptTextCurveUpDefault[] =
7100 1, 9900
7102 const mso_CustomShape msoTextCurveUp =
7104 std::span<const SvxMSDffVertPair>(mso_sptTextCurveUpVert),
7105 const_cast<sal_uInt16*>(mso_sptTextCurveUpSegm), sizeof( mso_sptTextCurveUpSegm ) >> 1,
7106 std::span<const SvxMSDffCalculationData>(mso_sptTextCurveUpCalc),
7107 const_cast<sal_Int32*>(mso_sptTextCurveUpDefault),
7108 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7109 21600, 21600,
7110 MIN_INT32, MIN_INT32,
7111 std::span<const SvxMSDffVertPair>(),
7112 std::span<const SvxMSDffHandle>(mso_sptTextCurveUpHandle),
7115 const SvxMSDffVertPair mso_sptTextCurveDownVert[] =
7117 // { 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
7118 { 0, 0 }, { 9960, 2 MSO_I }, { 16700, 1 MSO_I }, { 21600, 0 MSO_I },
7120 // { 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
7121 { 0, 4 MSO_I }, { 5690, 21600 }, { 7490, 21600 }, { 11500, 21600 }, { 13100, 21600 }, { 17900, 21600 }, { 21600, 4 MSO_I }
7123 const SvxMSDffHandle mso_sptTextCurveDownHandle[] =
7125 { SvxMSDffHandleFlags::RANGE,
7126 21600, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 12170 }
7128 const mso_CustomShape msoTextCurveDown =
7130 std::span<const SvxMSDffVertPair>(mso_sptTextCurveDownVert),
7131 const_cast<sal_uInt16*>(mso_sptTextCurveUpSegm), sizeof( mso_sptTextCurveUpSegm ) >> 1,
7132 std::span<const SvxMSDffCalculationData>(mso_sptTextCurveUpCalc),
7133 const_cast<sal_Int32*>(mso_sptTextCurveUpDefault),
7134 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7135 21600, 21600,
7136 MIN_INT32, MIN_INT32,
7137 std::span<const SvxMSDffVertPair>(),
7138 std::span<const SvxMSDffHandle>(mso_sptTextCurveDownHandle),
7141 const SvxMSDffVertPair mso_sptTextCanUpVert[] =
7143 { 0, 1 MSO_I }, { 900, 0 }, { 7100, 0 }, { 10800, 0 }, { 14500, 0 }, { 20700, 0 }, { 21600, 1 MSO_I },
7144 { 0, 21600 }, { 900, 4 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 4 MSO_I }, { 21600, 21600 }
7146 const SvxMSDffCalculationData mso_sptTextCanUpCalc[] =
7148 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7149 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 401
7150 { 0x2000, { DFF_Prop_adjustValue, 0, 14400 } }, // 402
7151 { 0x4001, { 5470, 0x402, 7200 } }, // 403
7152 { 0x4000, { 16130, 0x403, 0 } } // 404
7154 const sal_uInt16 mso_sptTextCanUpSegm[] =
7156 0x4000, 0x2002, 0x8000,
7157 0x4000, 0x2002, 0x8000
7159 const SvxMSDffHandle mso_sptTextCanUpHandle[] =
7161 { SvxMSDffHandleFlags::RANGE,
7162 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 14400, 21600 }
7164 const sal_Int32 mso_sptTextCanUpDefault[] =
7166 1, 18500
7168 const mso_CustomShape msoTextCanUp =
7170 std::span<const SvxMSDffVertPair>(mso_sptTextCanUpVert),
7171 const_cast<sal_uInt16*>(mso_sptTextCanUpSegm), sizeof( mso_sptTextCanUpSegm ) >> 1,
7172 std::span<const SvxMSDffCalculationData>(mso_sptTextCanUpCalc),
7173 const_cast<sal_Int32*>(mso_sptTextCanUpDefault),
7174 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7175 21600, 21600,
7176 MIN_INT32, MIN_INT32,
7177 std::span<const SvxMSDffVertPair>(),
7178 std::span<const SvxMSDffHandle>(mso_sptTextCanUpHandle),
7181 const SvxMSDffVertPair mso_sptTextCanDownVert[] =
7183 { 0, 0 }, { 900, 2 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 2 MSO_I }, { 21600, 0 },
7184 { 0, 1 MSO_I }, { 900, 21600 }, { 7100, 21600 }, { 10800, 21600 }, { 14500, 21600 }, { 20700, 21600 }, { 21600, 1 MSO_I }
7186 const SvxMSDffCalculationData mso_sptTextCanDownCalc[] =
7188 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7189 { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 401
7190 { 0x4001, { 5470, 0x400, 7200 } } // 402
7192 const SvxMSDffHandle mso_sptTextCanDownHandle[] =
7194 { SvxMSDffHandleFlags::RANGE,
7195 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 7200 }
7197 const sal_Int32 mso_sptTextCanDownDefault[] =
7199 1, 3100
7201 const mso_CustomShape msoTextCanDown =
7203 std::span<const SvxMSDffVertPair>(mso_sptTextCanDownVert),
7204 const_cast<sal_uInt16*>(mso_sptTextCanUpSegm), sizeof( mso_sptTextCanUpSegm ) >> 1,
7205 std::span<const SvxMSDffCalculationData>(mso_sptTextCanDownCalc),
7206 const_cast<sal_Int32*>(mso_sptTextCanDownDefault),
7207 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7208 21600, 21600,
7209 MIN_INT32, MIN_INT32,
7210 std::span<const SvxMSDffVertPair>(),
7211 std::span<const SvxMSDffHandle>(mso_sptTextCanDownHandle),
7214 const SvxMSDffVertPair mso_sptTextInflateVert[] =
7216 { 0, 0 MSO_I }, { 4100, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 17500, 1 MSO_I }, { 21600, 0 MSO_I },
7217 { 0, 2 MSO_I }, { 4100, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 17500, 3 MSO_I }, { 21600, 2 MSO_I }
7219 const SvxMSDffCalculationData mso_sptTextInflateCalc[] =
7221 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7222 { 0x4001, { 1530, 0x400, 4650 } }, // 401
7223 { 0x8000, { 21600, 0, 0x400 } }, // 402
7224 { 0x8000, { 21600, 0, 0x401 } } // 403
7226 const SvxMSDffHandle mso_sptTextInflateHandle[] =
7228 { SvxMSDffHandleFlags::RANGE,
7229 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 4650 }
7231 const sal_Int32 mso_sptTextInflateDefault[] =
7233 1, 2950
7235 const mso_CustomShape msoTextInflate =
7237 std::span<const SvxMSDffVertPair>(mso_sptTextInflateVert),
7238 const_cast<sal_uInt16*>(mso_sptTextCanUpSegm), sizeof( mso_sptTextCanUpSegm ) >> 1,
7239 std::span<const SvxMSDffCalculationData>(mso_sptTextInflateCalc),
7240 const_cast<sal_Int32*>(mso_sptTextInflateDefault),
7241 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7242 21600, 21600,
7243 MIN_INT32, MIN_INT32,
7244 std::span<const SvxMSDffVertPair>(),
7245 std::span<const SvxMSDffHandle>(mso_sptTextInflateHandle),
7248 const SvxMSDffVertPair mso_sptTextDeflateVert[] =
7250 { 0, 0 }, { 3500, 1 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 18100, 1 MSO_I }, { 21600, 0 },
7251 { 0, 21600 }, { 3500, 3 MSO_I }, { 7100, 2 MSO_I }, { 10800, 2 MSO_I }, { 14500, 2 MSO_I }, { 18100, 3 MSO_I }, { 21600, 21600 }
7253 const SvxMSDffCalculationData mso_sptTextDeflateCalc[] =
7255 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7256 { 0x2001, { 0x400, 5320, 7100 } }, // 401
7257 { 0x8000, { 21600, 0, 0x400 } }, // 402
7258 { 0x8000, { 21600, 0, 0x401 } } // 403
7260 const SvxMSDffHandle mso_sptTextDeflateHandle[] =
7262 { SvxMSDffHandleFlags::RANGE,
7263 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 8100 }
7265 const mso_CustomShape msoTextDeflate =
7267 std::span<const SvxMSDffVertPair>(mso_sptTextDeflateVert),
7268 const_cast<sal_uInt16*>(mso_sptTextCanUpSegm), sizeof( mso_sptTextCanUpSegm ) >> 1,
7269 std::span<const SvxMSDffCalculationData>(mso_sptTextDeflateCalc),
7270 const_cast<sal_Int32*>(mso_sptDefault8100),
7271 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7272 21600, 21600,
7273 MIN_INT32, MIN_INT32,
7274 std::span<const SvxMSDffVertPair>(),
7275 std::span<const SvxMSDffHandle>(mso_sptTextDeflateHandle),
7278 const SvxMSDffVertPair mso_sptTextInflateBottomVert[] =
7280 { 0, 0 }, { 21600, 0 },
7281 { 0, 0 MSO_I }, { 3500, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 18100, 3 MSO_I }, { 21600, 0 MSO_I }
7283 const SvxMSDffCalculationData mso_sptTextInflateBottomCalc[] =
7285 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7286 { 0x2000, { 0x400, 0, 11150 } }, // 401 0->10450
7287 { 0x2001, { 0x401, 3900, 10450 } }, // 402
7288 { 0x2000, { 0x402, 17700, 0 } } // 403
7290 const sal_uInt16 mso_sptTextInflateBottomSegm[] =
7292 0x4000, 0x0001, 0x8000,
7293 0x4000, 0x2002, 0x8000
7295 const SvxMSDffHandle mso_sptTextInflateBottomHandle[] =
7297 { SvxMSDffHandleFlags::RANGE,
7298 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 11150, 21600 }
7300 const sal_Int32 mso_sptTextInflateBottomDefault[] =
7302 1, 14700
7304 const mso_CustomShape msoTextInflateBottom =
7306 std::span<const SvxMSDffVertPair>(mso_sptTextInflateBottomVert),
7307 const_cast<sal_uInt16*>(mso_sptTextInflateBottomSegm), sizeof( mso_sptTextInflateBottomSegm ) >> 1,
7308 std::span<const SvxMSDffCalculationData>(mso_sptTextInflateBottomCalc),
7309 const_cast<sal_Int32*>(mso_sptTextInflateBottomDefault),
7310 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7311 21600, 21600,
7312 MIN_INT32, MIN_INT32,
7313 std::span<const SvxMSDffVertPair>(),
7314 std::span<const SvxMSDffHandle>(mso_sptTextInflateBottomHandle),
7317 const SvxMSDffVertPair mso_sptTextDeflateBottomVert[] =
7319 { 0, 0 }, { 21600, 0 },
7320 { 0, 21600 }, { 2900, 3 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 3 MSO_I }, { 21600, 21600 }
7322 const SvxMSDffCalculationData mso_sptTextDeflateBottomCalc[] =
7324 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7325 { 0x2000, { 0x400, 0, 1350 } }, // 401 0->20250
7326 { 0x2001, { 0x401, 12070, 20250 } }, // 402
7327 { 0x2000, { 0x402, 9530, 0 } } // 403
7329 const sal_uInt16 mso_sptTextDeflateBottomSegm[] =
7331 0x4000, 0x0001, 0x8000,
7332 0x4000, 0x2002, 0x8000
7334 const SvxMSDffHandle mso_sptTextDeflateBottomHandle[] =
7336 { SvxMSDffHandleFlags::RANGE,
7337 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 1350, 21600 }
7339 const sal_Int32 mso_sptTextDeflateBottomDefault[] =
7341 1, 11500
7343 const mso_CustomShape msoTextDeflateBottom =
7345 std::span<const SvxMSDffVertPair>(mso_sptTextDeflateBottomVert),
7346 const_cast<sal_uInt16*>(mso_sptTextDeflateBottomSegm), sizeof( mso_sptTextDeflateBottomSegm ) >> 1,
7347 std::span<const SvxMSDffCalculationData>(mso_sptTextDeflateBottomCalc),
7348 const_cast<sal_Int32*>(mso_sptTextDeflateBottomDefault),
7349 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7350 21600, 21600,
7351 MIN_INT32, MIN_INT32,
7352 std::span<const SvxMSDffVertPair>(),
7353 std::span<const SvxMSDffHandle>(mso_sptTextDeflateBottomHandle),
7356 const SvxMSDffVertPair mso_sptTextInflateTopVert[] =
7358 { 0, 0 MSO_I }, { 3500, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 18100, 1 MSO_I }, { 21600, 0 MSO_I },
7359 { 0, 21600 }, { 21600, 21600 }
7361 const SvxMSDffCalculationData mso_sptTextInflateTopCalc[] =
7363 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7364 { 0x2001, { 0x400, 3900, 10450 } } // 401
7366 const sal_uInt16 mso_sptTextInflateTopSegm[] =
7368 0x4000, 0x2002, 0x8000,
7369 0x4000, 0x0001, 0x8000
7371 const SvxMSDffHandle mso_sptTextInflateTopHandle[] =
7373 { SvxMSDffHandleFlags::RANGE,
7374 0, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 10450 }
7376 const sal_Int32 mso_sptTextInflateTopDefault[] =
7378 1, 6900
7380 const mso_CustomShape msoTextInflateTop =
7382 std::span<const SvxMSDffVertPair>(mso_sptTextInflateTopVert),
7383 const_cast<sal_uInt16*>(mso_sptTextInflateTopSegm), sizeof( mso_sptTextInflateTopSegm ) >> 1,
7384 std::span<const SvxMSDffCalculationData>(mso_sptTextInflateTopCalc),
7385 const_cast<sal_Int32*>(mso_sptTextInflateTopDefault),
7386 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7387 21600, 21600,
7388 MIN_INT32, MIN_INT32,
7389 std::span<const SvxMSDffVertPair>(),
7390 std::span<const SvxMSDffHandle>(mso_sptTextInflateTopHandle),
7393 const SvxMSDffVertPair mso_sptTextDeflateTopVert[] =
7395 { 0, 0 }, { 2900, 1 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 1 MSO_I }, { 21600, 0 },
7396 { 0, 21600 }, { 21600, 21600 }
7398 const SvxMSDffCalculationData mso_sptTextDeflateTopCalc[] =
7400 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7401 { 0x2001, { 0x400, 12070, 20250 } } // 402
7403 const sal_uInt16 mso_sptTextDeflateTopSegm[] =
7405 0x4000, 0x2002, 0x8000,
7406 0x4000, 0x0001, 0x8000
7408 const SvxMSDffHandle mso_sptTextDeflateTopHandle[] =
7410 { SvxMSDffHandleFlags::RANGE,
7411 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 0, 20250 }
7413 const sal_Int32 mso_sptTextDeflateTopDefault[] =
7415 1, 10100
7417 const mso_CustomShape msoTextDeflateTop =
7419 std::span<const SvxMSDffVertPair>(mso_sptTextDeflateTopVert),
7420 const_cast<sal_uInt16*>(mso_sptTextDeflateTopSegm), sizeof( mso_sptTextDeflateTopSegm ) >> 1,
7421 std::span<const SvxMSDffCalculationData>(mso_sptTextDeflateTopCalc),
7422 const_cast<sal_Int32*>(mso_sptTextDeflateTopDefault),
7423 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7424 21600, 21600,
7425 MIN_INT32, MIN_INT32,
7426 std::span<const SvxMSDffVertPair>(),
7427 std::span<const SvxMSDffHandle>(mso_sptTextDeflateTopHandle),
7430 const SvxMSDffVertPair mso_sptTextDeflateInflateVert[] =
7432 { 0, 0 }, { 21600, 0 },
7433 { 0, 10100 }, { 3300, 3 MSO_I }, { 7100, 5 MSO_I }, { 10800, 5 MSO_I }, { 14500, 5 MSO_I }, { 18300, 3 MSO_I }, { 21600, 10100 },
7434 { 0, 11500 }, { 3300, 4 MSO_I }, { 7100, 6 MSO_I }, { 10800, 6 MSO_I }, { 14500, 6 MSO_I }, { 18300, 4 MSO_I }, { 21600, 11500 },
7435 { 0, 21600 }, { 21600, 21600 }
7437 const SvxMSDffCalculationData mso_sptTextDeflateInflateCalc[] =
7439 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400
7440 { 0x8000, { 10800, 0, 0x400 } }, // 401
7441 { 0x2001, { 0x401, 5770, 9500 } }, // 402
7442 { 0x8000, { 10100, 0, 0x402 } }, // 403
7443 { 0x8000, { 11500, 0, 0x402 } }, // 404
7444 { 0x2000, { 0x400, 0, 700 } }, // 405
7445 { 0x2000, { 0x400, 700, 0 } } // 406
7447 const sal_uInt16 mso_sptTextDeflateInflateSegm[] =
7449 0x4000, 0x0001, 0x8000,
7450 0x4000, 0x2002, 0x8000,
7451 0x4000, 0x2002, 0x8000,
7452 0x4000, 0x0001, 0x8000
7454 const SvxMSDffHandle mso_sptTextDeflateInflateHandle[] =
7456 { SvxMSDffHandleFlags::RANGE,
7457 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 1300, 20300 }
7459 const sal_Int32 mso_sptTextDeflateInflateDefault[] =
7461 1, 6500
7463 const mso_CustomShape msoTextDeflateInflate =
7465 std::span<const SvxMSDffVertPair>(mso_sptTextDeflateInflateVert),
7466 const_cast<sal_uInt16*>(mso_sptTextDeflateInflateSegm), sizeof( mso_sptTextDeflateInflateSegm ) >> 1,
7467 std::span<const SvxMSDffCalculationData>(mso_sptTextDeflateInflateCalc),
7468 const_cast<sal_Int32*>(mso_sptTextDeflateInflateDefault),
7469 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7470 21600, 21600,
7471 MIN_INT32, MIN_INT32,
7472 std::span<const SvxMSDffVertPair>(),
7473 std::span<const SvxMSDffHandle>(mso_sptTextDeflateInflateHandle),
7476 const SvxMSDffVertPair mso_sptTextDeflateInflateDeflateVert[] =
7478 { 0, 0 }, { 21600, 0 },
7479 { 0, 6600 }, { 3600, 3 MSO_I }, { 7250, 4 MSO_I }, { 10800, 4 MSO_I }, { 14350, 4 MSO_I }, { 18000, 3 MSO_I }, { 21600, 6600 },
7480 { 0, 7500 }, { 3600, 5 MSO_I }, { 7250, 6 MSO_I }, { 10800, 6 MSO_I }, { 14350, 6 MSO_I }, { 18000, 5 MSO_I }, { 21600, 7500 },
7481 { 0, 14100 }, { 3600, 9 MSO_I }, { 7250, 10 MSO_I }, { 10800, 10 MSO_I }, { 14350, 10 MSO_I }, { 18000, 9 MSO_I }, { 21600, 14100 },
7482 { 0, 15000 }, { 3600, 7 MSO_I }, { 7250, 8 MSO_I }, { 10800, 8 MSO_I }, { 14350, 8 MSO_I }, { 18000, 7 MSO_I }, { 21600, 15000 },
7483 { 0, 21600 }, { 21600, 21600 }
7485 const SvxMSDffCalculationData mso_sptTextDeflateInflateDeflateCalc[] =
7487 { 0x2000, { DFF_Prop_adjustValue, 0, 850 } }, // 400
7488 { 0x2001, { 0x400, 6120, 8700 } },
7489 { 0x2000, { 0x401, 0, 4280 } },
7490 { 0x4000, { 6600, 0x402, 0 } },
7491 { 0x2000, { DFF_Prop_adjustValue, 0, 450 } }, // 404
7492 { 0x2000, { 0x403, 900, 0 } }, // 405
7493 { 0x2000, { 0x404, 900, 0 } }, // 406
7494 { 0x8000, { 21600, 0, 0x403 } }, // 407
7495 { 0x8000, { 21600, 0, 0x404 } }, // 408
7496 { 0x8000, { 21600, 0, 0x405 } }, // 409
7497 { 0x8000, { 21600, 0, 0x406 } } // 410
7499 const sal_uInt16 mso_sptTextDeflateInflateDeflateSegm[] =
7501 0x4000, 0x0001, 0x8000,
7502 0x4000, 0x2002, 0x8000,
7503 0x4000, 0x2002, 0x8000,
7504 0x4000, 0x2002, 0x8000,
7505 0x4000, 0x2002, 0x8000,
7506 0x4000, 0x0001, 0x8000
7508 const SvxMSDffHandle mso_sptTextDeflateInflateDeflateHandle[] =
7510 { SvxMSDffHandleFlags::RANGE,
7511 10800, 0x100, 10800, 10800, MIN_INT32, 0x7fffffff, 850, 9550 }
7513 const sal_Int32 mso_sptTextDeflateInflateDeflateDefault[] =
7515 1, 6050
7517 const mso_CustomShape msoTextDeflateInflateDeflate =
7519 std::span<const SvxMSDffVertPair>(mso_sptTextDeflateInflateDeflateVert),
7520 const_cast<sal_uInt16*>(mso_sptTextDeflateInflateDeflateSegm), sizeof( mso_sptTextDeflateInflateDeflateSegm ) >> 1,
7521 std::span<const SvxMSDffCalculationData>(mso_sptTextDeflateInflateDeflateCalc),
7522 const_cast<sal_Int32*>(mso_sptTextDeflateInflateDeflateDefault),
7523 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7524 21600, 21600,
7525 MIN_INT32, MIN_INT32,
7526 std::span<const SvxMSDffVertPair>(),
7527 std::span<const SvxMSDffHandle>(mso_sptTextDeflateInflateDeflateHandle),
7530 const SvxMSDffVertPair mso_sptTextWave1Vert[] = // adjustment1 : 0 - 4459
7531 { // adjustment2 : 8640 - 12960
7532 { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7533 { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7535 const sal_uInt16 mso_sptTextWave1Segm[] =
7537 0x4000, 0x2001, 0x8000,
7538 0x4000, 0x2001, 0x8000
7540 const mso_CustomShape msoTextWave1 =
7542 std::span<const SvxMSDffVertPair>(mso_sptTextWave1Vert),
7543 const_cast<sal_uInt16*>(mso_sptTextWave1Segm), sizeof( mso_sptTextWave1Segm ) >> 1,
7544 std::span<const SvxMSDffCalculationData>(mso_sptWaveCalc),
7545 const_cast<sal_Int32*>(mso_sptWaveDefault),
7546 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7547 21600, 21600,
7548 MIN_INT32, MIN_INT32,
7549 std::span<const SvxMSDffVertPair>(mso_sptWaveGluePoints),
7550 std::span<const SvxMSDffHandle>(mso_sptWaveHandle),
7553 const SvxMSDffVertPair mso_sptTextWave2Vert[] = // adjustment1 : 0 - 4459
7554 { // adjustment2 : 8640 - 12960
7555 { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7556 { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7558 const mso_CustomShape msoTextWave2 =
7560 std::span<const SvxMSDffVertPair>(mso_sptTextWave2Vert),
7561 const_cast<sal_uInt16*>(mso_sptTextWave1Segm), sizeof( mso_sptTextWave1Segm ) >> 1,
7562 std::span<const SvxMSDffCalculationData>(mso_sptWaveCalc),
7563 const_cast<sal_Int32*>(mso_sptWaveDefault),
7564 std::span<const SvxMSDffTextRectangles>(mso_sptFontWorkTextRect),
7565 21600, 21600,
7566 MIN_INT32, MIN_INT32,
7567 std::span<const SvxMSDffVertPair>(mso_sptWaveGluePoints),
7568 std::span<const SvxMSDffHandle>(mso_sptWaveHandle),
7571 const SvxMSDffVertPair mso_sptTextWave3Vert[] = // adjustment1 : 0 - 2230
7572 { // adjustment2 : 8640 - 12960
7573 { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1f MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1e MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7574 { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 0x21 MSO_I, 26 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x20 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7576 const sal_uInt16 mso_sptTextWave3Segm[] =
7578 0x4000, 0x2002, 0x8000,
7579 0x4000, 0x2002, 0x8000
7581 const mso_CustomShape msoTextWave3 =
7583 std::span<const SvxMSDffVertPair>(mso_sptTextWave3Vert),
7584 const_cast<sal_uInt16*>(mso_sptTextWave3Segm), sizeof( mso_sptTextWave3Segm ) >> 1,
7585 std::span<const SvxMSDffCalculationData>(mso_sptDoubleWaveCalc),
7586 const_cast<sal_Int32*>(mso_sptDoubleWaveDefault),
7587 std::span<const SvxMSDffTextRectangles>(mso_sptDoubleWaveTextRect),
7588 21600, 21600,
7589 MIN_INT32, MIN_INT32,
7590 std::span<const SvxMSDffVertPair>(mso_sptDoubleWaveGluePoints),
7591 std::span<const SvxMSDffHandle>(mso_sptDoubleWaveHandle),
7594 const SvxMSDffVertPair mso_sptTextWave4Vert[] = // adjustment1 : 0 - 2230
7595 { // adjustment2 : 8640 - 12960
7596 { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7597 { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7599 const mso_CustomShape msoTextWave4 =
7601 std::span<const SvxMSDffVertPair>(mso_sptTextWave4Vert),
7602 const_cast<sal_uInt16*>(mso_sptTextWave3Segm), sizeof( mso_sptTextWave3Segm ) >> 1,
7603 std::span<const SvxMSDffCalculationData>(mso_sptDoubleWaveCalc),
7604 const_cast<sal_Int32*>(mso_sptDoubleWaveDefault),
7605 std::span<const SvxMSDffTextRectangles>(mso_sptDoubleWaveTextRect),
7606 21600, 21600,
7607 MIN_INT32, MIN_INT32,
7608 std::span<const SvxMSDffVertPair>(mso_sptDoubleWaveGluePoints),
7609 std::span<const SvxMSDffHandle>(mso_sptDoubleWaveHandle),
7612 const sal_Int32 mso_sptCalloutDefault1[] =
7614 4, -1800, 24500, -1800, 4000
7616 const sal_Int32 mso_sptCalloutDefault2[] =
7618 4, -8300, 24500, -1800, 4000
7620 const sal_Int32 mso_sptCalloutDefault3[] =
7622 6, -10000, 24500, -3600, 4000, -1800, 4000
7624 const sal_Int32 mso_sptCalloutDefault4[] =
7626 8, 23400, 24500, 25200, 21600, 25200, 4000, 23400, 4000
7628 const SvxMSDffVertPair mso_sptCalloutVert1[] =
7630 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }
7632 const SvxMSDffHandle mso_sptCalloutHandle1[] =
7634 { SvxMSDffHandleFlags::NONE,
7635 0x100, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff },
7636 { SvxMSDffHandleFlags::NONE,
7637 0x102, 0x103, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff }
7639 const sal_uInt16 mso_sptCalloutSegm1a[] =
7641 0x4000, 0x0003, 0x6000, 0x8000,
7642 0x4000, 0x0001, 0x8000
7644 const sal_uInt16 mso_sptCalloutSegm1b[] =
7646 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7647 0x4000, 0x0001, 0x8000
7649 const SvxMSDffVertPair mso_sptCallout1Vert[] =
7651 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 0 }, { 2 MSO_I, 21600 }
7653 const sal_uInt16 mso_sptCallout1Segm1a[] =
7655 0x4000, 0x0003, 0x6000, 0x8000,
7656 0x4000, 0x0001, 0x8000,
7657 0x4000, 0x0001, 0x8000
7659 const sal_uInt16 mso_sptCallout1Segm1b[] =
7661 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7662 0x4000, 0x0001, 0x8000,
7663 0x4000, 0x0001, 0x8000
7665 const SvxMSDffVertPair mso_sptCallout2Verta[] =
7667 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }
7669 const SvxMSDffVertPair mso_sptCallout2Vertb[] =
7671 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 4 MSO_I, 0 }, { 4 MSO_I, 21600 }
7673 const SvxMSDffHandle mso_sptCalloutHandle2[] =
7675 { SvxMSDffHandleFlags::NONE,
7676 0x100, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff },
7677 { SvxMSDffHandleFlags::NONE,
7678 0x102, 0x103, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff },
7679 { SvxMSDffHandleFlags::NONE,
7680 0x104, 0x105, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff }
7682 const sal_uInt16 mso_sptCallout2Segm1a[] =
7684 0x4000, 0x0003, 0x6000, 0x8000,
7685 0x4000, 0x0001, 0x8000,
7686 0x4000, 0x0001, 0x8000,
7687 0x4000, 0x0001, 0x8000
7689 const sal_uInt16 mso_sptCallout2Segm1b[] =
7691 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7692 0x4000, 0x0001, 0x8000,
7693 0x4000, 0x0001, 0x8000,
7694 0x4000, 0x0001, 0x8000
7696 const sal_uInt16 mso_sptCallout2Segm1c[] =
7698 0x4000, 0x0003, 0x6000, 0x8000,
7699 0x4000, 0x0001, 0x8000,
7700 0x4000, 0x0001, 0x8000,
7701 0x4000, 0x0001, 0x8000,
7702 0x4000, 0x0001, 0x8000
7704 const sal_uInt16 mso_sptCallout2Segm1d[] =
7706 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7707 0x4000, 0x0001, 0x8000,
7708 0x4000, 0x0001, 0x8000,
7709 0x4000, 0x0001, 0x8000,
7710 0x4000, 0x0001, 0x8000
7712 const SvxMSDffVertPair mso_sptCallout3Verta[] =
7714 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
7716 const SvxMSDffVertPair mso_sptCallout3Vertb[] =
7718 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 6 MSO_I, 0 }, { 6 MSO_I, 21600 }
7720 const SvxMSDffHandle mso_sptCalloutHandle3[] =
7722 { SvxMSDffHandleFlags::NONE,
7723 0x100, 0x101, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff },
7724 { SvxMSDffHandleFlags::NONE,
7725 0x102, 0x103, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff },
7726 { SvxMSDffHandleFlags::NONE,
7727 0x104, 0x105, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff },
7728 { SvxMSDffHandleFlags::NONE,
7729 0x106, 0x107, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff }
7731 const sal_uInt16 mso_sptCallout3Segm1a[] =
7733 0x4000, 0x0003, 0x6000, 0x8000,
7734 0x4000, 0xaa00, 0x0003, 0x8000 // NO_FILL
7736 const sal_uInt16 mso_sptCallout3Segm1b[] =
7738 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7739 0x4000, 0xaa00, 0x0003, 0x8000 // NO FILL
7741 const sal_uInt16 mso_sptCallout3Segm1c[] =
7743 0x4000, 0x0003, 0x6000, 0x8000,
7744 0x4000, 0xaa00, 0x0003, 0x8000, // NO FILL
7745 0x4000, 0x0001, 0x8000
7747 const sal_uInt16 mso_sptCallout3Segm1d[] =
7749 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
7750 0x4000, 0xaa00, 0x0003, 0x8000, // NO FILL
7751 0x4000, 0x0001, 0x8000
7754 const SvxMSDffCalculationData mso_sptCalloutCalc[] =
7756 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7757 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7758 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7759 { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
7760 { 0x2000, { DFF_Prop_adjust5Value, 0, 0 } },
7761 { 0x2000, { DFF_Prop_adjust6Value, 0, 0 } },
7762 { 0x2000, { DFF_Prop_adjust7Value, 0, 0 } },
7763 { 0x2000, { DFF_Prop_adjust8Value, 0, 0 } }
7766 const mso_CustomShape msoCallout90 =
7768 std::span<const SvxMSDffVertPair>(mso_sptCalloutVert1),
7769 const_cast<sal_uInt16*>(mso_sptCalloutSegm1b), sizeof( mso_sptCalloutSegm1b ) >> 1,
7770 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7771 const_cast<sal_Int32*>(mso_sptCalloutDefault1),
7772 std::span<const SvxMSDffTextRectangles>(),
7773 21600, 21600,
7774 MIN_INT32, MIN_INT32,
7775 std::span<const SvxMSDffVertPair>(),
7776 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle1),
7778 const mso_CustomShape msoCallout1 =
7780 std::span<const SvxMSDffVertPair>(mso_sptCalloutVert1),
7781 const_cast<sal_uInt16*>(mso_sptCalloutSegm1b), sizeof( mso_sptCalloutSegm1b ) >> 1,
7782 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7783 const_cast<sal_Int32*>(mso_sptCalloutDefault2),
7784 std::span<const SvxMSDffTextRectangles>(),
7785 21600, 21600,
7786 MIN_INT32, MIN_INT32,
7787 std::span<const SvxMSDffVertPair>(),
7788 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle1),
7790 const mso_CustomShape msoCallout2 =
7792 std::span<const SvxMSDffVertPair>(mso_sptCallout2Verta),
7793 const_cast<sal_uInt16*>(mso_sptCallout2Segm1b), sizeof( mso_sptCallout2Segm1b ) >> 1,
7794 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7795 const_cast<sal_Int32*>(mso_sptCalloutDefault3),
7796 std::span<const SvxMSDffTextRectangles>(),
7797 21600, 21600,
7798 MIN_INT32, MIN_INT32,
7799 std::span<const SvxMSDffVertPair>(),
7800 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle2),
7802 const mso_CustomShape msoCallout3 =
7804 std::span<const SvxMSDffVertPair>(mso_sptCallout3Verta),
7805 const_cast<sal_uInt16*>(mso_sptCallout3Segm1b), sizeof( mso_sptCallout3Segm1b ) >> 1,
7806 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7807 const_cast<sal_Int32*>(mso_sptCalloutDefault4),
7808 std::span<const SvxMSDffTextRectangles>(),
7809 21600, 21600,
7810 MIN_INT32, MIN_INT32,
7811 std::span<const SvxMSDffVertPair>(),
7812 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle3),
7814 const mso_CustomShape msoAccentCallout90 =
7816 std::span<const SvxMSDffVertPair>(mso_sptCalloutVert1),
7817 const_cast<sal_uInt16*>(mso_sptCalloutSegm1b), sizeof( mso_sptCalloutSegm1b ) >> 1,
7818 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7819 const_cast<sal_Int32*>(mso_sptCalloutDefault1),
7820 std::span<const SvxMSDffTextRectangles>(),
7821 21600, 21600,
7822 MIN_INT32, MIN_INT32,
7823 std::span<const SvxMSDffVertPair>(),
7824 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle1),
7826 const mso_CustomShape msoAccentCallout1 =
7828 std::span<const SvxMSDffVertPair>(mso_sptCallout1Vert),
7829 const_cast<sal_uInt16*>(mso_sptCallout1Segm1b), sizeof( mso_sptCallout1Segm1b ) >> 1,
7830 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7831 const_cast<sal_Int32*>(mso_sptCalloutDefault2),
7832 std::span<const SvxMSDffTextRectangles>(),
7833 21600, 21600,
7834 MIN_INT32, MIN_INT32,
7835 std::span<const SvxMSDffVertPair>(),
7836 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle1),
7838 const mso_CustomShape msoAccentCallout2 =
7840 std::span<const SvxMSDffVertPair>(mso_sptCallout2Vertb),
7841 const_cast<sal_uInt16*>(mso_sptCallout2Segm1d), sizeof( mso_sptCallout2Segm1d ) >> 1,
7842 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7843 const_cast<sal_Int32*>(mso_sptCalloutDefault3),
7844 std::span<const SvxMSDffTextRectangles>(),
7845 21600, 21600,
7846 MIN_INT32, MIN_INT32,
7847 std::span<const SvxMSDffVertPair>(),
7848 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle2),
7850 const mso_CustomShape msoAccentCallout3 =
7852 std::span<const SvxMSDffVertPair>(mso_sptCallout3Vertb),
7853 const_cast<sal_uInt16*>(mso_sptCallout3Segm1d), sizeof( mso_sptCallout3Segm1d ) >> 1,
7854 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7855 const_cast<sal_Int32*>(mso_sptCalloutDefault4),
7856 std::span<const SvxMSDffTextRectangles>(),
7857 21600, 21600,
7858 MIN_INT32, MIN_INT32,
7859 std::span<const SvxMSDffVertPair>(),
7860 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle3),
7862 const mso_CustomShape msoBorderCallout90 =
7864 std::span<const SvxMSDffVertPair>(mso_sptCalloutVert1),
7865 const_cast<sal_uInt16*>(mso_sptCalloutSegm1a), sizeof( mso_sptCalloutSegm1a ) >> 1,
7866 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7867 const_cast<sal_Int32*>(mso_sptCalloutDefault1),
7868 std::span<const SvxMSDffTextRectangles>(),
7869 21600, 21600,
7870 MIN_INT32, MIN_INT32,
7871 std::span<const SvxMSDffVertPair>(),
7872 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle1),
7874 const mso_CustomShape msoBorderCallout1 =
7876 std::span<const SvxMSDffVertPair>(mso_sptCalloutVert1),
7877 const_cast<sal_uInt16*>(mso_sptCalloutSegm1a), sizeof( mso_sptCalloutSegm1a ) >> 1,
7878 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7879 const_cast<sal_Int32*>(mso_sptCalloutDefault2),
7880 std::span<const SvxMSDffTextRectangles>(),
7881 21600, 21600,
7882 MIN_INT32, MIN_INT32,
7883 std::span<const SvxMSDffVertPair>(),
7884 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle1),
7886 const mso_CustomShape msoBorderCallout2 =
7888 std::span<const SvxMSDffVertPair>(mso_sptCallout2Verta),
7889 const_cast<sal_uInt16*>(mso_sptCallout2Segm1a), sizeof( mso_sptCallout2Segm1a ) >> 1,
7890 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7891 const_cast<sal_Int32*>(mso_sptCalloutDefault3),
7892 std::span<const SvxMSDffTextRectangles>(),
7893 21600, 21600,
7894 MIN_INT32, MIN_INT32,
7895 std::span<const SvxMSDffVertPair>(),
7896 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle2),
7898 const mso_CustomShape msoBorderCallout3 =
7900 std::span<const SvxMSDffVertPair>(mso_sptCallout3Verta),
7901 const_cast<sal_uInt16*>(mso_sptCallout3Segm1a), sizeof( mso_sptCallout3Segm1a ) >> 1,
7902 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7903 const_cast<sal_Int32*>(mso_sptCalloutDefault4),
7904 std::span<const SvxMSDffTextRectangles>(),
7905 21600, 21600,
7906 MIN_INT32, MIN_INT32,
7907 std::span<const SvxMSDffVertPair>(),
7908 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle3),
7910 const mso_CustomShape msoAccentBorderCallout90 =
7912 std::span<const SvxMSDffVertPair>(mso_sptCalloutVert1),
7913 const_cast<sal_uInt16*>(mso_sptCalloutSegm1a), sizeof( mso_sptCalloutSegm1a ) >> 1,
7914 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7915 const_cast<sal_Int32*>(mso_sptCalloutDefault1),
7916 std::span<const SvxMSDffTextRectangles>(),
7917 21600, 21600,
7918 MIN_INT32, MIN_INT32,
7919 std::span<const SvxMSDffVertPair>(),
7920 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle1),
7922 const mso_CustomShape msoAccentBorderCallout1 =
7924 std::span<const SvxMSDffVertPair>(mso_sptCallout1Vert),
7925 const_cast<sal_uInt16*>(mso_sptCallout1Segm1a), sizeof( mso_sptCallout1Segm1a ) >> 1,
7926 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7927 const_cast<sal_Int32*>(mso_sptCalloutDefault2),
7928 std::span<const SvxMSDffTextRectangles>(),
7929 21600, 21600,
7930 MIN_INT32, MIN_INT32,
7931 std::span<const SvxMSDffVertPair>(),
7932 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle1),
7934 const mso_CustomShape msoAccentBorderCallout2 =
7936 std::span<const SvxMSDffVertPair>(mso_sptCallout2Vertb),
7937 const_cast<sal_uInt16*>(mso_sptCallout2Segm1c), sizeof( mso_sptCallout2Segm1c ) >> 1,
7938 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7939 const_cast<sal_Int32*>(mso_sptCalloutDefault3),
7940 std::span<const SvxMSDffTextRectangles>(),
7941 21600, 21600,
7942 MIN_INT32, MIN_INT32,
7943 std::span<const SvxMSDffVertPair>(),
7944 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle2),
7946 const mso_CustomShape msoAccentBorderCallout3 =
7948 std::span<const SvxMSDffVertPair>(mso_sptCallout3Vertb),
7949 const_cast<sal_uInt16*>(mso_sptCallout3Segm1c), sizeof( mso_sptCallout3Segm1c ) >> 1,
7950 std::span<const SvxMSDffCalculationData>(mso_sptCalloutCalc),
7951 const_cast<sal_Int32*>(mso_sptCalloutDefault4),
7952 std::span<const SvxMSDffTextRectangles>(),
7953 21600, 21600,
7954 MIN_INT32, MIN_INT32,
7955 std::span<const SvxMSDffVertPair>(),
7956 std::span<const SvxMSDffHandle>(mso_sptCalloutHandle3),
7959 const SvxMSDffVertPair mso_sptStraightConnector1Vert[] =
7961 { 0, 0 }, { 21600, 21600 }
7963 const sal_uInt16 mso_sptStraightConnector1Segm[] =
7965 0x4000, 0x0001, 0x8000
7967 const mso_CustomShape msoStraightConnector1 =
7969 std::span<const SvxMSDffVertPair>(mso_sptStraightConnector1Vert),
7970 const_cast<sal_uInt16*>(mso_sptStraightConnector1Segm), sizeof( mso_sptStraightConnector1Segm ) >> 1,
7971 std::span<const SvxMSDffCalculationData>(),
7972 nullptr,
7973 std::span<const SvxMSDffTextRectangles>(),
7974 21600, 21600,
7975 MIN_INT32, MIN_INT32,
7976 std::span<const SvxMSDffVertPair>(),
7977 std::span<const SvxMSDffHandle>()
7980 const SvxMSDffVertPair mso_sptBentConnector2Vert[] =
7982 { 0, 0 }, { 21600, 0 }, { 21600, 21600 }
7984 const sal_uInt16 mso_sptBentConnector2Segm[] =
7986 0x4000, 0x0002, 0x8000
7988 const mso_CustomShape msoBentConnector2 =
7990 std::span<const SvxMSDffVertPair>(mso_sptBentConnector2Vert),
7991 const_cast<sal_uInt16*>(mso_sptBentConnector2Segm), sizeof( mso_sptBentConnector2Segm ) >> 1,
7992 std::span<const SvxMSDffCalculationData>(),
7993 nullptr,
7994 std::span<const SvxMSDffTextRectangles>(),
7995 21600, 21600,
7996 MIN_INT32, MIN_INT32,
7997 std::span<const SvxMSDffVertPair>(),
7998 std::span<const SvxMSDffHandle>()
8001 const SvxMSDffVertPair mso_sptBentConnector3Vert[] =
8003 { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 21600 }, { 21600, 21600 }
8005 const sal_uInt16 mso_sptBentConnector3Segm[] =
8007 0x4000, 0x0003, 0x8000
8009 const SvxMSDffCalculationData mso_sptBentConnector3Calc[] =
8011 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
8013 const sal_Int32 mso_sptBentConnector3Default[] =
8015 1, 10800
8017 const SvxMSDffHandle mso_sptBentConnector3Handle[] =
8019 { SvxMSDffHandleFlags::RANGE,
8020 0x100, 10800, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff }
8022 const mso_CustomShape msoBentConnector3 =
8024 std::span<const SvxMSDffVertPair>(mso_sptBentConnector3Vert),
8025 const_cast<sal_uInt16*>(mso_sptBentConnector3Segm), sizeof( mso_sptBentConnector3Segm ) >> 1,
8026 std::span<const SvxMSDffCalculationData>(mso_sptBentConnector3Calc),
8027 const_cast<sal_Int32*>(mso_sptBentConnector3Default),
8028 std::span<const SvxMSDffTextRectangles>(),
8029 21600, 21600,
8030 MIN_INT32, MIN_INT32,
8031 std::span<const SvxMSDffVertPair>(),
8032 std::span<const SvxMSDffHandle>(mso_sptBentConnector3Handle),
8035 const SvxMSDffVertPair mso_sptBentConnector4Vert[] =
8037 { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I }, { 21600, 21600 }
8039 const sal_uInt16 mso_sptBentConnector4Segm[] =
8041 0x4000, 0x0004, 0x8000
8043 const SvxMSDffCalculationData mso_sptBentConnector4Calc[] =
8045 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
8046 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
8047 { 0x2000, { 0x400, 21600, 0 } },
8048 { 0x2001, { 0x402, 1, 2 } },
8049 { 0x2001, { 0x401, 1, 2 } }
8051 const sal_Int32 mso_sptBentConnector4Default[] =
8053 2, 10800, 10800
8055 const SvxMSDffHandle mso_sptBentConnector4Handle[] =
8057 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
8058 0x100, 4 + 3, 10800, 10800, MIN_INT32, 0x7fffffff, 4 + 3, 4 + 3 },
8059 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
8060 3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, MIN_INT32, 0x7fffffff }
8062 const mso_CustomShape msoBentConnector4 =
8064 std::span<const SvxMSDffVertPair>(mso_sptBentConnector4Vert),
8065 const_cast<sal_uInt16*>(mso_sptBentConnector4Segm), sizeof( mso_sptBentConnector4Segm ) >> 1,
8066 std::span<const SvxMSDffCalculationData>(mso_sptBentConnector4Calc),
8067 const_cast<sal_Int32*>(mso_sptBentConnector4Default),
8068 std::span<const SvxMSDffTextRectangles>(),
8069 21600, 21600,
8070 MIN_INT32, MIN_INT32,
8071 std::span<const SvxMSDffVertPair>(),
8072 std::span<const SvxMSDffHandle>(mso_sptBentConnector4Handle),
8075 const SvxMSDffVertPair mso_sptBentConnector5Vert[] =
8077 { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 4 MSO_I }, { 1 MSO_I, 21600 }, { 21600, 21600 }
8079 const sal_uInt16 mso_sptBentConnector5Segm[] =
8081 0x4000, 0x0005, 0x8000
8083 const SvxMSDffCalculationData mso_sptBentConnector5Calc[] =
8085 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
8086 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
8087 { 0x6000, { 0x400, 0x401, 0 } },
8088 { 0x2001, { 0x402, 1, 2 } },
8089 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
8090 { 0x2001, { 0x404, 1, 2 } },
8091 { 0x4000, { 21600, 0x404, 0 } },
8092 { 0x2001, { 0x406, 1, 2 } }
8094 const sal_Int32 mso_sptBentConnector5Default[] =
8096 3, 10800, 10800, 10800
8098 const SvxMSDffHandle mso_sptBentConnector5Handle[] =
8100 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
8101 0x100, 5 + 3, 10800, 10800, MIN_INT32, 0x7fffffff, 5 + 3, 5 + 3 },
8102 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
8103 3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, MIN_INT32, 0x7fffffff },
8104 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
8105 0x102, 7 + 3, 10800, 10800, MIN_INT32, 0x7fffffff, 7 + 3, 7 + 3 }
8107 const mso_CustomShape msoBentConnector5 =
8109 std::span<const SvxMSDffVertPair>(mso_sptBentConnector5Vert),
8110 const_cast<sal_uInt16*>(mso_sptBentConnector5Segm), sizeof( mso_sptBentConnector5Segm ) >> 1,
8111 std::span<const SvxMSDffCalculationData>(mso_sptBentConnector5Calc),
8112 const_cast<sal_Int32*>(mso_sptBentConnector5Default),
8113 std::span<const SvxMSDffTextRectangles>(),
8114 21600, 21600,
8115 MIN_INT32, MIN_INT32,
8116 std::span<const SvxMSDffVertPair>(),
8117 std::span<const SvxMSDffHandle>(mso_sptBentConnector5Handle),
8120 const SvxMSDffVertPair mso_sptCurvedConnector2Vert[] =
8122 { 0, 0 }, { 10800, 0 }, { 21600, 10800 }, { 21600, 21600 }
8124 const sal_uInt16 mso_sptCurvedConnector2Segm[] =
8126 0x4000, 0x2001, 0x8000
8128 const mso_CustomShape msoCurvedConnector2 =
8130 std::span<const SvxMSDffVertPair>(mso_sptCurvedConnector2Vert),
8131 const_cast<sal_uInt16*>(mso_sptCurvedConnector2Segm), sizeof( mso_sptCurvedConnector2Segm ) >> 1,
8132 std::span<const SvxMSDffCalculationData>(),
8133 nullptr,
8134 std::span<const SvxMSDffTextRectangles>(),
8135 21600, 21600,
8136 MIN_INT32, MIN_INT32,
8137 std::span<const SvxMSDffVertPair>(),
8138 std::span<const SvxMSDffHandle>()
8141 const SvxMSDffVertPair mso_sptCurvedConnector3Vert[] =
8143 { 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 5400 }, { 0 MSO_I, 10800 }, { 0 MSO_I, 16200 }, { 3 MSO_I, 21600 }, { 21600, 21600 }
8145 const sal_uInt16 mso_sptCurvedConnector3Segm[] =
8147 0x4000, 0x2002, 0x8000
8149 const SvxMSDffCalculationData mso_sptCurvedConnector3Calc[] =
8151 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
8152 { 0x2001, { 0x400, 1, 2 } },
8153 { 0x2000, { 0x400, 21600, 0 } },
8154 { 0x2001, { 0x402, 1, 2 } }
8156 const sal_Int32 mso_sptCurvedConnector3Default[] =
8158 1, 10800
8160 const SvxMSDffHandle mso_sptCurvedConnector3Handle[] =
8162 { SvxMSDffHandleFlags::RANGE,
8163 0x100, 10800, 10800, 10800, MIN_INT32, 0x7fffffff, MIN_INT32, 0x7fffffff }
8165 const mso_CustomShape msoCurvedConnector3 =
8167 std::span<const SvxMSDffVertPair>(mso_sptCurvedConnector3Vert),
8168 const_cast<sal_uInt16*>(mso_sptCurvedConnector3Segm), sizeof( mso_sptCurvedConnector3Segm ) >> 1,
8169 std::span<const SvxMSDffCalculationData>(mso_sptCurvedConnector3Calc),
8170 const_cast<sal_Int32*>(mso_sptCurvedConnector3Default),
8171 std::span<const SvxMSDffTextRectangles>(),
8172 21600, 21600,
8173 MIN_INT32, MIN_INT32,
8174 std::span<const SvxMSDffVertPair>(),
8175 std::span<const SvxMSDffHandle>(mso_sptCurvedConnector3Handle),
8178 const SvxMSDffVertPair mso_sptCurvedConnector4Vert[] =
8180 { 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 10 MSO_I }, { 0 MSO_I, 9 MSO_I },
8181 { 0 MSO_I, 12 MSO_I }, { 5 MSO_I, 8 MSO_I }, { 3 MSO_I, 8 MSO_I },
8182 { 7 MSO_I, 8 MSO_I }, { 21600, 14 MSO_I }, { 21600, 21600 }
8185 const sal_uInt16 mso_sptCurvedConnector4Segm[] =
8187 0x4000, 0x2003, 0x8000
8189 const SvxMSDffCalculationData mso_sptCurvedConnector4Calc[] =
8191 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
8192 { 0x2001, { 0x400, 1, 2 } },
8193 { 0x4000, { 21600, 0x400, 0 } },
8194 { 0x2001, { 0x402, 1, 2 } },
8195 { 0x6000, { 0x400, 0x403, 0 } },
8196 { 0x2001, { 0x404, 1, 2 } },
8197 { 0x2000, { 0x403, 21600, 0 } },
8198 { 0x2001, { 0x406, 1, 2 } },
8199 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
8200 { 0x2001, { DFF_Prop_adjust2Value, 1, 2 } },
8201 { 0x2001, { DFF_Prop_adjust2Value, 1, 4 } },
8202 { 0x6000, { 0x408, 0x409, 0 } },
8203 { 0x2001, { 0x40b, 1, 2 } },
8204 { 0x2000, { 0x408, 21600, 0 } },
8205 { 0x2001, { 0x40d, 1, 2 } }
8207 const sal_Int32 mso_sptCurvedConnector4Default[] =
8209 2, 10800, 10800
8211 const SvxMSDffHandle mso_sptCurvedConnector4Handle[] =
8213 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
8214 0x100, 9 + 3, 10800, 10800, MIN_INT32, 0x7fffffff, 9 + 3, 9 + 3 },
8215 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
8216 3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, MIN_INT32, 0x7fffffff }
8218 const mso_CustomShape msoCurvedConnector4 =
8220 std::span<const SvxMSDffVertPair>(mso_sptCurvedConnector4Vert),
8221 const_cast<sal_uInt16*>(mso_sptCurvedConnector4Segm), sizeof( mso_sptCurvedConnector4Segm ) >> 1,
8222 std::span<const SvxMSDffCalculationData>(mso_sptCurvedConnector4Calc),
8223 const_cast<sal_Int32*>(mso_sptCurvedConnector4Default),
8224 std::span<const SvxMSDffTextRectangles>(),
8225 21600, 21600,
8226 MIN_INT32, MIN_INT32,
8227 std::span<const SvxMSDffVertPair>(),
8228 std::span<const SvxMSDffHandle>(mso_sptCurvedConnector4Handle),
8231 const SvxMSDffVertPair mso_sptCurvedConnector5Vert[] =
8233 { 0, 0 },
8234 { 21 MSO_I, 0 }, { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
8235 { 0 MSO_I, 14 MSO_I }, { 6 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
8236 { 8 MSO_I, 4 MSO_I }, { 1 MSO_I, 18 MSO_I }, { 1 MSO_I, 16 MSO_I },
8237 { 1 MSO_I, 20 MSO_I }, { 10 MSO_I, 21600 }, { 21600, 21600 }
8239 const sal_uInt16 mso_sptCurvedConnector5Segm[] =
8241 0x4000, 0x2004, 0x8000
8243 const SvxMSDffCalculationData mso_sptCurvedConnector5Calc[] =
8245 { 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
8246 { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
8247 { 0x6000, { 0x400, 0x401, 0 } },
8248 { 0x2001, { 0x402, 1, 2 } },
8249 { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
8250 { 0x6000, { 0x400, 0x403, 0 } },
8251 { 0x2001, { 0x405, 1, 2 } },
8252 { 0x6000, { 0x401, 0x403, 0 } },
8253 { 0x2001, { 0x407, 1, 2 } },
8254 { 0x2000, { 0x401, 21600, 0 } },
8255 { 0x2001, { 0x409, 1, 2 } },
8256 { 0x2001, { 0x404, 1, 2 } },
8257 { 0x2001, { 0x40b, 1, 2 } },
8258 { 0x6000, { 0x404, 0x40b, 0 } },
8259 { 0x2001, { 0x40d, 1, 2 } },
8260 { 0x2000, { 0x404, 21600, 0 } },
8261 { 0x2001, { 0x40f, 1, 2 } },
8262 { 0x6000, { 0x404, 0x410, 0 } },
8263 { 0x2001, { 0x411, 1, 2 } },
8264 { 0x2000, { 0x410, 21600, 0 } },
8265 { 0x2001, { 0x413, 1, 2 } },
8266 { 0x2001, { 0x400, 1, 2 } }
8268 const sal_Int32 mso_sptCurvedConnector5Default[] =
8270 3, 10800, 10800, 10800
8272 const SvxMSDffHandle mso_sptCurvedConnector5Handle[] =
8274 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
8275 0x100, 11 + 3, 10800, 10800, MIN_INT32, 0x7fffffff, 11 + 3, 11 + 3 },
8276 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL,
8277 3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, MIN_INT32, 0x7fffffff },
8278 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_Y_MIN_IS_SPECIAL | SvxMSDffHandleFlags::RANGE_Y_MAX_IS_SPECIAL,
8279 0x102, 16 + 3, 10800, 10800, MIN_INT32, 0x7fffffff, 16 + 3, 16 + 3 }
8281 const mso_CustomShape msoCurvedConnector5 =
8283 std::span<const SvxMSDffVertPair>(mso_sptCurvedConnector5Vert),
8284 const_cast<sal_uInt16*>(mso_sptCurvedConnector5Segm), sizeof( mso_sptCurvedConnector5Segm ) >> 1,
8285 std::span<const SvxMSDffCalculationData>(mso_sptCurvedConnector5Calc),
8286 const_cast<sal_Int32*>(mso_sptCurvedConnector5Default),
8287 std::span<const SvxMSDffTextRectangles>(),
8288 21600, 21600,
8289 MIN_INT32, MIN_INT32,
8290 std::span<const SvxMSDffVertPair>(),
8291 std::span<const SvxMSDffHandle>(mso_sptCurvedConnector5Handle),
8294 /////////////////////////////teardrop
8295 const SvxMSDffVertPair mso_sptTearDropVert[] =
8297 { 10800, 0 },
8298 { 0, 10800 }, // X
8299 { 10800, 21600 }, // Y
8300 { 21600, 10800 }, // X
8301 { 21600, 10800 }, { 21600, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }, // C
8302 { 0 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 }, { 10800, 0 }
8305 // the last number (0x***n) : 0 = sum, 1 = prod, 2 = mid, 3 = abs, 4 = min, 5 = max, 6 = if, 13 = sqrt, 15 = eclipse ...
8306 // the first number(0xn***) : 2/4/8 the first/second/third value is not directly value
8307 const SvxMSDffCalculationData mso_sptTearDropCalc[] =
8309 { 0x2000 , { DFF_Prop_adjustValue , 0 , 0 } }, // 0 adjust value #0
8310 { 0x8000 , { 21600 , 0 , 0x0400 } }, // 1 21600 - @0 y0
8311 { 0x8000 , { 32400 , 0 , 0x0400 } }, // 2 (32400 - @0)
8312 { 0x2001 , { 0x0402 , 1 , 2 } }, // 3 (32400 - @0)/2 y1
8313 { 0x2002 , { 0x0400 , 10800 , 0 } }, // 4 (@0+10800)/2 x2
8316 //m, qx, qy, qx,C,C
8317 //the last number(0x***n) : repeat number of this current Segm
8318 const sal_uInt16 mso_sptTearDropSegm[] =
8320 0x4000, 0xa701, 0xa801, 0xa701, 0x2002, 0x6000, 0x8000
8323 const SvxMSDffTextRectangles mso_sptTearDropTextRect[] =
8325 { { 2863, 2863 }, { 18737, 18737 } }
8328 //the range of adjust values
8329 const SvxMSDffHandle mso_sptTearDropHandle[] =
8331 //position="$0,0" xrange="10800,32400"
8332 { SvxMSDffHandleFlags::RANGE | SvxMSDffHandleFlags::RANGE_X_MAX_IS_SPECIAL| SvxMSDffHandleFlags::RANGE_X_MIN_IS_SPECIAL,
8333 0x100, 0, 10800, 10800, 10800, 32400, MIN_INT32, 0x7fffffff }
8336 //the number of adjust values, the default values
8337 const sal_Int32 mso_sptTearDropDefault[] =
8339 1, 21600
8342 const mso_CustomShape msoTearDrop =
8344 std::span<const SvxMSDffVertPair>(mso_sptTearDropVert),
8345 const_cast<sal_uInt16*>(mso_sptTearDropSegm), sizeof( mso_sptTearDropSegm ) >> 1,
8346 std::span<const SvxMSDffCalculationData>(mso_sptTearDropCalc),
8347 const_cast<sal_Int32*>(mso_sptTearDropDefault),
8348 std::span<const SvxMSDffTextRectangles>(mso_sptTearDropTextRect),
8349 21600, 21600,
8350 MIN_INT32, MIN_INT32,
8351 std::span<const SvxMSDffVertPair>(),
8352 std::span<const SvxMSDffHandle>(mso_sptTearDropHandle),
8355 ///////////////////////////// sinusoid
8356 const SvxMSDffVertPair mso_sptSinusoidVert[] =
8358 // calculations courtesy of section 6.3.2 of
8359 // https://documentation.libreoffice.org/assets/Uploads/Documentation/en/Tutorials/CustomShapes7/Custom-Shape-Tutorial.pdf#page=52
8361 // taking K = (3pi/2 - 3pi^2/8 - 1/2)
8362 // transforming points to viewbox of size 21600 x 21600
8364 // Start point
8365 { 0, 10800 }, // (0, 0)
8366 // First Bezier
8367 { 1757, 5278 }, // (K, K)
8368 { 3437, 0 }, // (1, 1)
8369 { 5400, 0 }, // (pi/2, 1)
8370 // Second Bezier
8371 { 7362, 0 }, // (pi - 1, 1)
8372 { 9042, 5278 }, // (pi - K, K)
8373 { 10800, 10800 }, // (pi, 0)
8374 // Third Bezier
8375 { 12557, 16321 }, // (pi + K, -K)
8376 { 14237, 21600 }, // (pi + 1, -1)
8377 { 16200, 21600 }, // (3pi/2, -1)
8378 // Fourth Bezier
8379 { 18162, 21600 }, // (2pi - 1, -1)
8380 { 19842, 16321 }, // (2pi - K, -K)
8381 { 21600, 10800 } // (2pi, 0)
8384 const sal_uInt16 mso_sptSinusoidSegm[] =
8386 0x4000, 0x2004, 0x8000
8389 const SvxMSDffVertPair mso_sptSinusoidGluePoints[] =
8391 { 0, 10800 }, // x = 0.00
8392 { 5400, 0 }, // x = 0.25
8393 { 10800, 10800 }, // x = 0.50
8394 { 16200, 21600 }, // x = 0.75
8395 { 21600, 10800 } // x = 1.00
8398 const mso_CustomShape msoSinusoid =
8400 std::span<const SvxMSDffVertPair>(mso_sptSinusoidVert), // vertices
8401 const_cast<sal_uInt16*>(mso_sptSinusoidSegm), sizeof(mso_sptSinusoidSegm) >> 1, // segments, count
8402 std::span<const SvxMSDffCalculationData>(), // calculations (none)
8403 nullptr, // default values (none)
8404 std::span<const SvxMSDffTextRectangles>(), // text area (default)
8405 21600, 21600, // viewbox w, h (default)
8406 MIN_INT32, MIN_INT32, // stretch x, y (unset)
8407 std::span<const SvxMSDffVertPair>(mso_sptSinusoidGluePoints), // glue points
8408 std::span<const SvxMSDffHandle>(), // handles (none)
8412 const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType )
8414 const mso_CustomShape* pCustomShape = nullptr;
8415 switch( eSpType )
8417 case mso_sptArc : pCustomShape = &msoArc; break;
8418 case mso_sptLine: pCustomShape = &msoStraightConnector1; break;
8419 case mso_sptRectangle : pCustomShape = &msoRectangle; break;
8420 case mso_sptParallelogram : pCustomShape = &msoParallelogram; break;
8421 case mso_sptTrapezoid : pCustomShape = &msoTrapezoid; break;
8422 case mso_sptDiamond : pCustomShape = &msoDiamond; break;
8423 case mso_sptRoundRectangle : pCustomShape = &msoRoundRectangle; break;
8424 case mso_sptOctagon : pCustomShape = &msoOctagon; break;
8425 case mso_sptIsocelesTriangle : pCustomShape = &msoIsocelesTriangle; break;
8426 case mso_sptRightTriangle : pCustomShape = &msoRightTriangle; break;
8427 case mso_sptEllipse : pCustomShape = &msoEllipse; break;
8428 case mso_sptHexagon : pCustomShape = &msoHexagon; break;
8429 case mso_sptPlus : pCustomShape = &msoPlus; break;
8430 case mso_sptPentagon : pCustomShape = &msoPentagon; break;
8431 case mso_sptCan : pCustomShape = &msoCan; break;
8432 case mso_sptCube : pCustomShape = &msoCube; break;
8433 case mso_sptBalloon : pCustomShape = &msoBalloon; break;
8434 case mso_sptActionButtonBlank : pCustomShape = &msoActionButtonBlank; break;
8435 case mso_sptActionButtonHome : pCustomShape = &msoActionButtonHome; break;
8436 case mso_sptActionButtonHelp : pCustomShape = &msoActionButtonHelp; break;
8437 case mso_sptActionButtonInformation : pCustomShape = &msoActionButtonInformation; break;
8438 case mso_sptActionButtonBackPrevious : pCustomShape = &msoActionButtonBackPrevious; break;
8439 case mso_sptActionButtonForwardNext : pCustomShape = &msoActionButtonForwardNext; break;
8440 case mso_sptActionButtonBeginning : pCustomShape = &msoActionButtonBeginning; break;
8441 case mso_sptActionButtonEnd : pCustomShape = &msoActionButtonEnd; break;
8442 case mso_sptActionButtonReturn : pCustomShape = &msoActionButtonReturn; break;
8443 case mso_sptActionButtonDocument : pCustomShape = &msoActionButtonDocument; break;
8444 case mso_sptActionButtonSound : pCustomShape = &msoActionButtonSound; break;
8445 case mso_sptActionButtonMovie : pCustomShape = &msoActionButtonMovie; break;
8446 case mso_sptBevel : pCustomShape = &msoBevel; break;
8447 case mso_sptFoldedCorner : pCustomShape = &msoFoldedCorner; break;
8448 case mso_sptSmileyFace : pCustomShape = &msoSmileyFace; break;
8449 case mso_sptDonut : pCustomShape = &msoDonut; break;
8450 case mso_sptNoSmoking : pCustomShape = &msoNoSmoking; break;
8451 case mso_sptBlockArc : pCustomShape = &msoBlockArc; break;
8452 case mso_sptHeart : pCustomShape = &msoHeart; break;
8453 case mso_sptLightningBolt : pCustomShape = &msoLightningBold; break;
8454 case mso_sptSun : pCustomShape = &msoSun; break;
8455 case mso_sptMoon : pCustomShape = &msoMoon; break;
8456 case mso_sptBracketPair : pCustomShape = &msoBracketPair; break;
8457 case mso_sptBracePair : pCustomShape = &msoBracePair; break;
8458 case mso_sptPlaque : pCustomShape = &msoPlaque; break;
8459 case mso_sptLeftBracket : pCustomShape = &msoLeftBracket; break;
8460 case mso_sptRightBracket : pCustomShape = &msoRightBracket; break;
8461 case mso_sptLeftBrace : pCustomShape = &msoLeftBrace; break;
8462 case mso_sptRightBrace : pCustomShape = &msoRightBrace; break;
8463 case mso_sptArrow : pCustomShape = &msoArrow; break;
8464 case mso_sptUpArrow : pCustomShape = &msoUpArrow; break;
8465 case mso_sptDownArrow : pCustomShape = &msoDownArrow; break;
8466 case mso_sptLeftArrow : pCustomShape = &msoLeftArrow; break;
8467 case mso_sptLeftRightArrow : pCustomShape = &msoLeftRightArrow; break;
8468 case mso_sptUpDownArrow : pCustomShape = &msoUpDownArrow; break;
8469 case mso_sptQuadArrow : pCustomShape = &msoQuadArrow; break;
8470 case mso_sptLeftRightUpArrow : pCustomShape = &msoLeftRightUpArrow; break;
8471 case mso_sptBentArrow : pCustomShape = &msoBentArrow; break;
8472 case mso_sptUturnArrow : pCustomShape = &msoUturnArrow; break;
8473 case mso_sptLeftUpArrow : pCustomShape = &msoLeftUpArrow; break;
8474 case mso_sptBentUpArrow : pCustomShape = &msoBentUpArrow; break;
8475 case mso_sptCurvedRightArrow : pCustomShape = &msoCurvedRightArrow; break;
8476 case mso_sptCurvedLeftArrow : pCustomShape = &msoCurvedLeftArrow; break;
8477 case mso_sptCurvedUpArrow : pCustomShape = &msoCurvedUpArrow; break;
8478 case mso_sptCurvedDownArrow : pCustomShape = &msoCurvedDownArrow; break;
8479 case mso_sptStripedRightArrow : pCustomShape = &msoStripedRightArrow; break;
8480 case mso_sptNotchedRightArrow : pCustomShape = &msoNotchedRightArrow; break;
8481 case mso_sptHomePlate : pCustomShape = &msoHomePlate; break;
8482 case mso_sptChevron : pCustomShape = &msoChevron; break;
8483 case mso_sptRightArrowCallout : pCustomShape = &msoRightArrowCallout; break;
8484 case mso_sptLeftArrowCallout : pCustomShape = &msoLeftArrowCallout; break;
8485 case mso_sptUpArrowCallout : pCustomShape = &msoUpArrowCallout; break;
8486 case mso_sptDownArrowCallout : pCustomShape = &msoDownArrowCallout; break;
8487 case mso_sptLeftRightArrowCallout : pCustomShape = &msoLeftRightArrowCallout; break;
8488 case mso_sptUpDownArrowCallout : pCustomShape = &msoUpDownArrowCallout; break;
8489 case mso_sptQuadArrowCallout : pCustomShape = &msoQuadArrowCallout; break;
8490 case mso_sptCircularArrow : pCustomShape = &msoCircularArrow; break;
8491 case mso_sptIrregularSeal1 : pCustomShape = &msoIrregularSeal1; break;
8492 case mso_sptIrregularSeal2 : pCustomShape = &msoIrregularSeal2; break;
8493 case mso_sptSeal4 : pCustomShape = &msoSeal4; break;
8494 case mso_sptStar : pCustomShape = &msoStar; break;
8495 case mso_sptSeal8 : pCustomShape = &msoSeal8; break;
8496 case mso_sptSeal :
8497 case mso_sptSeal16 : pCustomShape = &msoSeal16; break;
8498 case mso_sptSeal24 : pCustomShape = &msoSeal24; break;
8499 case mso_sptSeal32 : pCustomShape = &msoSeal32; break;
8500 case mso_sptRibbon2 : pCustomShape = &msoRibbon2; break;
8501 case mso_sptRibbon : pCustomShape = &msoRibbon; break;
8502 case mso_sptEllipseRibbon2 : pCustomShape = &msosptEllipseRibbon2; break; // SJ: TODO
8503 case mso_sptEllipseRibbon : pCustomShape = &msosptEllipseRibbon; break; // SJ: TODO
8504 case mso_sptVerticalScroll : pCustomShape = &msoVerticalScroll; break;
8505 case mso_sptHorizontalScroll : pCustomShape = &msoHorizontalScroll; break;
8506 case mso_sptFlowChartProcess : pCustomShape = &msoFlowChartProcess; break;
8507 case mso_sptFlowChartAlternateProcess : pCustomShape = &msoFlowChartAlternateProcess; break;
8508 case mso_sptFlowChartDecision : pCustomShape = &msoFlowChartDecision; break;
8509 case mso_sptFlowChartInputOutput : pCustomShape = &msoFlowChartInputOutput; break;
8510 case mso_sptFlowChartPredefinedProcess :pCustomShape = &msoFlowChartPredefinedProcess; break;
8511 case mso_sptFlowChartInternalStorage : pCustomShape = &msoFlowChartInternalStorage; break;
8512 case mso_sptFlowChartDocument : pCustomShape = &msoFlowChartDocument; break;
8513 case mso_sptFlowChartMultidocument : pCustomShape = &msoFlowChartMultidocument; break;
8514 case mso_sptFlowChartTerminator : pCustomShape = &msoFlowChartTerminator; break;
8515 case mso_sptFlowChartPreparation : pCustomShape = &msoFlowChartPreparation; break;
8516 case mso_sptFlowChartManualInput : pCustomShape = &msoFlowChartManualInput; break;
8517 case mso_sptFlowChartManualOperation : pCustomShape = &msoFlowChartManualOperation; break;
8518 case mso_sptFlowChartConnector : pCustomShape = &msoFlowChartConnector; break;
8519 case mso_sptFlowChartOffpageConnector : pCustomShape = &msoFlowChartOffpageConnector; break;
8520 case mso_sptFlowChartPunchedCard : pCustomShape = &msoFlowChartPunchedCard; break;
8521 case mso_sptFlowChartPunchedTape : pCustomShape = &msoFlowChartPunchedTape; break;
8522 case mso_sptFlowChartSummingJunction : pCustomShape = &msoFlowChartSummingJunction; break;
8523 case mso_sptFlowChartOr : pCustomShape = &msoFlowChartOr; break;
8524 case mso_sptFlowChartCollate : pCustomShape = &msoFlowChartCollate; break;
8525 case mso_sptFlowChartSort : pCustomShape = &msoFlowChartSort; break;
8526 case mso_sptFlowChartExtract : pCustomShape = &msoFlowChartExtract; break;
8527 case mso_sptFlowChartMerge : pCustomShape = &msoFlowChartMerge; break;
8528 case mso_sptFlowChartOnlineStorage : pCustomShape = &msoFlowChartOnlineStorage; break;
8529 case mso_sptFlowChartDelay : pCustomShape = &msoFlowChartDelay; break;
8530 case mso_sptFlowChartMagneticTape : pCustomShape = &msoFlowChartMagneticTape; break;
8531 case mso_sptFlowChartMagneticDisk : pCustomShape = &msoFlowChartMagneticDisk; break;
8532 case mso_sptFlowChartMagneticDrum : pCustomShape = &msoFlowChartMagneticDrum; break;
8533 case mso_sptFlowChartDisplay : pCustomShape = &msoFlowChartDisplay; break;
8534 case mso_sptWedgeRectCallout : pCustomShape = &msoWedgeRectCallout; break;
8535 case mso_sptWedgeRRectCallout : pCustomShape = &msoWedgeRRectCallout; break;
8536 case mso_sptWedgeEllipseCallout : pCustomShape = &msoWedgeEllipseCallout; break;
8537 case mso_sptCloudCallout : pCustomShape = &msoCloudCallout; break;
8538 case mso_sptWave : pCustomShape = &msoWave; break;
8539 case mso_sptDoubleWave : pCustomShape = &msoDoubleWave; break;
8540 case mso_sptSinusoid : pCustomShape = &msoSinusoid; break;
8542 // callout
8543 case mso_sptCallout1 : pCustomShape = &msoCallout1; break;
8544 case mso_sptCallout2 : pCustomShape = &msoCallout2; break;
8545 case mso_sptCallout3 : pCustomShape = &msoCallout3; break;
8546 case mso_sptAccentCallout1 : pCustomShape = &msoAccentCallout1; break;
8547 case mso_sptAccentCallout2 : pCustomShape = &msoAccentCallout2; break;
8548 case mso_sptAccentCallout3 : pCustomShape = &msoAccentCallout3; break;
8549 case mso_sptBorderCallout1 : pCustomShape = &msoBorderCallout1; break;
8550 case mso_sptBorderCallout2 : pCustomShape = &msoBorderCallout2; break;
8551 case mso_sptBorderCallout3 : pCustomShape = &msoBorderCallout3; break;
8552 case mso_sptAccentBorderCallout1 : pCustomShape = &msoAccentBorderCallout1; break;
8553 case mso_sptAccentBorderCallout2 : pCustomShape = &msoAccentBorderCallout2; break;
8554 case mso_sptAccentBorderCallout3 : pCustomShape = &msoAccentBorderCallout3; break;
8555 case mso_sptCallout90 : pCustomShape = &msoCallout90; break;
8556 case mso_sptAccentCallout90 : pCustomShape = &msoAccentCallout90; break;
8557 case mso_sptBorderCallout90 : pCustomShape = &msoBorderCallout90; break;
8558 case mso_sptAccentBorderCallout90 : pCustomShape = &msoAccentBorderCallout90; break;
8560 // connectors
8561 case mso_sptStraightConnector1 : pCustomShape = &msoStraightConnector1; break;
8562 case mso_sptBentConnector2 : pCustomShape = &msoBentConnector2; break;
8563 case mso_sptBentConnector3 : pCustomShape = &msoBentConnector3; break;
8564 case mso_sptBentConnector4 : pCustomShape = &msoBentConnector4; break;
8565 case mso_sptBentConnector5 : pCustomShape = &msoBentConnector5; break;
8566 case mso_sptCurvedConnector2 : pCustomShape = &msoCurvedConnector2; break;
8567 case mso_sptCurvedConnector3 : pCustomShape = &msoCurvedConnector3; break;
8568 case mso_sptCurvedConnector4 : pCustomShape = &msoCurvedConnector4; break;
8569 case mso_sptCurvedConnector5 : pCustomShape = &msoCurvedConnector5; break;
8571 // Don't know, simply mapping to TextSimple
8572 case mso_sptTextBox : pCustomShape = &msoTextSimple; break;
8574 // FontWork
8575 case mso_sptTextSimple :
8576 case mso_sptTextPlainText : pCustomShape = &msoTextPlainText; break;
8577 case mso_sptTextOctagon :
8578 case mso_sptTextStop : pCustomShape = &msoTextStop; break;
8579 case mso_sptTextHexagon :
8580 case mso_sptTextTriangle : pCustomShape = &msoTextTriangle; break;
8581 case mso_sptTextTriangleInverted : pCustomShape = &msoTextTriangleInverted; break;
8582 case mso_sptTextChevron : pCustomShape = &msoTextChevron; break;
8583 case mso_sptTextChevronInverted : pCustomShape = &msoTextChevronInverted; break;
8584 case mso_sptTextRingInside : pCustomShape = &msoTextRingInside; break; // SJ: TODO->the orientation of the ellipse needs to be changed
8585 case mso_sptTextRingOutside : pCustomShape = &msoTextRingOutside; break;
8586 case mso_sptTextFadeRight : pCustomShape = &msoTextFadeRight; break;
8587 case mso_sptTextFadeLeft : pCustomShape = &msoTextFadeLeft; break;
8588 case mso_sptTextFadeUp : pCustomShape = &msoTextFadeUp; break;
8589 case mso_sptTextFadeDown : pCustomShape = &msoTextFadeDown; break;
8590 case mso_sptTextSlantUp : pCustomShape = &msoTextSlantUp; break;
8591 case mso_sptTextSlantDown : pCustomShape = &msoTextSlantDown; break;
8592 case mso_sptTextCascadeUp : pCustomShape = &msoTextCascadeUp; break;
8593 case mso_sptTextCascadeDown : pCustomShape = &msoTextCascadeDown; break;
8594 case mso_sptTextOnRing :
8595 case mso_sptTextArchUpCurve : pCustomShape = &msoTextArchUpCurve; break;
8596 case mso_sptTextArchDownCurve : pCustomShape = &msoTextArchDownCurve; break;
8597 case mso_sptTextCircleCurve : pCustomShape = &msoTextCircleCurve; break;
8598 case mso_sptTextButtonCurve : pCustomShape = &msoTextButtonCurve; break;
8599 case mso_sptTextRing :
8600 case mso_sptTextArchUpPour : pCustomShape = &msoTextArchUpPour; break;
8601 case mso_sptTextArchDownPour : pCustomShape = &msoTextArchDownPour; break;
8602 case mso_sptTextCirclePour : pCustomShape = &msoTextCirclePour; break;
8603 case mso_sptTextButtonPour : pCustomShape = &msoTextButtonPour; break;
8604 case mso_sptTextCurveUp : pCustomShape = &msoTextCurveUp; break;
8605 case mso_sptTextCurveDown : pCustomShape = &msoTextCurveDown; break;
8606 case mso_sptTextCanUp : pCustomShape = &msoTextCanUp; break;
8607 case mso_sptTextCurve :
8608 case mso_sptTextOnCurve :
8609 case mso_sptTextCanDown : pCustomShape = &msoTextCanDown; break;
8610 case mso_sptTextInflate : pCustomShape = &msoTextInflate; break;
8611 case mso_sptTextDeflate : pCustomShape = &msoTextDeflate; break;
8612 case mso_sptTextInflateBottom : pCustomShape = &msoTextInflateBottom; break;
8613 case mso_sptTextDeflateBottom : pCustomShape = &msoTextDeflateBottom; break;
8614 case mso_sptTextInflateTop : pCustomShape = &msoTextInflateTop; break;
8615 case mso_sptTextDeflateTop : pCustomShape = &msoTextDeflateTop; break;
8616 case mso_sptTextDeflateInflate : pCustomShape = &msoTextDeflateInflate; break;
8617 case mso_sptTextDeflateInflateDeflate : pCustomShape = &msoTextDeflateInflateDeflate; break;
8618 case mso_sptTextWave :
8619 case mso_sptTextWave1 : pCustomShape = &msoTextWave1; break;
8620 case mso_sptTextWave2 : pCustomShape = &msoTextWave2; break;
8621 case mso_sptTextWave3 : pCustomShape = &msoTextWave3; break;
8622 case mso_sptTextWave4 : pCustomShape = &msoTextWave4; break;
8623 case mso_sptTearDrop : pCustomShape = &msoTearDrop; break;
8624 default :
8625 break;
8627 return pCustomShape;
8630 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */