Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* libmspub
3 : * Version: MPL 1.1 / GPLv2+ / LGPLv2+
4 : *
5 : * The contents of this file are subject to the Mozilla Public License Version
6 : * 1.1 (the "License"); you may not use this file except in compliance with
7 : * the License or as specified alternatively below. You may obtain a copy of
8 : * the License at http://www.mozilla.org/MPL/
9 : *
10 : * Software distributed under the License is distributed on an "AS IS" basis,
11 : * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 : * for the specific language governing rights and limitations under the
13 : * License.
14 : *
15 : * Major Contributor(s):
16 : * Copyright (C) 2012 Brennan Vincent <brennanv@email.arizona.edu>
17 : *
18 : * All Rights Reserved.
19 : *
20 : * For minor contributions see the git repository.
21 : *
22 : * Alternatively, the contents of this file may be used under the terms of
23 : * either the GNU General Public License Version 2 or later (the "GPLv2+"), or
24 : * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
25 : * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
26 : * instead of those above.
27 : */
28 :
29 : #include <stddef.h> // for NULL
30 : #include <math.h>
31 :
32 : #include <libwpg/libwpg.h>
33 :
34 : #include "ShapeType.h"
35 : #include "PolygonUtils.h"
36 : #include "libmspub_utils.h"
37 : #include "MSPUBCollector.h"
38 :
39 : #define CALCULATED_VALUE(val) (int(unsigned(val) | 0x80000000))
40 :
41 : #ifndef M_PI
42 : #define M_PI 3.14159265358979323846
43 : #endif
44 :
45 : // FIXME: Do something better than the following workaround
46 : #pragma GCC diagnostic ignored "-Wpragmas"
47 : #pragma GCC diagnostic ignored "-Wuninitialized"
48 : #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
49 :
50 : using namespace libmspub;
51 :
52 : const Vertex LINE_VERTICES[] =
53 : {
54 : {0, 0}, {21600, 21600}
55 : };
56 :
57 0 : const CustomShape CS_LINE(
58 : LINE_VERTICES, sizeof(LINE_VERTICES) / sizeof(Vertex),
59 : NULL, 0,
60 : NULL, 0,
61 : NULL, 0,
62 : NULL, 0,
63 : 21600, 21600,
64 : NULL, 0);
65 :
66 : const Vertex WAVE_VERTICES[] =
67 : {
68 : {CALCULATED_VALUE(7), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(15), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(25), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(27), CALCULATED_VALUE(28)}, {CALCULATED_VALUE(29), CALCULATED_VALUE(1)}
69 : };
70 :
71 : const unsigned short WAVE_SEGMENTS[] =
72 : {
73 : 0x4000, 0x2001, 0x0001, 0x2001, 0x6000, 0x8000
74 : };
75 :
76 : const Calculation WAVE_CALC[] =
77 : {
78 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, 0x400}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, 0x402, 0, 10800}, {0x2001, 0x403, 2, 1}, {0x2003, 0x404, 0, 0}, {0x8000, 4320, 0, 0x405}, {0xa006, 0x403, 0, 0x405}, {0x4001, 15800, 0x400, 4460}, {0xa000, 0x400, 0, 0x408}, {0x6000, 0x400, 0x408, 0}, {0x8000, 21600, 0, 0x404}, {0x6006, 0x403, 0x40b, 21600}, {0xa000, 0x40c, 0, 0x407}, {0x2001, 0x405, 1, 2}, {0xa000, 0x407, 7200, 0x40e}, {0x6000, 0x40c, 0x40e, 7200}, {0x2001, 0x40d, 1, 2}, {0x6000, 0x407, 0x411, 0}, {0x8000, 21600, 0, 0x412}, {0x2001, 0x405, 1, 2}, {0x8000, 21600, 0, 0x414}, {0x2001, 0x400, 2, 1}, {0x8000, 21600, 0, 0x416}, {0x8000, 21600, 0, 0x407}, {0x8000, 21600, 0, 0x40f}, {0x6000, 0x401, 0x408, 0}, {0x8000, 21600, 0, 0x410}, {0xa000, 0x401, 0, 0x408}, {0x8000, 21600, 0, 0x40c}
79 : };
80 :
81 : const TextRectangle WAVE_TRS[] =
82 : {
83 : { {CALCULATED_VALUE(5), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(23)} }
84 : };
85 :
86 : const int WAVE_DEFAULT_ADJUST[] =
87 : {
88 : 1400, 10800
89 : };
90 :
91 : const Vertex WAVE_GLUE_POINTS[] =
92 : {
93 : {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0x14), 10800}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0x15), 10800}
94 : };
95 :
96 0 : const CustomShape CS_WAVE(
97 : WAVE_VERTICES, sizeof(WAVE_VERTICES) / sizeof(Vertex),
98 : WAVE_SEGMENTS, sizeof(WAVE_SEGMENTS) / sizeof(unsigned short),
99 : WAVE_CALC, sizeof(WAVE_CALC) / sizeof(Calculation),
100 : WAVE_DEFAULT_ADJUST, sizeof(WAVE_DEFAULT_ADJUST) / sizeof(int),
101 : WAVE_TRS, sizeof(WAVE_TRS) / sizeof(TextRectangle),
102 : 21600, 21600,
103 : WAVE_GLUE_POINTS, sizeof(WAVE_GLUE_POINTS) / sizeof(Vertex));
104 :
105 : const Vertex FOLDED_CORNER_VERTICES[] =
106 : {
107 : {0, 0}, {21600, 0}, {21600, CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0), 21600}, {0, 21600}, {CALCULATED_VALUE(0), 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(10), CALCULATED_VALUE(11)}, {21600, CALCULATED_VALUE(0)}
108 : };
109 :
110 : const unsigned short FOLDED_CORNER_SEGMENTS[] =
111 : {
112 : 0x4000, 0x0004, 0x6001, 0x8000, 0x4000, 0x0001, 0x2001, 0x6001, 0x8000
113 : };
114 :
115 : const Calculation FOLDED_CORNER_CALC[] =
116 : {
117 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, 0x400}, {0x2001, 0x0401, 8000, 10800}, {0x8000, 21600, 0, 0x0402}, {0x2001, 0x0401, 1, 2}, {0x2001, 0x0401, 1, 4}, {0x2001, 0x0401, 1, 7}, {0x2001, 0x0401, 1, 16}, {0x6000, 0x0403, 0x405, 0}, {0x6000, 0x0400, 0x406, 0}, {0x8000, 21600, 0, 0x404}, {0x6000, 0x400, 0x407, 0}
118 : };
119 :
120 : const TextRectangle FOLDED_CORNER_TRS[] =
121 : {
122 : { {0, 0}, {21600, CALCULATED_VALUE(11)} }
123 : };
124 :
125 : const int FOLDED_CORNER_DEFAULT_ADJUST[] =
126 : {
127 : 18900
128 : };
129 :
130 : const Vertex FOLDED_CORNER_GLUE_POINTS[] =
131 : {
132 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
133 : };
134 :
135 0 : const CustomShape CS_FOLDED_CORNER(
136 : FOLDED_CORNER_VERTICES, sizeof(FOLDED_CORNER_VERTICES) / sizeof(Vertex),
137 : FOLDED_CORNER_SEGMENTS, sizeof(FOLDED_CORNER_SEGMENTS) / sizeof(unsigned short),
138 : FOLDED_CORNER_CALC, sizeof(FOLDED_CORNER_CALC) / sizeof(Calculation),
139 : FOLDED_CORNER_DEFAULT_ADJUST, sizeof(FOLDED_CORNER_DEFAULT_ADJUST) / sizeof(int),
140 : FOLDED_CORNER_TRS, sizeof(FOLDED_CORNER_TRS) / sizeof(TextRectangle),
141 : 21600, 21600,
142 : FOLDED_CORNER_GLUE_POINTS, sizeof(FOLDED_CORNER_GLUE_POINTS) / sizeof(Vertex));
143 :
144 :
145 : const Vertex LEFT_ARROW_VERTICES[] =
146 : {
147 : {21600, CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), 0}, {0, 10800}, {CALCULATED_VALUE(1), 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, CALCULATED_VALUE(2)}
148 : };
149 :
150 : const unsigned short LEFT_ARROW_SEGMENTS[] =
151 : {
152 : 0x4000, 0x0006, 0x6001, 0x8000
153 : };
154 :
155 : const Calculation LEFT_ARROW_CALC[] =
156 : {
157 : {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 21600, 0, 0x401}, {0x6001, 0x403, 0x400, 10800}, {0x6000, 0x401, 0x404, 0}, {0x6001, 0x401, 0x400, 10800}, {0xa000, 0x401, 0, 0x406}
158 : };
159 :
160 : const TextRectangle LEFT_ARROW_TRS[] =
161 : {
162 : { {CALCULATED_VALUE(7), CALCULATED_VALUE(0)}, {21600, CALCULATED_VALUE(2)} }
163 : };
164 :
165 : const int LEFT_ARROW_DEFAULT_ADJUST[] =
166 : {
167 : 5400, 5400
168 : };
169 :
170 0 : const CustomShape CS_LEFT_ARROW(
171 : LEFT_ARROW_VERTICES, sizeof(LEFT_ARROW_VERTICES) / sizeof(Vertex),
172 : LEFT_ARROW_SEGMENTS, sizeof(LEFT_ARROW_SEGMENTS) / sizeof(unsigned short),
173 : LEFT_ARROW_CALC, sizeof(LEFT_ARROW_CALC) / sizeof(Calculation),
174 : LEFT_ARROW_DEFAULT_ADJUST, sizeof(LEFT_ARROW_DEFAULT_ADJUST) / sizeof(int),
175 : LEFT_ARROW_TRS, sizeof(LEFT_ARROW_TRS) / sizeof(TextRectangle),
176 : 21600, 21600,
177 : NULL, 0);
178 :
179 : const Vertex UP_DOWN_ARROW_VERTICES[] =
180 : {
181 : {0, CALCULATED_VALUE(1)}, {10800, 0}, {21600, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {21600, CALCULATED_VALUE(3)}, {10800, 21600}, {0, CALCULATED_VALUE(3)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}
182 : };
183 :
184 : const unsigned short UP_DOWN_ARROW_SEGMENTS[] =
185 : {
186 : 0x4000, 0x0009, 0x6001, 0x8000
187 : };
188 :
189 : const Calculation UP_DOWN_ARROW_CALC[] =
190 : {
191 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x6001, PROP_ADJUST_VAL_FIRST, 0x404, 10800}, {0x8000, 21600, 0, 0x405}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x6001, PROP_ADJUST_VAL_FIRST + 1, 0x407, 10800}, {0x8000, 21600, 0, 0x408}
192 : };
193 :
194 : const TextRectangle UP_DOWN_ARROW_TRS[] =
195 : {
196 : { {CALCULATED_VALUE(0), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(9)} }
197 : };
198 :
199 : const int UP_DOWN_ARROW_DEFAULT_ADJUST[] =
200 : {
201 : 5400, 4300
202 : };
203 :
204 0 : const CustomShape CS_UP_DOWN_ARROW(
205 : UP_DOWN_ARROW_VERTICES, sizeof(UP_DOWN_ARROW_VERTICES) / sizeof(Vertex),
206 : UP_DOWN_ARROW_SEGMENTS, sizeof(UP_DOWN_ARROW_SEGMENTS) / sizeof(unsigned short),
207 : UP_DOWN_ARROW_CALC, sizeof(UP_DOWN_ARROW_CALC) / sizeof(Calculation),
208 : UP_DOWN_ARROW_DEFAULT_ADJUST, sizeof(UP_DOWN_ARROW_DEFAULT_ADJUST) / sizeof(int),
209 : UP_DOWN_ARROW_TRS, sizeof(UP_DOWN_ARROW_TRS) / sizeof(TextRectangle),
210 : 21600, 21600,
211 : NULL, 0);
212 :
213 : const Vertex IRREGULAR_SEAL_1_VERTICES[] =
214 : {
215 : {10901, 5905}, {8458, 2399}, {7417, 6425}, {476, 2399}, {4732, 7722}, {106, 8718}, {3828, 11880}, {243, 14689}, {5772, 14041}, {4868, 17719}, {7819, 15730}, {8590, 21600}, {10637, 15038}, {13349, 19840}, {14125, 14561}, {18248, 18195}, {16938, 13044}, {21600, 13393}, {17710, 10579}, {21198, 8242}, {16806, 7417}, {18482, 4560}, {14257, 5429}, {14623, 106}, {10901, 5905}
216 : };
217 :
218 : const TextRectangle IRREGULAR_SEAL_1_TRS[] =
219 : {
220 : { {5400, 6570}, {14160, 15290} }
221 : };
222 :
223 : const Vertex IRREGULAR_SEAL_1_GLUE_POINTS[] =
224 : {
225 : {9722, 1887}, {0, 12875}, {11614, 18844}, {21600, 6646}
226 : };
227 :
228 0 : const CustomShape CS_IRREGULAR_SEAL_1(
229 : IRREGULAR_SEAL_1_VERTICES, sizeof(IRREGULAR_SEAL_1_VERTICES) / sizeof(Vertex),
230 : NULL, 0,
231 : NULL, 0,
232 : NULL, 0,
233 : IRREGULAR_SEAL_1_TRS, sizeof(IRREGULAR_SEAL_1_TRS) / sizeof(TextRectangle),
234 : 21600, 21600,
235 : IRREGULAR_SEAL_1_GLUE_POINTS, sizeof(IRREGULAR_SEAL_1_GLUE_POINTS) / sizeof(Vertex));
236 :
237 : const Vertex LIGHTNING_BOLT_VERTICES[] =
238 : {
239 : {8458, 0}, {0, 3923}, {7564, 8416}, {4993, 9720}, {12197, 13904}, {9987, 14934}, {21600, 21600}, {14768, 12911}, {16558, 12016}, {11030, 6840}, {12831, 6120}, {8458, 0}
240 : };
241 :
242 : const TextRectangle LIGHTNING_BOLT_TRS[] =
243 : {
244 : { {8680, 7410}, {13970, 14190} }
245 : };
246 :
247 : const Vertex LIGHTNING_BOLT_GLUE_POINTS[] =
248 : {
249 : {8458, 0}, {0, 3923}, {4993, 9720}, {9987, 14934}, {21600, 21600}, {16558, 12016}, {12831, 6120}
250 : };
251 :
252 0 : const CustomShape CS_LIGHTNING_BOLT(
253 : LIGHTNING_BOLT_VERTICES, sizeof(LIGHTNING_BOLT_VERTICES) / sizeof(Vertex),
254 : NULL, 0,
255 : NULL, 0,
256 : NULL, 0,
257 : LIGHTNING_BOLT_TRS, sizeof(LIGHTNING_BOLT_TRS) / sizeof(TextRectangle),
258 : 21600, 21600,
259 : LIGHTNING_BOLT_GLUE_POINTS, sizeof(LIGHTNING_BOLT_GLUE_POINTS) / sizeof(Vertex));
260 :
261 : const Vertex IRREGULAR_SEAL_2_VERTICES[] =
262 : {
263 : {11464, 4340}, {9722, 1887}, {8548, 6383}, {4503, 3626}, {5373, 7816}, {1174, 8270}, {3934, 11592}, {0, 12875}, {3329, 15372}, {1283, 17824}, {4804, 18239}, {4918, 21600}, {7525, 18125}, {8698, 19712}, {9871, 17371}, {11614, 18844}, {12178, 15937}, {14943, 17371}, {14640, 14348}, {18878, 15632}, {16382, 12311}, {18270, 11292}, {16986, 9404}, {21600, 6646}, {16382, 6533}, {18005, 3172}, {14524, 5778}, {14789, 0}, {11464, 4340}
264 : };
265 :
266 : const TextRectangle IRREGULAR_SEAL_2_TRS[] =
267 : {
268 : { {5400, 6570}, {14160, 15290} }
269 : };
270 :
271 : const Vertex IRREGULAR_SEAL_2_GLUE_POINTS[] =
272 : {
273 : {9722, 1887}, {0, 12875}, {11614, 18844}, {21600, 6646}
274 : };
275 :
276 0 : const CustomShape CS_IRREGULAR_SEAL_2(
277 : IRREGULAR_SEAL_2_VERTICES, sizeof(IRREGULAR_SEAL_2_VERTICES) / sizeof(Vertex),
278 : NULL, 0,
279 : NULL, 0,
280 : NULL, 0,
281 : IRREGULAR_SEAL_2_TRS, sizeof(IRREGULAR_SEAL_2_TRS) / sizeof(TextRectangle),
282 : 21600, 21600,
283 : IRREGULAR_SEAL_2_GLUE_POINTS, sizeof(IRREGULAR_SEAL_2_GLUE_POINTS) / sizeof(Vertex));
284 :
285 :
286 : const Vertex HEART_VERTICES[] =
287 : {
288 : {10800, 21599}, {321, 6886}, {70, 6036}, {-9, 5766}, {-1, 5474}, {2, 5192}, {6, 4918}, {43, 4641}, {101, 4370}, {159, 4103}, {245, 3837}, {353, 3582}, {460, 3326}, {591, 3077}, {741, 2839}, {892, 2598}, {1066, 2369}, {1253, 2155}, {1443, 1938}, {1651, 1732}, {1874, 1543}, {2097, 1351}, {2337, 1174}, {2587, 1014}, {2839, 854}, {3106, 708}, {3380, 584}, {3656, 459}, {3945, 350}, {4237, 264}, {4533, 176}, {4838, 108}, {5144, 66}, {5454, 22}, {5771, 1}, {6086, 3}, {6407, 7}, {6731, 35}, {7048, 89}, {7374, 144}, {7700, 226}, {8015, 335}, {8344, 447}, {8667, 590}, {8972, 756}, {9297, 932}, {9613, 1135}, {9907, 1363}, {10224, 1609}, {10504, 1900}, {10802, 2169}, {11697, 1363}, {11971, 1116}, {12304, 934}, {12630, 756}, {12935, 590}, {13528, 450}, {13589, 335}, {13901, 226}, {14227, 144}, {14556, 89}, {14872, 35}, {15195, 7}, {15517, 3}, {15830, 0}, {16147, 22}, {16458, 66}, {16764, 109}, {17068, 177}, {17365, 264}, {17658, 349}, {17946, 458}, {18222, 584}, {18496, 708}, {18762, 854}, {19015, 1014}, {19264, 1172}, {19504, 1349}, {19730, 1543}, {19950, 1731}, {20158, 1937}, {20350, 2155}, {20536, 2369}, {20710, 2598}, {20861, 2839}, {21010, 3074}, {21143, 3323}, {21251, 3582}, {21357, 3835}, {21443, 4099}, {21502, 4370}, {21561, 4639}, {21595, 4916}, {21600, 5192}, {21606, 5474}, {21584, 5760}, {21532, 6036}, {21478, 6326}, {21366, 6603}, {21282, 6887}, {10802, 21602}
289 : };
290 :
291 : const unsigned short HEART_SEGMENTS[] =
292 : {
293 : 0x4000, 0x0002, 0x2010, 0x0001, 0x2010, 0x0001, 0x6001, 0x8000
294 : };
295 :
296 : const TextRectangle HEART_TRS[] =
297 : {
298 : { {5080, 2540}, {16520, 13550} }
299 : };
300 :
301 : const Vertex HEART_GLUE_POINTS[] =
302 : {
303 : {10800, 2180}, {3090, 10800}, {10800, 21600}, {18490, 10800}
304 : };
305 :
306 0 : const CustomShape CS_HEART(
307 : HEART_VERTICES, sizeof(HEART_VERTICES) / sizeof(Vertex),
308 : HEART_SEGMENTS, sizeof(HEART_SEGMENTS) / sizeof(unsigned short),
309 : NULL, 0,
310 : NULL, 0,
311 : HEART_TRS, sizeof(HEART_TRS) / sizeof(TextRectangle),
312 : 21600, 21600,
313 : HEART_GLUE_POINTS, sizeof(HEART_GLUE_POINTS) / sizeof(Vertex));
314 :
315 : const Vertex QUAD_ARROW_VERTICES[] =
316 : {
317 : {0, 10800}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(0)}, {10800, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(1)}, {21600, 10800}, {CALCULATED_VALUE(5), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(5)}, {10800, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(3)}
318 : };
319 :
320 : const unsigned short QUAD_ARROW_SEGMENTS[] =
321 : {
322 : 0x4000, 0x0017, 0x6001, 0x8000
323 : };
324 :
325 : const Calculation QUAD_ARROW_CALC[] =
326 : {
327 : {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 2}
328 : };
329 :
330 : const TextRectangle QUAD_ARROW_TRS[] =
331 : {
332 : { {0, 0}, {21600, 21600} }
333 : };
334 :
335 : const int QUAD_ARROW_DEFAULT_ADJUST[] =
336 : {
337 : 6500, 8600, 4300
338 : };
339 :
340 0 : const CustomShape CS_QUAD_ARROW(
341 : QUAD_ARROW_VERTICES, sizeof(QUAD_ARROW_VERTICES) / sizeof(Vertex),
342 : QUAD_ARROW_SEGMENTS, sizeof(QUAD_ARROW_SEGMENTS) / sizeof(unsigned short),
343 : QUAD_ARROW_CALC, sizeof(QUAD_ARROW_CALC) / sizeof(Calculation),
344 : QUAD_ARROW_DEFAULT_ADJUST, sizeof(QUAD_ARROW_DEFAULT_ADJUST) / sizeof(int),
345 : QUAD_ARROW_TRS, sizeof(QUAD_ARROW_TRS) / sizeof(TextRectangle),
346 : 21600, 21600,
347 : NULL, 0);
348 :
349 : const Vertex BEVEL_VERTICES[] =
350 : {
351 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(0)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}
352 : };
353 :
354 : const unsigned short BEVEL_SEGMENTS[] =
355 : {
356 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000
357 : };
358 :
359 : const Calculation BEVEL_CALC[] =
360 : {
361 : {0x2001, PROP_ADJUST_VAL_FIRST, 21599, 21600}, {0xa000, PROP_GEO_RIGHT, 0, 0x400}, {0xa000, PROP_GEO_BOTTOM, 0, 0x400}
362 : };
363 :
364 : const TextRectangle BEVEL_TRS[] =
365 : {
366 : { {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)} }
367 : };
368 :
369 : const int BEVEL_DEFAULT_ADJUST[] =
370 : {
371 : 2700
372 : };
373 :
374 0 : const CustomShape CS_BEVEL(
375 : BEVEL_VERTICES, sizeof(BEVEL_VERTICES) / sizeof(Vertex),
376 : BEVEL_SEGMENTS, sizeof(BEVEL_SEGMENTS) / sizeof(unsigned short),
377 : BEVEL_CALC, sizeof(BEVEL_CALC) / sizeof(Calculation),
378 : BEVEL_DEFAULT_ADJUST, sizeof(BEVEL_DEFAULT_ADJUST) / sizeof(int),
379 : BEVEL_TRS, sizeof(BEVEL_TRS) / sizeof(TextRectangle),
380 : 21600, 21600,
381 : NULL, 0);
382 :
383 : const Vertex LEFT_BRACKET_VERTICES[] =
384 : {
385 : {21600, 0}, {10800, 0}, {0, CALCULATED_VALUE(3)}, {0, CALCULATED_VALUE(1)}, {0, CALCULATED_VALUE(2)}, {0, CALCULATED_VALUE(4)}, {10800, 21600}, {21600, 21600}
386 : };
387 :
388 : const unsigned short LEFT_BRACKET_SEGMENTS[] =
389 : {
390 : 0x4000, 0x2001, 0x0001, 0x2001, 0x8000
391 : };
392 :
393 : const Calculation LEFT_BRACKET_CALC[] =
394 : {
395 : {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x6000, PROP_GEO_TOP, 0x400, 0}, {0xa000, PROP_GEO_BOTTOM, 0, 0x400}
396 : };
397 :
398 : const TextRectangle LEFT_BRACKET_TRS[] =
399 : {
400 : { {6350, CALCULATED_VALUE(3)}, {21600, CALCULATED_VALUE(4)} }
401 : };
402 :
403 : const int LEFT_BRACKET_DEFAULT_ADJUST[] =
404 : {
405 : 1800
406 : };
407 :
408 : const Vertex LEFT_BRACKET_GLUE_POINTS[] =
409 : {
410 : {21600, 0}, {0, 10800}, {21600, 21600}
411 : };
412 :
413 0 : const CustomShape CS_LEFT_BRACKET(
414 : LEFT_BRACKET_VERTICES, sizeof(LEFT_BRACKET_VERTICES) / sizeof(Vertex),
415 : LEFT_BRACKET_SEGMENTS, sizeof(LEFT_BRACKET_SEGMENTS) / sizeof(unsigned short),
416 : LEFT_BRACKET_CALC, sizeof(LEFT_BRACKET_CALC) / sizeof(Calculation),
417 : LEFT_BRACKET_DEFAULT_ADJUST, sizeof(LEFT_BRACKET_DEFAULT_ADJUST) / sizeof(int),
418 : LEFT_BRACKET_TRS, sizeof(LEFT_BRACKET_TRS) / sizeof(TextRectangle),
419 : 21600, 21600,
420 : LEFT_BRACKET_GLUE_POINTS, sizeof(LEFT_BRACKET_GLUE_POINTS) / sizeof(Vertex));
421 :
422 : const Vertex RIGHT_BRACKET_VERTICES[] =
423 : {
424 : {0, 0}, {10800, 0}, {21600, CALCULATED_VALUE(3)}, {21600, CALCULATED_VALUE(1)}, {21600, CALCULATED_VALUE(2)}, {21600, CALCULATED_VALUE(4)}, {10800, 21600}, {0, 21600}
425 : };
426 :
427 : const unsigned short RIGHT_BRACKET_SEGMENTS[] =
428 : {
429 : 0x4000, 0x2001, 0x0001, 0x2001, 0x8000
430 : };
431 :
432 : const Calculation RIGHT_BRACKET_CALC[] =
433 : {
434 : {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x6000, PROP_GEO_TOP, 0x400, 0}, {0xa000, PROP_GEO_BOTTOM, 0, 0x400}
435 : };
436 :
437 : const TextRectangle RIGHT_BRACKET_TRS[] =
438 : {
439 : { {0, CALCULATED_VALUE(3)}, {15150, CALCULATED_VALUE(4)} }
440 : };
441 :
442 : const int RIGHT_BRACKET_DEFAULT_ADJUST[] =
443 : {
444 : 1800
445 : };
446 :
447 : const Vertex RIGHT_BRACKET_GLUE_POINTS[] =
448 : {
449 : {0, 0}, {0, 21600}, {21600, 10800}
450 : };
451 :
452 0 : const CustomShape CS_RIGHT_BRACKET(
453 : RIGHT_BRACKET_VERTICES, sizeof(RIGHT_BRACKET_VERTICES) / sizeof(Vertex),
454 : RIGHT_BRACKET_SEGMENTS, sizeof(RIGHT_BRACKET_SEGMENTS) / sizeof(unsigned short),
455 : RIGHT_BRACKET_CALC, sizeof(RIGHT_BRACKET_CALC) / sizeof(Calculation),
456 : RIGHT_BRACKET_DEFAULT_ADJUST, sizeof(RIGHT_BRACKET_DEFAULT_ADJUST) / sizeof(int),
457 : RIGHT_BRACKET_TRS, sizeof(RIGHT_BRACKET_TRS) / sizeof(TextRectangle),
458 : 21600, 21600,
459 : RIGHT_BRACKET_GLUE_POINTS, sizeof(RIGHT_BRACKET_GLUE_POINTS) / sizeof(Vertex));
460 :
461 : const Vertex LEFT_BRACE_VERTICES[] =
462 : {
463 : {21600, 0}, {16200, 0}, {10800, CALCULATED_VALUE(0)}, {10800, CALCULATED_VALUE(1)}, {10800, CALCULATED_VALUE(2)}, {10800, CALCULATED_VALUE(3)}, {5400, CALCULATED_VALUE(4)}, {0, CALCULATED_VALUE(4)}, {5400, CALCULATED_VALUE(4)}, {10800, CALCULATED_VALUE(5)}, {10800, CALCULATED_VALUE(6)}, {10800, CALCULATED_VALUE(7)}, {10800, CALCULATED_VALUE(8)}, {16200, 21600}, {21600, 21600}
464 : };
465 :
466 : const unsigned short LEFT_BRACE_SEGMENTS[] =
467 : {
468 : 0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x8000
469 : };
470 :
471 : const Calculation LEFT_BRACE_CALC[] =
472 : {
473 : {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0xa000, 0x404, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, 0x404, 0, 0x400}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x6000, 0x404, 0x400, 0}, {0x6000, 0x404, PROP_ADJUST_VAL_FIRST, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 21600, 0, 0x400}, {0x2001, PROP_ADJUST_VAL_FIRST, 10000, 31953}, {0x8000, 21600, 0, 0x409}
474 : };
475 :
476 : const TextRectangle LEFT_BRACE_TRS[] =
477 : {
478 : { {13800, CALCULATED_VALUE(9)}, {21600, CALCULATED_VALUE(10)} }
479 : };
480 :
481 : const int LEFT_BRACE_DEFAULT_ADJUST[] =
482 : {
483 : 1800, 10800
484 : };
485 :
486 : const Vertex LEFT_BRACE_GLUE_POINTS[] =
487 : {
488 : {21600, 0}, {0, 10800}, {21600, 21600}
489 : };
490 :
491 0 : const CustomShape CS_LEFT_BRACE(
492 : LEFT_BRACE_VERTICES, sizeof(LEFT_BRACE_VERTICES) / sizeof(Vertex),
493 : LEFT_BRACE_SEGMENTS, sizeof(LEFT_BRACE_SEGMENTS) / sizeof(unsigned short),
494 : LEFT_BRACE_CALC, sizeof(LEFT_BRACE_CALC) / sizeof(Calculation),
495 : LEFT_BRACE_DEFAULT_ADJUST, sizeof(LEFT_BRACE_DEFAULT_ADJUST) / sizeof(int),
496 : LEFT_BRACE_TRS, sizeof(LEFT_BRACE_TRS) / sizeof(TextRectangle),
497 : 21600, 21600,
498 : LEFT_BRACE_GLUE_POINTS, sizeof(LEFT_BRACE_GLUE_POINTS) / sizeof(Vertex));
499 :
500 : const Vertex RIGHT_BRACE_VERTICES[] =
501 : {
502 : {0, 0}, {5400, 0}, {10800, CALCULATED_VALUE(0)}, {10800, CALCULATED_VALUE(1)}, {10800, CALCULATED_VALUE(2)}, {10800, CALCULATED_VALUE(3)}, {16200, CALCULATED_VALUE(4)}, {21600, CALCULATED_VALUE(4)}, {16200, CALCULATED_VALUE(4)}, {10800, CALCULATED_VALUE(5)}, {10800, CALCULATED_VALUE(6)}, {10800, CALCULATED_VALUE(7)}, {10800, CALCULATED_VALUE(8)}, {5400, 21600}, {0, 21600}
503 : };
504 :
505 : const unsigned short RIGHT_BRACE_SEGMENTS[] =
506 : {
507 : 0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x8000
508 : };
509 :
510 : const Calculation RIGHT_BRACE_CALC[] =
511 : {
512 : {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0xa000, 0x404, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, 0x404, 0, 0x400}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x6000, 0x404, 0x400, 0}, {0x6000, 0x404, PROP_ADJUST_VAL_FIRST, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 21600, 0, 0x400}, {0x2001, PROP_ADJUST_VAL_FIRST, 10000, 31953}, {0x8000, 21600, 0, 0x409}
513 : };
514 :
515 : const TextRectangle RIGHT_BRACE_TRS[] =
516 : {
517 : { {0, CALCULATED_VALUE(9)}, {7800, CALCULATED_VALUE(10)} }
518 : };
519 :
520 : const int RIGHT_BRACE_DEFAULT_ADJUST[] =
521 : {
522 : 1800, 10800
523 : };
524 :
525 : const Vertex RIGHT_BRACE_GLUE_POINTS[] =
526 : {
527 : {0, 0}, {0, 21600}, {21600, 10800}
528 : };
529 :
530 0 : const CustomShape CS_RIGHT_BRACE(
531 : RIGHT_BRACE_VERTICES, sizeof(RIGHT_BRACE_VERTICES) / sizeof(Vertex),
532 : RIGHT_BRACE_SEGMENTS, sizeof(RIGHT_BRACE_SEGMENTS) / sizeof(unsigned short),
533 : RIGHT_BRACE_CALC, sizeof(RIGHT_BRACE_CALC) / sizeof(Calculation),
534 : RIGHT_BRACE_DEFAULT_ADJUST, sizeof(RIGHT_BRACE_DEFAULT_ADJUST) / sizeof(int),
535 : RIGHT_BRACE_TRS, sizeof(RIGHT_BRACE_TRS) / sizeof(TextRectangle),
536 : 21600, 21600,
537 : RIGHT_BRACE_GLUE_POINTS, sizeof(RIGHT_BRACE_GLUE_POINTS) / sizeof(Vertex));
538 :
539 : const Vertex LEFT_UP_ARROW_VERTICES[] =
540 : {
541 : {0, CALCULATED_VALUE(5)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(5), 0}, {21600, CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), 21600}
542 : };
543 :
544 : const unsigned short LEFT_UP_ARROW_SEGMENTS[] =
545 : {
546 : 0x4000, 0x000b, 0x6001, 0x8000
547 : };
548 :
549 : const Calculation LEFT_UP_ARROW_CALC[] =
550 : {
551 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0403, 1, 2}, {0x6000, PROP_ADJUST_VAL_FIRST, 0x0404, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x6000, PROP_ADJUST_VAL_FIRST, 0x0406, 0}, {0x8000, 21600, 0, 0x406}, {0xa000, 0x408, 0, 0x406}
552 : };
553 :
554 : const TextRectangle LEFT_UP_ARROW_TRS[] =
555 : {
556 : { {CALCULATED_VALUE(2), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)} }, { {CALCULATED_VALUE(7), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)} }
557 : };
558 :
559 : const int LEFT_UP_ARROW_DEFAULT_ADJUST[] =
560 : {
561 : 9340, 18500, 6200
562 : };
563 :
564 0 : const CustomShape CS_LEFT_UP_ARROW(
565 : LEFT_UP_ARROW_VERTICES, sizeof(LEFT_UP_ARROW_VERTICES) / sizeof(Vertex),
566 : LEFT_UP_ARROW_SEGMENTS, sizeof(LEFT_UP_ARROW_SEGMENTS) / sizeof(unsigned short),
567 : LEFT_UP_ARROW_CALC, sizeof(LEFT_UP_ARROW_CALC) / sizeof(Calculation),
568 : LEFT_UP_ARROW_DEFAULT_ADJUST, sizeof(LEFT_UP_ARROW_DEFAULT_ADJUST) / sizeof(int),
569 : LEFT_UP_ARROW_TRS, sizeof(LEFT_UP_ARROW_TRS) / sizeof(TextRectangle),
570 : 21600, 21600,
571 : NULL, 0);
572 :
573 : const Vertex SMILEY_FACE_VERTICES[] =
574 : {
575 : {10800, 10800}, {10800, 10800}, {0, 360}, {7305, 7515}, {1165, 1165}, {0, 360}, {14295, 7515}, {1165, 1165}, {0, 360}, {4870, CALCULATED_VALUE(1)}, {8680, CALCULATED_VALUE(2)}, {12920, CALCULATED_VALUE(2)}, {16730, CALCULATED_VALUE(1)}
576 : };
577 :
578 : const unsigned short SMILEY_FACE_SEGMENTS[] =
579 : {
580 : 0xa203, 0x6000, 0x8000, 0xa203, 0x6000, 0x8000, 0xa203, 0x6000, 0x8000, 0x4000, 0x2001, 0xaa00, 0x8000
581 : };
582 :
583 : const Calculation SMILEY_FACE_CALC[] =
584 : {
585 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 15510}, {0x8000, 17520, 0, 0x400}, {0x4000, 15510, 0x400, 0}
586 : };
587 :
588 : const TextRectangle SMILEY_FACE_TRS[] =
589 : {
590 : { {3163, 3163}, {18437, 18437} }
591 : };
592 :
593 : const int SMILEY_FACE_DEFAULT_ADJUST[] =
594 : {
595 : 17520
596 : };
597 :
598 : const Vertex SMILEY_FACE_GLUE_POINTS[] =
599 : {
600 : {10800, 0}, {3163, 3163}, {0, 10800}, {3163, 18437}, {10800, 21600}, {18437, 18437}, {21600, 10800}, {18437, 3163}
601 : };
602 :
603 : const Vertex VERTICAL_SCROLL_VERTICES[] =
604 : {
605 : {CALCULATED_VALUE(1), 21600}, {0, CALCULATED_VALUE(11)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(4), 0}, {CALCULATED_VALUE(2), 0}, {21600, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(5), 21600}, {CALCULATED_VALUE(6), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(1), 21600}, {0, CALCULATED_VALUE(11)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(9), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(4), 0}, {CALCULATED_VALUE(6), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(0)}
606 : };
607 :
608 : const unsigned short VERTICAL_SCROLL_SEGMENTS[] =
609 : {
610 : 0x4000, 0xa702, 0x0002, 0xa801, 0x0001, 0xa702, 0x0002, 0xa801, 0x6001, 0x8000, 0x4000, 0xa801, 0xa702, 0x6000, 0x8000, 0x4000, 0xa803, 0xa702, 0x6001, 0x8000, 0x4000, 0xa701, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
611 : };
612 :
613 : const Calculation VERTICAL_SCROLL_CALC[] =
614 : {
615 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2001, 0x400, 1, 2}, {0xa000, PROP_GEO_RIGHT, 0, 0x401}, {0xa000, PROP_GEO_RIGHT, 0, 0x400}, {0x6000, 0x400, 0x401, 0}, {0xa000, PROP_GEO_RIGHT, 0, 0x404}, {0x2001, 0x400, 2, 1}, {0x2001, 0x401, 1, 2}, {0x6000, 0x400, 0x407, 0}, {0x6000, 0x401, 0x407, 0}, {0xa000, PROP_GEO_BOTTOM, 0, 0x409}, {0xa000, PROP_GEO_BOTTOM, 0, 0x401}, {0xa000, PROP_GEO_BOTTOM, 0, 0x400}, {0xa000, PROP_GEO_BOTTOM, 0, 0x404}
616 : };
617 :
618 : const TextRectangle VERTICAL_SCROLL_TRS[] =
619 : {
620 : { {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(12)} }
621 : };
622 :
623 : const int VERTICAL_SCROLL_DEFAULT_ADJUST[] =
624 : {
625 : 2700
626 : };
627 :
628 : const Vertex HORIZONTAL_SCROLL_VERTICES[] =
629 : {
630 : {0, CALCULATED_VALUE(4)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), 0}, {21600, CALCULATED_VALUE(1)}, {21600, CALCULATED_VALUE(13)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(1), 21600}, {0, CALCULATED_VALUE(11)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(9), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(6)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), 0}, {21600, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(6)}, {0, CALCULATED_VALUE(4)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(11)}
631 : };
632 :
633 : const unsigned short HORIZONTAL_SCROLL_SEGMENTS[] =
634 : {
635 : 0x4000, 0xa801, 0x0002, 0xa802, 0x0001, 0xa801, 0x0002, 0xa802, 0x6001, 0x8000, 0x4000, 0xa803, 0x6000, 0x8000, 0x4000, 0xa803, 0xa702, 0x6000, 0x8000, 0x4000, 0xa701, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
636 : };
637 :
638 : const Calculation HORIZONTAL_SCROLL_CALC[] =
639 : {
640 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2001, 0x400, 1, 2}, {0xa000, PROP_GEO_RIGHT, 0, 0x401}, {0xa000, PROP_GEO_RIGHT, 0, 0x400}, {0x6000, 0x400, 0x401, 0}, {0xa000, PROP_GEO_RIGHT, 0, 0x404}, {0x2001, 0x400, 2, 1}, {0x2001, 0x401, 1, 2}, {0x6000, 0x400, 0x407, 0}, {0x6000, 0x401, 0x407, 0}, {0xa000, PROP_GEO_BOTTOM, 0, 0x409}, {0xa000, PROP_GEO_BOTTOM, 0, 0x401}, {0xa000, PROP_GEO_BOTTOM, 0, 0x400}, {0xa000, PROP_GEO_BOTTOM, 0, 0x404}
641 : };
642 :
643 : const TextRectangle HORIZONTAL_SCROLL_TRS[] =
644 : {
645 : { {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(12)} }
646 : };
647 :
648 : const int HORIZONTAL_SCROLL_DEFAULT_ADJUST[] =
649 : {
650 : 2700
651 : };
652 :
653 : const Vertex CIRCULAR_ARROW_VERTICES[] =
654 : {
655 : {CALCULATED_VALUE(0x03), CALCULATED_VALUE(0x03)}, {CALCULATED_VALUE(0x14), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x11), CALCULATED_VALUE(0x10)}, {0, 0}, {21600, 21600}, {CALCULATED_VALUE(0x09), CALCULATED_VALUE(0x08)}, {CALCULATED_VALUE(0x0B), CALCULATED_VALUE(0x0A)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0x17)}, {CALCULATED_VALUE(0x2F), CALCULATED_VALUE(0x2E)}, {CALCULATED_VALUE(0x1D), CALCULATED_VALUE(0x1C)}
656 : };
657 :
658 : const unsigned short CIRCULAR_ARROW_SEGMENTS[] =
659 : {
660 : 0xa404, 0xa504, 0x0003, 0x6001, 0x8000
661 : };
662 :
663 : const Calculation CIRCULAR_ARROW_CALC[] =
664 : {
665 : {0x2000, 0x0147, 0x0000, 0x0000}, {0x2000, 0x0148, 0x0000, 0x0000}, {0x2000, 0x0149, 0x0000, 0x0000}, {0x4000, 0x2A30, 0x0149, 0x0000}, {0x4009, 0x2A30, 0x0147, 0x0000}, {0x400A, 0x2A30, 0x0147, 0x0000}, {0x4009, 0x2A30, 0x0148, 0x0000}, {0x400A, 0x2A30, 0x0148, 0x0000}, {0x2000, 0x0404, 0x2A30, 0x0000}, {0x2000, 0x0405, 0x2A30, 0x0000}, {0x2000, 0x0406, 0x2A30, 0x0000}, {0x2000, 0x0407, 0x2A30, 0x0000}, {0x6009, 0x0403, 0x0147, 0x0000}, {0x600A, 0x0403, 0x0147, 0x0000}, {0x6009, 0x0403, 0x0148, 0x0000}, {0x600A, 0x0403, 0x0148, 0x0000}, {0x2000, 0x040C, 0x2A30, 0x0000}, {0x2000, 0x040D, 0x2A30, 0x0000}, {0x2000, 0x040E, 0x2A30, 0x0000}, {0x2000, 0x040F, 0x2A30, 0x0000}, {0x8000, 0x5460, 0x0000, 0x0403}, {0x4009, 0x34BC, 0x0148, 0x0000}, {0x400A, 0x34BC, 0x0148, 0x0000}, {0x2000, 0x0415, 0x2A30, 0x0000}, {0x2000, 0x0416, 0x2A30, 0x0000}, {0x2000, 0x0149, 0x0000, 0x0A8C}, {0x6009, 0x0419, 0x0148, 0x0000}, {0x600A, 0x0419, 0x0148, 0x0000}, {0x2000, 0x041A, 0x2A30, 0x0000}, {0x2000, 0x041B, 0x2A30, 0x0000}, {0xA000, 0x041D, 0x0000, 0x0418}, {0xA000, 0x041D, 0x0000, 0x0418}, {0x6001, 0x041E, 0x041F, 0x0001}, {0xA000, 0x041C, 0x0000, 0x0417}, {0xA000, 0x041C, 0x0000, 0x0417}, {0x6001, 0x0421, 0x0422, 0x0001}, {0x6000, 0x0420, 0x0423, 0x0000}, {0x200D, 0x0424, 0x0000, 0x0000}, {0x200E, 0x0148, 0x002D, 0x0000}, {0x6009, 0x0425, 0x0426, 0x0000}, {0x200E, 0x0148, 0x002D, 0x0000}, {0x600A, 0x0425, 0x0428, 0x0000}, {0x000E, 0x0000, 0x002D, 0x0000}, {0x6009, 0x0427, 0x042A, 0x0000}, {0x000E, 0x0000, 0x002D, 0x0000}, {0x6009, 0x0429, 0x042C, 0x0000}, {0x6000, 0x041C, 0x042B, 0x0000}, {0x6000, 0x041D, 0x042D, 0x0000}
666 : };
667 :
668 : const TextRectangle CIRCULAR_ARROW_TRS[] =
669 : {
670 : { {0, 0}, {21600, 21600} }
671 : };
672 :
673 : const int CIRCULAR_ARROW_DEFAULT_ADJUST[] =
674 : {
675 : 180 << 16, 0, 5550
676 : };
677 :
678 0 : const CustomShape CS_CIRCULAR_ARROW(
679 : CIRCULAR_ARROW_VERTICES, sizeof(CIRCULAR_ARROW_VERTICES) / sizeof(Vertex),
680 : CIRCULAR_ARROW_SEGMENTS, sizeof(CIRCULAR_ARROW_SEGMENTS) / sizeof(unsigned short),
681 : CIRCULAR_ARROW_CALC, sizeof(CIRCULAR_ARROW_CALC) / sizeof(Calculation),
682 : CIRCULAR_ARROW_DEFAULT_ADJUST, sizeof(CIRCULAR_ARROW_DEFAULT_ADJUST) / sizeof(int),
683 : CIRCULAR_ARROW_TRS, sizeof(CIRCULAR_ARROW_TRS) / sizeof(TextRectangle),
684 : 21600, 21600,
685 : NULL, 0, 1 | 2);
686 :
687 : const Vertex U_TURN_ARROW_VERTICES[] =
688 : {
689 : {0, 21600}, {0, 8550}, {0, 3540}, {4370, 0}, {9270, 0}, {13890, 0}, {18570, 3230}, {18600, 8300}, {21600, 8300}, {15680, 14260}, {9700, 8300}, {12500, 8300}, {12320, 6380}, {10870, 5850}, {9320, 5850}, {7770, 5850}, {6040, 6410}, {6110, 8520}, {6110, 21600}
690 : };
691 :
692 : const unsigned short U_TURN_ARROW_SEGMENTS[] =
693 : {
694 : 0x4000, 0x0001, 0x2002, 0x0004, 0x2002, 0x0001, 0x6000, 0x8000
695 : };
696 :
697 : const TextRectangle U_TURN_ARROW_TRS[] =
698 : {
699 : { {0, 8280}, {6110, 21600} }
700 : };
701 :
702 0 : const CustomShape CS_U_TURN_ARROW(
703 : U_TURN_ARROW_VERTICES, sizeof(U_TURN_ARROW_VERTICES) / sizeof(Vertex),
704 : U_TURN_ARROW_SEGMENTS, sizeof(U_TURN_ARROW_SEGMENTS) / sizeof(unsigned short),
705 : NULL, 0,
706 : NULL, 0,
707 : U_TURN_ARROW_TRS, sizeof(U_TURN_ARROW_TRS) / sizeof(TextRectangle),
708 : 21600, 21600,
709 : NULL, 0);
710 :
711 : const Vertex CURVED_RIGHT_ARROW_VERTICES[] =
712 : {
713 : {0, 0}, {CALCULATED_VALUE(23), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(22), 0}, {0, CALCULATED_VALUE(4)}, {0, CALCULATED_VALUE(15)}, {CALCULATED_VALUE(23), CALCULATED_VALUE(1)}, {0, CALCULATED_VALUE(7)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(14)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(12)}, {0, 0}, {CALCULATED_VALUE(23), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(26), CALCULATED_VALUE(17)}, {0, CALCULATED_VALUE(15)}, {CALCULATED_VALUE(23), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(26), CALCULATED_VALUE(17)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(15)}, {0, 0}, {CALCULATED_VALUE(23), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(22), 0}, {0, CALCULATED_VALUE(4)}, {0, 0}, {CALCULATED_VALUE(23), CALCULATED_VALUE(3)}, {0, CALCULATED_VALUE(4)}, {CALCULATED_VALUE(26), CALCULATED_VALUE(17)}, {0, CALCULATED_VALUE(15)}, {CALCULATED_VALUE(23), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(26), CALCULATED_VALUE(17)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(15)}
714 : };
715 :
716 : const unsigned short CURVED_RIGHT_ARROW_SEGMENTS[] =
717 : {
718 : 0xa404, 0xA304, 0x0003, 0xa508, 0x6000, 0x8000, 0xa404, 0xa304, 0xa504, 0x6000, 0x8000
719 : };
720 :
721 : const Calculation CURVED_RIGHT_ARROW_CALC[] =
722 : {
723 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0xa000, PROP_ADJUST_VAL_FIRST, 21600, PROP_ADJUST_VAL_FIRST + 1}, {0x2001, 0x403, 1, 2}, {0x6000, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0xe000, 0x405, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x406, 1, 2}, {0x4002, 21600, PROP_ADJUST_VAL_FIRST, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 2}, {0xa00f, 0x409, 21600, 0x404}, {0x6000, 0x404, 0x40a, 0}, {0x6000, 0x40b, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x6000, 0x407, 0x40a, 0}, {0xa000, 0x40c, 21600, PROP_ADJUST_VAL_FIRST}, {0xa000, 0x405, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x40f, 1, 2}, {0x6002, 0x404, 0x407, 0}, {0x6000, PROP_ADJUST_VAL_FIRST, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x2001, 0x412, 1, 2}, {0xa000, 0x411, 0, 0x413}, {0x0000, 21600, 0, 0}, {0x0000, 21600, 0, 0}, {0x0001, 21600, 2, 1}, {0xa000, 0x411, 0, 0x404}, {0x600f, 0x418, 0x404, 21600}, {0x8000, 21600, 0, 0x419}, {0x2000, 0x408, 128, 0}, {0x2001, 0x405, 1, 2}, {0x2000, 0x405, 0, 128}, {0xe000, PROP_ADJUST_VAL_FIRST, 0x411, 0x40c}, {0x600f, 0x414, 0x404, 21600}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x420, 1, 2}, {0x0001, 21600, 21600, 1}, {0x6001, 0x409, 0x409, 1}, {0xa000, 0x422, 0, 0x423}, {0x200d, 0x424, 0, 0}, {0x2000, 0x425, 21600, 0}, {0x8001, 21600, 21600, 0x426}, {0x2000, 0x427, 64, 0}, {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x600f, 0x421, 0x429, 21600}, {0x8000, 21600, 0, 0x42a}, {0x2000, 0x42b, 64, 0}, {0x2001, 0x404, 1, 2}, {0xa000, PROP_ADJUST_VAL_FIRST + 1, 0, 0x42d}, {0x0001, 21600, 2195, 16384}, {0x0001, 21600, 14189, 16384}
724 : };
725 :
726 : const TextRectangle CURVED_RIGHT_ARROW_TRS[] =
727 : {
728 : { {CALCULATED_VALUE(47), CALCULATED_VALUE(45)}, {CALCULATED_VALUE(48), CALCULATED_VALUE(46)} }
729 : };
730 :
731 : const int CURVED_RIGHT_ARROW_DEFAULT_ADJUST[] =
732 : {
733 : 12960, 19440, 14400
734 : };
735 :
736 : const Vertex CURVED_RIGHT_ARROW_GLUE_POINTS[] =
737 : {
738 : {0, CALCULATED_VALUE(17)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(14)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(16)}
739 : };
740 :
741 0 : const CustomShape CS_CURVED_RIGHT_ARROW(
742 : CURVED_RIGHT_ARROW_VERTICES, sizeof(CURVED_RIGHT_ARROW_VERTICES) / sizeof(Vertex),
743 : CURVED_RIGHT_ARROW_SEGMENTS, sizeof(CURVED_RIGHT_ARROW_SEGMENTS) / sizeof(unsigned short),
744 : CURVED_RIGHT_ARROW_CALC, sizeof(CURVED_RIGHT_ARROW_CALC) / sizeof(Calculation),
745 : CURVED_RIGHT_ARROW_DEFAULT_ADJUST, sizeof(CURVED_RIGHT_ARROW_DEFAULT_ADJUST) / sizeof(int),
746 : CURVED_RIGHT_ARROW_TRS, sizeof(CURVED_RIGHT_ARROW_TRS) / sizeof(TextRectangle),
747 : 21600, 21600,
748 : CURVED_RIGHT_ARROW_GLUE_POINTS, sizeof(CURVED_RIGHT_ARROW_GLUE_POINTS) / sizeof(Vertex));
749 :
750 : const Vertex CURVED_LEFT_ARROW_VERTICES[] =
751 : {
752 : {CALCULATED_VALUE(22), 0}, {CALCULATED_VALUE(21), CALCULATED_VALUE(3)}, {0, 0}, {CALCULATED_VALUE(21), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(14)}, {CALCULATED_VALUE(21), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(21), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(13)}, {0, CALCULATED_VALUE(8)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(22), 0}, {CALCULATED_VALUE(21), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(16)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(14)}, {CALCULATED_VALUE(21), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(16)}, {0, CALCULATED_VALUE(14)}, {CALCULATED_VALUE(22), 0}, {CALCULATED_VALUE(21), CALCULATED_VALUE(3)}, {0, 0}, {CALCULATED_VALUE(21), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(14)}, {CALCULATED_VALUE(21), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(21), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(16)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(14)}, {CALCULATED_VALUE(21), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(16)}, {0, CALCULATED_VALUE(14)}
753 : };
754 :
755 : const unsigned short CURVED_LEFT_ARROW_SEGMENTS[] =
756 : {
757 : 0xa608, 0x0003, 0xa308, 0x6000, 0x8000, 0xa604, 0xa308, 0x6000, 0x8000
758 : };
759 :
760 : const Calculation CURVED_LEFT_ARROW_CALC[] =
761 : {
762 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0xa000, PROP_ADJUST_VAL_FIRST, 21600, PROP_ADJUST_VAL_FIRST + 1}, {0x2001, 0x403, 1, 2}, {0x6000, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0xe000, 0x405, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x406, 1, 2}, {0x4002, 21600, PROP_ADJUST_VAL_FIRST, 0}, {0xa00f, PROP_ADJUST_VAL_FIRST + 2, 21600, 0x404}, {0x6000, 0x404, 0x409, 0}, {0x6000, 0x40a, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x6000, 0x407, 0x409, 0}, {0xa000, 0x40b, 21600, PROP_ADJUST_VAL_FIRST}, {0xa000, 0x405, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x40e, 1, 2}, {0x6002, 0x404, 0x407, 0}, {0x6000, PROP_ADJUST_VAL_FIRST, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x2001, 0x411, 1, 2}, {0xa000, 0x410, 0, 0x412}, {0x0000, 21600, 0, 0}, {0x0000, 21600, 0, 0}, {0x0000, 0, 0, 21600}, {0xa000, 0x410, 0, 0x404}, {0x600f, 0x417, 0x404, 21600}, {0x2000, 0x408, 128, 0}, {0x2001, 0x405, 1, 2}, {0x2000, 0x405, 0, 128}, {0xe000, PROP_ADJUST_VAL_FIRST, 0x410, 0x40b}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x41d, 1, 2}, {0x0001, 21600, 21600, 1}, {0x6001, PROP_ADJUST_VAL_FIRST + 2, PROP_ADJUST_VAL_FIRST + 2, 1}, {0xa000, 0x41f, 0, 0x420}, {0x200d, 0x421, 0, 0}, {0x2000, 0x422, 21600, 0}, {0x8001, 21600, 21600, 0x423}, {0x2000, 0x424, 64, 0}, {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x600f, 0x41e, 0x426, 21600}, {0x2000, 0x427, 0, 64}, {0x2001, 0x404, 1, 2}, {0xa000, PROP_ADJUST_VAL_FIRST + 1, 0, 0x429}, {0x0001, 21600, 2195, 16384}, {0x0001, 21600, 14189, 16384}
763 : };
764 :
765 : const TextRectangle CURVED_LEFT_ARROW_TRS[] =
766 : {
767 : { {CALCULATED_VALUE(43), CALCULATED_VALUE(41)}, {CALCULATED_VALUE(44), CALCULATED_VALUE(42)} }
768 : };
769 :
770 : const int CURVED_LEFT_ARROW_DEFAULT_ADJUST[] =
771 : {
772 : 12960, 19440, 7200
773 : };
774 :
775 : const Vertex CURVED_LEFT_ARROW_GLUE_POINTS[] =
776 : {
777 : {0, CALCULATED_VALUE(15)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(11)}, {0, CALCULATED_VALUE(8)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(21), CALCULATED_VALUE(16)}
778 : };
779 :
780 :
781 : const Vertex CURVED_DOWN_ARROW_VERTICES[] =
782 : {
783 : {0, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(23)}, {0, CALCULATED_VALUE(22)}, {CALCULATED_VALUE(4), 0}, {CALCULATED_VALUE(15), 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(23)}, {CALCULATED_VALUE(7), 0}, {CALCULATED_VALUE(13), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(14), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(2)}, {0, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(23)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(17), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(15), 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(23)}, {CALCULATED_VALUE(17), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(15), CALCULATED_VALUE(22)}, {0, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(23)}, {0, CALCULATED_VALUE(22)}, {CALCULATED_VALUE(4), 0}, {0, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(23)}, {CALCULATED_VALUE(4), 0}, {CALCULATED_VALUE(17), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(15), 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(23)}, {CALCULATED_VALUE(17), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(15), CALCULATED_VALUE(22)}
784 : };
785 :
786 : const unsigned short CURVED_DOWN_ARROW_SEGMENTS[] =
787 : {
788 : 0xa604, 0xa504, 0x0003, 0xa308, 0x6000, 0x8000, 0xa604, 0xa504, 0xa304, 0x6000, 0x8000
789 : };
790 :
791 : const Calculation CURVED_DOWN_ARROW_CALC[] =
792 : {
793 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0xa000, PROP_ADJUST_VAL_FIRST, 21600, PROP_ADJUST_VAL_FIRST + 1}, {0x2001, 0x403, 1, 2}, {0x6000, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0xe000, 0x405, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x406, 1, 2}, {0x4002, 21600, PROP_ADJUST_VAL_FIRST, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 2}, {0xa00f, 0x409, 21600, 0x404}, {0x6000, 0x404, 0x40a, 0}, {0x6000, 0x40b, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x6000, 0x407, 0x40a, 0}, {0xa000, 0x40c, 21600, PROP_ADJUST_VAL_FIRST}, {0xa000, 0x405, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x40f, 1, 2}, {0x6002, 0x404, 0x407, 0}, {0x6000, PROP_ADJUST_VAL_FIRST, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x2001, 0x412, 1, 2}, {0xa000, 0x411, 0, 0x413}, {0x0000, 21600, 0, 0}, {0x0000, 21600, 0, 0}, {0x0001, 21600, 2, 1}, {0xa000, 0x411, 0, 0x404}, {0x600f, 0x418, 0x404, 21600}, {0x8000, 21600, 0, 0x419}, {0x2000, 0x408, 128, 0}, {0x2001, 0x405, 1, 2}, {0x2000, 0x405, 0, 128}, {0xe000, PROP_ADJUST_VAL_FIRST, 0x411, 0x40c}, {0x600f, 0x414, 0x404, 21600}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x420, 1, 2}, {0x0001, 21600, 21600, 1}, {0x6001, 0x409, 0x409, 1}, {0xa000, 0x422, 0, 0x423}, {0x200d, 0x424, 0, 0}, {0x2000, 0x425, 21600, 0}, {0x8001, 21600, 21600, 0x426}, {0x2000, 0x427, 64, 0}, {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x600f, 0x421, 0x429, 21600}, {0x8000, 21600, 0, 0x42a}, {0x2000, 0x42b, 64, 0}, {0x2001, 0x404, 1, 2}, {0xa000, PROP_ADJUST_VAL_FIRST + 1, 0, 0x42d}, {0x0001, 21600, 2195, 16384}, {0x0001, 21600, 14189, 16384}
794 : };
795 :
796 : const TextRectangle CURVED_DOWN_ARROW_TRS[] =
797 : {
798 : { {CALCULATED_VALUE(45), CALCULATED_VALUE(47)}, {CALCULATED_VALUE(46), CALCULATED_VALUE(48)} }
799 : };
800 :
801 : const int CURVED_DOWN_ARROW_DEFAULT_ADJUST[] =
802 : {
803 : 12960, 19440, 14400
804 : };
805 :
806 : const Vertex CURVED_DOWN_ARROW_GLUE_POINTS[] =
807 : {
808 : {CALCULATED_VALUE(17), 0}, {CALCULATED_VALUE(16), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(14), CALCULATED_VALUE(2)}
809 : };
810 :
811 0 : const CustomShape CS_CURVED_DOWN_ARROW(
812 : CURVED_DOWN_ARROW_VERTICES, sizeof(CURVED_DOWN_ARROW_VERTICES) / sizeof(Vertex),
813 : CURVED_DOWN_ARROW_SEGMENTS, sizeof(CURVED_DOWN_ARROW_SEGMENTS) / sizeof(unsigned short),
814 : CURVED_DOWN_ARROW_CALC, sizeof(CURVED_DOWN_ARROW_CALC) / sizeof(Calculation),
815 : CURVED_DOWN_ARROW_DEFAULT_ADJUST, sizeof(CURVED_DOWN_ARROW_DEFAULT_ADJUST) / sizeof(int),
816 : CURVED_DOWN_ARROW_TRS, sizeof(CURVED_DOWN_ARROW_TRS) / sizeof(TextRectangle),
817 : 21600, 21600,
818 : CURVED_DOWN_ARROW_GLUE_POINTS, sizeof(CURVED_DOWN_ARROW_GLUE_POINTS) / sizeof(Vertex));
819 :
820 : const Vertex FLOW_CHART_PREDEFINED_PROCESS_VERTICES[] =
821 : {
822 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {2540, 0}, {2540, 21600}, {21600 - 2540, 0}, {21600 - 2540, 21600}
823 : };
824 :
825 : const unsigned short FLOW_CHART_PREDEFINED_PROCESS_SEGMENTS[] =
826 : {
827 : 0x4000, 0x0003, 0x6000, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
828 : };
829 :
830 : const TextRectangle FLOW_CHART_PREDEFINED_PROCESS_TRS[] =
831 : {
832 : { {2540, 0}, {21600 - 2540, 21600} }
833 : };
834 :
835 : const Vertex FLOW_CHART_INTERNAL_STORAGE_VERTICES[] =
836 : {
837 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {4230, 0}, {4230, 21600}, {0, 4230}, {21600, 4230}
838 : };
839 :
840 : const unsigned short FLOW_CHART_INTERNAL_STORAGE_SEGMENTS[] =
841 : {
842 : 0x4000, 0x0003, 0x6000, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
843 : };
844 :
845 : const TextRectangle FLOW_CHART_INTERNAL_STORAGE_TRS[] =
846 : {
847 : { {4230, 4230}, {21600, 21600} }
848 : };
849 :
850 0 : const CustomShape CS_FLOW_CHART_INTERNAL_STORAGE(
851 : FLOW_CHART_INTERNAL_STORAGE_VERTICES, sizeof(FLOW_CHART_INTERNAL_STORAGE_VERTICES) / sizeof(Vertex),
852 : FLOW_CHART_INTERNAL_STORAGE_SEGMENTS, sizeof(FLOW_CHART_INTERNAL_STORAGE_SEGMENTS) / sizeof(unsigned short),
853 : NULL, 0,
854 : NULL, 0,
855 : FLOW_CHART_INTERNAL_STORAGE_TRS, sizeof(FLOW_CHART_INTERNAL_STORAGE_TRS) / sizeof(TextRectangle),
856 : 21600, 21600,
857 : NULL, 0);
858 :
859 : const Vertex FLOW_CHART_DOCUMENT_VERTICES[] =
860 : {
861 : {0, 0}, {21600, 0}, {21600, 17360}, {13050, 17220}, {13340, 20770}, {5620, 21600}, {2860, 21100}, {1850, 20700}, {0, 20120}
862 : };
863 :
864 : const unsigned short FLOW_CHART_DOCUMENT_SEGMENTS[] =
865 : {
866 : 0x4000, 0x0002, 0x2002, 0x6000, 0x8000
867 : };
868 :
869 : const TextRectangle FLOW_CHART_DOCUMENT_TRS[] =
870 : {
871 : { {0, 0}, {21600, 17360} }
872 : };
873 :
874 : const Vertex FLOW_CHART_DOCUMENT_GLUE_POINTS[] =
875 : {
876 : {10800, 0}, {0, 10800}, {10800, 20320}, {21600, 10800}
877 : };
878 :
879 0 : const CustomShape CS_FLOW_CHART_DOCUMENT(
880 : FLOW_CHART_DOCUMENT_VERTICES, sizeof(FLOW_CHART_DOCUMENT_VERTICES) / sizeof(Vertex),
881 : FLOW_CHART_DOCUMENT_SEGMENTS, sizeof(FLOW_CHART_DOCUMENT_SEGMENTS) / sizeof(unsigned short),
882 : NULL, 0,
883 : NULL, 0,
884 : FLOW_CHART_DOCUMENT_TRS, sizeof(FLOW_CHART_DOCUMENT_TRS) / sizeof(TextRectangle),
885 : 21600, 21600,
886 : FLOW_CHART_DOCUMENT_GLUE_POINTS, sizeof(FLOW_CHART_DOCUMENT_GLUE_POINTS) / sizeof(Vertex));
887 :
888 : const Vertex FLOW_CHART_MULTI_DOCUMENT_VERTICES[] =
889 : {
890 : {0, 3600}, {1500, 3600}, {1500, 1800}, {3000, 1800}, {3000, 0}, {21600, 0}, {21600, 14409}, {21600 - 1500, 14409}, {21600 - 1500, 14409 + 1800}, {21600 - 3000, 14409 + 1800}, {21600 - 3000, 14409 + 3600}, {11610, 14293 + 3600}, {11472, 17239 + 3600}, {4833, 17928 + 3600}, {2450, 17513 + 3600}, {1591, 17181 + 3600}, {0, 16700 + 3600}, {1500, 3600}, {21600 - 3000, 3600}, {21600 - 3000, 14409 + 1800}, {3000, 1800}, {21600 - 1500, 1800}, {21600 - 1500, 14409}
891 : };
892 :
893 : const unsigned short FLOW_CHART_MULTI_DOCUMENT_SEGMENTS[] =
894 : {
895 : 0x4000, 0x000a, 0x2002, 0x6000, 0x8000, 0x4000, 0xaa00, 0x0002, 0x8000, 0x4000, 0xaa00, 0x0002, 0x8000
896 : };
897 :
898 : const TextRectangle FLOW_CHART_MULTI_DOCUMENT_TRS[] =
899 : {
900 : { {0, 3600}, {21600 - 3600, 14409 + 3600} }
901 : };
902 :
903 : const Vertex FLOW_CHART_MULTI_DOCUMENT_GLUE_POINTS[] =
904 : {
905 : {10800, 0}, {0, 10800}, {10800, 19890}, {21600, 10800}
906 : };
907 :
908 0 : const CustomShape CS_FLOW_CHART_MULTI_DOCUMENT(
909 : FLOW_CHART_MULTI_DOCUMENT_VERTICES, sizeof(FLOW_CHART_MULTI_DOCUMENT_VERTICES) / sizeof(Vertex),
910 : FLOW_CHART_MULTI_DOCUMENT_SEGMENTS, sizeof(FLOW_CHART_MULTI_DOCUMENT_SEGMENTS) / sizeof(unsigned short),
911 : NULL, 0,
912 : NULL, 0,
913 : FLOW_CHART_MULTI_DOCUMENT_TRS, sizeof(FLOW_CHART_MULTI_DOCUMENT_TRS) / sizeof(TextRectangle),
914 : 21600, 21600,
915 : FLOW_CHART_MULTI_DOCUMENT_GLUE_POINTS, sizeof(FLOW_CHART_MULTI_DOCUMENT_GLUE_POINTS) / sizeof(Vertex));
916 :
917 : const Vertex FLOW_CHART_TERMINATOR_VERTICES[] =
918 : {
919 : {3470, 21600}, {0, 10800}, {3470, 0}, {18130, 0}, {21600, 10800}, {18130, 21600}
920 : };
921 :
922 : const unsigned short FLOW_CHART_TERMINATOR_SEGMENTS[] =
923 : {
924 : 0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
925 : };
926 :
927 : const TextRectangle FLOW_CHART_TERMINATOR_TRS[] =
928 : {
929 : { {1060, 3180}, {20540, 18420} }
930 : };
931 :
932 : const Vertex FLOW_CHART_TERMINATOR_GLUE_POINTS[] =
933 : {
934 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
935 : };
936 :
937 0 : const CustomShape CS_FLOW_CHART_TERMINATOR(
938 : FLOW_CHART_TERMINATOR_VERTICES, sizeof(FLOW_CHART_TERMINATOR_VERTICES) / sizeof(Vertex),
939 : FLOW_CHART_TERMINATOR_SEGMENTS, sizeof(FLOW_CHART_TERMINATOR_SEGMENTS) / sizeof(unsigned short),
940 : NULL, 0,
941 : NULL, 0,
942 : FLOW_CHART_TERMINATOR_TRS, sizeof(FLOW_CHART_TERMINATOR_TRS) / sizeof(TextRectangle),
943 : 21600, 21600,
944 : FLOW_CHART_TERMINATOR_GLUE_POINTS, sizeof(FLOW_CHART_TERMINATOR_GLUE_POINTS) / sizeof(Vertex));
945 :
946 0 : const CustomShape CS_FLOW_CHART_PREDEFINED_PROCESS(
947 : FLOW_CHART_PREDEFINED_PROCESS_VERTICES, sizeof(FLOW_CHART_PREDEFINED_PROCESS_VERTICES) / sizeof(Vertex),
948 : FLOW_CHART_PREDEFINED_PROCESS_SEGMENTS, sizeof(FLOW_CHART_PREDEFINED_PROCESS_SEGMENTS) / sizeof(unsigned short),
949 : NULL, 0,
950 : NULL, 0,
951 : FLOW_CHART_PREDEFINED_PROCESS_TRS, sizeof(FLOW_CHART_PREDEFINED_PROCESS_TRS) / sizeof(TextRectangle),
952 : 21600, 21600,
953 : NULL, 0);
954 :
955 : const Vertex FLOW_CHART_IO_VERTICES[] =
956 : {
957 : {4230, 0}, {21600, 0}, {17370, 21600}, {0, 21600}, {4230, 0}
958 : };
959 :
960 : const TextRectangle FLOW_CHART_IO_TRS[] =
961 : {
962 : { {4230, 0}, {17370, 21600} }
963 : };
964 :
965 : const Vertex FLOW_CHART_IO_GLUE_POINTS[] =
966 : {
967 : {12960, 0}, {10800, 0}, {2160, 10800}, {8600, 21600}, {10800, 21600}, {19400, 10800}
968 : };
969 :
970 0 : const CustomShape CS_FLOW_CHART_IO(
971 : FLOW_CHART_IO_VERTICES, sizeof(FLOW_CHART_IO_VERTICES) / sizeof(Vertex),
972 : NULL, 0,
973 : NULL, 0,
974 : NULL, 0,
975 : FLOW_CHART_IO_TRS, sizeof(FLOW_CHART_IO_TRS) / sizeof(TextRectangle),
976 : 21600, 21600,
977 : FLOW_CHART_IO_GLUE_POINTS, sizeof(FLOW_CHART_IO_GLUE_POINTS) / sizeof(Vertex));
978 :
979 : const Vertex FLOW_CHART_PROCESS_VERTICES[] =
980 : {
981 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}
982 : };
983 :
984 : const Vertex FLOW_CHART_PROCESS_GLUE_POINTS[] =
985 : {
986 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
987 : };
988 :
989 : const Vertex FLOW_CHART_DECISION_VERTICES[] =
990 : {
991 : {0, 10800}, {10800, 0}, {21600, 10800}, {10800, 21600}, {0, 10800}
992 : };
993 :
994 : const TextRectangle FLOW_CHART_DECISION_TRS[] =
995 : {
996 : { {5400, 5400}, {16200, 16200} }
997 : };
998 :
999 : const Vertex FLOW_CHART_DECISION_GLUE_POINTS[] =
1000 : {
1001 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
1002 : };
1003 :
1004 0 : const CustomShape CS_FLOW_CHART_DECISION(
1005 : FLOW_CHART_DECISION_VERTICES, sizeof(FLOW_CHART_DECISION_VERTICES) / sizeof(Vertex),
1006 : NULL, 0,
1007 : NULL, 0,
1008 : NULL, 0,
1009 : FLOW_CHART_DECISION_TRS, sizeof(FLOW_CHART_DECISION_TRS) / sizeof(TextRectangle),
1010 : 21600, 21600,
1011 : FLOW_CHART_DECISION_GLUE_POINTS, sizeof(FLOW_CHART_DECISION_GLUE_POINTS) / sizeof(Vertex));
1012 :
1013 0 : const CustomShape CS_FLOW_CHART_PROCESS(
1014 : FLOW_CHART_PROCESS_VERTICES, sizeof(FLOW_CHART_PROCESS_VERTICES) / sizeof(Vertex),
1015 : NULL, 0,
1016 : NULL, 0,
1017 : NULL, 0,
1018 : NULL, 0,
1019 : 21600, 21600,
1020 : FLOW_CHART_PROCESS_GLUE_POINTS, sizeof(FLOW_CHART_PROCESS_GLUE_POINTS) / sizeof(Vertex));
1021 :
1022 : const Vertex CURVED_UP_ARROW_VERTICES[] =
1023 : {
1024 : {0, CALCULATED_VALUE(22)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(21)}, {0, 0}, {CALCULATED_VALUE(4), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(14), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(13), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(8), 0}, {CALCULATED_VALUE(11), CALCULATED_VALUE(2)}, {0, CALCULATED_VALUE(22)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(10), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(14), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(14), 0}, {0, CALCULATED_VALUE(22)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(21)}, {0, 0}, {CALCULATED_VALUE(4), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(14), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(14), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(14), 0}
1025 : };
1026 :
1027 : const unsigned short CURVED_UP_ARROW_SEGMENTS[] =
1028 : {
1029 : 0xa408, 0x0003, 0xa508, 0x6000, 0x8000, 0xa404, 0xa508, 0xa504, 0x6000, 0x8000
1030 : };
1031 :
1032 : const Calculation CURVED_UP_ARROW_CALC[] =
1033 : {
1034 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0xa000, PROP_ADJUST_VAL_FIRST, 21600, PROP_ADJUST_VAL_FIRST + 1}, {0x2001, 0x403, 1, 2}, {0x6000, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0xe000, 0x405, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x406, 1, 2}, {0x4002, 21600, PROP_ADJUST_VAL_FIRST, 0}, {0xa00f, PROP_ADJUST_VAL_FIRST + 2, 21600, 0x404}, {0x6000, 0x404, 0x409, 0}, {0x6000, 0x40a, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x6000, 0x407, 0x409, 0}, {0xa000, 0x40b, 21600, PROP_ADJUST_VAL_FIRST}, {0xa000, 0x405, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x40e, 1, 2}, {0x6002, 0x404, 0x407, 0}, {0x6000, PROP_ADJUST_VAL_FIRST, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x2001, 0x411, 1, 2}, {0xa000, 0x410, 0, 0x412}, {0x0000, 21600, 0, 0}, {0x0000, 21600, 0, 0}, {0x0000, 0, 0, 21600}, {0xa000, 0x410, 0, 0x404}, {0x600f, 0x417, 0x404, 21600}, {0x2000, 0x408, 128, 0}, {0x2001, 0x405, 1, 2}, {0x2000, 0x405, 0, 128}, {0xe000, PROP_ADJUST_VAL_FIRST, 0x410, 0x40b}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x41d, 1, 2}, {0x0001, 21600, 21600, 1}, {0x6001, PROP_ADJUST_VAL_FIRST + 2, PROP_ADJUST_VAL_FIRST + 2, 1}, {0xa000, 0x41f, 0, 0x420}, {0x200d, 0x421, 0, 0}, {0x2000, 0x422, 21600, 0}, {0x8001, 21600, 21600, 0x423}, {0x2000, 0x424, 64, 0}, {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x600f, 0x41e, 0x426, 21600}, {0x2000, 0x427, 0, 64}, {0x2001, 0x404, 1, 2}, {0xa000, PROP_ADJUST_VAL_FIRST + 1, 0, 0x429}, {0x0001, 21600, 2195, 16384}, {0x0001, 21600, 14189, 16384}
1035 : };
1036 :
1037 : const TextRectangle CURVED_UP_ARROW_TRS[] =
1038 : {
1039 : { {CALCULATED_VALUE(41), CALCULATED_VALUE(43)}, {CALCULATED_VALUE(42), CALCULATED_VALUE(44)} }
1040 : };
1041 :
1042 : const int CURVED_UP_ARROW_DEFAULT_ADJUST[] =
1043 : {
1044 : 12960, 19440, 7200
1045 : };
1046 :
1047 : const Vertex CURVED_UP_ARROW_GLUE_POINTS[] =
1048 : {
1049 : {CALCULATED_VALUE(8), 0}, {CALCULATED_VALUE(11), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(15), 0}, {CALCULATED_VALUE(16), CALCULATED_VALUE(21)}, {CALCULATED_VALUE(13), CALCULATED_VALUE(2)}
1050 : };
1051 :
1052 0 : const CustomShape CS_CURVED_UP_ARROW(
1053 : CURVED_UP_ARROW_VERTICES, sizeof(CURVED_UP_ARROW_VERTICES) / sizeof(Vertex),
1054 : CURVED_UP_ARROW_SEGMENTS, sizeof(CURVED_UP_ARROW_SEGMENTS) / sizeof(unsigned short),
1055 : CURVED_UP_ARROW_CALC, sizeof(CURVED_UP_ARROW_CALC) / sizeof(Calculation),
1056 : CURVED_UP_ARROW_DEFAULT_ADJUST, sizeof(CURVED_UP_ARROW_DEFAULT_ADJUST) / sizeof(int),
1057 : CURVED_UP_ARROW_TRS, sizeof(CURVED_UP_ARROW_TRS) / sizeof(TextRectangle),
1058 : 21600, 21600,
1059 : CURVED_UP_ARROW_GLUE_POINTS, sizeof(CURVED_UP_ARROW_GLUE_POINTS) / sizeof(Vertex));
1060 :
1061 0 : const CustomShape CS_CURVED_LEFT_ARROW(
1062 : CURVED_LEFT_ARROW_VERTICES, sizeof(CURVED_LEFT_ARROW_VERTICES) / sizeof(Vertex),
1063 : CURVED_LEFT_ARROW_SEGMENTS, sizeof(CURVED_LEFT_ARROW_SEGMENTS) / sizeof(unsigned short),
1064 : CURVED_LEFT_ARROW_CALC, sizeof(CURVED_LEFT_ARROW_CALC) / sizeof(Calculation),
1065 : CURVED_LEFT_ARROW_DEFAULT_ADJUST, sizeof(CURVED_LEFT_ARROW_DEFAULT_ADJUST) / sizeof(int),
1066 : CURVED_LEFT_ARROW_TRS, sizeof(CURVED_LEFT_ARROW_TRS) / sizeof(TextRectangle),
1067 : 21600, 21600,
1068 : CURVED_LEFT_ARROW_GLUE_POINTS, sizeof(CURVED_LEFT_ARROW_GLUE_POINTS) / sizeof(Vertex));
1069 :
1070 0 : const CustomShape CS_HORIZONTAL_SCROLL(
1071 : HORIZONTAL_SCROLL_VERTICES, sizeof(HORIZONTAL_SCROLL_VERTICES) / sizeof(Vertex),
1072 : HORIZONTAL_SCROLL_SEGMENTS, sizeof(HORIZONTAL_SCROLL_SEGMENTS) / sizeof(unsigned short),
1073 : HORIZONTAL_SCROLL_CALC, sizeof(HORIZONTAL_SCROLL_CALC) / sizeof(Calculation),
1074 : HORIZONTAL_SCROLL_DEFAULT_ADJUST, sizeof(HORIZONTAL_SCROLL_DEFAULT_ADJUST) / sizeof(int),
1075 : HORIZONTAL_SCROLL_TRS, sizeof(HORIZONTAL_SCROLL_TRS) / sizeof(TextRectangle),
1076 : 21600, 21600,
1077 : NULL, 0);
1078 :
1079 0 : const CustomShape CS_VERTICAL_SCROLL(
1080 : VERTICAL_SCROLL_VERTICES, sizeof(VERTICAL_SCROLL_VERTICES) / sizeof(Vertex),
1081 : VERTICAL_SCROLL_SEGMENTS, sizeof(VERTICAL_SCROLL_SEGMENTS) / sizeof(unsigned short),
1082 : VERTICAL_SCROLL_CALC, sizeof(VERTICAL_SCROLL_CALC) / sizeof(Calculation),
1083 : VERTICAL_SCROLL_DEFAULT_ADJUST, sizeof(VERTICAL_SCROLL_DEFAULT_ADJUST) / sizeof(int),
1084 : VERTICAL_SCROLL_TRS, sizeof(VERTICAL_SCROLL_TRS) / sizeof(TextRectangle),
1085 : 21600, 21600,
1086 : NULL, 0);
1087 :
1088 0 : const CustomShape CS_SMILEY_FACE(
1089 : SMILEY_FACE_VERTICES, sizeof(SMILEY_FACE_VERTICES) / sizeof(Vertex),
1090 : SMILEY_FACE_SEGMENTS, sizeof(SMILEY_FACE_SEGMENTS) / sizeof(unsigned short),
1091 : SMILEY_FACE_CALC, sizeof(SMILEY_FACE_CALC) / sizeof(Calculation),
1092 : SMILEY_FACE_DEFAULT_ADJUST, sizeof(SMILEY_FACE_DEFAULT_ADJUST) / sizeof(int),
1093 : SMILEY_FACE_TRS, sizeof(SMILEY_FACE_TRS) / sizeof(TextRectangle),
1094 : 21600, 21600,
1095 : SMILEY_FACE_GLUE_POINTS, sizeof(SMILEY_FACE_GLUE_POINTS) / sizeof(Vertex));
1096 :
1097 : const Vertex BLOCK_ARC_VERTICES[] =
1098 : {
1099 : {0, 0}, {21600, 21600}, {CALCULATED_VALUE(4), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(6), CALCULATED_VALUE(6)}, {CALCULATED_VALUE(9), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(10)}
1100 : };
1101 :
1102 : const unsigned short BLOCK_ARC_SEGMENTS[] =
1103 : {
1104 : 0xA404, 0xa504, 0x6001, 0x8000
1105 : };
1106 :
1107 : const Calculation BLOCK_ARC_CALC[] =
1108 : {
1109 : {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0},
1110 : {0x2000, 0x400, 10800, 0},
1111 : {0x2000, 0x401, 10800, 0}, {0x8000, 21600, 0, 0x402},
1112 : {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST + 1},
1113 : {0x4000, 10800, PROP_ADJUST_VAL_FIRST + 1, 0},
1114 : {0x600a, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST, 0},
1115 : {0x6009, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST, 0},
1116 : {0x4000, 10800, 0x407, 0}, {0x4000, 10800, 0x408, 0}, {0x8000, 10800,0, 0x407}
1117 : };
1118 :
1119 : const int BLOCK_ARC_DEFAULT_ADJUST[] =
1120 : {
1121 : 180 << 16, 5400
1122 : };
1123 :
1124 0 : const CustomShape CS_BLOCK_ARC(
1125 : BLOCK_ARC_VERTICES, sizeof(BLOCK_ARC_VERTICES) / sizeof(Vertex),
1126 : BLOCK_ARC_SEGMENTS, sizeof(BLOCK_ARC_SEGMENTS) / sizeof(unsigned short),
1127 : BLOCK_ARC_CALC, sizeof(BLOCK_ARC_CALC) / sizeof(Calculation),
1128 : BLOCK_ARC_DEFAULT_ADJUST, sizeof(BLOCK_ARC_DEFAULT_ADJUST) / sizeof(int),
1129 : NULL, 0,
1130 : 21600, 21600,
1131 : NULL, 0, 0x1);
1132 :
1133 : const Vertex NOTCHED_RIGHT_ARROW_VERTICES[] =
1134 : {
1135 : {0, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0), 0}, {21600, 10800}, {CALCULATED_VALUE(0), 21600}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {0, CALCULATED_VALUE(2)}, {CALCULATED_VALUE(5), 10800}, {0, CALCULATED_VALUE(1)}
1136 : };
1137 :
1138 : const Calculation NOTCHED_RIGHT_ARROW_CALC[] =
1139 : {
1140 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x6001, 0x403, 0x404, 10800}
1141 : };
1142 :
1143 : const TextRectangle NOTCHED_RIGHT_ARROW_TRS[] =
1144 : {
1145 : { {0, 0}, {21600, 21600} }
1146 : };
1147 :
1148 : const int NOTCHED_RIGHT_ARROW_DEFAULT_ADJUST[] =
1149 : {
1150 : 16200, 5400
1151 : };
1152 :
1153 0 : const CustomShape CS_NOTCHED_RIGHT_ARROW(
1154 : NOTCHED_RIGHT_ARROW_VERTICES, sizeof(NOTCHED_RIGHT_ARROW_VERTICES) / sizeof(Vertex),
1155 : NULL, 0,
1156 : NOTCHED_RIGHT_ARROW_CALC, sizeof(NOTCHED_RIGHT_ARROW_CALC) / sizeof(Calculation),
1157 : NOTCHED_RIGHT_ARROW_DEFAULT_ADJUST, sizeof(NOTCHED_RIGHT_ARROW_DEFAULT_ADJUST) / sizeof(int),
1158 : NOTCHED_RIGHT_ARROW_TRS, sizeof(NOTCHED_RIGHT_ARROW_TRS) / sizeof(TextRectangle),
1159 : 21600, 21600,
1160 : NULL, 0);
1161 :
1162 : const Vertex STRIPED_RIGHT_ARROW_VERTICES[] =
1163 : {
1164 : {3375, CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), 0}, {21600, 10800}, {CALCULATED_VALUE(1), 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {3375, CALCULATED_VALUE(2)}, {0, CALCULATED_VALUE(0)}, {675, CALCULATED_VALUE(0)}, {675, CALCULATED_VALUE(2)}, {0, CALCULATED_VALUE(2)}, {1350, CALCULATED_VALUE(0)}, {2700, CALCULATED_VALUE(0)}, {2700, CALCULATED_VALUE(2)}, {1350, CALCULATED_VALUE(2)}
1165 : };
1166 :
1167 : const unsigned short STRIPED_RIGHT_ARROW_SEGMENTS[] =
1168 : {
1169 : 0x4000, 0x0006, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000
1170 : };
1171 :
1172 : const Calculation STRIPED_RIGHT_ARROW_CALC[] =
1173 : {
1174 : {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 21600, 0, 0x401}, {0x6001, 0x403, 0x400, 10800}, {0x6000, 0x401, 0x404, 0}
1175 : };
1176 :
1177 : const TextRectangle STRIPED_RIGHT_ARROW_TRS[] =
1178 : {
1179 : { {3375, CALCULATED_VALUE(0)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(2)} }
1180 : };
1181 :
1182 : const int STRIPED_RIGHT_ARROW_DEFAULT_ADJUST[] =
1183 : {
1184 : 16200, 5400
1185 : };
1186 :
1187 0 : const CustomShape CS_STRIPED_RIGHT_ARROW(
1188 : STRIPED_RIGHT_ARROW_VERTICES, sizeof(STRIPED_RIGHT_ARROW_VERTICES) / sizeof(Vertex),
1189 : STRIPED_RIGHT_ARROW_SEGMENTS, sizeof(STRIPED_RIGHT_ARROW_SEGMENTS) / sizeof(unsigned short),
1190 : STRIPED_RIGHT_ARROW_CALC, sizeof(STRIPED_RIGHT_ARROW_CALC) / sizeof(Calculation),
1191 : STRIPED_RIGHT_ARROW_DEFAULT_ADJUST, sizeof(STRIPED_RIGHT_ARROW_DEFAULT_ADJUST) / sizeof(int),
1192 : STRIPED_RIGHT_ARROW_TRS, sizeof(STRIPED_RIGHT_ARROW_TRS) / sizeof(TextRectangle),
1193 : 21600, 21600,
1194 : NULL, 0);
1195 :
1196 : const Vertex SEAL_24_VERTICES[] =
1197 : {
1198 : {CALCULATED_VALUE(0x05), CALCULATED_VALUE(0x06)}, {CALCULATED_VALUE(0x07), CALCULATED_VALUE(0x08)}, {CALCULATED_VALUE(0x09), CALCULATED_VALUE(0x0a)}, {CALCULATED_VALUE(0x0b), CALCULATED_VALUE(0x0c)}, {CALCULATED_VALUE(0x0d), CALCULATED_VALUE(0x0e)}, {CALCULATED_VALUE(0x0f), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x11), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0x15), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x17), CALCULATED_VALUE(0x18)}, {CALCULATED_VALUE(0x19), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x1b), CALCULATED_VALUE(0x1c)}, {CALCULATED_VALUE(0x1d), CALCULATED_VALUE(0x1e)}, {CALCULATED_VALUE(0x1f), CALCULATED_VALUE(0x20)}, {CALCULATED_VALUE(0x21), CALCULATED_VALUE(0x22)}, {CALCULATED_VALUE(0x23), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x25), CALCULATED_VALUE(0x26)}, {CALCULATED_VALUE(0x27), CALCULATED_VALUE(0x28)}, {CALCULATED_VALUE(0x29), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0x2b), CALCULATED_VALUE(0x2c)}, {CALCULATED_VALUE(0x2d), CALCULATED_VALUE(0x2e)}, {CALCULATED_VALUE(0x2f), CALCULATED_VALUE(0x30)}, {CALCULATED_VALUE(0x31), CALCULATED_VALUE(0x32)}, {CALCULATED_VALUE(0x33), CALCULATED_VALUE(0x34)}, {CALCULATED_VALUE(0x35), CALCULATED_VALUE(0x36)}, {CALCULATED_VALUE(0x37), CALCULATED_VALUE(0x38)}, {CALCULATED_VALUE(0x39), CALCULATED_VALUE(0x3a)}, {CALCULATED_VALUE(0x3b), CALCULATED_VALUE(0x3c)}, {CALCULATED_VALUE(0x3d), CALCULATED_VALUE(0x3e)}, {CALCULATED_VALUE(0x3f), CALCULATED_VALUE(0x40)}, {CALCULATED_VALUE(0x41), CALCULATED_VALUE(0x42)}, {CALCULATED_VALUE(0x43), CALCULATED_VALUE(0x44)}, {CALCULATED_VALUE(0x45), CALCULATED_VALUE(0x46)}, {CALCULATED_VALUE(0x47), CALCULATED_VALUE(0x48)}, {CALCULATED_VALUE(0x49), CALCULATED_VALUE(0x4a)}, {CALCULATED_VALUE(0x4b), CALCULATED_VALUE(0x4c)}, {CALCULATED_VALUE(0x4d), CALCULATED_VALUE(0x4e)}, {CALCULATED_VALUE(0x4f), CALCULATED_VALUE(0x50)}, {CALCULATED_VALUE(0x51), CALCULATED_VALUE(0x52)}, {CALCULATED_VALUE(0x53), CALCULATED_VALUE(0x54)}, {CALCULATED_VALUE(0x55), CALCULATED_VALUE(0x56)}, {CALCULATED_VALUE(0x57), CALCULATED_VALUE(0x58)}, {CALCULATED_VALUE(0x59), CALCULATED_VALUE(0x5a)}, {CALCULATED_VALUE(0x5b), CALCULATED_VALUE(0x5c)}, {CALCULATED_VALUE(0x5d), CALCULATED_VALUE(0x5e)}, {CALCULATED_VALUE(0x5f), CALCULATED_VALUE(0x60)}, {CALCULATED_VALUE(0x61), CALCULATED_VALUE(0x62)}, {CALCULATED_VALUE(0x63), CALCULATED_VALUE(0x64)}, {CALCULATED_VALUE(0x05), CALCULATED_VALUE(0x06)}
1199 : };
1200 :
1201 : const Calculation SEAL_24_CALC[] =
1202 : {
1203 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2081, 0x400, 10800, 315}, {0x2082, 0x400, 10800, 315}, {0x2081, 0x400, 10800, 135}, {0x2082, 0x400, 10800, 135}, {0x0081, 0, 10800, 0}, {0x0082, 0, 10800, 0}, {0x2081, 0x400, 10800, 7}, {0x2082, 0x400, 10800, 7}, {0x0081, 0, 10800, 15}, {0x0082, 0, 10800, 15}, {0x2081, 0x400, 10800, 22}, {0x2082, 0x400, 10800, 22}, {0x0081, 0, 10800, 30}, {0x0082, 0, 10800, 30}, {0x2081, 0x400, 10800, 37}, {0x2082, 0x400, 10800, 37}, {0x0081, 0, 10800, 45}, {0x0082, 0, 10800, 45}, {0x2081, 0x400, 10800, 52}, {0x2082, 0x400, 10800, 52}, {0x0081, 0, 10800, 60}, {0x0082, 0, 10800, 60}, {0x2081, 0x400, 10800, 67}, {0x2082, 0x400, 10800, 67}, {0x0081, 0, 10800, 75}, {0x0082, 0, 10800, 75}, {0x2081, 0x400, 10800, 82}, {0x2082, 0x400, 10800, 82}, {0x0081, 0, 10800, 90}, {0x0082, 0, 10800, 90}, {0x2081, 0x400, 10800, 97}, {0x2082, 0x400, 10800, 97}, {0x0081, 0, 10800, 105}, {0x0082, 0, 10800, 105}, {0x2081, 0x400, 10800, 112}, {0x2082, 0x400, 10800, 112}, {0x0081, 0, 10800, 120}, {0x0082, 0, 10800, 120}, {0x2081, 0x400, 10800, 127}, {0x2082, 0x400, 10800, 127}, {0x0081, 0, 10800, 135}, {0x0082, 0, 10800, 135}, {0x2081, 0x400, 10800, 142}, {0x2082, 0x400, 10800, 142}, {0x0081, 0, 10800, 150}, {0x0082, 0, 10800, 150}, {0x2081, 0x400, 10800, 157}, {0x2082, 0x400, 10800, 157}, {0x0081, 0, 10800, 165}, {0x0082, 0, 10800, 165}, {0x2081, 0x400, 10800, 172}, {0x2082, 0x400, 10800, 172}, {0x0081, 0, 10800, 180}, {0x0082, 0, 10800, 180}, {0x2081, 0x400, 10800, 187}, {0x2082, 0x400, 10800, 187}, {0x0081, 0, 10800, 195}, {0x0082, 0, 10800, 195}, {0x2081, 0x400, 10800, 202}, {0x2082, 0x400, 10800, 202}, {0x0081, 0, 10800, 210}, {0x0082, 0, 10800, 210}, {0x2081, 0x400, 10800, 217}, {0x2082, 0x400, 10800, 217}, {0x0081, 0, 10800, 225}, {0x0082, 0, 10800, 225}, {0x2081, 0x400, 10800, 232}, {0x2082, 0x400, 10800, 232}, {0x0081, 0, 10800, 240}, {0x0082, 0, 10800, 240}, {0x2081, 0x400, 10800, 247}, {0x2082, 0x400, 10800, 247}, {0x0081, 0, 10800, 255}, {0x0082, 0, 10800, 255}, {0x2081, 0x400, 10800, 262}, {0x2082, 0x400, 10800, 262}, {0x0081, 0, 10800, 270}, {0x0082, 0, 10800, 270}, {0x2081, 0x400, 10800, 277}, {0x2082, 0x400, 10800, 277}, {0x0081, 0, 10800, 285}, {0x0082, 0, 10800, 285}, {0x2081, 0x400, 10800, 292}, {0x2082, 0x400, 10800, 292}, {0x0081, 0, 10800, 300}, {0x0082, 0, 10800, 300}, {0x2081, 0x400, 10800, 307}, {0x2082, 0x400, 10800, 307}, {0x0081, 0, 10800, 315}, {0x0082, 0, 10800, 315}, {0x2081, 0x400, 10800, 322}, {0x2082, 0x400, 10800, 322}, {0x0081, 0, 10800, 330}, {0x0082, 0, 10800, 330}, {0x2081, 0x400, 10800, 337}, {0x2082, 0x400, 10800, 337}, {0x0081, 0, 10800, 345}, {0x0082, 0, 10800, 345}, {0x2081, 0x400, 10800, 352}, {0x2082, 0x400, 10800, 352}
1204 : };
1205 :
1206 : const TextRectangle SEAL_24_TRS[] =
1207 : {
1208 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
1209 : };
1210 :
1211 : const int SEAL_24_DEFAULT_ADJUST[] =
1212 : {
1213 : 2500
1214 : };
1215 :
1216 0 : const CustomShape CS_SEAL_24(
1217 : SEAL_24_VERTICES, sizeof(SEAL_24_VERTICES) / sizeof(Vertex),
1218 : NULL, 0,
1219 : SEAL_24_CALC, sizeof(SEAL_24_CALC) / sizeof(Calculation),
1220 : SEAL_24_DEFAULT_ADJUST, sizeof(SEAL_24_DEFAULT_ADJUST) / sizeof(int),
1221 : SEAL_24_TRS, sizeof(SEAL_24_TRS) / sizeof(TextRectangle),
1222 : 21600, 21600,
1223 : NULL, 0);
1224 :
1225 : const Vertex BENT_ARROW_VERTICES[] =
1226 : {
1227 : {0, 21600}, {0, 12160}, {12427, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0), 0}, {21600, 6079}, {CALCULATED_VALUE(0), 12158}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {12427, CALCULATED_VALUE(2)}, {CALCULATED_VALUE(4), 12160}, {CALCULATED_VALUE(4), 21600}
1228 : };
1229 :
1230 : const unsigned short BENT_ARROW_SEGMENTS[] =
1231 : {
1232 : 0x4000, 0x0001, 0xa801, 0x0006, 0xa701, 0x0001, 0x6001, 0x8000
1233 : };
1234 :
1235 : const Calculation BENT_ARROW_CALC[] =
1236 : {
1237 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x8000, 12158, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 6079, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x2001, 0x0403, 2, 1}
1238 : };
1239 :
1240 : const TextRectangle BENT_ARROW_TRS[] =
1241 : {
1242 : { {0, 0}, {21600, 21600} }
1243 : };
1244 :
1245 : const int BENT_ARROW_DEFAULT_ADJUST[] =
1246 : {
1247 : 15100, 2900
1248 : };
1249 :
1250 0 : const CustomShape CS_BENT_ARROW(
1251 : BENT_ARROW_VERTICES, sizeof(BENT_ARROW_VERTICES) / sizeof(Vertex),
1252 : BENT_ARROW_SEGMENTS, sizeof(BENT_ARROW_SEGMENTS) / sizeof(unsigned short),
1253 : BENT_ARROW_CALC, sizeof(BENT_ARROW_CALC) / sizeof(Calculation),
1254 : BENT_ARROW_DEFAULT_ADJUST, sizeof(BENT_ARROW_DEFAULT_ADJUST) / sizeof(int),
1255 : BENT_ARROW_TRS, sizeof(BENT_ARROW_TRS) / sizeof(TextRectangle),
1256 : 21600, 21600,
1257 : NULL, 0);
1258 :
1259 : const Vertex BENT_UP_ARROW_VERTICES[] =
1260 : {
1261 : {0, CALCULATED_VALUE(8)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(5), 0}, {21600, CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), 21600}, {0, 21600}
1262 : };
1263 :
1264 : const unsigned short BENT_UP_ARROW_SEGMENTS[] =
1265 : {
1266 : 0x4000, 0x0008, 0x6001, 0x8000
1267 : };
1268 :
1269 : const Calculation BENT_UP_ARROW_CALC[] =
1270 : {
1271 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0403, 1, 2}, {0x6000, PROP_ADJUST_VAL_FIRST, 0x0404, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x6000, PROP_ADJUST_VAL_FIRST, 0x0406, 0}, {0x6000, 0x0407, 0x0406, 0}, {0x8000, 21600, 0, 0x406}, {0xa000, 0x409, 0, 0x406}
1272 : };
1273 :
1274 : const TextRectangle BENT_UP_ARROW_TRS[] =
1275 : {
1276 : { {CALCULATED_VALUE(2), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)} }, { {CALCULATED_VALUE(7), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)} }
1277 : };
1278 :
1279 : const int BENT_UP_ARROW_DEFAULT_ADJUST[] =
1280 : {
1281 : 9340, 18500, 7200
1282 : };
1283 :
1284 0 : const CustomShape CS_BENT_UP_ARROW(
1285 : BENT_UP_ARROW_VERTICES, sizeof(BENT_UP_ARROW_VERTICES) / sizeof(Vertex),
1286 : BENT_UP_ARROW_SEGMENTS, sizeof(BENT_UP_ARROW_SEGMENTS) / sizeof(unsigned short),
1287 : BENT_UP_ARROW_CALC, sizeof(BENT_UP_ARROW_CALC) / sizeof(Calculation),
1288 : BENT_UP_ARROW_DEFAULT_ADJUST, sizeof(BENT_UP_ARROW_DEFAULT_ADJUST) / sizeof(int),
1289 : BENT_UP_ARROW_TRS, sizeof(BENT_UP_ARROW_TRS) / sizeof(TextRectangle),
1290 : 21600, 21600,
1291 : NULL, 0);
1292 :
1293 : const Vertex DOWN_ARROW_VERTICES[] =
1294 : {
1295 : {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {0, CALCULATED_VALUE(1)}, {10800, 21600}, {21600, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), 0}
1296 : };
1297 :
1298 : const unsigned short DOWN_ARROW_SEGMENTS[] =
1299 : {
1300 : 0x4000, 0x0006, 0x6001, 0x8000
1301 : };
1302 :
1303 : const Calculation DOWN_ARROW_CALC[] =
1304 : {
1305 : {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 21600, 0, 0x401}, {0x6001, 0x403, 0x400, 10800}, {0x6000, 0x401, 0x404, 0}, {0x6001, 0x401, 0x400, 10800}, {0xa000, 0x401, 0, 0x406}
1306 : };
1307 :
1308 : const TextRectangle DOWN_ARROW_TRS[] =
1309 : {
1310 : { {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(2), CALCULATED_VALUE(5)} }
1311 : };
1312 :
1313 : const int DOWN_ARROW_DEFAULT_ADJUST[] =
1314 : {
1315 : 16200, 5400
1316 : };
1317 :
1318 0 : const CustomShape CS_DOWN_ARROW(
1319 : DOWN_ARROW_VERTICES, sizeof(DOWN_ARROW_VERTICES) / sizeof(Vertex),
1320 : DOWN_ARROW_SEGMENTS, sizeof(DOWN_ARROW_SEGMENTS) / sizeof(unsigned short),
1321 : DOWN_ARROW_CALC, sizeof(DOWN_ARROW_CALC) / sizeof(Calculation),
1322 : DOWN_ARROW_DEFAULT_ADJUST, sizeof(DOWN_ARROW_DEFAULT_ADJUST) / sizeof(int),
1323 : DOWN_ARROW_TRS, sizeof(DOWN_ARROW_TRS) / sizeof(TextRectangle),
1324 : 21600, 21600,
1325 : NULL, 0);
1326 :
1327 : const Vertex UP_ARROW_VERTICES[] =
1328 : {
1329 : {CALCULATED_VALUE(0), 21600}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {0, CALCULATED_VALUE(1)}, {10800, 0}, {21600, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), 21600}
1330 : };
1331 :
1332 : const unsigned short UP_ARROW_SEGMENTS[] =
1333 : {
1334 : 0x4000, 0x0006, 0x6001, 0x8000
1335 : };
1336 :
1337 : const Calculation UP_ARROW_CALC[] =
1338 : {
1339 : {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 21600, 0, 0x401}, {0x6001, 0x403, 0x400, 10800}, {0x6000, 0x401, 0x404, 0}, {0x6001, 0x401, 0x400, 10800}, {0xa000, 0x401, 0, 0x406}
1340 : };
1341 :
1342 : const TextRectangle UP_ARROW_TRS[] =
1343 : {
1344 : { {CALCULATED_VALUE(0), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(2), 21600} }
1345 : };
1346 :
1347 : const int UP_ARROW_DEFAULT_ADJUST[] =
1348 : {
1349 : 5400, 5400
1350 : };
1351 :
1352 0 : const CustomShape CS_UP_ARROW(
1353 : UP_ARROW_VERTICES, sizeof(UP_ARROW_VERTICES) / sizeof(Vertex),
1354 : UP_ARROW_SEGMENTS, sizeof(UP_ARROW_SEGMENTS) / sizeof(unsigned short),
1355 : UP_ARROW_CALC, sizeof(UP_ARROW_CALC) / sizeof(Calculation),
1356 : UP_ARROW_DEFAULT_ADJUST, sizeof(UP_ARROW_DEFAULT_ADJUST) / sizeof(int),
1357 : UP_ARROW_TRS, sizeof(UP_ARROW_TRS) / sizeof(TextRectangle),
1358 : 21600, 21600,
1359 : NULL, 0);
1360 :
1361 : const Vertex LEFT_RIGHT_ARROW_VERTICES[] =
1362 : {
1363 : {0, 10800}, {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), 0}, {21600, 10800}, {CALCULATED_VALUE(2), 21600}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(0), 21600}
1364 : };
1365 :
1366 : const unsigned short LEFT_RIGHT_ARROW_SEGMENTS[] =
1367 : {
1368 : 0x4000, 0x0009, 0x6001, 0x8000
1369 : };
1370 :
1371 : const Calculation LEFT_RIGHT_ARROW_CALC[] =
1372 : {
1373 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x6001, PROP_ADJUST_VAL_FIRST, 0x404, 10800}, {0x8000, 21600, 0, 0x405}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x6001, PROP_ADJUST_VAL_FIRST + 1, 0x407, 10800}, {0x8000, 21600, 0, 0x408}
1374 : };
1375 :
1376 : const TextRectangle LEFT_RIGHT_ARROW_TRS[] =
1377 : {
1378 : { {CALCULATED_VALUE(5), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(6), CALCULATED_VALUE(3)} }
1379 : };
1380 :
1381 : const int LEFT_RIGHT_ARROW_DEFAULT_ADJUST[] =
1382 : {
1383 : 4300, 5400
1384 : };
1385 :
1386 0 : const CustomShape CS_LEFT_RIGHT_ARROW(
1387 : LEFT_RIGHT_ARROW_VERTICES, sizeof(LEFT_RIGHT_ARROW_VERTICES) / sizeof(Vertex),
1388 : LEFT_RIGHT_ARROW_SEGMENTS, sizeof(LEFT_RIGHT_ARROW_SEGMENTS) / sizeof(unsigned short),
1389 : LEFT_RIGHT_ARROW_CALC, sizeof(LEFT_RIGHT_ARROW_CALC) / sizeof(Calculation),
1390 : LEFT_RIGHT_ARROW_DEFAULT_ADJUST, sizeof(LEFT_RIGHT_ARROW_DEFAULT_ADJUST) / sizeof(int),
1391 : LEFT_RIGHT_ARROW_TRS, sizeof(LEFT_RIGHT_ARROW_TRS) / sizeof(TextRectangle),
1392 : 21600, 21600,
1393 : NULL, 0);
1394 :
1395 : const Vertex SEAL_32_VERTICES[] =
1396 : {
1397 : {CALCULATED_VALUE(0x05), CALCULATED_VALUE(0x06)}, {CALCULATED_VALUE(0x07), CALCULATED_VALUE(0x08)}, {CALCULATED_VALUE(0x09), CALCULATED_VALUE(0x0a)}, {CALCULATED_VALUE(0x0b), CALCULATED_VALUE(0x0c)}, {CALCULATED_VALUE(0x0d), CALCULATED_VALUE(0x0e)}, {CALCULATED_VALUE(0x0f), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x11), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0x15), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x17), CALCULATED_VALUE(0x18)}, {CALCULATED_VALUE(0x19), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x1b), CALCULATED_VALUE(0x1c)}, {CALCULATED_VALUE(0x1d), CALCULATED_VALUE(0x1e)}, {CALCULATED_VALUE(0x1f), CALCULATED_VALUE(0x20)}, {CALCULATED_VALUE(0x21), CALCULATED_VALUE(0x22)}, {CALCULATED_VALUE(0x23), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x25), CALCULATED_VALUE(0x26)}, {CALCULATED_VALUE(0x27), CALCULATED_VALUE(0x28)}, {CALCULATED_VALUE(0x29), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0x2b), CALCULATED_VALUE(0x2c)}, {CALCULATED_VALUE(0x2d), CALCULATED_VALUE(0x2e)}, {CALCULATED_VALUE(0x2f), CALCULATED_VALUE(0x30)}, {CALCULATED_VALUE(0x31), CALCULATED_VALUE(0x32)}, {CALCULATED_VALUE(0x33), CALCULATED_VALUE(0x34)}, {CALCULATED_VALUE(0x35), CALCULATED_VALUE(0x36)}, {CALCULATED_VALUE(0x37), CALCULATED_VALUE(0x38)}, {CALCULATED_VALUE(0x39), CALCULATED_VALUE(0x3a)}, {CALCULATED_VALUE(0x3b), CALCULATED_VALUE(0x3c)}, {CALCULATED_VALUE(0x3d), CALCULATED_VALUE(0x3e)}, {CALCULATED_VALUE(0x3f), CALCULATED_VALUE(0x40)}, {CALCULATED_VALUE(0x41), CALCULATED_VALUE(0x42)}, {CALCULATED_VALUE(0x43), CALCULATED_VALUE(0x44)}, {CALCULATED_VALUE(0x45), CALCULATED_VALUE(0x46)}, {CALCULATED_VALUE(0x47), CALCULATED_VALUE(0x48)}, {CALCULATED_VALUE(0x49), CALCULATED_VALUE(0x4a)}, {CALCULATED_VALUE(0x4b), CALCULATED_VALUE(0x4c)}, {CALCULATED_VALUE(0x4d), CALCULATED_VALUE(0x4e)}, {CALCULATED_VALUE(0x4f), CALCULATED_VALUE(0x50)}, {CALCULATED_VALUE(0x51), CALCULATED_VALUE(0x52)}, {CALCULATED_VALUE(0x53), CALCULATED_VALUE(0x54)}, {CALCULATED_VALUE(0x55), CALCULATED_VALUE(0x56)}, {CALCULATED_VALUE(0x57), CALCULATED_VALUE(0x58)}, {CALCULATED_VALUE(0x59), CALCULATED_VALUE(0x5a)}, {CALCULATED_VALUE(0x5b), CALCULATED_VALUE(0x5c)}, {CALCULATED_VALUE(0x5d), CALCULATED_VALUE(0x5e)}, {CALCULATED_VALUE(0x5f), CALCULATED_VALUE(0x60)}, {CALCULATED_VALUE(0x61), CALCULATED_VALUE(0x62)}, {CALCULATED_VALUE(0x63), CALCULATED_VALUE(0x64)}, {CALCULATED_VALUE(0x65), CALCULATED_VALUE(0x66)}, {CALCULATED_VALUE(0x67), CALCULATED_VALUE(0x68)}, {CALCULATED_VALUE(0x69), CALCULATED_VALUE(0x6a)}, {CALCULATED_VALUE(0x6b), CALCULATED_VALUE(0x6c)}, {CALCULATED_VALUE(0x6d), CALCULATED_VALUE(0x6e)}, {CALCULATED_VALUE(0x6f), CALCULATED_VALUE(0x70)}, {CALCULATED_VALUE(0x71), CALCULATED_VALUE(0x72)}, {CALCULATED_VALUE(0x73), CALCULATED_VALUE(0x74)}, {CALCULATED_VALUE(0x75), CALCULATED_VALUE(0x76)}, {CALCULATED_VALUE(0x77), CALCULATED_VALUE(0x78)}, {CALCULATED_VALUE(0x79), CALCULATED_VALUE(0x7a)}, {CALCULATED_VALUE(0x7b), CALCULATED_VALUE(0x7c)}, {CALCULATED_VALUE(0x7d), CALCULATED_VALUE(0x7e)}, {CALCULATED_VALUE(0x7f), CALCULATED_VALUE(0x80)}, {CALCULATED_VALUE(0x81), CALCULATED_VALUE(0x82)}, {CALCULATED_VALUE(0x83), CALCULATED_VALUE(0x84)}, {CALCULATED_VALUE(0x05), CALCULATED_VALUE(0x06)}
1398 : };
1399 :
1400 : const Calculation SEAL_32_CALC[] =
1401 : {
1402 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2081, 0x400, 10800, 315}, {0x2082, 0x400, 10800, 315}, {0x2081, 0x400, 10800, 135}, {0x2082, 0x400, 10800, 135}, {0x0081, 0, 10800, 0}, {0x0082, 0, 10800, 0}, {0x2081, 0x400, 10800, 5}, {0x2082, 0x400, 10800, 5}, {0x0081, 0, 10800, 11}, {0x0082, 0, 10800, 11}, {0x2081, 0x400, 10800, 16}, {0x2082, 0x400, 10800, 16}, {0x0081, 0, 10800, 22}, {0x0082, 0, 10800, 22}, {0x2081, 0x400, 10800, 28}, {0x2082, 0x400, 10800, 28}, {0x0081, 0, 10800, 33}, {0x0082, 0, 10800, 33}, {0x2081, 0x400, 10800, 39}, {0x2082, 0x400, 10800, 39}, {0x0081, 0, 10800, 45}, {0x0082, 0, 10800, 45}, {0x2081, 0x400, 10800, 50}, {0x2082, 0x400, 10800, 50}, {0x0081, 0, 10800, 56}, {0x0082, 0, 10800, 56}, {0x2081, 0x400, 10800, 61}, {0x2082, 0x400, 10800, 61}, {0x0081, 0, 10800, 67}, {0x0082, 0, 10800, 67}, {0x2081, 0x400, 10800, 73}, {0x2082, 0x400, 10800, 73}, {0x0081, 0, 10800, 78}, {0x0082, 0, 10800, 78}, {0x2081, 0x400, 10800, 84}, {0x2082, 0x400, 10800, 84}, {0x0081, 0, 10800, 90}, {0x0082, 0, 10800, 90}, {0x2081, 0x400, 10800, 95}, {0x2082, 0x400, 10800, 95}, {0x0081, 0, 10800, 101}, {0x0082, 0, 10800, 101}, {0x2081, 0x400, 10800, 106}, {0x2082, 0x400, 10800, 106}, {0x0081, 0, 10800, 112}, {0x0082, 0, 10800, 112}, {0x2081, 0x400, 10800, 118}, {0x2082, 0x400, 10800, 118}, {0x0081, 0, 10800, 123}, {0x0082, 0, 10800, 123}, {0x2081, 0x400, 10800, 129}, {0x2082, 0x400, 10800, 129}, {0x0081, 0, 10800, 135}, {0x0082, 0, 10800, 135}, {0x2081, 0x400, 10800, 140}, {0x2082, 0x400, 10800, 140}, {0x0081, 0, 10800, 146}, {0x0082, 0, 10800, 146}, {0x2081, 0x400, 10800, 151}, {0x2082, 0x400, 10800, 151}, {0x0081, 0, 10800, 157}, {0x0082, 0, 10800, 157}, {0x2081, 0x400, 10800, 163}, {0x2082, 0x400, 10800, 163}, {0x0081, 0, 10800, 168}, {0x0082, 0, 10800, 168}, {0x2081, 0x400, 10800, 174}, {0x2082, 0x400, 10800, 174}, {0x0081, 0, 10800, 180}, {0x0082, 0, 10800, 180}, {0x2081, 0x400, 10800, 185}, {0x2082, 0x400, 10800, 185}, {0x0081, 0, 10800, 191}, {0x0082, 0, 10800, 191}, {0x2081, 0x400, 10800, 196}, {0x2082, 0x400, 10800, 196}, {0x0081, 0, 10800, 202}, {0x0082, 0, 10800, 202}, {0x2081, 0x400, 10800, 208}, {0x2082, 0x400, 10800, 208}, {0x0081, 0, 10800, 213}, {0x0082, 0, 10800, 213}, {0x2081, 0x400, 10800, 219}, {0x2082, 0x400, 10800, 219}, {0x0081, 0, 10800, 225}, {0x0082, 0, 10800, 225}, {0x2081, 0x400, 10800, 230}, {0x2082, 0x400, 10800, 230}, {0x0081, 0, 10800, 236}, {0x0082, 0, 10800, 236}, {0x2081, 0x400, 10800, 241}, {0x2082, 0x400, 10800, 241}, {0x0081, 0, 10800, 247}, {0x0082, 0, 10800, 247}, {0x2081, 0x400, 10800, 253}, {0x2082, 0x400, 10800, 253}, {0x0081, 0, 10800, 258}, {0x0082, 0, 10800, 258}, {0x2081, 0x400, 10800, 264}, {0x2082, 0x400, 10800, 264}, {0x0081, 0, 10800, 270}, {0x0082, 0, 10800, 270}, {0x2081, 0x400, 10800, 275}, {0x2082, 0x400, 10800, 275}, {0x0081, 0, 10800, 281}, {0x0082, 0, 10800, 281}, {0x2081, 0x400, 10800, 286}, {0x2082, 0x400, 10800, 286}, {0x0081, 0, 10800, 292}, {0x0082, 0, 10800, 292}, {0x2081, 0x400, 10800, 298}, {0x2082, 0x400, 10800, 298}, {0x0081, 0, 10800, 303}, {0x0082, 0, 10800, 303}, {0x2081, 0x400, 10800, 309}, {0x2082, 0x400, 10800, 309}, {0x0081, 0, 10800, 315}, {0x0082, 0, 10800, 315}, {0x2081, 0x400, 10800, 320}, {0x2082, 0x400, 10800, 320}, {0x0081, 0, 10800, 326}, {0x0082, 0, 10800, 326}, {0x2081, 0x400, 10800, 331}, {0x2082, 0x400, 10800, 331}, {0x0081, 0, 10800, 337}, {0x0082, 0, 10800, 337}, {0x2081, 0x400, 10800, 343}, {0x2082, 0x400, 10800, 343}, {0x0081, 0, 10800, 348}, {0x0082, 0, 10800, 348}, {0x2081, 0x400, 10800, 354}, {0x2082, 0x400, 10800, 354}
1403 : };
1404 :
1405 : const TextRectangle SEAL_32_TRS[] =
1406 : {
1407 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
1408 : };
1409 :
1410 : const int SEAL_32_DEFAULT_ADJUST[] =
1411 : {
1412 : 2500
1413 : };
1414 :
1415 0 : const CustomShape CS_SEAL_32(
1416 : SEAL_32_VERTICES, sizeof(SEAL_32_VERTICES) / sizeof(Vertex),
1417 : NULL, 0,
1418 : SEAL_32_CALC, sizeof(SEAL_32_CALC) / sizeof(Calculation),
1419 : SEAL_32_DEFAULT_ADJUST, sizeof(SEAL_32_DEFAULT_ADJUST) / sizeof(int),
1420 : SEAL_32_TRS, sizeof(SEAL_32_TRS) / sizeof(TextRectangle),
1421 : 21600, 21600,
1422 : NULL, 0);
1423 :
1424 : const Vertex SEAL_16_VERTICES[] =
1425 : {
1426 : {CALCULATED_VALUE(0x05), CALCULATED_VALUE(0x06)}, {CALCULATED_VALUE(0x07), CALCULATED_VALUE(0x08)}, {CALCULATED_VALUE(0x09), CALCULATED_VALUE(0x0a)}, {CALCULATED_VALUE(0x0b), CALCULATED_VALUE(0x0c)}, {CALCULATED_VALUE(0x0d), CALCULATED_VALUE(0x0e)}, {CALCULATED_VALUE(0x0f), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x11), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0x15), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x17), CALCULATED_VALUE(0x18)}, {CALCULATED_VALUE(0x19), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x1b), CALCULATED_VALUE(0x1c)}, {CALCULATED_VALUE(0x1d), CALCULATED_VALUE(0x1e)}, {CALCULATED_VALUE(0x1f), CALCULATED_VALUE(0x20)}, {CALCULATED_VALUE(0x21), CALCULATED_VALUE(0x22)}, {CALCULATED_VALUE(0x23), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x25), CALCULATED_VALUE(0x26)}, {CALCULATED_VALUE(0x27), CALCULATED_VALUE(0x28)}, {CALCULATED_VALUE(0x29), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0x2b), CALCULATED_VALUE(0x2c)}, {CALCULATED_VALUE(0x2d), CALCULATED_VALUE(0x2e)}, {CALCULATED_VALUE(0x2f), CALCULATED_VALUE(0x30)}, {CALCULATED_VALUE(0x31), CALCULATED_VALUE(0x32)}, {CALCULATED_VALUE(0x33), CALCULATED_VALUE(0x34)}, {CALCULATED_VALUE(0x35), CALCULATED_VALUE(0x36)}, {CALCULATED_VALUE(0x37), CALCULATED_VALUE(0x38)}, {CALCULATED_VALUE(0x39), CALCULATED_VALUE(0x3a)}, {CALCULATED_VALUE(0x3b), CALCULATED_VALUE(0x3c)}, {CALCULATED_VALUE(0x3d), CALCULATED_VALUE(0x3e)}, {CALCULATED_VALUE(0x3f), CALCULATED_VALUE(0x40)}, {CALCULATED_VALUE(0x41), CALCULATED_VALUE(0x42)}, {CALCULATED_VALUE(0x43), CALCULATED_VALUE(0x44)}, {CALCULATED_VALUE(0x05), CALCULATED_VALUE(0x06)}
1427 : };
1428 :
1429 : const Calculation SEAL_16_CALC[] =
1430 : {
1431 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2081, 0x400, 10800, 315}, {0x2082, 0x400, 10800, 315}, {0x2081, 0x400, 10800, 135}, {0x2082, 0x400, 10800, 135}, {0x0081, 0, 10800, 0}, {0x0082, 0, 10800, 0}, {0x2081, 0x400, 10800, 11}, {0x2082, 0x400, 10800, 11}, {0x0081, 0, 10800, 22}, {0x0082, 0, 10800, 22}, {0x2081, 0x400, 10800, 33}, {0x2082, 0x400, 10800, 33}, {0x0081, 0, 10800, 45}, {0x0082, 0, 10800, 45}, {0x2081, 0x400, 10800, 56}, {0x2082, 0x400, 10800, 56}, {0x0081, 0, 10800, 67}, {0x0082, 0, 10800, 67}, {0x2081, 0x400, 10800, 78}, {0x2082, 0x400, 10800, 78}, {0x0081, 0, 10800, 90}, {0x0082, 0, 10800, 90}, {0x2081, 0x400, 10800, 101}, {0x2082, 0x400, 10800, 101}, {0x0081, 0, 10800, 112}, {0x0082, 0, 10800, 112}, {0x2081, 0x400, 10800, 123}, {0x2082, 0x400, 10800, 123}, {0x0081, 0, 10800, 135}, {0x0082, 0, 10800, 135}, {0x2081, 0x400, 10800, 146}, {0x2082, 0x400, 10800, 146}, {0x0081, 0, 10800, 157}, {0x0082, 0, 10800, 157}, {0x2081, 0x400, 10800, 168}, {0x2082, 0x400, 10800, 168}, {0x0081, 0, 10800, 180}, {0x0082, 0, 10800, 180}, {0x2081, 0x400, 10800, 191}, {0x2082, 0x400, 10800, 191}, {0x0081, 0, 10800, 202}, {0x0082, 0, 10800, 202}, {0x2081, 0x400, 10800, 213}, {0x2082, 0x400, 10800, 213}, {0x0081, 0, 10800, 225}, {0x0082, 0, 10800, 225}, {0x2081, 0x400, 10800, 236}, {0x2082, 0x400, 10800, 236}, {0x0081, 0, 10800, 247}, {0x0082, 0, 10800, 247}, {0x2081, 0x400, 10800, 258}, {0x2082, 0x400, 10800, 258}, {0x0081, 0, 10800, 270}, {0x0082, 0, 10800, 270}, {0x2081, 0x400, 10800, 281}, {0x2082, 0x400, 10800, 281}, {0x0081, 0, 10800, 292}, {0x0082, 0, 10800, 292}, {0x2081, 0x400, 10800, 303}, {0x2082, 0x400, 10800, 303}, {0x0081, 0, 10800, 315}, {0x0082, 0, 10800, 315}, {0x2081, 0x400, 10800, 326}, {0x2082, 0x400, 10800, 326}, {0x0081, 0, 10800, 337}, {0x0082, 0, 10800, 337}, {0x2081, 0x400, 10800, 348}, {0x2082, 0x400, 10800, 348}
1432 : };
1433 :
1434 : const TextRectangle SEAL_16_TRS[] =
1435 : {
1436 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
1437 : };
1438 :
1439 : const int SEAL_16_DEFAULT_ADJUST[] =
1440 : {
1441 : 2500
1442 : };
1443 :
1444 0 : const CustomShape CS_SEAL_16(
1445 : SEAL_16_VERTICES, sizeof(SEAL_16_VERTICES) / sizeof(Vertex),
1446 : NULL, 0,
1447 : SEAL_16_CALC, sizeof(SEAL_16_CALC) / sizeof(Calculation),
1448 : SEAL_16_DEFAULT_ADJUST, sizeof(SEAL_16_DEFAULT_ADJUST) / sizeof(int),
1449 : SEAL_16_TRS, sizeof(SEAL_16_TRS) / sizeof(TextRectangle),
1450 : 21600, 21600,
1451 : NULL, 0);
1452 :
1453 : const Vertex NO_SMOKING_VERTICES[] =
1454 : {
1455 : {10800, 10800}, {10800, 10800}, {0, 360}, {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(9), CALCULATED_VALUE(0xa)}, {CALCULATED_VALUE(0xb), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0xd), CALCULATED_VALUE(0xe)}, {CALCULATED_VALUE(0xf), CALCULATED_VALUE(0x10)}
1456 : };
1457 :
1458 : const unsigned short NO_SMOKING_SEGMENTS[] =
1459 : {
1460 : 0xa203, 0x6000, 0xa404, 0x6000, 0xa404, 0x6000, 0x8000
1461 : };
1462 :
1463 : const Calculation NO_SMOKING_CALC[] =
1464 : {
1465 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0xa080, 0x403, 0, 0x402}, {0x8000, 10800, 0, 0x403}, {0x4000, 10800, 0x403, 0}, {0x8000, 10800, 0, 0x404}, {0x4000, 10800, 0x404, 0}, {0x6081, 0x405, 0x407, 45}, {0x6082, 0x405, 0x407, 45}, {0x6081, 0x405, 0x408, 45}, {0x6082, 0x405, 0x408, 45}, {0x6081, 0x406, 0x408, 45}, {0x6082, 0x406, 0x408, 45}, {0x6081, 0x406, 0x407, 45}, {0x6082, 0x406, 0x407, 45}
1466 : };
1467 :
1468 : const TextRectangle NO_SMOKING_TRS[] =
1469 : {
1470 : { {3163, 3163}, {18437, 18437} }
1471 : };
1472 :
1473 : const int NO_SMOKING_DEFAULT_ADJUST[] =
1474 : {
1475 : 2700
1476 : };
1477 :
1478 : const Vertex NO_SMOKING_GLUE_POINTS[] =
1479 : {
1480 : {10800, 0}, {3163, 3163}, {0, 10800}, {3163, 18437}, {10800, 21600}, {18437, 18437}, {21600, 10800}, {18437, 3163}
1481 : };
1482 :
1483 0 : const CustomShape CS_NO_SMOKING(
1484 : NO_SMOKING_VERTICES, sizeof(NO_SMOKING_VERTICES) / sizeof(Vertex),
1485 : NO_SMOKING_SEGMENTS, sizeof(NO_SMOKING_SEGMENTS) / sizeof(unsigned short),
1486 : NO_SMOKING_CALC, sizeof(NO_SMOKING_CALC) / sizeof(Calculation),
1487 : NO_SMOKING_DEFAULT_ADJUST, sizeof(NO_SMOKING_DEFAULT_ADJUST) / sizeof(int),
1488 : NO_SMOKING_TRS, sizeof(NO_SMOKING_TRS) / sizeof(TextRectangle),
1489 : 21600, 21600,
1490 : NO_SMOKING_GLUE_POINTS, sizeof(NO_SMOKING_GLUE_POINTS) / sizeof(Vertex));
1491 :
1492 : const Vertex SEAL_8_VERTICES[] =
1493 : {
1494 : {CALCULATED_VALUE(5), CALCULATED_VALUE(6)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(17), CALCULATED_VALUE(18)}, {CALCULATED_VALUE(23), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(29), CALCULATED_VALUE(30)}, {CALCULATED_VALUE(35), CALCULATED_VALUE(36)}, {CALCULATED_VALUE(41), CALCULATED_VALUE(42)}, {CALCULATED_VALUE(47), CALCULATED_VALUE(48)}, {CALCULATED_VALUE(53), CALCULATED_VALUE(54)}, {CALCULATED_VALUE(59), CALCULATED_VALUE(60)}, {CALCULATED_VALUE(65), CALCULATED_VALUE(66)}, {CALCULATED_VALUE(71), CALCULATED_VALUE(72)}, {CALCULATED_VALUE(77), CALCULATED_VALUE(78)}, {CALCULATED_VALUE(83), CALCULATED_VALUE(84)}, {CALCULATED_VALUE(89), CALCULATED_VALUE(90)}, {CALCULATED_VALUE(95), CALCULATED_VALUE(96)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(6)}
1495 : };
1496 :
1497 : const Calculation SEAL_8_CALC[] =
1498 : {
1499 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2081, 0x400, 10800, 315}, {0x2082, 0x400, 10800, 315}, {0x2081, 0x400, 10800, 135}, {0x2082, 0x400, 10800, 135}, {0x0081, 0, 10800, 0}, {0x0082, 0, 10800, 0}, {0x2081, 0x400, 10800, 7}, {0x2082, 0x400, 10800, 7}, {0x0081, 0, 10800, 15}, {0x0082, 0, 10800, 15}, {0x2081, 0x400, 10800, 22}, {0x2082, 0x400, 10800, 22}, {0x0081, 0, 10800, 30}, {0x0082, 0, 10800, 30}, {0x2081, 0x400, 10800, 37}, {0x2082, 0x400, 10800, 37}, {0x0081, 0, 10800, 45}, {0x0082, 0, 10800, 45}, {0x2081, 0x400, 10800, 52}, {0x2082, 0x400, 10800, 52}, {0x0081, 0, 10800, 60}, {0x0082, 0, 10800, 60}, {0x2081, 0x400, 10800, 67}, {0x2082, 0x400, 10800, 67}, {0x0081, 0, 10800, 75}, {0x0082, 0, 10800, 75}, {0x2081, 0x400, 10800, 82}, {0x2082, 0x400, 10800, 82}, {0x0081, 0, 10800, 90}, {0x0082, 0, 10800, 90}, {0x2081, 0x400, 10800, 97}, {0x2082, 0x400, 10800, 97}, {0x0081, 0, 10800, 105}, {0x0082, 0, 10800, 105}, {0x2081, 0x400, 10800, 112}, {0x2082, 0x400, 10800, 112}, {0x0081, 0, 10800, 120}, {0x0082, 0, 10800, 120}, {0x2081, 0x400, 10800, 127}, {0x2082, 0x400, 10800, 127}, {0x0081, 0, 10800, 135}, {0x0082, 0, 10800, 135}, {0x2081, 0x400, 10800, 142}, {0x2082, 0x400, 10800, 142}, {0x0081, 0, 10800, 150}, {0x0082, 0, 10800, 150}, {0x2081, 0x400, 10800, 157}, {0x2082, 0x400, 10800, 157}, {0x0081, 0, 10800, 165}, {0x0082, 0, 10800, 165}, {0x2081, 0x400, 10800, 172}, {0x2082, 0x400, 10800, 172}, {0x0081, 0, 10800, 180}, {0x0082, 0, 10800, 180}, {0x2081, 0x400, 10800, 187}, {0x2082, 0x400, 10800, 187}, {0x0081, 0, 10800, 195}, {0x0082, 0, 10800, 195}, {0x2081, 0x400, 10800, 202}, {0x2082, 0x400, 10800, 202}, {0x0081, 0, 10800, 210}, {0x0082, 0, 10800, 210}, {0x2081, 0x400, 10800, 217}, {0x2082, 0x400, 10800, 217}, {0x0081, 0, 10800, 225}, {0x0082, 0, 10800, 225}, {0x2081, 0x400, 10800, 232}, {0x2082, 0x400, 10800, 232}, {0x0081, 0, 10800, 240}, {0x0082, 0, 10800, 240}, {0x2081, 0x400, 10800, 247}, {0x2082, 0x400, 10800, 247}, {0x0081, 0, 10800, 255}, {0x0082, 0, 10800, 255}, {0x2081, 0x400, 10800, 262}, {0x2082, 0x400, 10800, 262}, {0x0081, 0, 10800, 270}, {0x0082, 0, 10800, 270}, {0x2081, 0x400, 10800, 277}, {0x2082, 0x400, 10800, 277}, {0x0081, 0, 10800, 285}, {0x0082, 0, 10800, 285}, {0x2081, 0x400, 10800, 292}, {0x2082, 0x400, 10800, 292}, {0x0081, 0, 10800, 300}, {0x0082, 0, 10800, 300}, {0x2081, 0x400, 10800, 307}, {0x2082, 0x400, 10800, 307}, {0x0081, 0, 10800, 315}, {0x0082, 0, 10800, 315}, {0x2081, 0x400, 10800, 322}, {0x2082, 0x400, 10800, 322}, {0x0081, 0, 10800, 330}, {0x0082, 0, 10800, 330}, {0x2081, 0x400, 10800, 337}, {0x2082, 0x400, 10800, 337}, {0x0081, 0, 10800, 345}, {0x0082, 0, 10800, 345}, {0x2081, 0x400, 10800, 352}, {0x2082, 0x400, 10800, 352}
1500 : };
1501 :
1502 : const TextRectangle SEAL_8_TRS[] =
1503 : {
1504 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
1505 : };
1506 :
1507 : const int SEAL_8_DEFAULT_ADJUST[] =
1508 : {
1509 : 2500
1510 : };
1511 :
1512 0 : const CustomShape CS_SEAL_8(
1513 : SEAL_8_VERTICES, sizeof(SEAL_8_VERTICES) / sizeof(Vertex),
1514 : NULL, 0,
1515 : SEAL_8_CALC, sizeof(SEAL_8_CALC) / sizeof(Calculation),
1516 : SEAL_8_DEFAULT_ADJUST, sizeof(SEAL_8_DEFAULT_ADJUST) / sizeof(int),
1517 : SEAL_8_TRS, sizeof(SEAL_8_TRS) / sizeof(TextRectangle),
1518 : 21600, 21600,
1519 : NULL, 0);
1520 :
1521 : const Vertex RIBBON_2_VERTICES[] =
1522 : {
1523 : {CALCULATED_VALUE(12), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(14)}, {CALCULATED_VALUE(15), 21600}, {CALCULATED_VALUE(16), 21600}, {0, 21600}, {2750, CALCULATED_VALUE(7)}, {0, CALCULATED_VALUE(2)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(10), 0}, {CALCULATED_VALUE(11), 0}, {CALCULATED_VALUE(17), 0}, {CALCULATED_VALUE(18), 0}, {CALCULATED_VALUE(19), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(19), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(19), CALCULATED_VALUE(2)}, {21600, CALCULATED_VALUE(2)}, {18850, CALCULATED_VALUE(7)}, {21600, 21600}, {CALCULATED_VALUE(20), 21600}, {CALCULATED_VALUE(21), 21600}, {CALCULATED_VALUE(22), CALCULATED_VALUE(14)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(23)}, {CALCULATED_VALUE(15), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(10), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(25)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(27)}, {CALCULATED_VALUE(10), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(22), CALCULATED_VALUE(23)}, {CALCULATED_VALUE(21), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(20), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(17), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(18), CALCULATED_VALUE(24)}, {CALCULATED_VALUE(19), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(19), CALCULATED_VALUE(25)}, {CALCULATED_VALUE(19), CALCULATED_VALUE(27)}, {CALCULATED_VALUE(18), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(17), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(25)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(19), CALCULATED_VALUE(25)}, {CALCULATED_VALUE(19), CALCULATED_VALUE(2)}
1524 : };
1525 :
1526 : const unsigned short RIBBON_2_SEGMENTS[] =
1527 : {
1528 : 0x4000, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x6001, 0x8000, 0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000, 0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
1529 : };
1530 :
1531 : const Calculation RIBBON_2_CALC[] =
1532 : {
1533 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x8000, 21600, 0, 0x401}, {0x2001, 0x402, 1, 2}, {0x2001, 0x403, 1, 2}, {0x2001, 0x404, 1, 2}, {0x2001, 0x401, 1, 2}, {0x8000, 21600, 0, 0x406}, {0x0000, 420, 0, 0}, {0x2001, 0x408, 2, 1}, {0x6000, 0x400, 0x408, 0}, {0x6000, 0x400, 0x409, 0}, {0x2000, 0x400, 2700, 0}, {0x8000, 21600, 0, 0x404}, {0x8000, 21600, 0, 0x405}, {0xa000, 0x40c, 0, 0x408}, {0xa000, 0x40c, 0, 0x409}, {0x8000, 21600, 0, 0x40b}, {0x8000, 21600, 0, 0x40a}, {0x8000, 21600, 0, 0x400}, {0x8000, 21600, 0, 0x410}, {0x8000, 21600, 0, 0x40f}, {0x8000, 21600, 0, 0x40c}, {0xa000, 0x40d, 0, 0x405}, {0x6000, 0x401, 0x403, 0}, {0x6000, 0x401, 0x404, 0}, {0x6000, 0x419, 0x405, 0}, {0xa000, 0x419, 0, 0x405}
1534 : };
1535 :
1536 : const TextRectangle RIBBON_2_TRS[] =
1537 : {
1538 : { {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(19), CALCULATED_VALUE(1)} }
1539 : };
1540 :
1541 : const int RIBBON_2_DEFAULT_ADJUST[] =
1542 : {
1543 : 5400, 18900
1544 : };
1545 :
1546 0 : const CustomShape CS_RIBBON_2(
1547 : RIBBON_2_VERTICES, sizeof(RIBBON_2_VERTICES) / sizeof(Vertex),
1548 : RIBBON_2_SEGMENTS, sizeof(RIBBON_2_SEGMENTS) / sizeof(unsigned short),
1549 : RIBBON_2_CALC, sizeof(RIBBON_2_CALC) / sizeof(Calculation),
1550 : RIBBON_2_DEFAULT_ADJUST, sizeof(RIBBON_2_DEFAULT_ADJUST) / sizeof(int),
1551 : RIBBON_2_TRS, sizeof(RIBBON_2_TRS) / sizeof(TextRectangle),
1552 : 21600, 21600,
1553 : NULL, 0);
1554 :
1555 : const Vertex CHEVRON_VERTICES[] =
1556 : {
1557 : {0, 0}, {CALCULATED_VALUE(0), 0}, {21600, 10800}, {CALCULATED_VALUE(0), 21600}, {0, 21600}, {CALCULATED_VALUE(1), 10800}
1558 : };
1559 :
1560 : const unsigned short CHEVRON_SEGMENTS[] =
1561 : {
1562 : 0x4000, 0x0005, 0x6001, 0x8000
1563 : };
1564 :
1565 : const Calculation CHEVRON_CALC[] =
1566 : {
1567 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, 0x0400}
1568 : };
1569 :
1570 : const TextRectangle CHEVRON_TRS[] =
1571 : {
1572 : { {0, 0}, {21600, 21600} }
1573 : };
1574 :
1575 : const int CHEVRON_DEFAULT_ADJUST[] =
1576 : {
1577 : 16200
1578 : };
1579 :
1580 0 : const CustomShape CS_CHEVRON(
1581 : CHEVRON_VERTICES, sizeof(CHEVRON_VERTICES) / sizeof(Vertex),
1582 : CHEVRON_SEGMENTS, sizeof(CHEVRON_SEGMENTS) / sizeof(unsigned short),
1583 : CHEVRON_CALC, sizeof(CHEVRON_CALC) / sizeof(Calculation),
1584 : CHEVRON_DEFAULT_ADJUST, sizeof(CHEVRON_DEFAULT_ADJUST) / sizeof(int),
1585 : CHEVRON_TRS, sizeof(CHEVRON_TRS) / sizeof(TextRectangle),
1586 : 21600, 21600,
1587 : NULL, 0);
1588 :
1589 : const Vertex PENTAGON_VERTICES[] =
1590 : {
1591 : {10800, 0}, {0, 8260}, {4230, 21600}, {17370, 21600}, {21600, 8260}, {10800, 0}
1592 : };
1593 :
1594 : const TextRectangle PENTAGON_TRS[] =
1595 : {
1596 : { {4230, 5080}, {17370, 21600} }
1597 : };
1598 :
1599 : const Vertex PENTAGON_GLUE_POINTS[] =
1600 : {
1601 : {10800, 0}, {0, 8260}, {4230, 21600}, {10800, 21600}, {17370, 21600}, {21600, 8260}
1602 : };
1603 :
1604 0 : const CustomShape CS_PENTAGON(
1605 : PENTAGON_VERTICES, sizeof(PENTAGON_VERTICES) / sizeof(Vertex),
1606 : NULL, 0,
1607 : NULL, 0,
1608 : NULL, 0,
1609 : PENTAGON_TRS, sizeof(PENTAGON_TRS) / sizeof(TextRectangle),
1610 : 21600, 21600,
1611 : PENTAGON_GLUE_POINTS, sizeof(PENTAGON_GLUE_POINTS) / sizeof(Vertex));
1612 :
1613 : const Vertex RIBBON_VERTICES[] =
1614 : {
1615 : {0, 0}, {CALCULATED_VALUE(3), 0}, {CALCULATED_VALUE(4), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(6), 0}, {21600, 0}, {CALCULATED_VALUE(18), CALCULATED_VALUE(14)}, {21600, CALCULATED_VALUE(15)}, {CALCULATED_VALUE(9), CALCULATED_VALUE(15)}, {CALCULATED_VALUE(9), CALCULATED_VALUE(16)}, {CALCULATED_VALUE(8), 21600}, {CALCULATED_VALUE(1), 21600}, {CALCULATED_VALUE(0), CALCULATED_VALUE(16)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(15)}, {0, CALCULATED_VALUE(15)}, {2700, CALCULATED_VALUE(14)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(6), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(9), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(15)}, {CALCULATED_VALUE(9), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(9), CALCULATED_VALUE(15)}
1616 : };
1617 :
1618 : const unsigned short RIBBON_SEGMENTS[] =
1619 : {
1620 : 0x4000, 0x0001, 0xa701, 0x0003, 0xa801, 0x0005, 0xa801, 0x0001, 0xa701, 0x0003, 0x6000, 0x8000, 0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000, 0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000, 0x4000, 0xaa00, 0x0001, 0x8000, 0x4000, 0xaa00, 0x0001, 0x8000
1621 : };
1622 :
1623 : const Calculation RIBBON_CALC[] =
1624 : {
1625 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, 0x400, 675, 0}, {0x2000, 0x401, 675, 0}, {0x2000, 0x402, 675, 0}, {0x2000, 0x403, 675, 0}, {0x8000, 21600, 0, 0x404}, {0x8000, 21600, 0, 0x403}, {0x8000, 21600, 0, 0x402}, {0x8000, 21600, 0, 0x401}, {0x8000, 21600, 0, 0x400}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2001, 0x40a, 1, 4}, {0x2001, 0x40b, 2, 1}, {0x2001, 0x40b, 3, 1}, {0x8000, 10800, 0, 0x40c}, {0x8000, 21600, 0, 0x40a}, {0x8000, 21600, 0, 0x40b}, {0x0001, 21600, 1, 2}, {0x0000, 21600, 0, 2700}, {0x2000, 0x411, 0, 2700}
1626 : };
1627 :
1628 : const TextRectangle RIBBON_TRS[] =
1629 : {
1630 : { {CALCULATED_VALUE(0), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(9), 21600} }
1631 : };
1632 :
1633 : const int RIBBON_DEFAULT_ADJUST[] =
1634 : {
1635 : 5400, 2700
1636 : };
1637 :
1638 : const Vertex RIBBON_GLUE_POINTS[] =
1639 : {
1640 : {CALCULATED_VALUE(17), CALCULATED_VALUE(10)}, {2700, CALCULATED_VALUE(14)}, {CALCULATED_VALUE(17), 21600}, {CALCULATED_VALUE(18), CALCULATED_VALUE(14)}
1641 : };
1642 :
1643 0 : const CustomShape CS_RIBBON(
1644 : RIBBON_VERTICES, sizeof(RIBBON_VERTICES) / sizeof(Vertex),
1645 : RIBBON_SEGMENTS, sizeof(RIBBON_SEGMENTS) / sizeof(unsigned short),
1646 : RIBBON_CALC, sizeof(RIBBON_CALC) / sizeof(Calculation),
1647 : RIBBON_DEFAULT_ADJUST, sizeof(RIBBON_DEFAULT_ADJUST) / sizeof(int),
1648 : RIBBON_TRS, sizeof(RIBBON_TRS) / sizeof(TextRectangle),
1649 : 21600, 21600,
1650 : RIBBON_GLUE_POINTS, sizeof(RIBBON_GLUE_POINTS) / sizeof(Vertex));
1651 :
1652 : const Vertex CALLOUT_2_VERTICES[] =
1653 : {
1654 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(5)}
1655 : };
1656 :
1657 : const unsigned short CALLOUT_2_SEGMENTS[] =
1658 : {
1659 : 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
1660 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
1661 : };
1662 :
1663 : const Calculation CALLOUT_2_CALC[] =
1664 : {
1665 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 3, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 4, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 5, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 6, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 7, 0, 0}
1666 : };
1667 :
1668 : const int CALLOUT_2_DEFAULT_ADJUST[] =
1669 : {
1670 : -10000, 24500, -3600, 4000, -1800, 4000
1671 : };
1672 :
1673 0 : const CustomShape CS_CALLOUT_2(
1674 : CALLOUT_2_VERTICES, sizeof(CALLOUT_2_VERTICES) / sizeof(Vertex),
1675 : CALLOUT_2_SEGMENTS, sizeof(CALLOUT_2_SEGMENTS) / sizeof(unsigned short),
1676 : CALLOUT_2_CALC, sizeof(CALLOUT_2_CALC) / sizeof(Calculation),
1677 : CALLOUT_2_DEFAULT_ADJUST, sizeof(CALLOUT_2_DEFAULT_ADJUST) / sizeof(int),
1678 : NULL, 0,
1679 : 21600, 21600,
1680 : NULL, 0);
1681 :
1682 : const Vertex CALLOUT_3_VERTICES[] =
1683 : {
1684 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(6), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}
1685 : };
1686 :
1687 : const unsigned short CALLOUT_3_SEGMENTS[] =
1688 : {
1689 : 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
1690 : 0x4000, 0xaa00, 0x0003, 0x8000 // NO FILL
1691 : };
1692 :
1693 : const Calculation CALLOUT_3_CALC[] =
1694 : {
1695 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 3, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 4, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 5, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 6, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 7, 0, 0}
1696 : };
1697 :
1698 : const int CALLOUT_3_DEFAULT_ADJUST[] =
1699 : {
1700 : 23400, 24500, 25200, 21600, 25200, 4000, 23400, 4000
1701 : };
1702 :
1703 0 : const CustomShape CS_CALLOUT_3(
1704 : CALLOUT_3_VERTICES, sizeof(CALLOUT_3_VERTICES) / sizeof(Vertex),
1705 : CALLOUT_3_SEGMENTS, sizeof(CALLOUT_3_SEGMENTS) / sizeof(unsigned short),
1706 : CALLOUT_3_CALC, sizeof(CALLOUT_3_CALC) / sizeof(Calculation),
1707 : CALLOUT_3_DEFAULT_ADJUST, sizeof(CALLOUT_3_DEFAULT_ADJUST) / sizeof(int),
1708 : NULL, 0,
1709 : 21600, 21600,
1710 : NULL, 0);
1711 :
1712 : const Vertex CALLOUT_1_VERTICES[] =
1713 : {
1714 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}
1715 : };
1716 :
1717 : const unsigned short CALLOUT_1_SEGMENTS[] =
1718 : {
1719 : 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE
1720 : 0x4000, 0x0001, 0x8000
1721 : };
1722 :
1723 : const Calculation CALLOUT_1_CALC[] =
1724 : {
1725 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 3, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 4, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 5, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 6, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 7, 0, 0}
1726 : };
1727 :
1728 : const int CALLOUT_1_DEFAULT_ADJUST[] =
1729 : {
1730 : -8300, 24500, -1800, 4000
1731 : };
1732 :
1733 0 : const CustomShape CS_CALLOUT_1(
1734 : CALLOUT_1_VERTICES, sizeof(CALLOUT_1_VERTICES) / sizeof(Vertex),
1735 : CALLOUT_1_SEGMENTS, sizeof(CALLOUT_1_SEGMENTS) / sizeof(unsigned short),
1736 : CALLOUT_1_CALC, sizeof(CALLOUT_1_CALC) / sizeof(Calculation),
1737 : CALLOUT_1_DEFAULT_ADJUST, sizeof(CALLOUT_1_DEFAULT_ADJUST) / sizeof(int),
1738 : NULL, 0,
1739 : 21600, 21600,
1740 : NULL, 0);
1741 :
1742 : const Vertex CURVED_CONNECTOR_5_VERTICES[] =
1743 : {
1744 : {0, 0}, {CALCULATED_VALUE(21), 0}, {CALCULATED_VALUE(0), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(14)}, {CALCULATED_VALUE(6), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(18)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(16)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(20)}, {CALCULATED_VALUE(10), 21600}, {21600, 21600}
1745 : };
1746 :
1747 : const unsigned short CURVED_CONNECTOR_5_SEGMENTS[] =
1748 : {
1749 : 0x4000, 0x2004, 0x8000
1750 : };
1751 :
1752 : const Calculation CURVED_CONNECTOR_5_CALC[] =
1753 : {
1754 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0x6000, 0x400, 0x401, 0}, {0x2001, 0x402, 1, 2}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x6000, 0x400, 0x403, 0}, {0x2001, 0x405, 1, 2}, {0x6000, 0x401, 0x403, 0}, {0x2001, 0x407, 1, 2}, {0x2000, 0x401, 21600, 0}, {0x2001, 0x409, 1, 2}, {0x2001, 0x404, 1, 2}, {0x2001, 0x40b, 1, 2}, {0x6000, 0x404, 0x40b, 0}, {0x2001, 0x40d, 1, 2}, {0x2000, 0x404, 21600, 0}, {0x2001, 0x40f, 1, 2}, {0x6000, 0x404, 0x410, 0}, {0x2001, 0x411, 1, 2}, {0x2000, 0x410, 21600, 0}, {0x2001, 0x413, 1, 2}, {0x2001, 0x400, 1, 2}
1755 : };
1756 :
1757 : const int CURVED_CONNECTOR_5_DEFAULT_ADJUST[] =
1758 : {
1759 : 10800, 10800, 10800
1760 : };
1761 :
1762 0 : const CustomShape CS_CURVED_CONNECTOR_5(
1763 : CURVED_CONNECTOR_5_VERTICES, sizeof(CURVED_CONNECTOR_5_VERTICES) / sizeof(Vertex),
1764 : CURVED_CONNECTOR_5_SEGMENTS, sizeof(CURVED_CONNECTOR_5_SEGMENTS) / sizeof(unsigned short),
1765 : CURVED_CONNECTOR_5_CALC, sizeof(CURVED_CONNECTOR_5_CALC) / sizeof(Calculation),
1766 : CURVED_CONNECTOR_5_DEFAULT_ADJUST, sizeof(CURVED_CONNECTOR_5_DEFAULT_ADJUST) / sizeof(int),
1767 : NULL, 0,
1768 : 21600, 21600,
1769 : NULL, 0);
1770 :
1771 : const Vertex CURVED_CONNECTOR_4_VERTICES[] =
1772 : {
1773 : {0, 0}, {CALCULATED_VALUE(1), 0}, {CALCULATED_VALUE(0), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(8)}, {21600, CALCULATED_VALUE(14)}, {21600, 21600}
1774 : };
1775 :
1776 : const unsigned short CURVED_CONNECTOR_4_SEGMENTS[] =
1777 : {
1778 : 0x4000, 0x2003, 0x8000
1779 : };
1780 :
1781 : const Calculation CURVED_CONNECTOR_4_CALC[] =
1782 : {
1783 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2001, 0x400, 1, 2}, {0x4000, 21600, 0x400, 0}, {0x2001, 0x402, 1, 2}, {0x6000, 0x400, 0x403, 0}, {0x2001, 0x404, 1, 2}, {0x2000, 0x403, 21600, 0}, {0x2001, 0x406, 1, 2}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2001, PROP_ADJUST_VAL_FIRST + 1, 1, 2}, {0x2001, PROP_ADJUST_VAL_FIRST + 1, 1, 4}, {0x6000, 0x408, 0x409, 0}, {0x2001, 0x40b, 1, 2}, {0x2000, 0x408, 21600, 0}, {0x2001, 0x40d, 1, 2}
1784 : };
1785 :
1786 : const int CURVED_CONNECTOR_4_DEFAULT_ADJUST[] =
1787 : {
1788 : 10800, 10800
1789 : };
1790 :
1791 0 : const CustomShape CS_CURVED_CONNECTOR_4(
1792 : CURVED_CONNECTOR_4_VERTICES, sizeof(CURVED_CONNECTOR_4_VERTICES) / sizeof(Vertex),
1793 : CURVED_CONNECTOR_4_SEGMENTS, sizeof(CURVED_CONNECTOR_4_SEGMENTS) / sizeof(unsigned short),
1794 : CURVED_CONNECTOR_4_CALC, sizeof(CURVED_CONNECTOR_4_CALC) / sizeof(Calculation),
1795 : CURVED_CONNECTOR_4_DEFAULT_ADJUST, sizeof(CURVED_CONNECTOR_4_DEFAULT_ADJUST) / sizeof(int),
1796 : NULL, 0,
1797 : 21600, 21600,
1798 : NULL, 0);
1799 :
1800 : const Vertex CURVED_CONNECTOR_3_VERTICES[] =
1801 : {
1802 : {0, 0}, {CALCULATED_VALUE(1), 0}, {CALCULATED_VALUE(0), 5400}, {CALCULATED_VALUE(0), 10800}, {CALCULATED_VALUE(0), 16200}, {CALCULATED_VALUE(3), 21600}, {21600, 21600}
1803 : };
1804 :
1805 : const unsigned short CURVED_CONNECTOR_3_SEGMENTS[] =
1806 : {
1807 : 0x4000, 0x2002, 0x8000
1808 : };
1809 :
1810 : const Calculation CURVED_CONNECTOR_3_CALC[] =
1811 : {
1812 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2001, 0x400, 1, 2}, {0x2000, 0x400, 21600, 0}, {0x2001, 0x402, 1, 2}
1813 : };
1814 :
1815 : const int CURVED_CONNECTOR_3_DEFAULT_ADJUST[] =
1816 : {
1817 : 10800
1818 : };
1819 :
1820 0 : const CustomShape CS_CURVED_CONNECTOR_3(
1821 : CURVED_CONNECTOR_3_VERTICES, sizeof(CURVED_CONNECTOR_3_VERTICES) / sizeof(Vertex),
1822 : CURVED_CONNECTOR_3_SEGMENTS, sizeof(CURVED_CONNECTOR_3_SEGMENTS) / sizeof(unsigned short),
1823 : CURVED_CONNECTOR_3_CALC, sizeof(CURVED_CONNECTOR_3_CALC) / sizeof(Calculation),
1824 : CURVED_CONNECTOR_3_DEFAULT_ADJUST, sizeof(CURVED_CONNECTOR_3_DEFAULT_ADJUST) / sizeof(int),
1825 : NULL, 0,
1826 : 21600, 21600,
1827 : NULL, 0);
1828 :
1829 :
1830 : const Vertex BENT_CONNECTOR_5_VERTICES[] =
1831 : {
1832 : {0, 0}, {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(0), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(1), 21600}, {21600, 21600}
1833 : };
1834 :
1835 : const unsigned short BENT_CONNECTOR_5_SEGMENTS[] =
1836 : {
1837 : 0x4000, 0x0005, 0x8000
1838 : };
1839 :
1840 : const Calculation BENT_CONNECTOR_5_CALC[] =
1841 : {
1842 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 2, 0, 0}, {0x6000, 0x400, 0x401, 0}, {0x2001, 0x402, 1, 2}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2001, 0x404, 1, 2}, {0x4000, 21600, 0x404, 0}, {0x2001, 0x406, 1, 2}
1843 : };
1844 :
1845 : const int BENT_CONNECTOR_5_DEFAULT_ADJUST[] =
1846 : {
1847 : 10800, 10800, 10800
1848 : };
1849 :
1850 0 : const CustomShape CS_BENT_CONNECTOR_5(
1851 : BENT_CONNECTOR_5_VERTICES, sizeof(BENT_CONNECTOR_5_VERTICES) / sizeof(Vertex),
1852 : BENT_CONNECTOR_5_SEGMENTS, sizeof(BENT_CONNECTOR_5_SEGMENTS) / sizeof(unsigned short),
1853 : BENT_CONNECTOR_5_CALC, sizeof(BENT_CONNECTOR_5_CALC) / sizeof(Calculation),
1854 : BENT_CONNECTOR_5_DEFAULT_ADJUST, sizeof(BENT_CONNECTOR_5_DEFAULT_ADJUST) / sizeof(int),
1855 : NULL, 0,
1856 : 21600, 21600,
1857 : NULL, 0);
1858 :
1859 : const Vertex CURVED_CONNECTOR_2_VERTICES[] =
1860 : {
1861 : {0, 0}, {10800, 0}, {21600, 10800}, {21600, 21600}
1862 : };
1863 :
1864 : const unsigned short CURVED_CONNECTOR_2_SEGMENTS[] =
1865 : {
1866 : 0x4000, 0x2001, 0x8000
1867 : };
1868 :
1869 0 : const CustomShape CS_CURVED_CONNECTOR_2(
1870 : CURVED_CONNECTOR_2_VERTICES, sizeof(CURVED_CONNECTOR_2_VERTICES) / sizeof(Vertex),
1871 : CURVED_CONNECTOR_2_SEGMENTS, sizeof(CURVED_CONNECTOR_2_SEGMENTS) / sizeof(unsigned short),
1872 : NULL, 0,
1873 : NULL, 0,
1874 : NULL, 0,
1875 : 21600, 21600,
1876 : NULL, 0);
1877 :
1878 : const Vertex BENT_CONNECTOR_4_VERTICES[] =
1879 : {
1880 : {0, 0}, {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {21600, CALCULATED_VALUE(1)}, {21600, 21600}
1881 : };
1882 :
1883 : const unsigned short BENT_CONNECTOR_4_SEGMENTS[] =
1884 : {
1885 : 0x4000, 0x0004, 0x8000
1886 : };
1887 :
1888 : const Calculation BENT_CONNECTOR_4_CALC[] =
1889 : {
1890 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, 0x400, 21600, 0}, {0x2001, 0x402, 1, 2}, {0x2001, 0x401, 1, 2}
1891 : };
1892 :
1893 : const int BENT_CONNECTOR_4_DEFAULT_ADJUST[] =
1894 : {
1895 : 10800, 10800
1896 : };
1897 :
1898 0 : const CustomShape CS_BENT_CONNECTOR_4(
1899 : BENT_CONNECTOR_4_VERTICES, sizeof(BENT_CONNECTOR_4_VERTICES) / sizeof(Vertex),
1900 : BENT_CONNECTOR_4_SEGMENTS, sizeof(BENT_CONNECTOR_4_SEGMENTS) / sizeof(unsigned short),
1901 : BENT_CONNECTOR_4_CALC, sizeof(BENT_CONNECTOR_4_CALC) / sizeof(Calculation),
1902 : BENT_CONNECTOR_4_DEFAULT_ADJUST, sizeof(BENT_CONNECTOR_4_DEFAULT_ADJUST) / sizeof(int),
1903 : NULL, 0,
1904 : 21600, 21600,
1905 : NULL, 0);
1906 :
1907 : const Vertex BENT_CONNECTOR_3_VERTICES[] =
1908 : {
1909 : {0, 0}, {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(0), 21600}, {21600, 21600}
1910 : };
1911 :
1912 : const unsigned short BENT_CONNECTOR_3_SEGMENTS[] =
1913 : {
1914 : 0x4000, 0x0003, 0x8000
1915 : };
1916 :
1917 : const Calculation BENT_CONNECTOR_3_CALC[] =
1918 : {
1919 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}
1920 : };
1921 :
1922 : const int BENT_CONNECTOR_3_DEFAULT_ADJUST[] =
1923 : {
1924 : 10800
1925 : };
1926 :
1927 0 : const CustomShape CS_BENT_CONNECTOR_3(
1928 : BENT_CONNECTOR_3_VERTICES, sizeof(BENT_CONNECTOR_3_VERTICES) / sizeof(Vertex),
1929 : BENT_CONNECTOR_3_SEGMENTS, sizeof(BENT_CONNECTOR_3_SEGMENTS) / sizeof(unsigned short),
1930 : BENT_CONNECTOR_3_CALC, sizeof(BENT_CONNECTOR_3_CALC) / sizeof(Calculation),
1931 : BENT_CONNECTOR_3_DEFAULT_ADJUST, sizeof(BENT_CONNECTOR_3_DEFAULT_ADJUST) / sizeof(int),
1932 : NULL, 0,
1933 : 21600, 21600,
1934 : NULL, 0);
1935 :
1936 : const Vertex BENT_CONNECTOR_2_VERTICES[] =
1937 : {
1938 : {0, 0}, {21600, 0}, {21600, 21600}
1939 : };
1940 :
1941 : const unsigned short BENT_CONNECTOR_2_SEGMENTS[] =
1942 : {
1943 : 0x4000, 0x0002, 0x8000
1944 : };
1945 :
1946 0 : const CustomShape CS_BENT_CONNECTOR_2(
1947 : BENT_CONNECTOR_2_VERTICES, sizeof(BENT_CONNECTOR_2_VERTICES) / sizeof(Vertex),
1948 : BENT_CONNECTOR_2_SEGMENTS, sizeof(BENT_CONNECTOR_2_SEGMENTS) / sizeof(unsigned short),
1949 : NULL, 0,
1950 : NULL, 0,
1951 : NULL, 0,
1952 : 21600, 21600,
1953 : NULL, 0);
1954 :
1955 : const Vertex STRAIGHT_CONNECTOR_1_VERTICES[] =
1956 : {
1957 : {0, 0}, {21600, 21600}
1958 : };
1959 :
1960 : const unsigned short STRAIGHT_CONNECTOR_1_SEGMENTS[] =
1961 : {
1962 : 0x4000, 0x0001, 0x8000
1963 : };
1964 :
1965 0 : const CustomShape CS_STRAIGHT_CONNECTOR_1(
1966 : STRAIGHT_CONNECTOR_1_VERTICES, sizeof(STRAIGHT_CONNECTOR_1_VERTICES) / sizeof(Vertex),
1967 : STRAIGHT_CONNECTOR_1_SEGMENTS, sizeof(STRAIGHT_CONNECTOR_1_SEGMENTS) / sizeof(unsigned short),
1968 : NULL, 0,
1969 : NULL, 0,
1970 : NULL, 0,
1971 : 21600, 21600,
1972 : NULL, 0);
1973 :
1974 : const Vertex TEXT_SIMPLE_VERTICES[] =
1975 : {
1976 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}
1977 : };
1978 :
1979 0 : const CustomShape CS_TEXT_SIMPLE(
1980 : TEXT_SIMPLE_VERTICES, sizeof(TEXT_SIMPLE_VERTICES) / sizeof(Vertex),
1981 : NULL, 0,
1982 : NULL, 0,
1983 : NULL, 0,
1984 : NULL, 0,
1985 : 21600, 21600,
1986 : NULL, 0);
1987 :
1988 : const Vertex DONUT_VERTICES[] =
1989 : {
1990 : {10800, 10800}, {10800, 10800}, {0, 360}, {10800, 10800}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)}, {0, 360}
1991 : };
1992 :
1993 : const unsigned short DONUT_SEGMENTS[] =
1994 : {
1995 : 0xa203, 0x6000, 0xa203, 0x8000
1996 : };
1997 :
1998 : const Calculation DONUT_CALC[] =
1999 : {
2000 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}
2001 : };
2002 :
2003 : const TextRectangle DONUT_TRS[] =
2004 : {
2005 : { {3163, 3163}, {18437, 18437} }
2006 : };
2007 :
2008 : const int DONUT_DEFAULT_ADJUST[] =
2009 : {
2010 : 5400
2011 : };
2012 :
2013 : const Vertex DONUT_GLUE_POINTS[] =
2014 : {
2015 : {10800, 0}, {3163, 3163}, {0, 10800}, {3163, 18437}, {10800, 21600}, {18437, 18437}, {21600, 10800}, {18437, 3163}
2016 : };
2017 :
2018 0 : const CustomShape CS_DONUT(
2019 : DONUT_VERTICES, sizeof(DONUT_VERTICES) / sizeof(Vertex),
2020 : DONUT_SEGMENTS, sizeof(DONUT_SEGMENTS) / sizeof(unsigned short),
2021 : DONUT_CALC, sizeof(DONUT_CALC) / sizeof(Calculation),
2022 : DONUT_DEFAULT_ADJUST, sizeof(DONUT_DEFAULT_ADJUST) / sizeof(int),
2023 : DONUT_TRS, sizeof(DONUT_TRS) / sizeof(TextRectangle),
2024 : 21600, 21600,
2025 : DONUT_GLUE_POINTS, sizeof(DONUT_GLUE_POINTS) / sizeof(Vertex));
2026 :
2027 : const Vertex CAN_VERTICES[] =
2028 : {
2029 : {44, 0}, {20, 0}, {0, CALCULATED_VALUE(2)}, {0, CALCULATED_VALUE(0)}, {0, CALCULATED_VALUE(3)}, {0, CALCULATED_VALUE(4)}, {20, 21600}, {44, 21600}, {68, 21600}, {88, CALCULATED_VALUE(4)}, {88, CALCULATED_VALUE(3)}, {88, CALCULATED_VALUE(0)}, {88, CALCULATED_VALUE(2)}, {68, 0}, {44, 0}, {44, 0}, {20, 0}, {0, CALCULATED_VALUE(2)}, {0, CALCULATED_VALUE(0)}, {0, CALCULATED_VALUE(5)}, {20, CALCULATED_VALUE(6)}, {44, CALCULATED_VALUE(6)}, {68, CALCULATED_VALUE(6)}, {88, CALCULATED_VALUE(5)}, {88, CALCULATED_VALUE(0)}, {88, CALCULATED_VALUE(2)}, {68, 0}, {44, 0}
2030 : };
2031 :
2032 : const unsigned short CAN_SEGMENTS[] =
2033 : {
2034 : 0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x6001, 0x8000, 0x4000, 0x2004, 0x6001, 0x8000
2035 : };
2036 :
2037 : const Calculation CAN_CALC[] =
2038 : {
2039 : {0x2001, PROP_ADJUST_VAL_FIRST, 2, 4}, {0x2001, OTHER_CALC_VAL, 6, 11}, {0xA000, OTHER_CALC_VAL, 0, OTHER_CALC_VAL | 0x1}, {0x8000, 21600, 0, OTHER_CALC_VAL}, {0x6000, OTHER_CALC_VAL | 0x3, OTHER_CALC_VAL | 0x1, 0}, {0x6000, OTHER_CALC_VAL, OTHER_CALC_VAL | 0x1, 0}, {0x2001, PROP_ADJUST_VAL_FIRST, 2, 2}, {0x0000, 44, 0, 0}
2040 : };
2041 :
2042 : const TextRectangle CAN_TRS[] =
2043 : {
2044 : { {0, CALCULATED_VALUE(6)}, {88, CALCULATED_VALUE(3)} }
2045 : };
2046 :
2047 : const int CAN_DEFAULT_ADJUST[] =
2048 : {
2049 : 5400
2050 : };
2051 :
2052 : const Vertex CAN_GLUE_POINTS[] =
2053 : {
2054 : {44, CALCULATED_VALUE(6)}, {44, 0}, {0, 10800}, {44, 21600}, {88, 10800}
2055 : };
2056 :
2057 0 : const CustomShape CS_CAN(
2058 : CAN_VERTICES, sizeof(CAN_VERTICES) / sizeof(Vertex),
2059 : CAN_SEGMENTS, sizeof(CAN_SEGMENTS) / sizeof(unsigned short),
2060 : CAN_CALC, sizeof(CAN_CALC) / sizeof(Calculation),
2061 : CAN_DEFAULT_ADJUST, sizeof(CAN_DEFAULT_ADJUST) / sizeof(int),
2062 : CAN_TRS, sizeof(CAN_TRS) / sizeof(TextRectangle),
2063 : 88, 21600,
2064 : CAN_GLUE_POINTS, sizeof(CAN_GLUE_POINTS) / sizeof(Vertex));
2065 :
2066 : const Vertex PLAQUE_VERTICES[] =
2067 : {
2068 : {CALCULATED_VALUE(0), 0}, {0, CALCULATED_VALUE(1)}, {0, CALCULATED_VALUE(2)}, {CALCULATED_VALUE(0), 21600}, {CALCULATED_VALUE(3), 21600}, {21600, CALCULATED_VALUE(2)}, {21600, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(3), 0}
2069 : };
2070 :
2071 : const unsigned short PLAQUE_SEGMENTS[] =
2072 : {
2073 : 0x4000, 0xA801, 0x0001, 0xA701, 0x0001, 0xA801, 0x0001, 0xA701, 0x6000, 0x8000
2074 : };
2075 :
2076 : const Calculation PLAQUE_CALC[] =
2077 : {
2078 : {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xA000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0xA000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0x2082, PROP_ADJUST_VAL_FIRST, 0, 45}, {0x2000, OTHER_CALC_VAL | 0x4, 0, 10800}, {0x8000, 0, 0, PROP_ADJUST_VAL_FIRST}, {0xA000, OTHER_CALC_VAL | 0x6, 0, OTHER_CALC_VAL | 0x5}, {0xA000, PROP_GEO_LEFT, 0, OTHER_CALC_VAL | 0x7}, {0xA000, PROP_GEO_TOP, 0, OTHER_CALC_VAL | 0x7}, {0x6000, PROP_GEO_RIGHT, OTHER_CALC_VAL | 0x7, 0}, {0x6000, PROP_GEO_BOTTOM, OTHER_CALC_VAL | 0x7, 0}, {0xA000, PROP_GEO_LEFT, 0, OTHER_CALC_VAL | 0x5}, {0xA000, PROP_GEO_TOP, 0, OTHER_CALC_VAL | 0x5}, {0x6000, PROP_GEO_RIGHT, OTHER_CALC_VAL | 0x5, 0}, {0x6000, PROP_GEO_BOTTOM, OTHER_CALC_VAL | 0x5, 0}
2079 : };
2080 :
2081 : const TextRectangle PLAQUE_TRS[] =
2082 : {
2083 : { {CALCULATED_VALUE(0xC), CALCULATED_VALUE(0xD)}, {CALCULATED_VALUE(0xE), CALCULATED_VALUE(0xF)} }
2084 : };
2085 :
2086 : const int PLAQUE_DEFAULT_ADJUST[] =
2087 : {
2088 : 3600
2089 : };
2090 :
2091 : const Vertex PLAQUE_GLUE_POINTS[] =
2092 : {
2093 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
2094 : };
2095 :
2096 0 : const CustomShape CS_PLAQUE(
2097 : PLAQUE_VERTICES, sizeof(PLAQUE_VERTICES) / sizeof(Vertex),
2098 : PLAQUE_SEGMENTS, sizeof(PLAQUE_SEGMENTS) / sizeof(unsigned short),
2099 : PLAQUE_CALC, sizeof(PLAQUE_CALC) / sizeof(Calculation),
2100 : PLAQUE_DEFAULT_ADJUST, sizeof(PLAQUE_DEFAULT_ADJUST) / sizeof(int),
2101 : PLAQUE_TRS, sizeof(PLAQUE_TRS) / sizeof(TextRectangle),
2102 : 21600, 21600,
2103 : PLAQUE_GLUE_POINTS, sizeof(PLAQUE_GLUE_POINTS) / sizeof(Vertex));
2104 :
2105 :
2106 : const Vertex BALLOON_VERTICES[] =
2107 : {
2108 : {3590, 0}, {0, 3590}, {0, 14460}, {3590, 18050}, {CALCULATED_VALUE(40), 21600}, {5420, 18050}, {18010, 18050}, {21600, 14460}, {21600, 3590}, {18010, 0}
2109 : };
2110 :
2111 : const unsigned short BALLOON_SEGMENTS[] =
2112 : {
2113 : 0x4000, 0xA701, 0x0001, 0xA801, 0x0003, 0xA701, 0x0001, 0xA801, 0x6001, 0x8000
2114 : };
2115 :
2116 : const Calculation BALLOON_CALC[] =
2117 : {
2118 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 10800}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 10800}, {0x6006, OTHER_CALC_VAL | 0x12, PROP_ADJUST_VAL_FIRST, 0}, {0x6006, OTHER_CALC_VAL | 0x12, PROP_ADJUST_VAL_FIRST + 1, 6280}, {OTHER_CALC_VAL | 0x17, PROP_ADJUST_VAL_FIRST, 0, 0x6006}, {0x6006, OTHER_CALC_VAL | 0x17, PROP_ADJUST_VAL_FIRST + 1, 15320}, {0x6006, OTHER_CALC_VAL | 0x1A, PROP_ADJUST_VAL_FIRST, 6280}, {0x6006, OTHER_CALC_VAL | 0x1A, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x6006, OTHER_CALC_VAL | 0x1D, PROP_ADJUST_VAL_FIRST, 15320}, {0x6006, OTHER_CALC_VAL | 0x1D, PROP_ADJUST_VAL_FIRST + 1, 21600}, {0x6006, OTHER_CALC_VAL | 0x20, PROP_ADJUST_VAL_FIRST, 21600}, {0x6006, OTHER_CALC_VAL | 0x20, PROP_ADJUST_VAL_FIRST + 1, 15320}, {0x6006, OTHER_CALC_VAL | 0x22, PROP_ADJUST_VAL_FIRST, 21600}, {0x6006, OTHER_CALC_VAL | 0x22, PROP_ADJUST_VAL_FIRST + 1, 6280}, {0x6006, OTHER_CALC_VAL | 0x24, PROP_ADJUST_VAL_FIRST, 15320}, {0x6006, OTHER_CALC_VAL | 0x24, PROP_ADJUST_VAL_FIRST + 1, 0}, {0x6006, OTHER_CALC_VAL | 0x26, PROP_ADJUST_VAL_FIRST, 6280}, {0x6006, OTHER_CALC_VAL | 0x26, PROP_ADJUST_VAL_FIRST + 1, 0}, {0xA006, PROP_ADJUST_VAL_FIRST, -1, OTHER_CALC_VAL | 0x13}, {0xA006, OTHER_CALC_VAL | 0x1, -1, OTHER_CALC_VAL | 0x16}, {0x2003, OTHER_CALC_VAL, 0, 0}, {0x2003, OTHER_CALC_VAL | 0x1, 0, 0}, {0xA000, OTHER_CALC_VAL | 0x14, 0, OTHER_CALC_VAL | 0x15}, {0xA006, PROP_ADJUST_VAL_FIRST, -1, OTHER_CALC_VAL | 0x18}, {0x6006, OTHER_CALC_VAL | 0x1, OTHER_CALC_VAL | 0x16, -1}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 21600}, {0x6006, OTHER_CALC_VAL | 0x19, OTHER_CALC_VAL | 0x1B, -1}, {0xA006, OTHER_CALC_VAL, -1, OTHER_CALC_VAL | 0x1C}, {0xA000, OTHER_CALC_VAL | 0x15, 0, OTHER_CALC_VAL | 0x14}, {0x6006, OTHER_CALC_VAL | 0x19, OTHER_CALC_VAL | 0x1E, -1}, {0x6006, OTHER_CALC_VAL, OTHER_CALC_VAL | 0x1C, -1}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 21600}, {0x6006, OTHER_CALC_VAL | 0x1F, OTHER_CALC_VAL | 0x21, -1}, {0x6006, OTHER_CALC_VAL | 0x1, OTHER_CALC_VAL | 0x16, -1}, {0x6006, OTHER_CALC_VAL | 0x1F, OTHER_CALC_VAL | 0x23, -1}, {0xA006, OTHER_CALC_VAL | 0x1, -1, OTHER_CALC_VAL | 0x16}, {0xA006, PROP_ADJUST_VAL_FIRST + 1, -1, OTHER_CALC_VAL | 0x25}, {0x6006, OTHER_CALC_VAL, OTHER_CALC_VAL | 0x1C, -1}, {0xA006, PROP_ADJUST_VAL_FIRST + 1, -1, OTHER_CALC_VAL | 0x27}, {0xA006, OTHER_CALC_VAL, -1, OTHER_CALC_VAL | 0x1C}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}
2119 : };
2120 :
2121 : const TextRectangle BALLOON_TRS[] =
2122 : {
2123 : { {800, 800}, {20800, 17250} }
2124 : };
2125 :
2126 : const int BALLOON_DEFAULT_ADJUST[] =
2127 : {
2128 : 1400, 25920
2129 : };
2130 :
2131 : const Vertex ARC_VERTICES[] =
2132 : {
2133 : {0, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(5)}, {10800, 10800}, {0, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(5)}
2134 : };
2135 :
2136 : const unsigned short ARC_SEGMENTS[] =
2137 : {
2138 : 0xa504, 0xab00, 0x0001, 0x6001, 0x8000, 0xa504, 0xaa00, 0x8000
2139 : };
2140 :
2141 : const Calculation ARC_CALC[] =
2142 : {
2143 : {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x400, 10800, 0}, {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x402, 10800, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST + 1, 0}, {0x2000, 0x404, 10800, 0}, {0x400a, 10800, PROP_ADJUST_VAL_FIRST + 1, 0}, {0x2000, 0x406, 10800, 0}
2144 : };
2145 :
2146 : const int ARC_DEFAULT_ADJUST[] =
2147 : {
2148 : 270 << 16, 0
2149 : };
2150 :
2151 : const Vertex ARC_GLUE_POINTS[] =
2152 : {
2153 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
2154 : };
2155 :
2156 0 : const CustomShape CS_ARC(
2157 : ARC_VERTICES, sizeof(ARC_VERTICES) / sizeof(Vertex),
2158 : ARC_SEGMENTS, sizeof(ARC_SEGMENTS) / sizeof(unsigned short),
2159 : ARC_CALC, sizeof(ARC_CALC) / sizeof(Calculation),
2160 : ARC_DEFAULT_ADJUST, sizeof(ARC_DEFAULT_ADJUST) / sizeof(int),
2161 : NULL, 0,
2162 : 21600, 21600,
2163 : ARC_GLUE_POINTS, sizeof(ARC_GLUE_POINTS) / sizeof(Vertex), 2 | 1);
2164 :
2165 0 : const CustomShape CS_BALLOON(
2166 : BALLOON_VERTICES, sizeof(BALLOON_VERTICES) / sizeof(Vertex),
2167 : BALLOON_SEGMENTS, sizeof(BALLOON_SEGMENTS) / sizeof(unsigned short),
2168 : BALLOON_CALC, sizeof(BALLOON_CALC) / sizeof(Calculation),
2169 : BALLOON_DEFAULT_ADJUST, sizeof(BALLOON_DEFAULT_ADJUST) / sizeof(int),
2170 : BALLOON_TRS, sizeof(BALLOON_TRS) / sizeof(TextRectangle),
2171 : 21600, 21600,
2172 : NULL, 0);
2173 :
2174 : const Vertex CUBE_VERTICES[] =
2175 : {
2176 : {0, CALCULATED_VALUE(12)}, {0, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), 0}, {CALCULATED_VALUE(11), 0}, {CALCULATED_VALUE(11), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(12)}, {0, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), 0}, {CALCULATED_VALUE(11), 0}, {CALCULATED_VALUE(4), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(11), 0}, {CALCULATED_VALUE(11), CALCULATED_VALUE(3)}
2177 : };
2178 :
2179 : const unsigned short CUBE_SEGMENTS[] =
2180 : {
2181 : 0x4000, 0x0005, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000
2182 : };
2183 :
2184 : const Calculation CUBE_CALC[] =
2185 : {
2186 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_TOP, OTHER_CALC_VAL, 0}, {0x6000, PROP_GEO_LEFT, OTHER_CALC_VAL, 0}, {0xA000, PROP_GEO_BOTTOM, 0, OTHER_CALC_VAL}, {0xA000, PROP_GEO_RIGHT, 0, OTHER_CALC_VAL}, {0xA000, PROP_GEO_RIGHT, 0, OTHER_CALC_VAL | 2}, {0x2001, OTHER_CALC_VAL | 5, 1, 2}, {0x6000, OTHER_CALC_VAL | 2, OTHER_CALC_VAL | 6, 0}, {0xA000, PROP_GEO_BOTTOM, 0, OTHER_CALC_VAL | 1}, {0x2001, OTHER_CALC_VAL | 8, 1, 2}, {0x6000, OTHER_CALC_VAL | 1, OTHER_CALC_VAL | 9, 0}, {0x2000, PROP_GEO_RIGHT, 0, 0}, {0x2000, PROP_GEO_BOTTOM, 0, 0}
2187 : };
2188 :
2189 : const TextRectangle CUBE_TRS[] =
2190 : {
2191 : { {0, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(12)} }
2192 : };
2193 :
2194 : const int CUBE_DEFAULT_ADJUST[] =
2195 : {
2196 : 5400
2197 : };
2198 :
2199 : const Vertex CUBE_GLUE_POINTS[] =
2200 : {
2201 : {CALCULATED_VALUE(7), 0}, {CALCULATED_VALUE(6), CALCULATED_VALUE(1)}, {0, CALCULATED_VALUE(10)}, {CALCULATED_VALUE(6), 21600}, {CALCULATED_VALUE(4), CALCULATED_VALUE(10)}, {21600, CALCULATED_VALUE(9)}
2202 : };
2203 :
2204 0 : const CustomShape CS_CUBE(
2205 : CUBE_VERTICES, sizeof(CUBE_VERTICES) / sizeof(Vertex),
2206 : CUBE_SEGMENTS, sizeof(CUBE_SEGMENTS) / sizeof(unsigned short),
2207 : CUBE_CALC, sizeof(CUBE_CALC) / sizeof(Calculation),
2208 : CUBE_DEFAULT_ADJUST, sizeof(CUBE_DEFAULT_ADJUST) / sizeof(int),
2209 : CUBE_TRS, sizeof(CUBE_TRS) / sizeof(TextRectangle),
2210 : 21600, 21600,
2211 : CUBE_GLUE_POINTS, sizeof(CUBE_GLUE_POINTS) / sizeof(Vertex));
2212 :
2213 : const Vertex HOME_PLATE_VERTICES[] =
2214 : {
2215 : {0, 0}, {CALCULATED_VALUE(0), 0}, {21600, 10800}, {CALCULATED_VALUE(0), 21600}, {0, 21600}
2216 : };
2217 :
2218 : const unsigned short HOME_PLATE_SEGMENTS[] =
2219 : {
2220 : 0x4000, 0x0004, 0x6001, 0x8000
2221 : };
2222 :
2223 : const Calculation HOME_PLATE_CALC[] =
2224 : {
2225 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}
2226 : };
2227 :
2228 : const TextRectangle HOME_PLATE_TRS[] =
2229 : {
2230 : { {0, 0}, {21600, 21600} }
2231 : };
2232 :
2233 : const int HOME_PLATE_DEFAULT_ADJUST[] =
2234 : {
2235 : 16200
2236 : };
2237 :
2238 0 : const CustomShape CS_HOME_PLATE(
2239 : HOME_PLATE_VERTICES, sizeof(HOME_PLATE_VERTICES) / sizeof(Vertex),
2240 : HOME_PLATE_SEGMENTS, sizeof(HOME_PLATE_SEGMENTS) / sizeof(unsigned short),
2241 : HOME_PLATE_CALC, sizeof(HOME_PLATE_CALC) / sizeof(Calculation),
2242 : HOME_PLATE_DEFAULT_ADJUST, sizeof(HOME_PLATE_DEFAULT_ADJUST) / sizeof(int),
2243 : HOME_PLATE_TRS, sizeof(HOME_PLATE_TRS) / sizeof(TextRectangle),
2244 : 21600, 21600,
2245 : NULL, 0);
2246 :
2247 : const Vertex ARROW_VERTICES[] =
2248 : {
2249 : {0, CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(0) }, {CALCULATED_VALUE(1) , 0}, {21600, 10800}, {CALCULATED_VALUE(1) , 21600}, {CALCULATED_VALUE(1) , CALCULATED_VALUE(2) }, {0, CALCULATED_VALUE(2) }
2250 : };
2251 :
2252 : const unsigned short ARROW_SEGMENTS[] =
2253 : {
2254 : 0x4000, 0x0006, 0x6001, 0x8000
2255 : };
2256 :
2257 : const Calculation ARROW_CALC[] =
2258 : {
2259 : {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 21600, 0, OTHER_CALC_VAL | 1}, {0x6001, OTHER_CALC_VAL | 3, OTHER_CALC_VAL, 10800}, {0x6000, OTHER_CALC_VAL | 1, OTHER_CALC_VAL | 4, 0}, {0x6001, OTHER_CALC_VAL | 1, OTHER_CALC_VAL, 10800}, {0xA000, OTHER_CALC_VAL | 1, 0, OTHER_CALC_VAL | 6}
2260 : };
2261 :
2262 : const TextRectangle ARROW_TRS[] =
2263 : {
2264 : { {0, CALCULATED_VALUE(0)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(2)} }
2265 : };
2266 :
2267 : const int ARROW_DEFAULT_ADJUST[] =
2268 : {
2269 : 16200, 5400
2270 : };
2271 :
2272 0 : const CustomShape CS_ARROW(
2273 : ARROW_VERTICES, sizeof(ARROW_VERTICES) / sizeof(Vertex),
2274 : ARROW_SEGMENTS, sizeof(ARROW_SEGMENTS) / sizeof(unsigned short),
2275 : ARROW_CALC, sizeof(ARROW_CALC) / sizeof(Calculation),
2276 : ARROW_DEFAULT_ADJUST, sizeof(ARROW_DEFAULT_ADJUST) / sizeof(int),
2277 : ARROW_TRS, sizeof(ARROW_TRS) / sizeof(TextRectangle),
2278 : 21600, 21600,
2279 : NULL, 0);
2280 :
2281 : const Vertex OCTAGON_VERTICES[] =
2282 : {
2283 : {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(2), 0}, {21600, CALCULATED_VALUE(1)}, {21600, CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), 21600}, {CALCULATED_VALUE(0), 21600}, {0, CALCULATED_VALUE(3)}, {0, CALCULATED_VALUE(1)}
2284 : };
2285 :
2286 : const unsigned short OCTAGON_SEGMENTS[] =
2287 : {
2288 : 0x4000, 0x0007, 0x6001, 0x8000
2289 : };
2290 :
2291 : const Calculation OCTAGON_CALC[] =
2292 : {
2293 : {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xA000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xA000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x6000, PROP_GEO_LEFT, OTHER_CALC_VAL | 4, 0}, {0x6000, PROP_GEO_TOP, OTHER_CALC_VAL | 4, 0}, {0xA000, PROP_GEO_RIGHT, 0, OTHER_CALC_VAL | 4}, {0xA000, PROP_GEO_BOTTOM, 0, OTHER_CALC_VAL | 4}
2294 : };
2295 :
2296 : const TextRectangle OCTAGON_TRS[] =
2297 : {
2298 : { {CALCULATED_VALUE(5), CALCULATED_VALUE(6)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(8)} }
2299 : };
2300 :
2301 : const int OCTAGON_DEFAULT_ADJUST[] =
2302 : {
2303 : 5000
2304 : };
2305 :
2306 : const Vertex OCTAGON_GLUE_POINTS[] =
2307 : {
2308 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
2309 : };
2310 :
2311 0 : const CustomShape CS_OCTAGON(
2312 : OCTAGON_VERTICES, sizeof(OCTAGON_VERTICES) / sizeof(Vertex),
2313 : OCTAGON_SEGMENTS, sizeof(OCTAGON_SEGMENTS) / sizeof(unsigned short),
2314 : OCTAGON_CALC, sizeof(OCTAGON_CALC) / sizeof(Calculation),
2315 : OCTAGON_DEFAULT_ADJUST, sizeof(OCTAGON_DEFAULT_ADJUST) / sizeof(int),
2316 : OCTAGON_TRS, sizeof(OCTAGON_TRS) / sizeof(TextRectangle),
2317 : 21600, 21600,
2318 : OCTAGON_GLUE_POINTS, sizeof(OCTAGON_GLUE_POINTS) / sizeof(Vertex));
2319 :
2320 : const Vertex ROUND_RECTANGLE_VERTICES[] =
2321 : {
2322 : {CALCULATED_VALUE(7), 0},
2323 : {0, CALCULATED_VALUE(8)},
2324 : {0, CALCULATED_VALUE(9)},
2325 : {CALCULATED_VALUE(7), 21600},
2326 : {CALCULATED_VALUE(10), 21600},
2327 : {21600, CALCULATED_VALUE(9)},
2328 : {21600, CALCULATED_VALUE(8)},
2329 : {CALCULATED_VALUE(10), 0}
2330 : };
2331 :
2332 : const unsigned short ROUND_RECTANGLE_SEGMENTS[] =
2333 : {
2334 : 0x4000, 0xA701, 0x0001, 0xA801, 0x0001, 0xA701, 0x0001, 0xA801, 0x6000, 0x8000
2335 : };
2336 :
2337 : const Calculation ROUND_RECTANGLE_CALC[] =
2338 : {
2339 : {0x000E, 0, 45, 0}, // 0
2340 : {0x6009, PROP_ADJUST_VAL_FIRST, OTHER_CALC_VAL, 0}, // 1
2341 : {0x2001, OTHER_CALC_VAL | 1, 3163, 7636}, // 2
2342 : {0x6000, PROP_GEO_LEFT, OTHER_CALC_VAL | 2, 0}, // 3
2343 : {0x6000, PROP_GEO_TOP, OTHER_CALC_VAL | 2, 0}, // 4
2344 : {0xA000, PROP_GEO_RIGHT, 0, OTHER_CALC_VAL | 2}, // 5
2345 : {0xA000, PROP_GEO_BOTTOM, 0, OTHER_CALC_VAL | 2}, // 6
2346 : {0x6000, PROP_GEO_LEFT, OTHER_CALC_VAL | 13, 0}, // 7
2347 : {0x6000, PROP_GEO_TOP, OTHER_CALC_VAL | 14, 0}, // 8
2348 : {0xA000, PROP_GEO_BOTTOM, 0, OTHER_CALC_VAL | 14}, // 9
2349 : {0xA000, PROP_GEO_RIGHT, 0, OTHER_CALC_VAL | 13}, // 10
2350 : {0x2005, ASPECT_RATIO, 1, 0}, // 11
2351 : {0x2004, ASPECT_RATIO, 1, 0}, // 12
2352 : {0xA001, PROP_ADJUST_VAL_FIRST, 1, OTHER_CALC_VAL | 11}, // 13
2353 : {0x6001, PROP_ADJUST_VAL_FIRST, OTHER_CALC_VAL | 12, 1} // 14
2354 : };
2355 :
2356 : const TextRectangle ROUND_RECTANGLE_TRS[] =
2357 : {
2358 : { {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(6)} }
2359 : };
2360 :
2361 : const int ROUND_RECTANGLE_DEFAULT_ADJUST[] =
2362 : {
2363 : 3600
2364 : };
2365 :
2366 0 : const CustomShape CS_ROUND_RECTANGLE(
2367 : ROUND_RECTANGLE_VERTICES, sizeof(ROUND_RECTANGLE_VERTICES) / sizeof(Vertex),
2368 : ROUND_RECTANGLE_SEGMENTS, sizeof(ROUND_RECTANGLE_SEGMENTS) / sizeof(unsigned short),
2369 : ROUND_RECTANGLE_CALC, sizeof(ROUND_RECTANGLE_CALC) / sizeof(Calculation),
2370 : ROUND_RECTANGLE_DEFAULT_ADJUST, sizeof(ROUND_RECTANGLE_DEFAULT_ADJUST) / sizeof(int),
2371 : ROUND_RECTANGLE_TRS, sizeof(ROUND_RECTANGLE_TRS) / sizeof(TextRectangle),
2372 : 21600, 21600,
2373 : NULL, 0);
2374 :
2375 : const Vertex STAR_VERTICES[] =
2376 : {
2377 : {10797, 0}, {8278, 8256}, {0, 8256}, {6722, 13405}, {4198, 21600}, {10797, 16580}, {17401, 21600}, {14878, 13405}, {21600, 8256}, {13321, 8256}, {10797, 0}
2378 : };
2379 :
2380 : const TextRectangle STAR_TRS[] =
2381 : {
2382 : { {6722, 8256}, {14878, 15460} }
2383 : };
2384 :
2385 0 : const CustomShape CS_STAR(
2386 : STAR_VERTICES, sizeof(STAR_VERTICES) / sizeof(Vertex),
2387 : NULL, 0,
2388 : NULL, 0,
2389 : NULL, 0,
2390 : STAR_TRS, sizeof(STAR_TRS) / sizeof(TextRectangle),
2391 : 21600, 21600,
2392 : NULL, 0);
2393 :
2394 : const Vertex PLUS_VERTICES[] =
2395 : {
2396 : {CALCULATED_VALUE(1), 0}, {CALCULATED_VALUE(2), 0}, {CALCULATED_VALUE(2), CALCULATED_VALUE(1)}, {21600, CALCULATED_VALUE(1)}, {21600, CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), 21600}, {CALCULATED_VALUE(1), 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(3)}, {0, CALCULATED_VALUE(3)}, {0, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(1), 0}
2397 : };
2398 :
2399 : const Calculation PLUS_CALC[] =
2400 : {
2401 : {0x2001, PROP_ADJUST_VAL_FIRST, 10799, 10800}, {0x2000, OTHER_CALC_VAL, 0, 0}, {0xA000, PROP_GEO_RIGHT, 0, OTHER_CALC_VAL}, {0xA000, PROP_GEO_BOTTOM, 0, OTHER_CALC_VAL}
2402 : };
2403 :
2404 : const TextRectangle PLUS_TRS[] =
2405 : {
2406 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)} }
2407 : };
2408 :
2409 : const int PLUS_DEFAULT_ADJUST[] =
2410 : {
2411 : 5400
2412 : };
2413 :
2414 : const Vertex PLUS_GLUE_POINTS[] =
2415 : {
2416 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
2417 : };
2418 :
2419 0 : const CustomShape CS_PLUS(
2420 : PLUS_VERTICES, sizeof(PLUS_VERTICES) / sizeof(Vertex),
2421 : NULL, 0,
2422 : PLUS_CALC, sizeof(PLUS_CALC) / sizeof(Calculation),
2423 : PLUS_DEFAULT_ADJUST, sizeof(PLUS_DEFAULT_ADJUST) / sizeof(int),
2424 : PLUS_TRS, sizeof(PLUS_TRS) / sizeof(TextRectangle),
2425 : 21600, 21600,
2426 : PLUS_GLUE_POINTS, sizeof(PLUS_GLUE_POINTS) / sizeof(Vertex));
2427 :
2428 :
2429 : const Vertex TRAPEZOID_VERTICES[] =
2430 : {
2431 : {0, 0}, {21600, 0}, {CALCULATED_VALUE(0), 21600}, {CALCULATED_VALUE(1), 21600}
2432 : };
2433 :
2434 : const unsigned short TRAPEZOID_SEGMENTS[] =
2435 : {
2436 : 0x4000, 0x0003, 0x6001, 0x8000
2437 : };
2438 :
2439 : const Calculation TRAPEZOID_CALC[] =
2440 : {
2441 : {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2001, PROP_ADJUST_VAL_FIRST, 10, 18}, {0x2000, OTHER_CALC_VAL | 2, 1750, 0}, {0x8000, 21600, 0, OTHER_CALC_VAL | 3}, {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x8000, 21600, 0, OTHER_CALC_VAL | 5}
2442 : };
2443 :
2444 : const TextRectangle TRAPEZOID_TRS[] =
2445 : {
2446 : { {CALCULATED_VALUE(3), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(4)} }
2447 : };
2448 :
2449 : const int TRAPEZOID_DEFAULT_ADJUST[] =
2450 : {
2451 : 5400
2452 : };
2453 :
2454 : const Vertex TRAPEZOID_GLUE_POINTS[] =
2455 : {
2456 : {CALCULATED_VALUE(6), 10800}, {10800, 21600}, {CALCULATED_VALUE(5), 10800}, {10800, 0}
2457 : };
2458 :
2459 0 : const CustomShape CS_TRAPEZOID(
2460 : TRAPEZOID_VERTICES, sizeof(TRAPEZOID_VERTICES) / sizeof(Vertex),
2461 : TRAPEZOID_SEGMENTS, sizeof(TRAPEZOID_SEGMENTS) / sizeof(unsigned short),
2462 : TRAPEZOID_CALC, sizeof(TRAPEZOID_CALC) / sizeof(Calculation),
2463 : TRAPEZOID_DEFAULT_ADJUST, sizeof(TRAPEZOID_DEFAULT_ADJUST) / sizeof(int),
2464 : TRAPEZOID_TRS, sizeof(TRAPEZOID_TRS) / sizeof(TextRectangle),
2465 : 21600, 21600,
2466 : TRAPEZOID_GLUE_POINTS, sizeof(TRAPEZOID_GLUE_POINTS) / sizeof(Vertex));
2467 :
2468 : const Vertex DIAMOND_VERTICES[] =
2469 : {
2470 : {10800, 0}, {21600, 10800}, {10800, 21600}, {0, 10800}, {10800, 0}
2471 : };
2472 :
2473 : const TextRectangle DIAMOND_TRS[] =
2474 : {
2475 : { {5400, 5400}, {16200, 16200} }
2476 : };
2477 :
2478 : const Vertex DIAMOND_GLUE_POINTS[] =
2479 : {
2480 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
2481 : };
2482 :
2483 0 : const CustomShape CS_DIAMOND(
2484 : DIAMOND_VERTICES, sizeof(DIAMOND_VERTICES) / sizeof(Vertex),
2485 : NULL, 0,
2486 : NULL, 0,
2487 : NULL, 0,
2488 : DIAMOND_TRS, sizeof(DIAMOND_TRS) / sizeof(TextRectangle),
2489 : 21600, 21600,
2490 : DIAMOND_GLUE_POINTS, sizeof(DIAMOND_GLUE_POINTS) / sizeof(Vertex));
2491 :
2492 : const Vertex RIGHT_TRIANGLE_VERTICES[] =
2493 : {
2494 : {0, 0}, {21600, 21600}, {0, 21600}, {0, 0}
2495 : };
2496 :
2497 : const TextRectangle RIGHT_TRIANGLE_TRS[] =
2498 : {
2499 : { {1900, 12700}, {12700, 19700} }
2500 : };
2501 :
2502 : const Vertex RIGHT_TRIANGLE_GLUE_POINTS[] =
2503 : {
2504 : {10800, 0}, {5400, 10800}, {0, 21600}, {10800, 21600}, {21600, 21600}, {16200, 10800}
2505 : };
2506 :
2507 0 : const CustomShape CS_RIGHT_TRIANGLE(
2508 : RIGHT_TRIANGLE_VERTICES, sizeof(RIGHT_TRIANGLE_VERTICES) / sizeof(Vertex),
2509 : NULL, 0,
2510 : NULL, 0,
2511 : NULL, 0,
2512 : RIGHT_TRIANGLE_TRS, sizeof(RIGHT_TRIANGLE_TRS) / sizeof(TextRectangle),
2513 : 21600, 21600,
2514 : RIGHT_TRIANGLE_GLUE_POINTS, sizeof(RIGHT_TRIANGLE_GLUE_POINTS) / sizeof(Vertex));
2515 :
2516 :
2517 : const Vertex RECTANGLE_VERTICES[] =
2518 : {
2519 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}
2520 : };
2521 :
2522 0 : const CustomShape CS_RECTANGLE(
2523 : RECTANGLE_VERTICES, sizeof(RECTANGLE_VERTICES) / sizeof(Vertex),
2524 : NULL, 0,
2525 : NULL, 0,
2526 : NULL, 0,
2527 : NULL, 0,
2528 : 21600, 21600,
2529 : NULL, 0);
2530 :
2531 : const Vertex ELLIPSE_VERTICES[] =
2532 : {
2533 : {10800, 10800}, {10800, 10800}, {0, 360}
2534 : };
2535 :
2536 : const unsigned short ELLIPSE_SEGMENTS[] =
2537 : {
2538 : 0xA203, 0x6000, 0x8000
2539 : };
2540 :
2541 : const TextRectangle ELLIPSE_TRS[] =
2542 : {
2543 : { {3163, 3163}, {18437, 18437} }
2544 : };
2545 :
2546 : const Vertex ELLIPSE_GLUE_PTS[] =
2547 : {
2548 : {10800, 0}, {3163, 3163}, {0, 10800}, {3163, 18437}, {10800, 21600},
2549 : {18437, 18437}, {21600, 10800}, {18437, 3163}
2550 : };
2551 :
2552 0 : const CustomShape CS_ELLIPSE(
2553 : ELLIPSE_VERTICES, sizeof(ELLIPSE_VERTICES) / sizeof(Vertex),
2554 : ELLIPSE_SEGMENTS, sizeof(ELLIPSE_SEGMENTS) / sizeof(unsigned short),
2555 : NULL, 0,
2556 : NULL, 0,
2557 : ELLIPSE_TRS, sizeof(ELLIPSE_TRS) / sizeof(TextRectangle),
2558 : 21600, 21600,
2559 : ELLIPSE_GLUE_PTS, sizeof(ELLIPSE_GLUE_PTS) / sizeof(Vertex));
2560 :
2561 : const Vertex SEAL_4_VERTICES[] =
2562 : {
2563 : {0, 10800}, {CALCULATED_VALUE(4), CALCULATED_VALUE(4)},
2564 : {10800, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)},
2565 : {21600, 10800}, {CALCULATED_VALUE(3), CALCULATED_VALUE(3)},
2566 : {10800, 21600}, {CALCULATED_VALUE(4), CALCULATED_VALUE(3)},
2567 : {0, 10800}
2568 : };
2569 :
2570 : const Calculation SEAL_4_CALC[] =
2571 : {
2572 : {0x0000, 7600, 0, 0},
2573 : {0x6001, OTHER_CALC_VAL, PROP_ADJUST_VAL_FIRST, 10800},
2574 : {0xA000, OTHER_CALC_VAL, 0, OTHER_CALC_VAL | 1},
2575 : {0x4000, 10800, OTHER_CALC_VAL | 2, 0},
2576 : {0x8000, 10800, 0, OTHER_CALC_VAL | 2}
2577 : };
2578 :
2579 : const TextRectangle SEAL_4_TRS[] =
2580 : {
2581 : { {CALCULATED_VALUE(4), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(3)} }
2582 : };
2583 :
2584 : const int SEAL_4_DEFAULT_ADJUST[] =
2585 : {
2586 : 8100
2587 : };
2588 :
2589 0 : const CustomShape CS_SEAL_4(
2590 : SEAL_4_VERTICES, sizeof(SEAL_4_VERTICES) / sizeof(Vertex),
2591 : NULL, 0,
2592 : SEAL_4_CALC, sizeof(SEAL_4_CALC) / sizeof(Calculation),
2593 : SEAL_4_DEFAULT_ADJUST, sizeof(SEAL_4_DEFAULT_ADJUST) / sizeof(int),
2594 : SEAL_4_TRS, sizeof(SEAL_4_TRS) / sizeof(TextRectangle),
2595 : 21600, 21600,
2596 : NULL, 0);
2597 :
2598 : const Vertex ISOCELES_TRIANGLE_VERTICES[] =
2599 : {
2600 : {CALCULATED_VALUE(0), 0}, {21600, 21600}, {0, 21600}
2601 : };
2602 :
2603 : const unsigned short ISOCELES_TRIANGLE_SEGMENTS[] =
2604 : {
2605 : 0x4000, 0x0002, 0x6001, 0x8000
2606 : };
2607 :
2608 : const Calculation ISOCELES_TRIANGLE_CALC[] =
2609 : {
2610 : {0x4000, 0, PROP_ADJUST_VAL_FIRST, 0},
2611 : {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2},
2612 : {0x2000, OTHER_CALC_VAL | 1, 10800, 0},
2613 : {0x2001, PROP_ADJUST_VAL_FIRST, 2, 3},
2614 : {0x2000, OTHER_CALC_VAL | 3, 7200, 0},
2615 : {0x8000, 21600, 0, OTHER_CALC_VAL},
2616 : {0x2001, OTHER_CALC_VAL | 5, 1, 2},
2617 : {0x8000, 21600, 0, OTHER_CALC_VAL | 6}
2618 : };
2619 :
2620 : const TextRectangle ISOCELES_TRIANGLE_TRS[] =
2621 : {
2622 : { {CALCULATED_VALUE(1), 10800}, {CALCULATED_VALUE(2), 18000} },
2623 : { {CALCULATED_VALUE(3), 7200}, {CALCULATED_VALUE(4), 21600} }
2624 : };
2625 :
2626 : const Vertex ISOCELES_TRIANGLE_GLUE_POINTS[] =
2627 : {
2628 : {10800, 0}, {CALCULATED_VALUE(1), 10800},
2629 : {0, 21600}, {10800, 21600},
2630 : {21600, 21600}, {CALCULATED_VALUE(7), 10800}
2631 : };
2632 :
2633 : const int ISOCELES_TRIANGLE_DEFAULT_ADJUST[] =
2634 : {
2635 : 10800
2636 : };
2637 :
2638 0 : const CustomShape CS_ISOCELES_TRIANGLE(
2639 : ISOCELES_TRIANGLE_VERTICES, sizeof(ISOCELES_TRIANGLE_VERTICES) / sizeof(Vertex),
2640 : ISOCELES_TRIANGLE_SEGMENTS, sizeof(ISOCELES_TRIANGLE_SEGMENTS) / sizeof(unsigned short),
2641 : ISOCELES_TRIANGLE_CALC, sizeof(ISOCELES_TRIANGLE_CALC) / sizeof(Calculation),
2642 : ISOCELES_TRIANGLE_DEFAULT_ADJUST, sizeof(ISOCELES_TRIANGLE_DEFAULT_ADJUST) / sizeof(int),
2643 : ISOCELES_TRIANGLE_TRS, sizeof(ISOCELES_TRIANGLE_TRS) / sizeof(TextRectangle),
2644 : 21600, 21600,
2645 : ISOCELES_TRIANGLE_GLUE_POINTS, sizeof(ISOCELES_TRIANGLE_GLUE_POINTS) / sizeof(Vertex));
2646 :
2647 : const Vertex PARALLELOGRAM_VERTICES[] =
2648 : {
2649 : {CALCULATED_VALUE(0), 0}, {21600, 0}, {CALCULATED_VALUE(1), 21600}, {0, 21600}
2650 : };
2651 :
2652 : const unsigned short PARALLELOGRAM_SEGMENTS[] =
2653 : {
2654 : 0x4000, 0x003, 0x6001, 0x8000
2655 : };
2656 :
2657 : const Calculation PARALLELOGRAM_CALC[] =
2658 : {
2659 : {0x4000, 0, PROP_ADJUST_VAL_FIRST, 0}, {0x8000, 0, 21600, PROP_ADJUST_VAL_FIRST}, {0x2001, PROP_ADJUST_VAL_FIRST, 10, 24}, {0x2000, OTHER_CALC_VAL | 2, 1750, 0}, {0x8000, 21600, 0, OTHER_CALC_VAL | 3}, {0x2001, OTHER_CALC_VAL, 1, 2}, {0x4000, 10800, OTHER_CALC_VAL | 5, 0}, {0x2000, OTHER_CALC_VAL, 0, 10800}, {0x6006, OTHER_CALC_VAL | 7, OTHER_CALC_VAL | 0xC, 21600}, {0x8000, 21600, 0, OTHER_CALC_VAL | 5}, {0x8001, 21600, 10800, OTHER_CALC_VAL}, {0x8000, 21600, 0, OTHER_CALC_VAL | 0xC}
2660 : };
2661 :
2662 : const TextRectangle PARALLELOGRAM_TRS[] =
2663 : {
2664 : { {CALCULATED_VALUE(3), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(4)} }
2665 : };
2666 :
2667 : const int PARALLELOGRAM_DEFAULT_ADJUST[] =
2668 : {
2669 : 5400
2670 : };
2671 :
2672 : const Vertex PARALLELOGRAM_GLUE_POINTS[] =
2673 : {
2674 : {CALCULATED_VALUE(6), 0}, {10800, CALCULATED_VALUE(8)}, {CALCULATED_VALUE(11), 10800}, {CALCULATED_VALUE(9), 21600}, {10800, CALCULATED_VALUE(10)}, {CALCULATED_VALUE(5), 10800}
2675 : };
2676 :
2677 0 : const CustomShape CS_PARALLELOGRAM(
2678 : PARALLELOGRAM_VERTICES, sizeof(PARALLELOGRAM_VERTICES) / sizeof(Vertex),
2679 : PARALLELOGRAM_SEGMENTS, sizeof(PARALLELOGRAM_SEGMENTS) / sizeof(unsigned short),
2680 : PARALLELOGRAM_CALC, sizeof(PARALLELOGRAM_CALC) / sizeof(Calculation),
2681 : PARALLELOGRAM_DEFAULT_ADJUST, sizeof(PARALLELOGRAM_DEFAULT_ADJUST) / sizeof(int),
2682 : PARALLELOGRAM_TRS, sizeof(PARALLELOGRAM_TRS) / sizeof(TextRectangle),
2683 : 21600, 21600,
2684 : PARALLELOGRAM_GLUE_POINTS, sizeof(PARALLELOGRAM_GLUE_POINTS) / sizeof(Vertex));
2685 :
2686 : const Vertex HEXAGON_VERTICES[] =
2687 : {
2688 : {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(1), 0}, {21600, 10800}, {CALCULATED_VALUE(1), 21600}, {CALCULATED_VALUE(0), 21600}, {0, 10800}
2689 : };
2690 :
2691 : const unsigned short HEXAGON_SEGMENTS[] =
2692 : {
2693 : 0x4000, 0x0005, 0x6001, 0x8000
2694 : };
2695 :
2696 : const Calculation HEXAGON_CALC[] =
2697 : {
2698 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, PROP_ADJUST_VAL_FIRST, 100, 234}, {0x2000, OTHER_CALC_VAL | 2, 1700, 0}, {0x8000, 21600, 0, OTHER_CALC_VAL | 3}
2699 : };
2700 :
2701 : const TextRectangle HEXAGON_TRS[] =
2702 : {
2703 : { {CALCULATED_VALUE(3), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(4)} }
2704 : };
2705 :
2706 : const int HEXAGON_DEFAULT_ADJUST[] =
2707 : {
2708 : 5400
2709 : };
2710 :
2711 : const Vertex HEXAGON_GLUE_POINTS[] =
2712 : {
2713 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
2714 : };
2715 :
2716 0 : const CustomShape CS_HEXAGON(
2717 : HEXAGON_VERTICES, sizeof(HEXAGON_VERTICES) / sizeof(Vertex),
2718 : HEXAGON_SEGMENTS, sizeof(HEXAGON_SEGMENTS) / sizeof(unsigned short),
2719 : HEXAGON_CALC, sizeof(HEXAGON_CALC) / sizeof(Calculation),
2720 : HEXAGON_DEFAULT_ADJUST, sizeof(HEXAGON_DEFAULT_ADJUST) / sizeof(int),
2721 : HEXAGON_TRS, sizeof(HEXAGON_TRS) / sizeof(TextRectangle),
2722 : 21600, 21600,
2723 : HEXAGON_GLUE_POINTS, sizeof(HEXAGON_GLUE_POINTS) / sizeof(Vertex));
2724 :
2725 : const Vertex FLOW_CHART_SUMMING_JUNCTION_VERTICES[] =
2726 : {
2727 : {10800, 10800}, {10800, 10800}, {0, 360}, {3100, 3100}, {18500, 18500}, {3100, 18500}, {18500, 3100}
2728 : };
2729 :
2730 : const unsigned short FLOW_CHART_SUMMING_JUNCTION_SEGMENTS[] =
2731 : {
2732 : 0xa203, 0x6000, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
2733 : };
2734 :
2735 : const TextRectangle FLOW_CHART_SUMMING_JUNCTION_TRS[] =
2736 : {
2737 : { {3100, 3100}, {18500, 18500} }
2738 : };
2739 :
2740 : const Vertex FLOW_CHART_SUMMING_JUNCTION_GLUE_POINTS[] =
2741 : {
2742 : {10800, 0}, {3163, 3163}, {0, 10800}, {3163, 18437}, {10800, 21600}, {18437, 18437}, {21600, 10800}, {18437, 3163}
2743 : };
2744 :
2745 0 : const CustomShape CS_FLOW_CHART_SUMMING_JUNCTION(
2746 : FLOW_CHART_SUMMING_JUNCTION_VERTICES, sizeof(FLOW_CHART_SUMMING_JUNCTION_VERTICES) / sizeof(Vertex),
2747 : FLOW_CHART_SUMMING_JUNCTION_SEGMENTS, sizeof(FLOW_CHART_SUMMING_JUNCTION_SEGMENTS) / sizeof(unsigned short),
2748 : NULL, 0,
2749 : NULL, 0,
2750 : FLOW_CHART_SUMMING_JUNCTION_TRS, sizeof(FLOW_CHART_SUMMING_JUNCTION_TRS) / sizeof(TextRectangle),
2751 : 21600, 21600,
2752 : FLOW_CHART_SUMMING_JUNCTION_GLUE_POINTS, sizeof(FLOW_CHART_SUMMING_JUNCTION_GLUE_POINTS) / sizeof(Vertex));
2753 :
2754 : const Vertex FLOW_CHART_PREPARATION_VERTICES[] =
2755 : {
2756 : {4350, 0}, {17250, 0}, {21600, 10800}, {17250, 21600}, {4350, 21600}, {0, 10800}, {4350, 0}
2757 : };
2758 :
2759 : const TextRectangle FLOW_CHART_PREPARATION_TRS[] =
2760 : {
2761 : { {4350, 0}, {17250, 21600} }
2762 : };
2763 :
2764 : const Vertex FLOW_CHART_PREPARATION_GLUE_POINTS[] =
2765 : {
2766 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
2767 : };
2768 :
2769 0 : const CustomShape CS_FLOW_CHART_PREPARATION(
2770 : FLOW_CHART_PREPARATION_VERTICES, sizeof(FLOW_CHART_PREPARATION_VERTICES) / sizeof(Vertex),
2771 : NULL, 0,
2772 : NULL, 0,
2773 : NULL, 0,
2774 : FLOW_CHART_PREPARATION_TRS, sizeof(FLOW_CHART_PREPARATION_TRS) / sizeof(TextRectangle),
2775 : 21600, 21600,
2776 : FLOW_CHART_PREPARATION_GLUE_POINTS, sizeof(FLOW_CHART_PREPARATION_GLUE_POINTS) / sizeof(Vertex));
2777 :
2778 : const Vertex FLOW_CHART_PUNCHED_TAPE_VERTICES[] =
2779 : {
2780 : {0, 2230}, {820, 3990}, {3410, 3980}, {5370, 4360}, {7430, 4030}, {10110, 3890}, {10690, 2270}, {11440, 300}, {14200, 160}, {16150, 0}, {18670, 170}, {20690, 390}, {21600, 2230}, {21600, 19420}, {20640, 17510}, {18320, 17490}, {16140, 17240}, {14710, 17370}, {11310, 17510}, {10770, 19430}, {10150, 21150}, {7380, 21290}, {5290, 21600}, {3220, 21250}, {610, 21130}, {0, 19420}
2781 : };
2782 :
2783 : const unsigned short FLOW_CHART_PUNCHED_TAPE_SEGMENTS[] =
2784 : {
2785 : 0x4000, 0x2004, 0x0001, 0x2004, 0x6000, 0x8000
2786 : };
2787 :
2788 : const TextRectangle FLOW_CHART_PUNCHED_TAPE_TRS[] =
2789 : {
2790 : { {0, 4360}, {21600, 17240} }
2791 : };
2792 :
2793 : const Vertex FLOW_CHART_PUNCHED_TAPE_GLUE_POINTS[] =
2794 : {
2795 : {10800, 2020}, {0, 10800}, {10800, 19320}, {21600, 10800}
2796 : };
2797 :
2798 0 : const CustomShape CS_FLOW_CHART_PUNCHED_TAPE(
2799 : FLOW_CHART_PUNCHED_TAPE_VERTICES, sizeof(FLOW_CHART_PUNCHED_TAPE_VERTICES) / sizeof(Vertex),
2800 : FLOW_CHART_PUNCHED_TAPE_SEGMENTS, sizeof(FLOW_CHART_PUNCHED_TAPE_SEGMENTS) / sizeof(unsigned short),
2801 : NULL, 0,
2802 : NULL, 0,
2803 : FLOW_CHART_PUNCHED_TAPE_TRS, sizeof(FLOW_CHART_PUNCHED_TAPE_TRS) / sizeof(TextRectangle),
2804 : 21600, 21600,
2805 : FLOW_CHART_PUNCHED_TAPE_GLUE_POINTS, sizeof(FLOW_CHART_PUNCHED_TAPE_GLUE_POINTS) / sizeof(Vertex));
2806 :
2807 : const Vertex FLOW_CHART_PUNCHED_CARD_VERTICES[] =
2808 : {
2809 : {4300, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 4300}, {4300, 0}
2810 : };
2811 :
2812 : const TextRectangle FLOW_CHART_PUNCHED_CARD_TRS[] =
2813 : {
2814 : { {0, 4300}, {21600, 21600} }
2815 : };
2816 :
2817 : const Vertex FLOW_CHART_PUNCHED_CARD_GLUE_POINTS[] =
2818 : {
2819 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
2820 : };
2821 :
2822 0 : const CustomShape CS_FLOW_CHART_PUNCHED_CARD(
2823 : FLOW_CHART_PUNCHED_CARD_VERTICES, sizeof(FLOW_CHART_PUNCHED_CARD_VERTICES) / sizeof(Vertex),
2824 : NULL, 0,
2825 : NULL, 0,
2826 : NULL, 0,
2827 : FLOW_CHART_PUNCHED_CARD_TRS, sizeof(FLOW_CHART_PUNCHED_CARD_TRS) / sizeof(TextRectangle),
2828 : 21600, 21600,
2829 : FLOW_CHART_PUNCHED_CARD_GLUE_POINTS, sizeof(FLOW_CHART_PUNCHED_CARD_GLUE_POINTS) / sizeof(Vertex));
2830 :
2831 : const Vertex FLOW_CHART_CONNECTOR_VERTICES[] =
2832 : {
2833 : {10800, 10800}, {10800, 10800}, {0, 360}
2834 : };
2835 :
2836 : const unsigned short FLOW_CHART_CONNECTOR_SEGMENTS[] =
2837 : {
2838 : 0xa203, 0x6000, 0x8000
2839 : };
2840 :
2841 : const TextRectangle FLOW_CHART_CONNECTOR_TRS[] =
2842 : {
2843 : { {3180, 3180}, {18420, 18420} }
2844 : };
2845 :
2846 : const Vertex FLOW_CHART_CONNECTOR_GLUE_POINTS[] =
2847 : {
2848 : {10800, 0}, {3163, 3163}, {0, 10800}, {3163, 18437}, {10800, 21600}, {18437, 18437}, {21600, 10800}, {18437, 3163}
2849 : };
2850 :
2851 0 : const CustomShape CS_FLOW_CHART_CONNECTOR(
2852 : FLOW_CHART_CONNECTOR_VERTICES, sizeof(FLOW_CHART_CONNECTOR_VERTICES) / sizeof(Vertex),
2853 : FLOW_CHART_CONNECTOR_SEGMENTS, sizeof(FLOW_CHART_CONNECTOR_SEGMENTS) / sizeof(unsigned short),
2854 : NULL, 0,
2855 : NULL, 0,
2856 : FLOW_CHART_CONNECTOR_TRS, sizeof(FLOW_CHART_CONNECTOR_TRS) / sizeof(TextRectangle),
2857 : 21600, 21600,
2858 : FLOW_CHART_CONNECTOR_GLUE_POINTS, sizeof(FLOW_CHART_CONNECTOR_GLUE_POINTS) / sizeof(Vertex));
2859 :
2860 : const Vertex FLOW_CHART_MANUAL_OPERATION_VERTICES[] =
2861 : {
2862 : {0, 0}, {21600, 0}, {17250, 21600}, {4350, 21600}, {0, 0}
2863 : };
2864 :
2865 : const TextRectangle FLOW_CHART_MANUAL_OPERATION_TRS[] =
2866 : {
2867 : { {4350, 0}, {17250, 21600} }
2868 : };
2869 :
2870 : const Vertex FLOW_CHART_MANUAL_OPERATION_GLUE_POINTS[] =
2871 : {
2872 : {10800, 0}, {2160, 10800}, {10800, 21600}, {19440, 10800}
2873 : };
2874 :
2875 0 : const CustomShape CS_FLOW_CHART_MANUAL_OPERATION(
2876 : FLOW_CHART_MANUAL_OPERATION_VERTICES, sizeof(FLOW_CHART_MANUAL_OPERATION_VERTICES) / sizeof(Vertex),
2877 : NULL, 0,
2878 : NULL, 0,
2879 : NULL, 0,
2880 : FLOW_CHART_MANUAL_OPERATION_TRS, sizeof(FLOW_CHART_MANUAL_OPERATION_TRS) / sizeof(TextRectangle),
2881 : 21600, 21600,
2882 : FLOW_CHART_MANUAL_OPERATION_GLUE_POINTS, sizeof(FLOW_CHART_MANUAL_OPERATION_GLUE_POINTS) / sizeof(Vertex));
2883 :
2884 : const Vertex FLOW_CHART_MANUAL_INPUT_VERTICES[] =
2885 : {
2886 : {0, 4300}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 4300}
2887 : };
2888 :
2889 : const TextRectangle FLOW_CHART_MANUAL_INPUT_TRS[] =
2890 : {
2891 : { {0, 4300}, {21600, 21600} }
2892 : };
2893 :
2894 : const Vertex FLOW_CHART_MANUAL_INPUT_GLUE_POINTS[] =
2895 : {
2896 : {10800, 2150}, {0, 10800}, {10800, 19890}, {21600, 10800}
2897 : };
2898 :
2899 0 : const CustomShape CS_FLOW_CHART_MANUAL_INPUT(
2900 : FLOW_CHART_MANUAL_INPUT_VERTICES, sizeof(FLOW_CHART_MANUAL_INPUT_VERTICES) / sizeof(Vertex),
2901 : NULL, 0,
2902 : NULL, 0,
2903 : NULL, 0,
2904 : FLOW_CHART_MANUAL_INPUT_TRS, sizeof(FLOW_CHART_MANUAL_INPUT_TRS) / sizeof(TextRectangle),
2905 : 21600, 21600,
2906 : FLOW_CHART_MANUAL_INPUT_GLUE_POINTS, sizeof(FLOW_CHART_MANUAL_INPUT_GLUE_POINTS) / sizeof(Vertex));
2907 :
2908 :
2909 : const Vertex FLOW_CHART_OR_VERTICES[] =
2910 : {
2911 : {10800, 10800}, {10800, 10800}, {0, 360}, {0, 10800}, {21600, 10800}, {10800, 0}, {10800, 21600}
2912 : };
2913 :
2914 : const unsigned short FLOW_CHART_OR_SEGMENTS[] =
2915 : {
2916 : 0xa203, 0x6000, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
2917 : };
2918 :
2919 : const TextRectangle FLOW_CHART_OR_TRS[] =
2920 : {
2921 : { {3100, 3100}, {18500, 18500} }
2922 : };
2923 :
2924 : const Vertex FLOW_CHART_OR_GLUE_POINTS[] =
2925 : {
2926 : {10800, 0}, {3163, 3163}, {0, 10800}, {3163, 18437}, {10800, 21600}, {18437, 18437}, {21600, 10800}, {18437, 3163}
2927 : };
2928 :
2929 0 : const CustomShape CS_FLOW_CHART_OR(
2930 : FLOW_CHART_OR_VERTICES, sizeof(FLOW_CHART_OR_VERTICES) / sizeof(Vertex),
2931 : FLOW_CHART_OR_SEGMENTS, sizeof(FLOW_CHART_OR_SEGMENTS) / sizeof(unsigned short),
2932 : NULL, 0,
2933 : NULL, 0,
2934 : FLOW_CHART_OR_TRS, sizeof(FLOW_CHART_OR_TRS) / sizeof(TextRectangle),
2935 : 21600, 21600,
2936 : FLOW_CHART_OR_GLUE_POINTS, sizeof(FLOW_CHART_OR_GLUE_POINTS) / sizeof(Vertex));
2937 :
2938 : const Vertex FLOW_CHART_COLLATE_VERTICES[] =
2939 : {
2940 : {0, 0}, {21600, 21600}, {0, 21600}, {21600, 0}, {0, 0}
2941 : };
2942 :
2943 : const TextRectangle FLOW_CHART_COLLATE_TRS[] =
2944 : {
2945 : { {5400, 5400}, {16200, 16200} }
2946 : };
2947 :
2948 : const Vertex FLOW_CHART_COLLATE_GLUE_POINTS[] =
2949 : {
2950 : {10800, 0}, {10800, 10800}, {10800, 21600}
2951 : };
2952 :
2953 0 : const CustomShape CS_FLOW_CHART_COLLATE(
2954 : FLOW_CHART_COLLATE_VERTICES, sizeof(FLOW_CHART_COLLATE_VERTICES) / sizeof(Vertex),
2955 : NULL, 0,
2956 : NULL, 0,
2957 : NULL, 0,
2958 : FLOW_CHART_COLLATE_TRS, sizeof(FLOW_CHART_COLLATE_TRS) / sizeof(TextRectangle),
2959 : 21600, 21600,
2960 : FLOW_CHART_COLLATE_GLUE_POINTS, sizeof(FLOW_CHART_COLLATE_GLUE_POINTS) / sizeof(Vertex));
2961 :
2962 : const Vertex FLOW_CHART_SORT_VERTICES[] =
2963 : {
2964 : {0, 10800}, {10800, 0}, {21600, 10800}, {10800, 21600}, {0, 10800}, {21600, 10800}
2965 : };
2966 :
2967 : const unsigned short FLOW_CHART_SORT_SEGMENTS[] =
2968 : {
2969 : 0x4000, 0x0003, 0x6000, 0x8000, 0x4000, 0x0001, 0x8000
2970 : };
2971 :
2972 : const TextRectangle FLOW_CHART_SORT_TRS[] =
2973 : {
2974 : { {5400, 5400}, {16200, 16200} }
2975 : };
2976 :
2977 0 : const CustomShape CS_FLOW_CHART_SORT(
2978 : FLOW_CHART_SORT_VERTICES, sizeof(FLOW_CHART_SORT_VERTICES) / sizeof(Vertex),
2979 : FLOW_CHART_SORT_SEGMENTS, sizeof(FLOW_CHART_SORT_SEGMENTS) / sizeof(unsigned short),
2980 : NULL, 0,
2981 : NULL, 0,
2982 : FLOW_CHART_SORT_TRS, sizeof(FLOW_CHART_SORT_TRS) / sizeof(TextRectangle),
2983 : 21600, 21600,
2984 : NULL, 0);
2985 :
2986 : const Vertex FLOW_CHART_EXTRACT_VERTICES[] =
2987 : {
2988 : {10800, 0}, {21600, 21600}, {0, 21600}, {10800, 0}
2989 : };
2990 :
2991 : const TextRectangle FLOW_CHART_EXTRACT_TRS[] =
2992 : {
2993 : { {5400, 10800}, {16200, 21600} }
2994 : };
2995 :
2996 : const Vertex FLOW_CHART_EXTRACT_GLUE_POINTS[] =
2997 : {
2998 : {10800, 0}, {5400, 10800}, {10800, 21600}, {16200, 10800}
2999 : };
3000 :
3001 0 : const CustomShape CS_FLOW_CHART_EXTRACT(
3002 : FLOW_CHART_EXTRACT_VERTICES, sizeof(FLOW_CHART_EXTRACT_VERTICES) / sizeof(Vertex),
3003 : NULL, 0,
3004 : NULL, 0,
3005 : NULL, 0,
3006 : FLOW_CHART_EXTRACT_TRS, sizeof(FLOW_CHART_EXTRACT_TRS) / sizeof(TextRectangle),
3007 : 21600, 21600,
3008 : FLOW_CHART_EXTRACT_GLUE_POINTS, sizeof(FLOW_CHART_EXTRACT_GLUE_POINTS) / sizeof(Vertex));
3009 :
3010 : const Vertex FLOW_CHART_MERGE_VERTICES[] =
3011 : {
3012 : {0, 0}, {21600, 0}, {10800, 21600}, {0, 0}
3013 : };
3014 :
3015 : const TextRectangle FLOW_CHART_MERGE_TRS[] =
3016 : {
3017 : { {5400, 0}, {16200, 10800} }
3018 : };
3019 :
3020 : const Vertex FLOW_CHART_MERGE_GLUE_POINTS[] =
3021 : {
3022 : {10800, 0}, {5400, 10800}, {10800, 21600}, {16200, 10800}
3023 : };
3024 :
3025 0 : const CustomShape CS_FLOW_CHART_MERGE(
3026 : FLOW_CHART_MERGE_VERTICES, sizeof(FLOW_CHART_MERGE_VERTICES) / sizeof(Vertex),
3027 : NULL, 0,
3028 : NULL, 0,
3029 : NULL, 0,
3030 : FLOW_CHART_MERGE_TRS, sizeof(FLOW_CHART_MERGE_TRS) / sizeof(TextRectangle),
3031 : 21600, 21600,
3032 : FLOW_CHART_MERGE_GLUE_POINTS, sizeof(FLOW_CHART_MERGE_GLUE_POINTS) / sizeof(Vertex));
3033 :
3034 : const Vertex FLOW_CHART_ONLINE_STORAGE_VERTICES[] =
3035 : {
3036 : {3600, 21600}, {0, 10800}, {3600, 0}, {21600, 0}, {18000, 10800}, {21600, 21600}
3037 : };
3038 :
3039 : const unsigned short FLOW_CHART_ONLINE_STORAGE_SEGMENTS[] =
3040 : {
3041 : 0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
3042 : };
3043 :
3044 : const TextRectangle FLOW_CHART_ONLINE_STORAGE_TRS[] =
3045 : {
3046 : { {3600, 0}, {18000, 21600} }
3047 : };
3048 :
3049 : const Vertex FLOW_CHART_ONLINE_STORAGE_GLUE_POINTS[] =
3050 : {
3051 : {10800, 0}, {0, 10800}, {10800, 21600}, {18000, 10800}
3052 : };
3053 :
3054 0 : const CustomShape CS_FLOW_CHART_ONLINE_STORAGE(
3055 : FLOW_CHART_ONLINE_STORAGE_VERTICES, sizeof(FLOW_CHART_ONLINE_STORAGE_VERTICES) / sizeof(Vertex),
3056 : FLOW_CHART_ONLINE_STORAGE_SEGMENTS, sizeof(FLOW_CHART_ONLINE_STORAGE_SEGMENTS) / sizeof(unsigned short),
3057 : NULL, 0,
3058 : NULL, 0,
3059 : FLOW_CHART_ONLINE_STORAGE_TRS, sizeof(FLOW_CHART_ONLINE_STORAGE_TRS) / sizeof(TextRectangle),
3060 : 21600, 21600,
3061 : FLOW_CHART_ONLINE_STORAGE_GLUE_POINTS, sizeof(FLOW_CHART_ONLINE_STORAGE_GLUE_POINTS) / sizeof(Vertex));
3062 :
3063 : const Vertex FLOW_CHART_MAGNETIC_TAPE_VERTICES[] =
3064 : {
3065 : {20980, 18150}, {20980, 21600}, {10670, 21600}, {4770, 21540}, {0, 16720}, {0, 10800}, {0, 4840}, {4840, 0}, {10800, 0}, {16740, 0}, {21600, 4840}, {21600, 10800}, {21600, 13520}, {20550, 16160}, {18670, 18170}
3066 : };
3067 :
3068 : const unsigned short FLOW_CHART_MAGNETIC_TAPE_SEGMENTS[] =
3069 : {
3070 : 0x4000, 0x0002, 0x2004, 0x6000, 0x8000
3071 : };
3072 :
3073 : const TextRectangle FLOW_CHART_MAGNETIC_TAPE_TRS[] =
3074 : {
3075 : { {3100, 3100}, {18500, 18500} }
3076 : };
3077 :
3078 : const Vertex FLOW_CHART_MAGNETIC_TAPE_GLUE_POINTS[] =
3079 : {
3080 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
3081 : };
3082 :
3083 0 : const CustomShape CS_FLOW_CHART_MAGNETIC_TAPE(
3084 : FLOW_CHART_MAGNETIC_TAPE_VERTICES, sizeof(FLOW_CHART_MAGNETIC_TAPE_VERTICES) / sizeof(Vertex),
3085 : FLOW_CHART_MAGNETIC_TAPE_SEGMENTS, sizeof(FLOW_CHART_MAGNETIC_TAPE_SEGMENTS) / sizeof(unsigned short),
3086 : NULL, 0,
3087 : NULL, 0,
3088 : FLOW_CHART_MAGNETIC_TAPE_TRS, sizeof(FLOW_CHART_MAGNETIC_TAPE_TRS) / sizeof(TextRectangle),
3089 : 21600, 21600,
3090 : FLOW_CHART_MAGNETIC_TAPE_GLUE_POINTS, sizeof(FLOW_CHART_MAGNETIC_TAPE_GLUE_POINTS) / sizeof(Vertex));
3091 :
3092 : const Vertex FLOW_CHART_MAGNETIC_DISK_VERTICES[] =
3093 : {
3094 : {0, 3400}, {10800, 0}, {21600, 3400}, {21600, 18200}, {10800, 21600}, {0, 18200}, {0, 3400}, {10800, 6800}, {21600, 3400}
3095 : };
3096 :
3097 : const unsigned short FLOW_CHART_MAGNETIC_DISK_SEGMENTS[] =
3098 : {
3099 : 0x4000, 0xa802, 0x0001, 0xa802, 0x6000, 0x8000, 0x4000, 0xa802, 0x8000
3100 : };
3101 :
3102 : const TextRectangle FLOW_CHART_MAGNETIC_DISK_TRS[] =
3103 : {
3104 : { {0, 6800}, {21600, 18200} }
3105 : };
3106 :
3107 : const Vertex FLOW_CHART_MAGNETIC_DISK_GLUE_POINTS[] =
3108 : {
3109 : {10800, 6800}, {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
3110 : };
3111 :
3112 0 : const CustomShape CS_FLOW_CHART_MAGNETIC_DISK(
3113 : FLOW_CHART_MAGNETIC_DISK_VERTICES, sizeof(FLOW_CHART_MAGNETIC_DISK_VERTICES) / sizeof(Vertex),
3114 : FLOW_CHART_MAGNETIC_DISK_SEGMENTS, sizeof(FLOW_CHART_MAGNETIC_DISK_SEGMENTS) / sizeof(unsigned short),
3115 : NULL, 0,
3116 : NULL, 0,
3117 : FLOW_CHART_MAGNETIC_DISK_TRS, sizeof(FLOW_CHART_MAGNETIC_DISK_TRS) / sizeof(TextRectangle),
3118 : 21600, 21600,
3119 : FLOW_CHART_MAGNETIC_DISK_GLUE_POINTS, sizeof(FLOW_CHART_MAGNETIC_DISK_GLUE_POINTS) / sizeof(Vertex));
3120 :
3121 : const Vertex FLOW_CHART_MAGNETIC_DRUM_VERTICES[] =
3122 : {
3123 : {18200, 0}, {21600, 10800}, {18200, 21600}, {3400, 21600}, {0, 10800}, {3400, 0}, {18200, 0}, {14800, 10800}, {18200, 21600}
3124 : };
3125 :
3126 : const unsigned short FLOW_CHART_MAGNETIC_DRUM_SEGMENTS[] =
3127 : {
3128 : 0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000, 0x4000, 0xa702, 0x8000
3129 : };
3130 :
3131 : const TextRectangle FLOW_CHART_MAGNETIC_DRUM_TRS[] =
3132 : {
3133 : { {3400, 0}, {14800, 21600} }
3134 : };
3135 :
3136 : const Vertex FLOW_CHART_MAGNETIC_DRUM_GLUE_POINTS[] =
3137 : {
3138 : {10800, 0}, {0, 10800}, {10800, 21600}, {14800, 10800}, {21600, 10800}
3139 : };
3140 :
3141 0 : const CustomShape CS_FLOW_CHART_MAGNETIC_DRUM(
3142 : FLOW_CHART_MAGNETIC_DRUM_VERTICES, sizeof(FLOW_CHART_MAGNETIC_DRUM_VERTICES) / sizeof(Vertex),
3143 : FLOW_CHART_MAGNETIC_DRUM_SEGMENTS, sizeof(FLOW_CHART_MAGNETIC_DRUM_SEGMENTS) / sizeof(unsigned short),
3144 : NULL, 0,
3145 : NULL, 0,
3146 : FLOW_CHART_MAGNETIC_DRUM_TRS, sizeof(FLOW_CHART_MAGNETIC_DRUM_TRS) / sizeof(TextRectangle),
3147 : 21600, 21600,
3148 : FLOW_CHART_MAGNETIC_DRUM_GLUE_POINTS, sizeof(FLOW_CHART_MAGNETIC_DRUM_GLUE_POINTS) / sizeof(Vertex));
3149 :
3150 : const Vertex FLOW_CHART_DIPSLAY_VERTICES[] =
3151 : {
3152 : {3600, 0}, {17800, 0}, {21600, 10800}, {17800, 21600}, {3600, 21600}, {0, 10800}
3153 : };
3154 :
3155 : const unsigned short FLOW_CHART_DIPSLAY_SEGMENTS[] =
3156 : {
3157 : 0x4000, 0x0001, 0xa702, 0x0002, 0x6000, 0x8000
3158 : };
3159 :
3160 : const TextRectangle FLOW_CHART_DIPSLAY_TRS[] =
3161 : {
3162 : { {3600, 0}, {17800, 21600} }
3163 : };
3164 :
3165 : const Vertex FLOW_CHART_DIPSLAY_GLUE_POINTS[] =
3166 : {
3167 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
3168 : };
3169 :
3170 0 : const CustomShape CS_FLOW_CHART_DIPSLAY(
3171 : FLOW_CHART_DIPSLAY_VERTICES, sizeof(FLOW_CHART_DIPSLAY_VERTICES) / sizeof(Vertex),
3172 : FLOW_CHART_DIPSLAY_SEGMENTS, sizeof(FLOW_CHART_DIPSLAY_SEGMENTS) / sizeof(unsigned short),
3173 : NULL, 0,
3174 : NULL, 0,
3175 : FLOW_CHART_DIPSLAY_TRS, sizeof(FLOW_CHART_DIPSLAY_TRS) / sizeof(TextRectangle),
3176 : 21600, 21600,
3177 : FLOW_CHART_DIPSLAY_GLUE_POINTS, sizeof(FLOW_CHART_DIPSLAY_GLUE_POINTS) / sizeof(Vertex));
3178 :
3179 : const Vertex FLOW_CHART_DELAY_VERTICES[] =
3180 : {
3181 : {10800, 0}, {21600, 10800}, {10800, 21600}, {0, 21600}, {0, 0}
3182 : };
3183 :
3184 : const unsigned short FLOW_CHART_DELAY_SEGMENTS[] =
3185 : {
3186 : 0x4000, 0xa702, 0x0002, 0x6000, 0x8000
3187 : };
3188 :
3189 : const TextRectangle FLOW_CHART_DELAY_TRS[] =
3190 : {
3191 : { {0, 3100}, {18500, 18500} }
3192 : };
3193 :
3194 : const Vertex FLOW_CHART_DELAY_GLUE_POINTS[] =
3195 : {
3196 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
3197 : };
3198 :
3199 0 : const CustomShape CS_FLOW_CHART_DELAY(
3200 : FLOW_CHART_DELAY_VERTICES, sizeof(FLOW_CHART_DELAY_VERTICES) / sizeof(Vertex),
3201 : FLOW_CHART_DELAY_SEGMENTS, sizeof(FLOW_CHART_DELAY_SEGMENTS) / sizeof(unsigned short),
3202 : NULL, 0,
3203 : NULL, 0,
3204 : FLOW_CHART_DELAY_TRS, sizeof(FLOW_CHART_DELAY_TRS) / sizeof(TextRectangle),
3205 : 21600, 21600,
3206 : FLOW_CHART_DELAY_GLUE_POINTS, sizeof(FLOW_CHART_DELAY_GLUE_POINTS) / sizeof(Vertex));
3207 :
3208 : const Vertex TEXT_PLAIN_TEXT_VERTICES[] =
3209 : {
3210 : {CALCULATED_VALUE(3), 0}, {CALCULATED_VALUE(5), 0}, {CALCULATED_VALUE(6), 21600}, {CALCULATED_VALUE(7), 21600}
3211 : };
3212 :
3213 : const unsigned short TEXT_PLAIN_TEXT_SEGMENTS[] =
3214 : {
3215 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
3216 : };
3217 :
3218 : const Calculation TEXT_PLAIN_TEXT_CALC[] =
3219 : {
3220 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 10800}, {0x2001, 0x400, 2, 1}, {0x2003, 0x401, 0, 0}, {0xa006, 0x401, 0, 0x402}, {0x8000, 21600, 0, 0x402}, {0x6006, 0x401, 0x404, 21600}, {0x6006, 0x401, 0x402, 0}, {0xa006, 0x401, 21600, 0x404}
3221 : };
3222 :
3223 : const TextRectangle TEXT_PLAIN_TEXT_TRS[] =
3224 : {
3225 : { {0, 0}, {21600, 21600} }
3226 : };
3227 :
3228 : const int TEXT_PLAIN_TEXT_DEFAULT_ADJUST[] =
3229 : {
3230 : 10800
3231 : };
3232 :
3233 0 : const CustomShape CS_TEXT_PLAIN_TEXT(
3234 : TEXT_PLAIN_TEXT_VERTICES, sizeof(TEXT_PLAIN_TEXT_VERTICES) / sizeof(Vertex),
3235 : TEXT_PLAIN_TEXT_SEGMENTS, sizeof(TEXT_PLAIN_TEXT_SEGMENTS) / sizeof(unsigned short),
3236 : TEXT_PLAIN_TEXT_CALC, sizeof(TEXT_PLAIN_TEXT_CALC) / sizeof(Calculation),
3237 : TEXT_PLAIN_TEXT_DEFAULT_ADJUST, sizeof(TEXT_PLAIN_TEXT_DEFAULT_ADJUST) / sizeof(int),
3238 : TEXT_PLAIN_TEXT_TRS, sizeof(TEXT_PLAIN_TEXT_TRS) / sizeof(TextRectangle),
3239 : 21600, 21600,
3240 : NULL, 0);
3241 :
3242 : const Vertex TEXT_STOP_VERTICES[] =
3243 : {
3244 : {0, CALCULATED_VALUE(0)}, {7200, 0}, {14400, 0}, {21600, CALCULATED_VALUE(0)}, {0, CALCULATED_VALUE(1)}, {7200, 21600}, {14400, 21600}, {21600, CALCULATED_VALUE(1)}
3245 : };
3246 :
3247 : const unsigned short TEXT_STOP_SEGMENTS[] =
3248 : {
3249 : 0x4000, 0x0003, 0x8000, 0x4000, 0x0003, 0x8000
3250 : };
3251 :
3252 : const Calculation TEXT_STOP_CALC[] =
3253 : {
3254 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}
3255 : };
3256 :
3257 : const TextRectangle TEXT_STOP_TRS[] =
3258 : {
3259 : { {0, 0}, {21600, 21600} }
3260 : };
3261 :
3262 : const int TEXT_STOP_DEFAULT_ADJUST[] =
3263 : {
3264 : 2700
3265 : };
3266 :
3267 0 : const CustomShape CS_TEXT_STOP(
3268 : TEXT_STOP_VERTICES, sizeof(TEXT_STOP_VERTICES) / sizeof(Vertex),
3269 : TEXT_STOP_SEGMENTS, sizeof(TEXT_STOP_SEGMENTS) / sizeof(unsigned short),
3270 : TEXT_STOP_CALC, sizeof(TEXT_STOP_CALC) / sizeof(Calculation),
3271 : TEXT_STOP_DEFAULT_ADJUST, sizeof(TEXT_STOP_DEFAULT_ADJUST) / sizeof(int),
3272 : TEXT_STOP_TRS, sizeof(TEXT_STOP_TRS) / sizeof(TextRectangle),
3273 : 21600, 21600,
3274 : NULL, 0);
3275 :
3276 : const Vertex TEXT_TRIANGLE_VERTICES[] =
3277 : {
3278 : {0, CALCULATED_VALUE(0)}, {10800, 0}, {21600, CALCULATED_VALUE(0)}, {0, 21600}, {21600, 21600}
3279 : };
3280 :
3281 : const unsigned short TEXT_TRIANGLE_SEGMENTS[] =
3282 : {
3283 : 0x4000, 0x0002, 0x8000, 0x4000, 0x0001, 0x8000
3284 : };
3285 :
3286 : const Calculation TEXT_TRIANGLE_CALC[] =
3287 : {
3288 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}
3289 : };
3290 :
3291 : const TextRectangle TEXT_TRIANGLE_TRS[] =
3292 : {
3293 : { {0, 0}, {21600, 21600} }
3294 : };
3295 :
3296 : const int TEXT_TRIANGLE_DEFAULT_ADJUST[] =
3297 : {
3298 : 10800
3299 : };
3300 :
3301 0 : const CustomShape CS_TEXT_TRIANGLE(
3302 : TEXT_TRIANGLE_VERTICES, sizeof(TEXT_TRIANGLE_VERTICES) / sizeof(Vertex),
3303 : TEXT_TRIANGLE_SEGMENTS, sizeof(TEXT_TRIANGLE_SEGMENTS) / sizeof(unsigned short),
3304 : TEXT_TRIANGLE_CALC, sizeof(TEXT_TRIANGLE_CALC) / sizeof(Calculation),
3305 : TEXT_TRIANGLE_DEFAULT_ADJUST, sizeof(TEXT_TRIANGLE_DEFAULT_ADJUST) / sizeof(int),
3306 : TEXT_TRIANGLE_TRS, sizeof(TEXT_TRIANGLE_TRS) / sizeof(TextRectangle),
3307 : 21600, 21600,
3308 : NULL, 0);
3309 :
3310 : const Vertex TEXT_TRIANGLE_INVERTED_VERTICES[] =
3311 : {
3312 : {0, 0}, {21600, 0}, {0, CALCULATED_VALUE(0)}, {10800, 21600}, {21600, CALCULATED_VALUE(0)}
3313 : };
3314 :
3315 : const unsigned short TEXT_TRIANGLE_INVERTED_SEGMENTS[] =
3316 : {
3317 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0002, 0x8000
3318 : };
3319 :
3320 : const Calculation TEXT_TRIANGLE_INVERTED_CALC[] =
3321 : {
3322 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}
3323 : };
3324 :
3325 : const TextRectangle TEXT_TRIANGLE_INVERTED_TRS[] =
3326 : {
3327 : { {0, 0}, {21600, 21600} }
3328 : };
3329 :
3330 : const int TEXT_TRIANGLE_INVERTED_DEFAULT_ADJUST[] =
3331 : {
3332 : 10800
3333 : };
3334 :
3335 0 : const CustomShape CS_TEXT_TRIANGLE_INVERTED(
3336 : TEXT_TRIANGLE_INVERTED_VERTICES, sizeof(TEXT_TRIANGLE_INVERTED_VERTICES) / sizeof(Vertex),
3337 : TEXT_TRIANGLE_INVERTED_SEGMENTS, sizeof(TEXT_TRIANGLE_INVERTED_SEGMENTS) / sizeof(unsigned short),
3338 : TEXT_TRIANGLE_INVERTED_CALC, sizeof(TEXT_TRIANGLE_INVERTED_CALC) / sizeof(Calculation),
3339 : TEXT_TRIANGLE_INVERTED_DEFAULT_ADJUST, sizeof(TEXT_TRIANGLE_INVERTED_DEFAULT_ADJUST) / sizeof(int),
3340 : TEXT_TRIANGLE_INVERTED_TRS, sizeof(TEXT_TRIANGLE_INVERTED_TRS) / sizeof(TextRectangle),
3341 : 21600, 21600,
3342 : NULL, 0);
3343 :
3344 : const Vertex FLOW_CHART_DISPLAY_VERTICES[] =
3345 : {
3346 : {3600, 0}, {17800, 0}, {21600, 10800}, {17800, 21600}, {3600, 21600}, {0, 10800}
3347 : };
3348 :
3349 : const unsigned short FLOW_CHART_DISPLAY_SEGMENTS[] =
3350 : {
3351 : 0x4000, 0x0001, 0xa702, 0x0002, 0x6000, 0x8000
3352 : };
3353 :
3354 : const TextRectangle FLOW_CHART_DISPLAY_TRS[] =
3355 : {
3356 : { {3600, 0}, {17800, 21600} }
3357 : };
3358 :
3359 : const Vertex FLOW_CHART_DISPLAY_GLUE_POINTS[] =
3360 : {
3361 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
3362 : };
3363 :
3364 0 : const CustomShape CS_FLOW_CHART_DISPLAY(
3365 : FLOW_CHART_DISPLAY_VERTICES, sizeof(FLOW_CHART_DISPLAY_VERTICES) / sizeof(Vertex),
3366 : FLOW_CHART_DISPLAY_SEGMENTS, sizeof(FLOW_CHART_DISPLAY_SEGMENTS) / sizeof(unsigned short),
3367 : NULL, 0,
3368 : NULL, 0,
3369 : FLOW_CHART_DISPLAY_TRS, sizeof(FLOW_CHART_DISPLAY_TRS) / sizeof(TextRectangle),
3370 : 21600, 21600,
3371 : FLOW_CHART_DISPLAY_GLUE_POINTS, sizeof(FLOW_CHART_DISPLAY_GLUE_POINTS) / sizeof(Vertex));
3372 :
3373 : const Vertex TEXT_CHEVRON_VERTICES[] =
3374 : {
3375 : {0, CALCULATED_VALUE(0)}, {10800, 0}, {21600, CALCULATED_VALUE(0)}, {0, 21600}, {10800, CALCULATED_VALUE(1)}, {21600, 21600}
3376 : };
3377 :
3378 : const unsigned short TEXT_CHEVRON_SEGMENTS[] =
3379 : {
3380 : 0x4000, 0x0002, 0x8000, 0x4000, 0x0002, 0x8000
3381 : };
3382 :
3383 : const Calculation TEXT_CHEVRON_CALC[] =
3384 : {
3385 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}
3386 : };
3387 :
3388 : const TextRectangle TEXT_CHEVRON_TRS[] =
3389 : {
3390 : { {0, 0}, {21600, 21600} }
3391 : };
3392 :
3393 : const int TEXT_CHEVRON_DEFAULT_ADJUST[] =
3394 : {
3395 : 5400
3396 : };
3397 :
3398 0 : const CustomShape CS_TEXT_CHEVRON(
3399 : TEXT_CHEVRON_VERTICES, sizeof(TEXT_CHEVRON_VERTICES) / sizeof(Vertex),
3400 : TEXT_CHEVRON_SEGMENTS, sizeof(TEXT_CHEVRON_SEGMENTS) / sizeof(unsigned short),
3401 : TEXT_CHEVRON_CALC, sizeof(TEXT_CHEVRON_CALC) / sizeof(Calculation),
3402 : TEXT_CHEVRON_DEFAULT_ADJUST, sizeof(TEXT_CHEVRON_DEFAULT_ADJUST) / sizeof(int),
3403 : TEXT_CHEVRON_TRS, sizeof(TEXT_CHEVRON_TRS) / sizeof(TextRectangle),
3404 : 21600, 21600,
3405 : NULL, 0);
3406 :
3407 : const Vertex TEXT_CHEVRON_INVERTED_VERTICES[] =
3408 : {
3409 : {0, 0}, {10800, CALCULATED_VALUE(1)}, {21600, 0}, {0, CALCULATED_VALUE(0)}, {10800, 21600}, {21600, CALCULATED_VALUE(0)}
3410 : };
3411 :
3412 : const unsigned short TEXT_CHEVRON_INVERTED_SEGMENTS[] =
3413 : {
3414 : 0x4000, 0x0002, 0x8000, 0x4000, 0x0002, 0x8000
3415 : };
3416 :
3417 : const Calculation TEXT_CHEVRON_INVERTED_CALC[] =
3418 : {
3419 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}
3420 : };
3421 :
3422 : const TextRectangle TEXT_CHEVRON_INVERTED_TRS[] =
3423 : {
3424 : { {0, 0}, {21600, 21600} }
3425 : };
3426 :
3427 : const int TEXT_CHEVRON_INVERTED_DEFAULT_ADJUST[] =
3428 : {
3429 : 16200
3430 : };
3431 :
3432 : const Vertex TEXT_CHEVRON_INVERTED_GLUE_POINTS[] =
3433 : {
3434 : {0, 0}, {21600, 21600}
3435 : };
3436 :
3437 0 : const CustomShape CS_TEXT_CHEVRON_INVERTED(
3438 : TEXT_CHEVRON_INVERTED_VERTICES, sizeof(TEXT_CHEVRON_INVERTED_VERTICES) / sizeof(Vertex),
3439 : TEXT_CHEVRON_INVERTED_SEGMENTS, sizeof(TEXT_CHEVRON_INVERTED_SEGMENTS) / sizeof(unsigned short),
3440 : TEXT_CHEVRON_INVERTED_CALC, sizeof(TEXT_CHEVRON_INVERTED_CALC) / sizeof(Calculation),
3441 : TEXT_CHEVRON_INVERTED_DEFAULT_ADJUST, sizeof(TEXT_CHEVRON_INVERTED_DEFAULT_ADJUST) / sizeof(int),
3442 : TEXT_CHEVRON_INVERTED_TRS, sizeof(TEXT_CHEVRON_INVERTED_TRS) / sizeof(TextRectangle),
3443 : 21600, 21600,
3444 : TEXT_CHEVRON_INVERTED_GLUE_POINTS, sizeof(TEXT_CHEVRON_INVERTED_GLUE_POINTS) / sizeof(Vertex));
3445 :
3446 : const Vertex TEXT_RING_OUTSIDE_VERTICES[] =
3447 : {
3448 : {10800, CALCULATED_VALUE(0)}, {10800, CALCULATED_VALUE(0)}, {180, 359}, {10800, CALCULATED_VALUE(1)}, {10800, CALCULATED_VALUE(0)}, {180, 359}
3449 : };
3450 :
3451 : const unsigned short TEXT_RING_OUTSIDE_SEGMENTS[] =
3452 : {
3453 : 0xA203, 0x8000, 0xA203, 0x8000
3454 : };
3455 :
3456 : const Calculation TEXT_RING_OUTSIDE_CALC[] =
3457 : {
3458 : {0x2001, PROP_ADJUST_VAL_FIRST, 1, 2}, {0x8000, 21600, 0, 0x400}
3459 : };
3460 :
3461 : const TextRectangle TEXT_RING_OUTSIDE_TRS[] =
3462 : {
3463 : { {0, 0}, {21600, 21600} }
3464 : };
3465 :
3466 : const int TEXT_RING_OUTSIDE_DEFAULT_ADJUST[] =
3467 : {
3468 : 16200
3469 : };
3470 :
3471 0 : const CustomShape CS_TEXT_RING_OUTSIDE(
3472 : TEXT_RING_OUTSIDE_VERTICES, sizeof(TEXT_RING_OUTSIDE_VERTICES) / sizeof(Vertex),
3473 : TEXT_RING_OUTSIDE_SEGMENTS, sizeof(TEXT_RING_OUTSIDE_SEGMENTS) / sizeof(unsigned short),
3474 : TEXT_RING_OUTSIDE_CALC, sizeof(TEXT_RING_OUTSIDE_CALC) / sizeof(Calculation),
3475 : TEXT_RING_OUTSIDE_DEFAULT_ADJUST, sizeof(TEXT_RING_OUTSIDE_DEFAULT_ADJUST) / sizeof(int),
3476 : TEXT_RING_OUTSIDE_TRS, sizeof(TEXT_RING_OUTSIDE_TRS) / sizeof(TextRectangle),
3477 : 21600, 21600,
3478 : NULL, 0);
3479 :
3480 : const Vertex TEXT_ARCH_UP_CURVE_VERTICES[] =
3481 : {
3482 : {0, 0}, {21600, 21600}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(3)}
3483 : };
3484 :
3485 : const unsigned short TEXT_ARCH_UP_CURVE_SEGMENTS[] =
3486 : {
3487 : 0xA504, 0x8000
3488 : };
3489 :
3490 : const Calculation TEXT_ARCH_UP_CURVE_CALC[] =
3491 : {
3492 : {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x400, 10800, 0}, {0x2000, 0x401, 10800, 0}, {0x8000, 21600, 0, 0x402}
3493 : };
3494 :
3495 : const TextRectangle TEXT_ARCH_UP_CURVE_TRS[] =
3496 : {
3497 : { {0, 0}, {21600, 21600} }
3498 : };
3499 :
3500 : const int TEXT_ARCH_UP_CURVE_DEFAULT_ADJUST[] =
3501 : {
3502 : 180
3503 : };
3504 :
3505 0 : const CustomShape CS_TEXT_ARCH_UP_CURVE(
3506 : TEXT_ARCH_UP_CURVE_VERTICES, sizeof(TEXT_ARCH_UP_CURVE_VERTICES) / sizeof(Vertex),
3507 : TEXT_ARCH_UP_CURVE_SEGMENTS, sizeof(TEXT_ARCH_UP_CURVE_SEGMENTS) / sizeof(unsigned short),
3508 : TEXT_ARCH_UP_CURVE_CALC, sizeof(TEXT_ARCH_UP_CURVE_CALC) / sizeof(Calculation),
3509 : TEXT_ARCH_UP_CURVE_DEFAULT_ADJUST, sizeof(TEXT_ARCH_UP_CURVE_DEFAULT_ADJUST) / sizeof(int),
3510 : TEXT_ARCH_UP_CURVE_TRS, sizeof(TEXT_ARCH_UP_CURVE_TRS) / sizeof(TextRectangle),
3511 : 21600, 21600,
3512 : NULL, 0);
3513 :
3514 : const Vertex TEXT_ARCH_UP_POUR_VERTICES[] =
3515 : {
3516 : {0, 0}, {21600, 21600}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(9)}
3517 : };
3518 :
3519 : const unsigned short TEXT_ARCH_UP_POUR_SEGMENTS[] =
3520 : {
3521 : 0xA504, 0x8000, 0xA504, 0x8000
3522 : };
3523 :
3524 : const Calculation TEXT_ARCH_UP_POUR_CALC[] =
3525 : {
3526 : {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x400, 10800, 0}, {0x2000, 0x401, 10800, 0}, {0x8000, 21600, 0, 0x402}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x600a, 0x405, PROP_ADJUST_VAL_FIRST, 0}, {0x6009, 0x405, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x406, 10800, 0}, {0x2000, 0x407, 10800, 0}, {0x8000, 21600, 0, 0x408}, {0x8000, 21600, 0, 0x405}
3527 : };
3528 :
3529 : const TextRectangle TEXT_ARCH_UP_POUR_TRS[] =
3530 : {
3531 : { {0, 0}, {21600, 21600} }
3532 : };
3533 :
3534 : const int TEXT_ARCH_UP_POUR_DEFAULT_ADJUST[] =
3535 : {
3536 : 180, 5400
3537 : };
3538 :
3539 0 : const CustomShape CS_TEXT_ARCH_UP_POUR(
3540 : TEXT_ARCH_UP_POUR_VERTICES, sizeof(TEXT_ARCH_UP_POUR_VERTICES) / sizeof(Vertex),
3541 : TEXT_ARCH_UP_POUR_SEGMENTS, sizeof(TEXT_ARCH_UP_POUR_SEGMENTS) / sizeof(unsigned short),
3542 : TEXT_ARCH_UP_POUR_CALC, sizeof(TEXT_ARCH_UP_POUR_CALC) / sizeof(Calculation),
3543 : TEXT_ARCH_UP_POUR_DEFAULT_ADJUST, sizeof(TEXT_ARCH_UP_POUR_DEFAULT_ADJUST) / sizeof(int),
3544 : TEXT_ARCH_UP_POUR_TRS, sizeof(TEXT_ARCH_UP_POUR_TRS) / sizeof(TextRectangle),
3545 : 21600, 21600,
3546 : NULL, 0);
3547 :
3548 : const Vertex TEXT_ARCH_DOWN_CURVE_VERTICES[] =
3549 : {
3550 : {0, 0}, {21600, 21600}, {CALCULATED_VALUE(4), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}
3551 : };
3552 :
3553 : const unsigned short TEXT_ARCH_DOWN_CURVE_SEGMENTS[] =
3554 : {
3555 : 0xA304, 0x8000
3556 : };
3557 :
3558 : const Calculation TEXT_ARCH_DOWN_CURVE_CALC[] =
3559 : {
3560 : {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x400, 10800, 0}, {0x2000, 0x401, 10800, 0}, {0x8000, 21600, 0, 0x402}
3561 : };
3562 :
3563 : const TextRectangle TEXT_ARCH_DOWN_CURVE_TRS[] =
3564 : {
3565 : { {0, 0}, {21600, 21600} }
3566 : };
3567 :
3568 : const int TEXT_ARCH_DOWN_CURVE_DEFAULT_ADJUST[] =
3569 : {
3570 : 0
3571 : };
3572 :
3573 0 : const CustomShape CS_TEXT_ARCH_DOWN_CURVE(
3574 : TEXT_ARCH_DOWN_CURVE_VERTICES, sizeof(TEXT_ARCH_DOWN_CURVE_VERTICES) / sizeof(Vertex),
3575 : TEXT_ARCH_DOWN_CURVE_SEGMENTS, sizeof(TEXT_ARCH_DOWN_CURVE_SEGMENTS) / sizeof(unsigned short),
3576 : TEXT_ARCH_DOWN_CURVE_CALC, sizeof(TEXT_ARCH_DOWN_CURVE_CALC) / sizeof(Calculation),
3577 : TEXT_ARCH_DOWN_CURVE_DEFAULT_ADJUST, sizeof(TEXT_ARCH_DOWN_CURVE_DEFAULT_ADJUST) / sizeof(int),
3578 : TEXT_ARCH_DOWN_CURVE_TRS, sizeof(TEXT_ARCH_DOWN_CURVE_TRS) / sizeof(TextRectangle),
3579 : 21600, 21600,
3580 : NULL, 0);
3581 :
3582 : const Vertex TEXT_CIRCLE_CURVE_VERTICES[] =
3583 : {
3584 : {0, 0}, {21600, 21600}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(4)}
3585 : };
3586 :
3587 : const unsigned short TEXT_CIRCLE_CURVE_SEGMENTS[] =
3588 : {
3589 : 0xA504, 0x8000
3590 : };
3591 :
3592 : const Calculation TEXT_CIRCLE_CURVE_CALC[] =
3593 : {
3594 : {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x400, 10800, 0}, {0x2000, 0x401, 10800, 0}, {0x8000, 21600, 0, 0x403}
3595 : };
3596 :
3597 : const TextRectangle TEXT_CIRCLE_CURVE_TRS[] =
3598 : {
3599 : { {0, 0}, {21600, 21600} }
3600 : };
3601 :
3602 : const int TEXT_CIRCLE_CURVE_DEFAULT_ADJUST[] =
3603 : {
3604 : -179
3605 : };
3606 :
3607 0 : const CustomShape CS_TEXT_CIRCLE_CURVE(
3608 : TEXT_CIRCLE_CURVE_VERTICES, sizeof(TEXT_CIRCLE_CURVE_VERTICES) / sizeof(Vertex),
3609 : TEXT_CIRCLE_CURVE_SEGMENTS, sizeof(TEXT_CIRCLE_CURVE_SEGMENTS) / sizeof(unsigned short),
3610 : TEXT_CIRCLE_CURVE_CALC, sizeof(TEXT_CIRCLE_CURVE_CALC) / sizeof(Calculation),
3611 : TEXT_CIRCLE_CURVE_DEFAULT_ADJUST, sizeof(TEXT_CIRCLE_CURVE_DEFAULT_ADJUST) / sizeof(int),
3612 : TEXT_CIRCLE_CURVE_TRS, sizeof(TEXT_CIRCLE_CURVE_TRS) / sizeof(TextRectangle),
3613 : 21600, 21600,
3614 : NULL, 0);
3615 :
3616 : const Vertex TEXT_BUTTON_CURVE_VERTICES[] =
3617 : {
3618 : {0, 0}, {21600, 21600}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(3)}, {0, 10800}, {21600, 10800}, {0, 0}, {21600, 21600}, {CALCULATED_VALUE(2), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(5)}
3619 : };
3620 :
3621 : const unsigned short TEXT_BUTTON_CURVE_SEGMENTS[] =
3622 : {
3623 : 0xA504, 0x8000, 0x4000, 0x0001, 0x8000, 0xA304, 0x8000
3624 : };
3625 :
3626 : const Calculation TEXT_BUTTON_CURVE_CALC[] =
3627 : {
3628 : {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x400, 10800, 0}, {0x2000, 0x401, 10800, 0}, {0x8000, 21600, 0, 0x402}, {0x8000, 21600, 0, 0x403}
3629 : };
3630 :
3631 : const TextRectangle TEXT_BUTTON_CURVE_TRS[] =
3632 : {
3633 : { {0, 0}, {21600, 21600} }
3634 : };
3635 :
3636 : const int TEXT_BUTTON_CURVE_DEFAULT_ADJUST[] =
3637 : {
3638 : 180
3639 : };
3640 :
3641 0 : const CustomShape CS_TEXT_BUTTON_CURVE(
3642 : TEXT_BUTTON_CURVE_VERTICES, sizeof(TEXT_BUTTON_CURVE_VERTICES) / sizeof(Vertex),
3643 : TEXT_BUTTON_CURVE_SEGMENTS, sizeof(TEXT_BUTTON_CURVE_SEGMENTS) / sizeof(unsigned short),
3644 : TEXT_BUTTON_CURVE_CALC, sizeof(TEXT_BUTTON_CURVE_CALC) / sizeof(Calculation),
3645 : TEXT_BUTTON_CURVE_DEFAULT_ADJUST, sizeof(TEXT_BUTTON_CURVE_DEFAULT_ADJUST) / sizeof(int),
3646 : TEXT_BUTTON_CURVE_TRS, sizeof(TEXT_BUTTON_CURVE_TRS) / sizeof(TextRectangle),
3647 : 21600, 21600,
3648 : NULL, 0);
3649 :
3650 : const Vertex TEXT_ARCH_DOWN_POUR_VERTICES[] =
3651 : {
3652 : {CALCULATED_VALUE(5), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(9)}, {0, 0}, {21600, 21600}, {CALCULATED_VALUE(4), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}
3653 : };
3654 :
3655 : const unsigned short TEXT_ARCH_DOWN_POUR_SEGMENTS[] =
3656 : {
3657 : 0xA304, 0x8000, 0xA304, 0x8000
3658 : };
3659 :
3660 : const Calculation TEXT_ARCH_DOWN_POUR_CALC[] =
3661 : {
3662 : {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x400, 10800, 0}, {0x2000, 0x401, 10800, 0}, {0x8000, 21600, 0, 0x402}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x600a, 0x405, PROP_ADJUST_VAL_FIRST, 0}, {0x6009, 0x405, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x406, 10800, 0}, {0x2000, 0x407, 10800, 0}, {0x8000, 21600, 0, 0x408}, {0x8000, 21600, 0, 0x405}
3663 : };
3664 :
3665 : const TextRectangle TEXT_ARCH_DOWN_POUR_TRS[] =
3666 : {
3667 : { {0, 0}, {21600, 21600} }
3668 : };
3669 :
3670 : const int TEXT_ARCH_DOWN_POUR_DEFAULT_ADJUST[] =
3671 : {
3672 : 0, 5400
3673 : };
3674 :
3675 0 : const CustomShape CS_TEXT_ARCH_DOWN_POUR(
3676 : TEXT_ARCH_DOWN_POUR_VERTICES, sizeof(TEXT_ARCH_DOWN_POUR_VERTICES) / sizeof(Vertex),
3677 : TEXT_ARCH_DOWN_POUR_SEGMENTS, sizeof(TEXT_ARCH_DOWN_POUR_SEGMENTS) / sizeof(unsigned short),
3678 : TEXT_ARCH_DOWN_POUR_CALC, sizeof(TEXT_ARCH_DOWN_POUR_CALC) / sizeof(Calculation),
3679 : TEXT_ARCH_DOWN_POUR_DEFAULT_ADJUST, sizeof(TEXT_ARCH_DOWN_POUR_DEFAULT_ADJUST) / sizeof(int),
3680 : TEXT_ARCH_DOWN_POUR_TRS, sizeof(TEXT_ARCH_DOWN_POUR_TRS) / sizeof(TextRectangle),
3681 : 21600, 21600,
3682 : NULL, 0);
3683 :
3684 : const Vertex TEXT_CIRCLE_POUR_VERTICES[] =
3685 : {
3686 : {0, 0}, {21600, 21600}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(8), CALCULATED_VALUE(0xa)}
3687 : };
3688 :
3689 : const unsigned short TEXT_CIRCLE_POUR_SEGMENTS[] =
3690 : {
3691 : 0xA504, 0x8000, 0xA504, 0x8000
3692 : };
3693 :
3694 : const Calculation TEXT_CIRCLE_POUR_CALC[] =
3695 : {
3696 : {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x400, 10800, 0}, {0x2000, 0x401, 10800, 0}, {0x8000, 21600, 0, 0x403}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x600a, 0x405, PROP_ADJUST_VAL_FIRST, 0}, {0x6009, 0x405, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x406, 10800, 0}, {0x2000, 0x407, 10800, 0}, {0x8000, 21600, 0, 0x409}, {0x8000, 21600, 0, 0x405}, {0x000, 21600, 0, 0}
3697 : };
3698 :
3699 : const TextRectangle TEXT_CIRCLE_POUR_TRS[] =
3700 : {
3701 : { {0, 0}, {21600, 21600} }
3702 : };
3703 :
3704 : const int TEXT_CIRCLE_POUR_DEFAULT_ADJUST[] =
3705 : {
3706 : -179, 5400
3707 : };
3708 :
3709 0 : const CustomShape CS_TEXT_CIRCLE_POUR(
3710 : TEXT_CIRCLE_POUR_VERTICES, sizeof(TEXT_CIRCLE_POUR_VERTICES) / sizeof(Vertex),
3711 : TEXT_CIRCLE_POUR_SEGMENTS, sizeof(TEXT_CIRCLE_POUR_SEGMENTS) / sizeof(unsigned short),
3712 : TEXT_CIRCLE_POUR_CALC, sizeof(TEXT_CIRCLE_POUR_CALC) / sizeof(Calculation),
3713 : TEXT_CIRCLE_POUR_DEFAULT_ADJUST, sizeof(TEXT_CIRCLE_POUR_DEFAULT_ADJUST) / sizeof(int),
3714 : TEXT_CIRCLE_POUR_TRS, sizeof(TEXT_CIRCLE_POUR_TRS) / sizeof(TextRectangle),
3715 : 21600, 21600,
3716 : NULL, 0);
3717 :
3718 : const Vertex TEXT_BUTTON_POUR_VERTICES[] =
3719 : {
3720 : {0, 0}, {21600, 21600}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(6), CALCULATED_VALUE(6)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(10), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(11)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(16)}, {CALCULATED_VALUE(0x15), CALCULATED_VALUE(16)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(15)}, {CALCULATED_VALUE(0x15), CALCULATED_VALUE(15)}, {CALCULATED_VALUE(6), CALCULATED_VALUE(6)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(10), CALCULATED_VALUE(13)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(13)}, {0, 0}, {21600, 21600}, {CALCULATED_VALUE(2), CALCULATED_VALUE(5)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(5)}
3721 : };
3722 :
3723 : const unsigned short TEXT_BUTTON_POUR_SEGMENTS[] =
3724 : {
3725 : 0xA504, 0x8000, 0xA504, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000, 0xA304, 0x8000, 0xA304, 0x8000
3726 : };
3727 :
3728 : const Calculation TEXT_BUTTON_POUR_CALC[] =
3729 : {
3730 : {0x400a, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x4009, 10800, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x400, 10800, 0}, {0x2000, 0x401, 10800, 0}, {0x8000, 21600, 0, 0x402}, {0x8000, 21600, 0, 0x403}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 21600, 0, 0x406}, {0x600a, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST, 0}, {0x6009, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST, 0}, {0x2000, 0x408, 10800, 0}, {0x2000, 0x409, 10800, 0}, {0x8000, 21600, 0, 0x40a}, {0x8000, 21600, 0, 0x40b}, {0x2001, 0x406, 1, 2}, {0x4000, 10800, 0x40e, 0}, {0x8000, 10800, 0, 0x40e}, {0x6001, 0x40e, 0x40e, 1}, {0x6001, PROP_ADJUST_VAL_FIRST + 1, PROP_ADJUST_VAL_FIRST + 1, 1}, {0xA000, 0x412, 0, 0x411}, {0x200d, 0x413, 0, 0}, {0x4000, 10800, 0x414, 0}, {0x8000, 10800, 0, 0x414}
3731 : };
3732 :
3733 : const TextRectangle TEXT_BUTTON_POUR_TRS[] =
3734 : {
3735 : { {0, 0}, {21600, 21600} }
3736 : };
3737 :
3738 : const int TEXT_BUTTON_POUR_DEFAULT_ADJUST[] =
3739 : {
3740 : 180, 5400
3741 : };
3742 :
3743 0 : const CustomShape CS_TEXT_BUTTON_POUR(
3744 : TEXT_BUTTON_POUR_VERTICES, sizeof(TEXT_BUTTON_POUR_VERTICES) / sizeof(Vertex),
3745 : TEXT_BUTTON_POUR_SEGMENTS, sizeof(TEXT_BUTTON_POUR_SEGMENTS) / sizeof(unsigned short),
3746 : TEXT_BUTTON_POUR_CALC, sizeof(TEXT_BUTTON_POUR_CALC) / sizeof(Calculation),
3747 : TEXT_BUTTON_POUR_DEFAULT_ADJUST, sizeof(TEXT_BUTTON_POUR_DEFAULT_ADJUST) / sizeof(int),
3748 : TEXT_BUTTON_POUR_TRS, sizeof(TEXT_BUTTON_POUR_TRS) / sizeof(TextRectangle),
3749 : 21600, 21600,
3750 : NULL, 0);
3751 :
3752 : const Vertex TEXT_CURVE_UP_VERTICES[] =
3753 : {
3754 : {0, CALCULATED_VALUE(0)}, {4900, CALCULATED_VALUE(1) /*12170->0 14250 ->0*/}, {11640, CALCULATED_VALUE(2) /*12170->0 12800 ->0*/}, {21600, 0}, {0, CALCULATED_VALUE(4) /*12170->0 17220 ->21600*/}, {3700, 21600}, {8500, 21600}, {10100, 21600}, {14110, 21600}, {15910, 21600}, {21600, CALCULATED_VALUE(4) /*12170->0 17220 ->21600*/}
3755 : };
3756 :
3757 : const unsigned short TEXT_CURVE_UP_SEGMENTS[] =
3758 : {
3759 : 0x4000, 0x2001, 0x8000, 0x4000, 0x2002, 0x8000
3760 : };
3761 :
3762 : const Calculation TEXT_CURVE_UP_CALC[] =
3763 : {
3764 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x4001, 14250, 0x400, 12170}, {0x4001, 12800, 0x400, 12170}, {0x4001, 6380, 0x400, 12170}, {0x8000, 21600, 0, 0x403}
3765 : };
3766 :
3767 : const TextRectangle TEXT_CURVE_UP_TRS[] =
3768 : {
3769 : { {0, 0}, {21600, 21600} }
3770 : };
3771 :
3772 : const int TEXT_CURVE_UP_DEFAULT_ADJUST[] =
3773 : {
3774 : 9900
3775 : };
3776 :
3777 0 : const CustomShape CS_TEXT_CURVE_UP(
3778 : TEXT_CURVE_UP_VERTICES, sizeof(TEXT_CURVE_UP_VERTICES) / sizeof(Vertex),
3779 : TEXT_CURVE_UP_SEGMENTS, sizeof(TEXT_CURVE_UP_SEGMENTS) / sizeof(unsigned short),
3780 : TEXT_CURVE_UP_CALC, sizeof(TEXT_CURVE_UP_CALC) / sizeof(Calculation),
3781 : TEXT_CURVE_UP_DEFAULT_ADJUST, sizeof(TEXT_CURVE_UP_DEFAULT_ADJUST) / sizeof(int),
3782 : TEXT_CURVE_UP_TRS, sizeof(TEXT_CURVE_UP_TRS) / sizeof(TextRectangle),
3783 : 21600, 21600,
3784 : NULL, 0);
3785 :
3786 : const Vertex TEXT_CURVE_DOWN_VERTICES[] =
3787 : {
3788 : {0, 0}, {9960, CALCULATED_VALUE(2)}, {16700, CALCULATED_VALUE(1)}, {21600, CALCULATED_VALUE(0)}, {0, CALCULATED_VALUE(4)}, {5690, 21600}, {7490, 21600}, {11500, 21600}, {13100, 21600}, {17900, 21600}, {21600, CALCULATED_VALUE(4)}
3789 : };
3790 :
3791 : const unsigned short TEXT_CURVE_DOWN_SEGMENTS[] =
3792 : {
3793 : 0x4000, 0x2001, 0x8000, 0x4000, 0x2002, 0x8000
3794 : };
3795 :
3796 : const Calculation TEXT_CURVE_DOWN_CALC[] =
3797 : {
3798 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x4001, 14250, 0x400, 12170}, {0x4001, 12800, 0x400, 12170}, {0x4001, 6380, 0x400, 12170}, {0x8000, 21600, 0, 0x403}
3799 : };
3800 :
3801 : const TextRectangle TEXT_CURVE_DOWN_TRS[] =
3802 : {
3803 : { {0, 0}, {21600, 21600} }
3804 : };
3805 :
3806 : const int TEXT_CURVE_DOWN_DEFAULT_ADJUST[] =
3807 : {
3808 : 9900
3809 : };
3810 :
3811 0 : const CustomShape CS_TEXT_CURVE_DOWN(
3812 : TEXT_CURVE_DOWN_VERTICES, sizeof(TEXT_CURVE_DOWN_VERTICES) / sizeof(Vertex),
3813 : TEXT_CURVE_DOWN_SEGMENTS, sizeof(TEXT_CURVE_DOWN_SEGMENTS) / sizeof(unsigned short),
3814 : TEXT_CURVE_DOWN_CALC, sizeof(TEXT_CURVE_DOWN_CALC) / sizeof(Calculation),
3815 : TEXT_CURVE_DOWN_DEFAULT_ADJUST, sizeof(TEXT_CURVE_DOWN_DEFAULT_ADJUST) / sizeof(int),
3816 : TEXT_CURVE_DOWN_TRS, sizeof(TEXT_CURVE_DOWN_TRS) / sizeof(TextRectangle),
3817 : 21600, 21600,
3818 : NULL, 0);
3819 :
3820 : const Vertex TEXT_CASCADE_UP_VERTICES[] =
3821 : {
3822 : {0, CALCULATED_VALUE(2)}, {21600, 0}, {0, 21600}, {21600, CALCULATED_VALUE(0)}
3823 : };
3824 :
3825 : const unsigned short TEXT_CASCADE_UP_SEGMENTS[] =
3826 : {
3827 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
3828 : };
3829 :
3830 : const Calculation TEXT_CASCADE_UP_CALC[] =
3831 : {
3832 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x401, 1, 4}
3833 : };
3834 :
3835 : const TextRectangle TEXT_CASCADE_UP_TRS[] =
3836 : {
3837 : { {0, 0}, {21600, 21600} }
3838 : };
3839 :
3840 : const int TEXT_CASCADE_UP_DEFAULT_ADJUST[] =
3841 : {
3842 : 9600
3843 : };
3844 :
3845 0 : const CustomShape CS_TEXT_CASCADE_UP(
3846 : TEXT_CASCADE_UP_VERTICES, sizeof(TEXT_CASCADE_UP_VERTICES) / sizeof(Vertex),
3847 : TEXT_CASCADE_UP_SEGMENTS, sizeof(TEXT_CASCADE_UP_SEGMENTS) / sizeof(unsigned short),
3848 : TEXT_CASCADE_UP_CALC, sizeof(TEXT_CASCADE_UP_CALC) / sizeof(Calculation),
3849 : TEXT_CASCADE_UP_DEFAULT_ADJUST, sizeof(TEXT_CASCADE_UP_DEFAULT_ADJUST) / sizeof(int),
3850 : TEXT_CASCADE_UP_TRS, sizeof(TEXT_CASCADE_UP_TRS) / sizeof(TextRectangle),
3851 : 21600, 21600,
3852 : NULL, 0);
3853 :
3854 : const Vertex TEXT_CASCADE_DOWN_VERTICES[] =
3855 : {
3856 : {0, 0}, {21600, CALCULATED_VALUE(2)}, {0, CALCULATED_VALUE(0)}, {21600, 21600}
3857 : };
3858 :
3859 : const unsigned short TEXT_CASCADE_DOWN_SEGMENTS[] =
3860 : {
3861 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
3862 : };
3863 :
3864 : const Calculation TEXT_CASCADE_DOWN_CALC[] =
3865 : {
3866 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x401, 1, 4}
3867 : };
3868 :
3869 : const TextRectangle TEXT_CASCADE_DOWN_TRS[] =
3870 : {
3871 : { {0, 0}, {21600, 21600} }
3872 : };
3873 :
3874 : const int TEXT_CASCADE_DOWN_DEFAULT_ADJUST[] =
3875 : {
3876 : 9600
3877 : };
3878 :
3879 0 : const CustomShape CS_TEXT_CASCADE_DOWN(
3880 : TEXT_CASCADE_DOWN_VERTICES, sizeof(TEXT_CASCADE_DOWN_VERTICES) / sizeof(Vertex),
3881 : TEXT_CASCADE_DOWN_SEGMENTS, sizeof(TEXT_CASCADE_DOWN_SEGMENTS) / sizeof(unsigned short),
3882 : TEXT_CASCADE_DOWN_CALC, sizeof(TEXT_CASCADE_DOWN_CALC) / sizeof(Calculation),
3883 : TEXT_CASCADE_DOWN_DEFAULT_ADJUST, sizeof(TEXT_CASCADE_DOWN_DEFAULT_ADJUST) / sizeof(int),
3884 : TEXT_CASCADE_DOWN_TRS, sizeof(TEXT_CASCADE_DOWN_TRS) / sizeof(TextRectangle),
3885 : 21600, 21600,
3886 : NULL, 0);
3887 :
3888 : const Vertex TEXT_WAVE_1_VERTICES[] =
3889 : {
3890 : {CALCULATED_VALUE(7), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(15), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(29), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(27), CALCULATED_VALUE(28)}, {CALCULATED_VALUE(25), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(1)}
3891 : };
3892 :
3893 : const unsigned short TEXT_WAVE_1_SEGMENTS[] =
3894 : {
3895 : 0x4000, 0x2001, 0x8000, 0x4000, 0x2001, 0x8000
3896 : };
3897 :
3898 : const Calculation TEXT_WAVE_1_CALC[] =
3899 : {
3900 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, 0x400}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, 0x402, 0, 10800}, {0x2001, 0x403, 2, 1}, {0x2003, 0x404, 0, 0}, {0x8000, 4320, 0, 0x405}, {0xa006, 0x403, 0, 0x405}, {0x4001, 15800, 0x400, 4460}, {0xa000, 0x400, 0, 0x408}, {0x6000, 0x400, 0x408, 0}, {0x8000, 21600, 0, 0x404}, {0x6006, 0x403, 0x40b, 21600}, {0xa000, 0x40c, 0, 0x407}, {0x2001, 0x405, 1, 2}, {0xa000, 0x407, 7200, 0x40e}, {0x6000, 0x40c, 0x40e, 7200}, {0x2001, 0x40d, 1, 2}, {0x6000, 0x407, 0x411, 0}, {0x8000, 21600, 0, 0x412}, {0x2001, 0x405, 1, 2}, {0x8000, 21600, 0, 0x414}, {0x2001, 0x400, 2, 1}, {0x8000, 21600, 0, 0x416}, {0x8000, 21600, 0, 0x407}, {0x8000, 21600, 0, 0x40f}, {0x6000, 0x401, 0x408, 0}, {0x8000, 21600, 0, 0x410}, {0xa000, 0x401, 0, 0x408}, {0x8000, 21600, 0, 0x40c}
3901 : };
3902 :
3903 : const TextRectangle TEXT_WAVE_1_TRS[] =
3904 : {
3905 : { {0, 0}, {21600, 21600} }
3906 : };
3907 :
3908 : const int TEXT_WAVE_1_DEFAULT_ADJUST[] =
3909 : {
3910 : 1400, 10800
3911 : };
3912 :
3913 0 : const CustomShape CS_TEXT_WAVE_1(
3914 : TEXT_WAVE_1_VERTICES, sizeof(TEXT_WAVE_1_VERTICES) / sizeof(Vertex),
3915 : TEXT_WAVE_1_SEGMENTS, sizeof(TEXT_WAVE_1_SEGMENTS) / sizeof(unsigned short),
3916 : TEXT_WAVE_1_CALC, sizeof(TEXT_WAVE_1_CALC) / sizeof(Calculation),
3917 : TEXT_WAVE_1_DEFAULT_ADJUST, sizeof(TEXT_WAVE_1_DEFAULT_ADJUST) / sizeof(int),
3918 : TEXT_WAVE_1_TRS, sizeof(TEXT_WAVE_1_TRS) / sizeof(TextRectangle),
3919 : 21600, 21600,
3920 : NULL, 0);
3921 :
3922 : const Vertex TEXT_WAVE_2_VERTICES[] =
3923 : {
3924 : {CALCULATED_VALUE(7), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(15), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(29), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(27), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(25), CALCULATED_VALUE(28)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(1)}
3925 : };
3926 :
3927 : const unsigned short TEXT_WAVE_2_SEGMENTS[] =
3928 : {
3929 : 0x4000, 0x2001, 0x8000, 0x4000, 0x2001, 0x8000
3930 : };
3931 :
3932 : const Calculation TEXT_WAVE_2_CALC[] =
3933 : {
3934 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, 0x400}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, 0x402, 0, 10800}, {0x2001, 0x403, 2, 1}, {0x2003, 0x404, 0, 0}, {0x8000, 4320, 0, 0x405}, {0xa006, 0x403, 0, 0x405}, {0x4001, 15800, 0x400, 4460}, {0xa000, 0x400, 0, 0x408}, {0x6000, 0x400, 0x408, 0}, {0x8000, 21600, 0, 0x404}, {0x6006, 0x403, 0x40b, 21600}, {0xa000, 0x40c, 0, 0x407}, {0x2001, 0x405, 1, 2}, {0xa000, 0x407, 7200, 0x40e}, {0x6000, 0x40c, 0x40e, 7200}, {0x2001, 0x40d, 1, 2}, {0x6000, 0x407, 0x411, 0}, {0x8000, 21600, 0, 0x412}, {0x2001, 0x405, 1, 2}, {0x8000, 21600, 0, 0x414}, {0x2001, 0x400, 2, 1}, {0x8000, 21600, 0, 0x416}, {0x8000, 21600, 0, 0x407}, {0x8000, 21600, 0, 0x40f}, {0x6000, 0x401, 0x408, 0}, {0x8000, 21600, 0, 0x410}, {0xa000, 0x401, 0, 0x408}, {0x8000, 21600, 0, 0x40c}
3935 : };
3936 :
3937 : const TextRectangle TEXT_WAVE_2_TRS[] =
3938 : {
3939 : { {0, 0}, {21600, 21600} }
3940 : };
3941 :
3942 : const int TEXT_WAVE_2_DEFAULT_ADJUST[] =
3943 : {
3944 : 1400, 10800
3945 : };
3946 :
3947 0 : const CustomShape CS_TEXT_WAVE_2(
3948 : TEXT_WAVE_2_VERTICES, sizeof(TEXT_WAVE_2_VERTICES) / sizeof(Vertex),
3949 : TEXT_WAVE_2_SEGMENTS, sizeof(TEXT_WAVE_2_SEGMENTS) / sizeof(unsigned short),
3950 : TEXT_WAVE_2_CALC, sizeof(TEXT_WAVE_2_CALC) / sizeof(Calculation),
3951 : TEXT_WAVE_2_DEFAULT_ADJUST, sizeof(TEXT_WAVE_2_DEFAULT_ADJUST) / sizeof(int),
3952 : TEXT_WAVE_2_TRS, sizeof(TEXT_WAVE_2_TRS) / sizeof(TextRectangle),
3953 : 21600, 21600,
3954 : NULL, 0);
3955 :
3956 : const Vertex TEXT_WAVE_3_VERTICES[] =
3957 : {
3958 : {CALCULATED_VALUE(7), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(15), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0x1f), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(29), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(27), CALCULATED_VALUE(28)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0x21), CALCULATED_VALUE(28)}, {CALCULATED_VALUE(25), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(1)}
3959 : };
3960 :
3961 : const unsigned short TEXT_WAVE_3_SEGMENTS[] =
3962 : {
3963 : 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000
3964 : };
3965 :
3966 : const Calculation TEXT_WAVE_3_CALC[] =
3967 : {
3968 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, 0x400}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, 0x402, 0, 10800}, {0x2001, 0x403, 2, 1}, {0x2003, 0x404, 0, 0}, {0x8000, 4320, 0, 0x405}, {0xa006, 0x403, 0, 0x405}, {0x4001, 7900, 0x400, 2230}, {0xa000, 0x400, 0, 0x408}, {0x6000, 0x400, 0x408, 0}, {0x8000, 21600, 0, 0x404}, {0x6006, 0x403, 0x40b, 21600}, {0xa000, 0x40c, 0, 0x407}, {0x2001, 0x405, 1, 2}, {0xa000, 0x407, 3600, 0x40e}, {0x6000, 0x40c, 0x40e, 3600}, {0x2001, 0x40d, 1, 2}, {0x6000, 0x407, 0x411, 0}, {0x8000, 21600, 0, 0x412}, {0x2001, 0x405, 1, 2}, {0x8000, 21600, 0, 0x414}, {0x2001, 0x400, 2, 1}, {0x8000, 21600, 0, 0x416}, {0x8000, 21600, 0, 0x407}, {0x8000, 21600, 0, 0x40f}, {0x6000, 0x401, 0x408, 0}, {0x8000, 21600, 0, 0x410}, {0xa000, 0x401, 0, 0x408}, {0x8000, 21600, 0, 0x40c}, {0xa000, 0x412, 0, 0x40e}, {0x6000, 0x412, 0x40e, 0}, {0xa000, 0x413, 0, 0x40e}, {0x6000, 0x413, 0x40e, 0}
3969 : };
3970 :
3971 : const TextRectangle TEXT_WAVE_3_TRS[] =
3972 : {
3973 : { {0, 0}, {21600, 21600} }
3974 : };
3975 :
3976 : const int TEXT_WAVE_3_DEFAULT_ADJUST[] =
3977 : {
3978 : 1400, 10800
3979 : };
3980 :
3981 0 : const CustomShape CS_TEXT_WAVE_3(
3982 : TEXT_WAVE_3_VERTICES, sizeof(TEXT_WAVE_3_VERTICES) / sizeof(Vertex),
3983 : TEXT_WAVE_3_SEGMENTS, sizeof(TEXT_WAVE_3_SEGMENTS) / sizeof(unsigned short),
3984 : TEXT_WAVE_3_CALC, sizeof(TEXT_WAVE_3_CALC) / sizeof(Calculation),
3985 : TEXT_WAVE_3_DEFAULT_ADJUST, sizeof(TEXT_WAVE_3_DEFAULT_ADJUST) / sizeof(int),
3986 : TEXT_WAVE_3_TRS, sizeof(TEXT_WAVE_3_TRS) / sizeof(TextRectangle),
3987 : 21600, 21600,
3988 : NULL, 0);
3989 :
3990 : const Vertex TEXT_WAVE_4_VERTICES[] =
3991 : {
3992 : {CALCULATED_VALUE(7), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(15), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0x1f), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(29), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(27), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(28)}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0x21), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(25), CALCULATED_VALUE(28)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(1)}
3993 : };
3994 :
3995 : const unsigned short TEXT_WAVE_4_SEGMENTS[] =
3996 : {
3997 : 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000
3998 : };
3999 :
4000 : const Calculation TEXT_WAVE_4_CALC[] =
4001 : {
4002 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, 0x400}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, 0x402, 0, 10800}, {0x2001, 0x403, 2, 1}, {0x2003, 0x404, 0, 0}, {0x8000, 4320, 0, 0x405}, {0xa006, 0x403, 0, 0x405}, {0x4001, 7900, 0x400, 2230}, {0xa000, 0x400, 0, 0x408}, {0x6000, 0x400, 0x408, 0}, {0x8000, 21600, 0, 0x404}, {0x6006, 0x403, 0x40b, 21600}, {0xa000, 0x40c, 0, 0x407}, {0x2001, 0x405, 1, 2}, {0xa000, 0x407, 3600, 0x40e}, {0x6000, 0x40c, 0x40e, 3600}, {0x2001, 0x40d, 1, 2}, {0x6000, 0x407, 0x411, 0}, {0x8000, 21600, 0, 0x412}, {0x2001, 0x405, 1, 2}, {0x8000, 21600, 0, 0x414}, {0x2001, 0x400, 2, 1}, {0x8000, 21600, 0, 0x416}, {0x8000, 21600, 0, 0x407}, {0x8000, 21600, 0, 0x40f}, {0x6000, 0x401, 0x408, 0}, {0x8000, 21600, 0, 0x410}, {0xa000, 0x401, 0, 0x408}, {0x8000, 21600, 0, 0x40c}, {0xa000, 0x412, 0, 0x40e}, {0x6000, 0x412, 0x40e, 0}, {0xa000, 0x413, 0, 0x40e}, {0x6000, 0x413, 0x40e, 0}
4003 : };
4004 :
4005 : const TextRectangle TEXT_WAVE_4_TRS[] =
4006 : {
4007 : { {CALCULATED_VALUE(5), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(23)} }
4008 : };
4009 :
4010 : const int TEXT_WAVE_4_DEFAULT_ADJUST[] =
4011 : {
4012 : 1400, 10800
4013 : };
4014 :
4015 : const Vertex TEXT_WAVE_4_GLUE_POINTS[] =
4016 : {
4017 : {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0x14), 10800}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0x15), 10800}
4018 : };
4019 :
4020 0 : const CustomShape CS_TEXT_WAVE_4(
4021 : TEXT_WAVE_4_VERTICES, sizeof(TEXT_WAVE_4_VERTICES) / sizeof(Vertex),
4022 : TEXT_WAVE_4_SEGMENTS, sizeof(TEXT_WAVE_4_SEGMENTS) / sizeof(unsigned short),
4023 : TEXT_WAVE_4_CALC, sizeof(TEXT_WAVE_4_CALC) / sizeof(Calculation),
4024 : TEXT_WAVE_4_DEFAULT_ADJUST, sizeof(TEXT_WAVE_4_DEFAULT_ADJUST) / sizeof(int),
4025 : TEXT_WAVE_4_TRS, sizeof(TEXT_WAVE_4_TRS) / sizeof(TextRectangle),
4026 : 21600, 21600,
4027 : TEXT_WAVE_4_GLUE_POINTS, sizeof(TEXT_WAVE_4_GLUE_POINTS) / sizeof(Vertex));
4028 :
4029 : const Vertex TEXT_INFLATE_VERTICES[] =
4030 : {
4031 : {0, CALCULATED_VALUE(0)}, {4100, CALCULATED_VALUE(1)}, {7300, 0}, {10800, 0}, {14300, 0}, {17500, CALCULATED_VALUE(1)}, {21600, CALCULATED_VALUE(0)}, {0, CALCULATED_VALUE(2)}, {4100, CALCULATED_VALUE(3)}, {7300, 21600}, {10800, 21600}, {14300, 21600}, {17500, CALCULATED_VALUE(3)}, {21600, CALCULATED_VALUE(2)}
4032 : };
4033 :
4034 : const unsigned short TEXT_INFLATE_SEGMENTS[] =
4035 : {
4036 : 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000
4037 : };
4038 :
4039 : const Calculation TEXT_INFLATE_CALC[] =
4040 : {
4041 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x4001, 1530, 0x400, 4650}, {0x8000, 21600, 0, 0x400}, {0x8000, 21600, 0, 0x401}
4042 : };
4043 :
4044 : const TextRectangle TEXT_INFLATE_TRS[] =
4045 : {
4046 : { {0, 0}, {21600, 21600} }
4047 : };
4048 :
4049 : const int TEXT_INFLATE_DEFAULT_ADJUST[] =
4050 : {
4051 : 2950
4052 : };
4053 :
4054 0 : const CustomShape CS_TEXT_INFLATE(
4055 : TEXT_INFLATE_VERTICES, sizeof(TEXT_INFLATE_VERTICES) / sizeof(Vertex),
4056 : TEXT_INFLATE_SEGMENTS, sizeof(TEXT_INFLATE_SEGMENTS) / sizeof(unsigned short),
4057 : TEXT_INFLATE_CALC, sizeof(TEXT_INFLATE_CALC) / sizeof(Calculation),
4058 : TEXT_INFLATE_DEFAULT_ADJUST, sizeof(TEXT_INFLATE_DEFAULT_ADJUST) / sizeof(int),
4059 : TEXT_INFLATE_TRS, sizeof(TEXT_INFLATE_TRS) / sizeof(TextRectangle),
4060 : 21600, 21600,
4061 : NULL, 0);
4062 :
4063 : const Vertex TEXT_DEFLATE_VERTICES[] =
4064 : {
4065 : {0, 0}, {3500, CALCULATED_VALUE(1)}, {7100, CALCULATED_VALUE(0)}, {10800, CALCULATED_VALUE(0)}, {14500, CALCULATED_VALUE(0)}, {18100, CALCULATED_VALUE(1)}, {21600, 0}, {0, 21600}, {3500, CALCULATED_VALUE(3)}, {7100, CALCULATED_VALUE(2)}, {10800, CALCULATED_VALUE(2)}, {14500, CALCULATED_VALUE(2)}, {18100, CALCULATED_VALUE(3)}, {21600, 21600}
4066 : };
4067 :
4068 : const unsigned short TEXT_DEFLATE_SEGMENTS[] =
4069 : {
4070 : 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000
4071 : };
4072 :
4073 : const Calculation TEXT_DEFLATE_CALC[] =
4074 : {
4075 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2001, 0x400, 5320, 7100}, {0x8000, 21600, 0, 0x400}, {0x8000, 21600, 0, 0x401}
4076 : };
4077 :
4078 : const TextRectangle TEXT_DEFLATE_TRS[] =
4079 : {
4080 : { {0, 0}, {21600, 21600} }
4081 : };
4082 :
4083 : const int TEXT_DEFLATE_DEFAULT_ADJUST[] =
4084 : {
4085 : 8100
4086 : };
4087 :
4088 0 : const CustomShape CS_TEXT_DEFLATE(
4089 : TEXT_DEFLATE_VERTICES, sizeof(TEXT_DEFLATE_VERTICES) / sizeof(Vertex),
4090 : TEXT_DEFLATE_SEGMENTS, sizeof(TEXT_DEFLATE_SEGMENTS) / sizeof(unsigned short),
4091 : TEXT_DEFLATE_CALC, sizeof(TEXT_DEFLATE_CALC) / sizeof(Calculation),
4092 : TEXT_DEFLATE_DEFAULT_ADJUST, sizeof(TEXT_DEFLATE_DEFAULT_ADJUST) / sizeof(int),
4093 : TEXT_DEFLATE_TRS, sizeof(TEXT_DEFLATE_TRS) / sizeof(TextRectangle),
4094 : 21600, 21600,
4095 : NULL, 0);
4096 :
4097 : const Vertex TEXT_INFLATE_BOTTOM_VERTICES[] =
4098 : {
4099 : {0, 0}, {21600, 0}, {0, CALCULATED_VALUE(0)}, {3500, CALCULATED_VALUE(3)}, {7300, 21600}, {10800, 21600}, {14300, 21600}, {18100, CALCULATED_VALUE(3)}, {21600, CALCULATED_VALUE(0)}
4100 : };
4101 :
4102 : const unsigned short TEXT_INFLATE_BOTTOM_SEGMENTS[] =
4103 : {
4104 : 0x4000, 0x0001, 0x8000, 0x4000, 0x2002, 0x8000
4105 : };
4106 :
4107 : const Calculation TEXT_INFLATE_BOTTOM_CALC[] =
4108 : {
4109 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, 0x400, 0, 11150}, {0x2001, 0x401, 3900, 10450}, {0x2000, 0x402, 17700, 0}
4110 : };
4111 :
4112 : const TextRectangle TEXT_INFLATE_BOTTOM_TRS[] =
4113 : {
4114 : { {0, 0}, {21600, 21600} }
4115 : };
4116 :
4117 : const int TEXT_INFLATE_BOTTOM_DEFAULT_ADJUST[] =
4118 : {
4119 : 14700
4120 : };
4121 :
4122 0 : const CustomShape CS_TEXT_INFLATE_BOTTOM(
4123 : TEXT_INFLATE_BOTTOM_VERTICES, sizeof(TEXT_INFLATE_BOTTOM_VERTICES) / sizeof(Vertex),
4124 : TEXT_INFLATE_BOTTOM_SEGMENTS, sizeof(TEXT_INFLATE_BOTTOM_SEGMENTS) / sizeof(unsigned short),
4125 : TEXT_INFLATE_BOTTOM_CALC, sizeof(TEXT_INFLATE_BOTTOM_CALC) / sizeof(Calculation),
4126 : TEXT_INFLATE_BOTTOM_DEFAULT_ADJUST, sizeof(TEXT_INFLATE_BOTTOM_DEFAULT_ADJUST) / sizeof(int),
4127 : TEXT_INFLATE_BOTTOM_TRS, sizeof(TEXT_INFLATE_BOTTOM_TRS) / sizeof(TextRectangle),
4128 : 21600, 21600,
4129 : NULL, 0);
4130 :
4131 : const Vertex TEXT_DEFLATE_BOTTOM_VERTICES[] =
4132 : {
4133 : {0, 0}, {21600, 0}, {0, 21600}, {2900, CALCULATED_VALUE(3)}, {7200, CALCULATED_VALUE(0)}, {10800, CALCULATED_VALUE(0)}, {14400, CALCULATED_VALUE(0)}, {18700, CALCULATED_VALUE(3)}, {21600, 21600}
4134 : };
4135 :
4136 : const unsigned short TEXT_DEFLATE_BOTTOM_SEGMENTS[] =
4137 : {
4138 : 0x4000, 0x0001, 0x8000, 0x4000, 0x2002, 0x8000
4139 : };
4140 :
4141 : const Calculation TEXT_DEFLATE_BOTTOM_CALC[] =
4142 : {
4143 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, 0x400, 0, 1350}, {0x2001, 0x401, 12070, 20250}, {0x2000, 0x402, 9530, 0}
4144 : };
4145 :
4146 : const TextRectangle TEXT_DEFLATE_BOTTOM_TRS[] =
4147 : {
4148 : { {0, 0}, {21600, 21600} }
4149 : };
4150 :
4151 : const int TEXT_DEFLATE_BOTTOM_DEFAULT_ADJUST[] =
4152 : {
4153 : 11500
4154 : };
4155 :
4156 0 : const CustomShape CS_TEXT_DEFLATE_BOTTOM(
4157 : TEXT_DEFLATE_BOTTOM_VERTICES, sizeof(TEXT_DEFLATE_BOTTOM_VERTICES) / sizeof(Vertex),
4158 : TEXT_DEFLATE_BOTTOM_SEGMENTS, sizeof(TEXT_DEFLATE_BOTTOM_SEGMENTS) / sizeof(unsigned short),
4159 : TEXT_DEFLATE_BOTTOM_CALC, sizeof(TEXT_DEFLATE_BOTTOM_CALC) / sizeof(Calculation),
4160 : TEXT_DEFLATE_BOTTOM_DEFAULT_ADJUST, sizeof(TEXT_DEFLATE_BOTTOM_DEFAULT_ADJUST) / sizeof(int),
4161 : TEXT_DEFLATE_BOTTOM_TRS, sizeof(TEXT_DEFLATE_BOTTOM_TRS) / sizeof(TextRectangle),
4162 : 21600, 21600,
4163 : NULL, 0);
4164 :
4165 : const Vertex TEXT_INFLATE_TOP_VERTICES[] =
4166 : {
4167 : {0, CALCULATED_VALUE(0)}, {3500, CALCULATED_VALUE(1)}, {7300, 0}, {10800, 0}, {14300, 0}, {18100, CALCULATED_VALUE(1)}, {21600, CALCULATED_VALUE(0)}, {0, 21600}, {21600, 21600}
4168 : };
4169 :
4170 : const unsigned short TEXT_INFLATE_TOP_SEGMENTS[] =
4171 : {
4172 : 0x4000, 0x2002, 0x8000, 0x4000, 0x0001, 0x8000
4173 : };
4174 :
4175 : const Calculation TEXT_INFLATE_TOP_CALC[] =
4176 : {
4177 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2001, 0x400, 3900, 10450}
4178 : };
4179 :
4180 : const TextRectangle TEXT_INFLATE_TOP_TRS[] =
4181 : {
4182 : { {0, 0}, {21600, 21600} }
4183 : };
4184 :
4185 : const int TEXT_INFLATE_TOP_DEFAULT_ADJUST[] =
4186 : {
4187 : 6900
4188 : };
4189 :
4190 0 : const CustomShape CS_TEXT_INFLATE_TOP(
4191 : TEXT_INFLATE_TOP_VERTICES, sizeof(TEXT_INFLATE_TOP_VERTICES) / sizeof(Vertex),
4192 : TEXT_INFLATE_TOP_SEGMENTS, sizeof(TEXT_INFLATE_TOP_SEGMENTS) / sizeof(unsigned short),
4193 : TEXT_INFLATE_TOP_CALC, sizeof(TEXT_INFLATE_TOP_CALC) / sizeof(Calculation),
4194 : TEXT_INFLATE_TOP_DEFAULT_ADJUST, sizeof(TEXT_INFLATE_TOP_DEFAULT_ADJUST) / sizeof(int),
4195 : TEXT_INFLATE_TOP_TRS, sizeof(TEXT_INFLATE_TOP_TRS) / sizeof(TextRectangle),
4196 : 21600, 21600,
4197 : NULL, 0);
4198 :
4199 : const Vertex TEXT_DEFLATE_TOP_VERTICES[] =
4200 : {
4201 : {0, 0}, {2900, CALCULATED_VALUE(1)}, {7200, CALCULATED_VALUE(0)}, {10800, CALCULATED_VALUE(0)}, {14400, CALCULATED_VALUE(0)}, {18700, CALCULATED_VALUE(1)}, {21600, 0}, {0, 21600}, {21600, 21600}
4202 : };
4203 :
4204 : const unsigned short TEXT_DEFLATE_TOP_SEGMENTS[] =
4205 : {
4206 : 0x4000, 0x2002, 0x8000, 0x4000, 0x0001, 0x8000
4207 : };
4208 :
4209 : const Calculation TEXT_DEFLATE_TOP_CALC[] =
4210 : {
4211 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2001, 0x400, 12070, 20250}
4212 : };
4213 :
4214 : const TextRectangle TEXT_DEFLATE_TOP_TRS[] =
4215 : {
4216 : { {0, 0}, {21600, 21600} }
4217 : };
4218 :
4219 : const int TEXT_DEFLATE_TOP_DEFAULT_ADJUST[] =
4220 : {
4221 : 10100
4222 : };
4223 :
4224 0 : const CustomShape CS_TEXT_DEFLATE_TOP(
4225 : TEXT_DEFLATE_TOP_VERTICES, sizeof(TEXT_DEFLATE_TOP_VERTICES) / sizeof(Vertex),
4226 : TEXT_DEFLATE_TOP_SEGMENTS, sizeof(TEXT_DEFLATE_TOP_SEGMENTS) / sizeof(unsigned short),
4227 : TEXT_DEFLATE_TOP_CALC, sizeof(TEXT_DEFLATE_TOP_CALC) / sizeof(Calculation),
4228 : TEXT_DEFLATE_TOP_DEFAULT_ADJUST, sizeof(TEXT_DEFLATE_TOP_DEFAULT_ADJUST) / sizeof(int),
4229 : TEXT_DEFLATE_TOP_TRS, sizeof(TEXT_DEFLATE_TOP_TRS) / sizeof(TextRectangle),
4230 : 21600, 21600,
4231 : NULL, 0);
4232 :
4233 : const Vertex TEXT_DEFLATE_INFLATE_VERTICES[] =
4234 : {
4235 : {0, 0}, {21600, 0}, {0, 10100}, {3300, CALCULATED_VALUE(3)}, {7100, CALCULATED_VALUE(5)}, {10800, CALCULATED_VALUE(5)}, {14500, CALCULATED_VALUE(5)}, {18300, CALCULATED_VALUE(3)}, {21600, 10100}, {0, 11500}, {3300, CALCULATED_VALUE(4)}, {7100, CALCULATED_VALUE(6)}, {10800, CALCULATED_VALUE(6)}, {14500, CALCULATED_VALUE(6)}, {18300, CALCULATED_VALUE(4)}, {21600, 11500}, {0, 21600}, {21600, 21600}
4236 : };
4237 :
4238 : const unsigned short TEXT_DEFLATE_INFLATE_SEGMENTS[] =
4239 : {
4240 : 0x4000, 0x0001, 0x8000, 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000, 0x4000, 0x0001, 0x8000
4241 : };
4242 :
4243 : const Calculation TEXT_DEFLATE_INFLATE_CALC[] =
4244 : {
4245 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 10800, 0, 0x400}, {0x2001, 0x401, 5770, 9500}, {0x8000, 10100, 0, 0x402}, {0x8000, 11500, 0, 0x402}, {0x2000, 0x400, 0, 700}, {0x2000, 0x400, 700, 0}
4246 : };
4247 :
4248 : const TextRectangle TEXT_DEFLATE_INFLATE_TRS[] =
4249 : {
4250 : { {0, 0}, {21600, 21600} }
4251 : };
4252 :
4253 : const int TEXT_DEFLATE_INFLATE_DEFAULT_ADJUST[] =
4254 : {
4255 : 6500
4256 : };
4257 :
4258 0 : const CustomShape CS_TEXT_DEFLATE_INFLATE(
4259 : TEXT_DEFLATE_INFLATE_VERTICES, sizeof(TEXT_DEFLATE_INFLATE_VERTICES) / sizeof(Vertex),
4260 : TEXT_DEFLATE_INFLATE_SEGMENTS, sizeof(TEXT_DEFLATE_INFLATE_SEGMENTS) / sizeof(unsigned short),
4261 : TEXT_DEFLATE_INFLATE_CALC, sizeof(TEXT_DEFLATE_INFLATE_CALC) / sizeof(Calculation),
4262 : TEXT_DEFLATE_INFLATE_DEFAULT_ADJUST, sizeof(TEXT_DEFLATE_INFLATE_DEFAULT_ADJUST) / sizeof(int),
4263 : TEXT_DEFLATE_INFLATE_TRS, sizeof(TEXT_DEFLATE_INFLATE_TRS) / sizeof(TextRectangle),
4264 : 21600, 21600,
4265 : NULL, 0);
4266 :
4267 : const Vertex TEXT_DEFLATE_INFLATE_DEFLATE_VERTICES[] =
4268 : {
4269 : {0, 0}, {21600, 0}, {0, 6600}, {3600, CALCULATED_VALUE(3)}, {7250, CALCULATED_VALUE(4)}, {10800, CALCULATED_VALUE(4)}, {14350, CALCULATED_VALUE(4)}, {18000, CALCULATED_VALUE(3)}, {21600, 6600}, {0, 7500}, {3600, CALCULATED_VALUE(5)}, {7250, CALCULATED_VALUE(6)}, {10800, CALCULATED_VALUE(6)}, {14350, CALCULATED_VALUE(6)}, {18000, CALCULATED_VALUE(5)}, {21600, 7500}, {0, 14100}, {3600, CALCULATED_VALUE(9)}, {7250, CALCULATED_VALUE(10)}, {10800, CALCULATED_VALUE(10)}, {14350, CALCULATED_VALUE(10)}, {18000, CALCULATED_VALUE(9)}, {21600, 14100}, {0, 15000}, {3600, CALCULATED_VALUE(7)}, {7250, CALCULATED_VALUE(8)}, {10800, CALCULATED_VALUE(8)}, {14350, CALCULATED_VALUE(8)}, {18000, CALCULATED_VALUE(7)}, {21600, 15000}, {0, 21600}, {21600, 21600}
4270 : };
4271 :
4272 : const unsigned short TEXT_DEFLATE_INFLATE_DEFLATE_SEGMENTS[] =
4273 : {
4274 : 0x4000, 0x0001, 0x8000, 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000, 0x4000, 0x0001, 0x8000
4275 : };
4276 :
4277 : const Calculation TEXT_DEFLATE_INFLATE_DEFLATE_CALC[] =
4278 : {
4279 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 850}, {0x2001, 0x400, 6120, 8700}, {0x2000, 0x401, 0, 4280}, {0x4000, 6600, 0x402, 0}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 450}, {0x2000, 0x403, 900, 0}, {0x2000, 0x404, 900, 0}, {0x8000, 21600, 0, 0x403}, {0x8000, 21600, 0, 0x404}, {0x8000, 21600, 0, 0x405}, {0x8000, 21600, 0, 0x406}
4280 : };
4281 :
4282 : const TextRectangle TEXT_DEFLATE_INFLATE_DEFLATE_TRS[] =
4283 : {
4284 : { {0, 0}, {21600, 21600} }
4285 : };
4286 :
4287 : const int TEXT_DEFLATE_INFLATE_DEFLATE_DEFAULT_ADJUST[] =
4288 : {
4289 : 6050
4290 : };
4291 :
4292 0 : const CustomShape CS_TEXT_DEFLATE_INFLATE_DEFLATE(
4293 : TEXT_DEFLATE_INFLATE_DEFLATE_VERTICES, sizeof(TEXT_DEFLATE_INFLATE_DEFLATE_VERTICES) / sizeof(Vertex),
4294 : TEXT_DEFLATE_INFLATE_DEFLATE_SEGMENTS, sizeof(TEXT_DEFLATE_INFLATE_DEFLATE_SEGMENTS) / sizeof(unsigned short),
4295 : TEXT_DEFLATE_INFLATE_DEFLATE_CALC, sizeof(TEXT_DEFLATE_INFLATE_DEFLATE_CALC) / sizeof(Calculation),
4296 : TEXT_DEFLATE_INFLATE_DEFLATE_DEFAULT_ADJUST, sizeof(TEXT_DEFLATE_INFLATE_DEFLATE_DEFAULT_ADJUST) / sizeof(int),
4297 : TEXT_DEFLATE_INFLATE_DEFLATE_TRS, sizeof(TEXT_DEFLATE_INFLATE_DEFLATE_TRS) / sizeof(TextRectangle),
4298 : 21600, 21600,
4299 : NULL, 0);
4300 :
4301 : const Vertex TEXT_FADE_RIGHT_VERTICES[] =
4302 : {
4303 : {0, 0}, {21600, CALCULATED_VALUE(0)}, {0, 21600}, {21600, CALCULATED_VALUE(1)}
4304 : };
4305 :
4306 : const unsigned short TEXT_FADE_RIGHT_SEGMENTS[] =
4307 : {
4308 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
4309 : };
4310 :
4311 : const Calculation TEXT_FADE_RIGHT_CALC[] =
4312 : {
4313 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}
4314 : };
4315 :
4316 : const TextRectangle TEXT_FADE_RIGHT_TRS[] =
4317 : {
4318 : { {0, 0}, {21600, 21600} }
4319 : };
4320 :
4321 : const int TEXT_FADE_RIGHT_DEFAULT_ADJUST[] =
4322 : {
4323 : 7200
4324 : };
4325 :
4326 0 : const CustomShape CS_TEXT_FADE_RIGHT(
4327 : TEXT_FADE_RIGHT_VERTICES, sizeof(TEXT_FADE_RIGHT_VERTICES) / sizeof(Vertex),
4328 : TEXT_FADE_RIGHT_SEGMENTS, sizeof(TEXT_FADE_RIGHT_SEGMENTS) / sizeof(unsigned short),
4329 : TEXT_FADE_RIGHT_CALC, sizeof(TEXT_FADE_RIGHT_CALC) / sizeof(Calculation),
4330 : TEXT_FADE_RIGHT_DEFAULT_ADJUST, sizeof(TEXT_FADE_RIGHT_DEFAULT_ADJUST) / sizeof(int),
4331 : TEXT_FADE_RIGHT_TRS, sizeof(TEXT_FADE_RIGHT_TRS) / sizeof(TextRectangle),
4332 : 21600, 21600,
4333 : NULL, 0);
4334 :
4335 : const Vertex TEXT_FADE_LEFT_VERTICES[] =
4336 : {
4337 : {0, CALCULATED_VALUE(0)}, {21600, 0}, {0, CALCULATED_VALUE(1)}, {21600, 21600}
4338 : };
4339 :
4340 : const unsigned short TEXT_FADE_LEFT_SEGMENTS[] =
4341 : {
4342 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
4343 : };
4344 :
4345 : const Calculation TEXT_FADE_LEFT_CALC[] =
4346 : {
4347 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}
4348 : };
4349 :
4350 : const TextRectangle TEXT_FADE_LEFT_TRS[] =
4351 : {
4352 : { {0, 0}, {21600, 21600} }
4353 : };
4354 :
4355 : const int TEXT_FADE_LEFT_DEFAULT_ADJUST[] =
4356 : {
4357 : 7200
4358 : };
4359 :
4360 0 : const CustomShape CS_TEXT_FADE_LEFT(
4361 : TEXT_FADE_LEFT_VERTICES, sizeof(TEXT_FADE_LEFT_VERTICES) / sizeof(Vertex),
4362 : TEXT_FADE_LEFT_SEGMENTS, sizeof(TEXT_FADE_LEFT_SEGMENTS) / sizeof(unsigned short),
4363 : TEXT_FADE_LEFT_CALC, sizeof(TEXT_FADE_LEFT_CALC) / sizeof(Calculation),
4364 : TEXT_FADE_LEFT_DEFAULT_ADJUST, sizeof(TEXT_FADE_LEFT_DEFAULT_ADJUST) / sizeof(int),
4365 : TEXT_FADE_LEFT_TRS, sizeof(TEXT_FADE_LEFT_TRS) / sizeof(TextRectangle),
4366 : 21600, 21600,
4367 : NULL, 0);
4368 :
4369 : const Vertex TEXT_FADE_UP_VERTICES[] =
4370 : {
4371 : {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(1), 0}, {0, 21600}, {21600, 21600}
4372 : };
4373 :
4374 : const unsigned short TEXT_FADE_UP_SEGMENTS[] =
4375 : {
4376 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
4377 : };
4378 :
4379 : const Calculation TEXT_FADE_UP_CALC[] =
4380 : {
4381 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}
4382 : };
4383 :
4384 : const TextRectangle TEXT_FADE_UP_TRS[] =
4385 : {
4386 : { {0, 0}, {21600, 21600} }
4387 : };
4388 :
4389 : const int TEXT_FADE_UP_DEFAULT_ADJUST[] =
4390 : {
4391 : 7200
4392 : };
4393 :
4394 0 : const CustomShape CS_TEXT_FADE_UP(
4395 : TEXT_FADE_UP_VERTICES, sizeof(TEXT_FADE_UP_VERTICES) / sizeof(Vertex),
4396 : TEXT_FADE_UP_SEGMENTS, sizeof(TEXT_FADE_UP_SEGMENTS) / sizeof(unsigned short),
4397 : TEXT_FADE_UP_CALC, sizeof(TEXT_FADE_UP_CALC) / sizeof(Calculation),
4398 : TEXT_FADE_UP_DEFAULT_ADJUST, sizeof(TEXT_FADE_UP_DEFAULT_ADJUST) / sizeof(int),
4399 : TEXT_FADE_UP_TRS, sizeof(TEXT_FADE_UP_TRS) / sizeof(TextRectangle),
4400 : 21600, 21600,
4401 : NULL, 0);
4402 :
4403 : const Vertex TEXT_FADE_DOWN_VERTICES[] =
4404 : {
4405 : {0, 0}, {21600, 0}, {CALCULATED_VALUE(0), 21600}, {CALCULATED_VALUE(1), 21600}
4406 : };
4407 :
4408 : const unsigned short TEXT_FADE_DOWN_SEGMENTS[] =
4409 : {
4410 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
4411 : };
4412 :
4413 : const Calculation TEXT_FADE_DOWN_CALC[] =
4414 : {
4415 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}
4416 : };
4417 :
4418 : const TextRectangle TEXT_FADE_DOWN_TRS[] =
4419 : {
4420 : { {0, 0}, {21600, 21600} }
4421 : };
4422 :
4423 : const int TEXT_FADE_DOWN_DEFAULT_ADJUST[] =
4424 : {
4425 : 7200
4426 : };
4427 :
4428 0 : const CustomShape CS_TEXT_FADE_DOWN(
4429 : TEXT_FADE_DOWN_VERTICES, sizeof(TEXT_FADE_DOWN_VERTICES) / sizeof(Vertex),
4430 : TEXT_FADE_DOWN_SEGMENTS, sizeof(TEXT_FADE_DOWN_SEGMENTS) / sizeof(unsigned short),
4431 : TEXT_FADE_DOWN_CALC, sizeof(TEXT_FADE_DOWN_CALC) / sizeof(Calculation),
4432 : TEXT_FADE_DOWN_DEFAULT_ADJUST, sizeof(TEXT_FADE_DOWN_DEFAULT_ADJUST) / sizeof(int),
4433 : TEXT_FADE_DOWN_TRS, sizeof(TEXT_FADE_DOWN_TRS) / sizeof(TextRectangle),
4434 : 21600, 21600,
4435 : NULL, 0);
4436 :
4437 : const Vertex TEXT_SLANT_UP_VERTICES[] =
4438 : {
4439 : {0, CALCULATED_VALUE(0)}, {21600, 0}, {0, 21600}, {21600, CALCULATED_VALUE(1)}
4440 : };
4441 :
4442 : const unsigned short TEXT_SLANT_UP_SEGMENTS[] =
4443 : {
4444 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
4445 : };
4446 :
4447 : const Calculation TEXT_SLANT_UP_CALC[] =
4448 : {
4449 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}
4450 : };
4451 :
4452 : const TextRectangle TEXT_SLANT_UP_TRS[] =
4453 : {
4454 : { {0, 0}, {21600, 21600} }
4455 : };
4456 :
4457 : const int TEXT_SLANT_UP_DEFAULT_ADJUST[] =
4458 : {
4459 : 12000
4460 : };
4461 :
4462 0 : const CustomShape CS_TEXT_SLANT_UP(
4463 : TEXT_SLANT_UP_VERTICES, sizeof(TEXT_SLANT_UP_VERTICES) / sizeof(Vertex),
4464 : TEXT_SLANT_UP_SEGMENTS, sizeof(TEXT_SLANT_UP_SEGMENTS) / sizeof(unsigned short),
4465 : TEXT_SLANT_UP_CALC, sizeof(TEXT_SLANT_UP_CALC) / sizeof(Calculation),
4466 : TEXT_SLANT_UP_DEFAULT_ADJUST, sizeof(TEXT_SLANT_UP_DEFAULT_ADJUST) / sizeof(int),
4467 : TEXT_SLANT_UP_TRS, sizeof(TEXT_SLANT_UP_TRS) / sizeof(TextRectangle),
4468 : 21600, 21600,
4469 : NULL, 0);
4470 :
4471 : const Vertex TEXT_SLANT_DOWN_VERTICES[] =
4472 : {
4473 : {0, 0}, {21600, CALCULATED_VALUE(1)}, {0, CALCULATED_VALUE(0)}, {21600, 21600}
4474 : };
4475 :
4476 : const unsigned short TEXT_SLANT_DOWN_SEGMENTS[] =
4477 : {
4478 : 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
4479 : };
4480 :
4481 : const Calculation TEXT_SLANT_DOWN_CALC[] =
4482 : {
4483 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}
4484 : };
4485 :
4486 : const TextRectangle TEXT_SLANT_DOWN_TRS[] =
4487 : {
4488 : { {0, 0}, {21600, 21600} }
4489 : };
4490 :
4491 : const int TEXT_SLANT_DOWN_DEFAULT_ADJUST[] =
4492 : {
4493 : 12000
4494 : };
4495 :
4496 0 : const CustomShape CS_TEXT_SLANT_DOWN(
4497 : TEXT_SLANT_DOWN_VERTICES, sizeof(TEXT_SLANT_DOWN_VERTICES) / sizeof(Vertex),
4498 : TEXT_SLANT_DOWN_SEGMENTS, sizeof(TEXT_SLANT_DOWN_SEGMENTS) / sizeof(unsigned short),
4499 : TEXT_SLANT_DOWN_CALC, sizeof(TEXT_SLANT_DOWN_CALC) / sizeof(Calculation),
4500 : TEXT_SLANT_DOWN_DEFAULT_ADJUST, sizeof(TEXT_SLANT_DOWN_DEFAULT_ADJUST) / sizeof(int),
4501 : TEXT_SLANT_DOWN_TRS, sizeof(TEXT_SLANT_DOWN_TRS) / sizeof(TextRectangle),
4502 : 21600, 21600,
4503 : NULL, 0);
4504 :
4505 : const Vertex TEXT_CAN_UP_VERTICES[] =
4506 : {
4507 : {0, CALCULATED_VALUE(1)}, {900, 0}, {7100, 0}, {10800, 0}, {14500, 0}, {20700, 0}, {21600, CALCULATED_VALUE(1)}, {0, 21600}, {900, CALCULATED_VALUE(4)}, {7100, CALCULATED_VALUE(0)}, {10800, CALCULATED_VALUE(0)}, {14500, CALCULATED_VALUE(0)}, {20700, CALCULATED_VALUE(4)}, {21600, 21600}
4508 : };
4509 :
4510 : const unsigned short TEXT_CAN_UP_SEGMENTS[] =
4511 : {
4512 : 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000
4513 : };
4514 :
4515 : const Calculation TEXT_CAN_UP_CALC[] =
4516 : {
4517 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 14400}, {0x4001, 5470, 0x402, 7200}, {0x4000, 16130, 0x403, 0}
4518 : };
4519 :
4520 : const TextRectangle TEXT_CAN_UP_TRS[] =
4521 : {
4522 : { {0, 0}, {21600, 21600} }
4523 : };
4524 :
4525 : const int TEXT_CAN_UP_DEFAULT_ADJUST[] =
4526 : {
4527 : 18500
4528 : };
4529 :
4530 0 : const CustomShape CS_TEXT_CAN_UP(
4531 : TEXT_CAN_UP_VERTICES, sizeof(TEXT_CAN_UP_VERTICES) / sizeof(Vertex),
4532 : TEXT_CAN_UP_SEGMENTS, sizeof(TEXT_CAN_UP_SEGMENTS) / sizeof(unsigned short),
4533 : TEXT_CAN_UP_CALC, sizeof(TEXT_CAN_UP_CALC) / sizeof(Calculation),
4534 : TEXT_CAN_UP_DEFAULT_ADJUST, sizeof(TEXT_CAN_UP_DEFAULT_ADJUST) / sizeof(int),
4535 : TEXT_CAN_UP_TRS, sizeof(TEXT_CAN_UP_TRS) / sizeof(TextRectangle),
4536 : 21600, 21600,
4537 : NULL, 0);
4538 :
4539 : const Vertex TEXT_CAN_DOWN_VERTICES[] =
4540 : {
4541 : {0, 0}, {900, CALCULATED_VALUE(2)}, {7100, CALCULATED_VALUE(0)}, {10800, CALCULATED_VALUE(0)}, {14500, CALCULATED_VALUE(0)}, {20700, CALCULATED_VALUE(2)}, {21600, 0}, {0, CALCULATED_VALUE(1)}, {900, 21600}, {7100, 21600}, {10800, 21600}, {14500, 21600}, {20700, 21600}, {21600, CALCULATED_VALUE(1)}
4542 : };
4543 :
4544 : const unsigned short TEXT_CAN_DOWN_SEGMENTS[] =
4545 : {
4546 : 0x4000, 0x2002, 0x8000, 0x4000, 0x2002, 0x8000
4547 : };
4548 :
4549 : const Calculation TEXT_CAN_DOWN_CALC[] =
4550 : {
4551 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x4001, 5470, 0x400, 7200}
4552 : };
4553 :
4554 : const TextRectangle TEXT_CAN_DOWN_TRS[] =
4555 : {
4556 : { {0, 0}, {21600, 21600} }
4557 : };
4558 :
4559 : const int TEXT_CAN_DOWN_DEFAULT_ADJUST[] =
4560 : {
4561 : 3100
4562 : };
4563 :
4564 0 : const CustomShape CS_TEXT_CAN_DOWN(
4565 : TEXT_CAN_DOWN_VERTICES, sizeof(TEXT_CAN_DOWN_VERTICES) / sizeof(Vertex),
4566 : TEXT_CAN_DOWN_SEGMENTS, sizeof(TEXT_CAN_DOWN_SEGMENTS) / sizeof(unsigned short),
4567 : TEXT_CAN_DOWN_CALC, sizeof(TEXT_CAN_DOWN_CALC) / sizeof(Calculation),
4568 : TEXT_CAN_DOWN_DEFAULT_ADJUST, sizeof(TEXT_CAN_DOWN_DEFAULT_ADJUST) / sizeof(int),
4569 : TEXT_CAN_DOWN_TRS, sizeof(TEXT_CAN_DOWN_TRS) / sizeof(TextRectangle),
4570 : 21600, 21600,
4571 : NULL, 0);
4572 :
4573 : const Vertex FLOW_CHART_ALTERNATE_PROCESS_VERTICES[] =
4574 : {
4575 : {0, CALCULATED_VALUE(2)}, {CALCULATED_VALUE(0), 0}, {CALCULATED_VALUE(1), 0}, {21600, CALCULATED_VALUE(2)}, {21600, CALCULATED_VALUE(3)}, {CALCULATED_VALUE(1), 21600}, {CALCULATED_VALUE(0), 21600}, {0, CALCULATED_VALUE(3)}
4576 : };
4577 :
4578 : const unsigned short FLOW_CHART_ALTERNATE_PROCESS_SEGMENTS[] =
4579 : {
4580 : 0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
4581 : };
4582 :
4583 : const Calculation FLOW_CHART_ALTERNATE_PROCESS_CALC[] =
4584 : {
4585 : {0x2000, PROP_GEO_LEFT, 2540, 0}, {0x2000, PROP_GEO_RIGHT, 0, 2540}, {0x2000, PROP_GEO_TOP, 2540, 0}, {0x2000, PROP_GEO_BOTTOM, 0, 2540}, {0x2000, PROP_GEO_LEFT, 800, 0}, {0x2000, PROP_GEO_RIGHT, 0, 800}, {0x2000, PROP_GEO_TOP, 800, 0}, {0x2000, PROP_GEO_BOTTOM, 0, 800}
4586 : };
4587 :
4588 : const TextRectangle FLOW_CHART_ALTERNATE_PROCESS_TRS[] =
4589 : {
4590 : { {CALCULATED_VALUE(4), CALCULATED_VALUE(6)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(7)} }
4591 : };
4592 :
4593 : const Vertex FLOW_CHART_ALTERNATE_PROCESS_GLUE_POINTS[] =
4594 : {
4595 : {0, 10800}, {10800, 0}, {21600, 10800}, {10800, 21600}
4596 : };
4597 :
4598 0 : const CustomShape CS_FLOW_CHART_ALTERNATE_PROCESS(
4599 : FLOW_CHART_ALTERNATE_PROCESS_VERTICES, sizeof(FLOW_CHART_ALTERNATE_PROCESS_VERTICES) / sizeof(Vertex),
4600 : FLOW_CHART_ALTERNATE_PROCESS_SEGMENTS, sizeof(FLOW_CHART_ALTERNATE_PROCESS_SEGMENTS) / sizeof(unsigned short),
4601 : FLOW_CHART_ALTERNATE_PROCESS_CALC, sizeof(FLOW_CHART_ALTERNATE_PROCESS_CALC) / sizeof(Calculation),
4602 : NULL, 0,
4603 : FLOW_CHART_ALTERNATE_PROCESS_TRS, sizeof(FLOW_CHART_ALTERNATE_PROCESS_TRS) / sizeof(TextRectangle),
4604 : 21600, 21600,
4605 : FLOW_CHART_ALTERNATE_PROCESS_GLUE_POINTS, sizeof(FLOW_CHART_ALTERNATE_PROCESS_GLUE_POINTS) / sizeof(Vertex));
4606 :
4607 : const Vertex FLOW_CHART_OFFPAGE_CONNECTOR_VERTICES[] =
4608 : {
4609 : {0, 0}, {21600, 0}, {21600, 17150}, {10800, 21600}, {0, 17150}, {0, 0}
4610 : };
4611 :
4612 : const TextRectangle FLOW_CHART_OFFPAGE_CONNECTOR_TRS[] =
4613 : {
4614 : { {0, 0}, {21600, 17150} }
4615 : };
4616 :
4617 : const Vertex FLOW_CHART_OFFPAGE_CONNECTOR_GLUE_POINTS[] =
4618 : {
4619 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
4620 : };
4621 :
4622 0 : const CustomShape CS_FLOW_CHART_OFFPAGE_CONNECTOR(
4623 : FLOW_CHART_OFFPAGE_CONNECTOR_VERTICES, sizeof(FLOW_CHART_OFFPAGE_CONNECTOR_VERTICES) / sizeof(Vertex),
4624 : NULL, 0,
4625 : NULL, 0,
4626 : NULL, 0,
4627 : FLOW_CHART_OFFPAGE_CONNECTOR_TRS, sizeof(FLOW_CHART_OFFPAGE_CONNECTOR_TRS) / sizeof(TextRectangle),
4628 : 21600, 21600,
4629 : FLOW_CHART_OFFPAGE_CONNECTOR_GLUE_POINTS, sizeof(FLOW_CHART_OFFPAGE_CONNECTOR_GLUE_POINTS) / sizeof(Vertex));
4630 :
4631 : const Vertex LEFT_RIGHT_UP_ARROW_VERTICES[] =
4632 : {
4633 : {10800, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(0)}, {21600, 10800}, {CALCULATED_VALUE(5), CALCULATED_VALUE(3)}, {CALCULATED_VALUE(5), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(3)}, {0, 10800}, {CALCULATED_VALUE(2), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(2), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}
4634 : };
4635 :
4636 : const unsigned short LEFT_RIGHT_UP_ARROW_SEGMENTS[] =
4637 : {
4638 : 0x4000, 0x0010, 0x6001, 0x8000
4639 : };
4640 :
4641 : const Calculation LEFT_RIGHT_UP_ARROW_CALC[] =
4642 : {
4643 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x6001, 0x0403, PROP_ADJUST_VAL_FIRST + 2, 21600}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST + 1}, {0x8000, 21600, 0, 0x0402}
4644 : };
4645 :
4646 : const TextRectangle LEFT_RIGHT_UP_ARROW_TRS[] =
4647 : {
4648 : { {0, 0}, {21600, 21600} }
4649 : };
4650 :
4651 : const int LEFT_RIGHT_UP_ARROW_DEFAULT_ADJUST[] =
4652 : {
4653 : 6500, 8600, 6200
4654 : };
4655 :
4656 0 : const CustomShape CS_LEFT_RIGHT_UP_ARROW(
4657 : LEFT_RIGHT_UP_ARROW_VERTICES, sizeof(LEFT_RIGHT_UP_ARROW_VERTICES) / sizeof(Vertex),
4658 : LEFT_RIGHT_UP_ARROW_SEGMENTS, sizeof(LEFT_RIGHT_UP_ARROW_SEGMENTS) / sizeof(unsigned short),
4659 : LEFT_RIGHT_UP_ARROW_CALC, sizeof(LEFT_RIGHT_UP_ARROW_CALC) / sizeof(Calculation),
4660 : LEFT_RIGHT_UP_ARROW_DEFAULT_ADJUST, sizeof(LEFT_RIGHT_UP_ARROW_DEFAULT_ADJUST) / sizeof(int),
4661 : LEFT_RIGHT_UP_ARROW_TRS, sizeof(LEFT_RIGHT_UP_ARROW_TRS) / sizeof(TextRectangle),
4662 : 21600, 21600,
4663 : NULL, 0);
4664 :
4665 : const Vertex SUN_VERTICES[] =
4666 : {
4667 : {0, 10800}, {CALCULATED_VALUE(4), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(4), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(0x0a), CALCULATED_VALUE(0x0b)}, {CALCULATED_VALUE(0x0c), CALCULATED_VALUE(0x0d)}, {CALCULATED_VALUE(0x0e), CALCULATED_VALUE(0x0f)}, {CALCULATED_VALUE(0x10), CALCULATED_VALUE(0x11)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x13)}, {CALCULATED_VALUE(0x14), CALCULATED_VALUE(0x15)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(0x17)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0x19)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(0x1b)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x1d)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(0x1f)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(0x21)}, {CALCULATED_VALUE(0x22), CALCULATED_VALUE(0x23)}, {CALCULATED_VALUE(0x24), CALCULATED_VALUE(0x25)}, {CALCULATED_VALUE(0x26), CALCULATED_VALUE(0x27)}, {CALCULATED_VALUE(0x28), CALCULATED_VALUE(0x29)}, {CALCULATED_VALUE(0x2a), CALCULATED_VALUE(0x2b)}, {CALCULATED_VALUE(0x2c), CALCULATED_VALUE(0x2d)}, {CALCULATED_VALUE(0x2e), CALCULATED_VALUE(0x2f)}, {CALCULATED_VALUE(0x30), CALCULATED_VALUE(0x31)}, {CALCULATED_VALUE(0x32), CALCULATED_VALUE(0x33)}, {10800, 10800}, {CALCULATED_VALUE(0x36), CALCULATED_VALUE(0x36)}, {0, 360}
4668 : };
4669 :
4670 : const unsigned short SUN_SEGMENTS[] =
4671 : {
4672 : 0x4000, 0x0002, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000, 0xa203, 0x6000, 0x8000
4673 : };
4674 :
4675 : const Calculation SUN_CALC[] =
4676 : {
4677 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2000, PROP_ADJUST_VAL_FIRST, 0, 2700}, {0x2001, 0x402, 5080, 7425}, {0x2000, 0x403, 2540, 0}, {0x8000, 10125, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x405, 2120, 7425}, {0x2000, 0x406, 210, 0}, {0x4000, 10800, 0x407, 0}, {0x8000, 10800, 0, 0x407}, {0x0081, 0, 10800, 45}, {0x0082, 0, 10800, 45}, {0x6081, 0x404, 0x408, 45}, {0x6082, 0x404, 0x408, 45}, {0x6081, 0x404, 0x409, 45}, {0x6082, 0x404, 0x409, 45}, {0x0081, 0, 10800, 90}, {0x0082, 0, 10800, 90}, {0x6081, 0x404, 0x408, 90}, {0x6082, 0x404, 0x408, 90}, {0x6081, 0x404, 0x409, 90}, {0x6082, 0x404, 0x409, 90}, {0x0081, 0, 10800, 135}, {0x0082, 0, 10800, 135}, {0x6081, 0x404, 0x408, 135}, {0x6082, 0x404, 0x408, 135}, {0x6081, 0x404, 0x409, 135}, {0x6082, 0x404, 0x409, 135}, {0x0081, 0, 10800, 180}, {0x0082, 0, 10800, 180}, {0x6081, 0x404, 0x408, 180}, {0x6082, 0x404, 0x408, 180}, {0x6081, 0x404, 0x409, 180}, {0x6082, 0x404, 0x409, 180}, {0x0081, 0, 10800, 225}, {0x0082, 0, 10800, 225}, {0x6081, 0x404, 0x408, 225}, {0x6082, 0x404, 0x408, 225}, {0x6081, 0x404, 0x409, 225}, {0x6082, 0x404, 0x409, 225}, {0x0081, 0, 10800, 270}, {0x0082, 0, 10800, 270}, {0x6081, 0x404, 0x408, 270}, {0x6082, 0x404, 0x408, 270}, {0x6081, 0x404, 0x409, 270}, {0x6082, 0x404, 0x409, 270}, {0x0081, 0, 10800, 315}, {0x0082, 0, 10800, 315}, {0x6081, 0x404, 0x408, 315}, {0x6082, 0x404, 0x408, 315}, {0x6081, 0x404, 0x409, 315}, {0x6082, 0x404, 0x409, 315}, {0x2081, PROP_ADJUST_VAL_FIRST, 10800, 45}, {0x2081, PROP_ADJUST_VAL_FIRST, 10800, 225}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}
4678 : };
4679 :
4680 : const TextRectangle SUN_TRS[] =
4681 : {
4682 : { {CALCULATED_VALUE(0x34), CALCULATED_VALUE(0x34)}, {CALCULATED_VALUE(0x35), CALCULATED_VALUE(0x35)} }
4683 : };
4684 :
4685 : const int SUN_DEFAULT_ADJUST[] =
4686 : {
4687 : 5400
4688 : };
4689 :
4690 : const Vertex SUN_GLUE_POINTS[] =
4691 : {
4692 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
4693 : };
4694 :
4695 0 : const CustomShape CS_SUN(
4696 : SUN_VERTICES, sizeof(SUN_VERTICES) / sizeof(Vertex),
4697 : SUN_SEGMENTS, sizeof(SUN_SEGMENTS) / sizeof(unsigned short),
4698 : SUN_CALC, sizeof(SUN_CALC) / sizeof(Calculation),
4699 : SUN_DEFAULT_ADJUST, sizeof(SUN_DEFAULT_ADJUST) / sizeof(int),
4700 : SUN_TRS, sizeof(SUN_TRS) / sizeof(TextRectangle),
4701 : 21600, 21600,
4702 : SUN_GLUE_POINTS, sizeof(SUN_GLUE_POINTS) / sizeof(Vertex));
4703 :
4704 : const Vertex MOON_VERTICES[] =
4705 : {
4706 : {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0), 5080}, {CALCULATED_VALUE(0), 10800}, {CALCULATED_VALUE(0), 16520}, {CALCULATED_VALUE(3), CALCULATED_VALUE(5)}, {21600, 21600}, {9740, 21600}, {0, 16730}, {0, 10800}, {0, 4870}, {9740, 0}, {21600, 0}
4707 : };
4708 :
4709 : const unsigned short MOON_SEGMENTS[] =
4710 : {
4711 : 0x4000, 0x2004, 0x6000, 0x8000
4712 : };
4713 :
4714 : const Calculation MOON_CALC[] =
4715 : {
4716 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x401, 1, 2}, {0x6000, 0x402, PROP_ADJUST_VAL_FIRST, 0}, {0x2001, PROP_ADJUST_VAL_FIRST, 1794, 10000}, {0x8000, 21600, 0, 0x0404}, {0x2001, PROP_ADJUST_VAL_FIRST, 400, 18900}, {0x8081, 0, 10800, 0x406}, {0x8082, 0, 10800, 0x406}, {0x6000, 0x407, 0x407, 0}, {0x8000, 21600, 0, 0x408}
4717 : };
4718 :
4719 : const TextRectangle MOON_TRS[] =
4720 : {
4721 : { {CALCULATED_VALUE(9), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(10)} }
4722 : };
4723 :
4724 : const int MOON_DEFAULT_ADJUST[] =
4725 : {
4726 : 10800
4727 : };
4728 :
4729 : const Vertex MOON_GLUE_POINTS[] =
4730 : {
4731 : {21600, 0}, {0, 10800}, {21600, 21600}, {CALCULATED_VALUE(0), 10800}
4732 : };
4733 :
4734 0 : const CustomShape CS_MOON(
4735 : MOON_VERTICES, sizeof(MOON_VERTICES) / sizeof(Vertex),
4736 : MOON_SEGMENTS, sizeof(MOON_SEGMENTS) / sizeof(unsigned short),
4737 : MOON_CALC, sizeof(MOON_CALC) / sizeof(Calculation),
4738 : MOON_DEFAULT_ADJUST, sizeof(MOON_DEFAULT_ADJUST) / sizeof(int),
4739 : MOON_TRS, sizeof(MOON_TRS) / sizeof(TextRectangle),
4740 : 21600, 21600,
4741 : MOON_GLUE_POINTS, sizeof(MOON_GLUE_POINTS) / sizeof(Vertex));
4742 :
4743 : const Vertex BRACKET_PAIR_VERTICES[] =
4744 : {
4745 : {CALCULATED_VALUE(0), 0}, {0, CALCULATED_VALUE(1)}, {0, CALCULATED_VALUE(2)}, {CALCULATED_VALUE(0), 21600}, {CALCULATED_VALUE(3), 21600}, {21600, CALCULATED_VALUE(2)}, {21600, CALCULATED_VALUE(1)}, {CALCULATED_VALUE(3), 0}
4746 : };
4747 :
4748 : const unsigned short BRACKET_PAIR_SEGMENTS[] =
4749 : {
4750 : 0x4000, 0xa701, 0x0001, 0xa801, 0x8000, 0x4000, 0xa701, 0x0001, 0xa801, 0x8000
4751 : };
4752 :
4753 : const Calculation BRACKET_PAIR_CALC[] =
4754 : {
4755 : {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0x2082, PROP_ADJUST_VAL_FIRST, 0, 45}, {0x2000, 0x404, 0, 10800}, {0x8000, 0, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, 0x406, 0, 0x405}, {0xa000, PROP_GEO_LEFT, 0, 0x407}, {0xa000, PROP_GEO_TOP, 0, 0x407}, {0x6000, PROP_GEO_RIGHT, 0x407, 0}, {0x6000, PROP_GEO_BOTTOM, 0x407, 0}, {0xa000, PROP_GEO_LEFT, 0, 0x405}, {0xa000, PROP_GEO_TOP, 0, 0x405}, {0x6000, PROP_GEO_RIGHT, 0x405, 0}, {0x6000, PROP_GEO_BOTTOM, 0x405, 0}
4756 : };
4757 :
4758 : const TextRectangle BRACKET_PAIR_TRS[] =
4759 : {
4760 : { {CALCULATED_VALUE(8), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(10), CALCULATED_VALUE(11)} }
4761 : };
4762 :
4763 : const int BRACKET_PAIR_DEFAULT_ADJUST[] =
4764 : {
4765 : 3700
4766 : };
4767 :
4768 : const Vertex BRACKET_PAIR_GLUE_POINTS[] =
4769 : {
4770 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
4771 : };
4772 :
4773 0 : const CustomShape CS_BRACKET_PAIR(
4774 : BRACKET_PAIR_VERTICES, sizeof(BRACKET_PAIR_VERTICES) / sizeof(Vertex),
4775 : BRACKET_PAIR_SEGMENTS, sizeof(BRACKET_PAIR_SEGMENTS) / sizeof(unsigned short),
4776 : BRACKET_PAIR_CALC, sizeof(BRACKET_PAIR_CALC) / sizeof(Calculation),
4777 : BRACKET_PAIR_DEFAULT_ADJUST, sizeof(BRACKET_PAIR_DEFAULT_ADJUST) / sizeof(int),
4778 : BRACKET_PAIR_TRS, sizeof(BRACKET_PAIR_TRS) / sizeof(TextRectangle),
4779 : 21600, 21600,
4780 : BRACKET_PAIR_GLUE_POINTS, sizeof(BRACKET_PAIR_GLUE_POINTS) / sizeof(Vertex));
4781 :
4782 : const Vertex BRACE_PAIR_VERTICES[] =
4783 : {
4784 : {CALCULATED_VALUE(4), 0}, {CALCULATED_VALUE(0), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(6)}, {0, 10800}, {CALCULATED_VALUE(0), CALCULATED_VALUE(7)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(4), 21600}, {CALCULATED_VALUE(8), 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(7)}, {21600, 10800}, {CALCULATED_VALUE(3), CALCULATED_VALUE(6)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(8), 0}
4785 : };
4786 :
4787 : const unsigned short BRACE_PAIR_SEGMENTS[] =
4788 : {
4789 : 0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000, 0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000
4790 : };
4791 :
4792 : const Calculation BRACE_PAIR_CALC[] =
4793 : {
4794 : {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x400, 2, 1}, {0x2001, PROP_ADJUST_VAL_FIRST, 2, 1}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 21600, 0, 0x406}, {0xa000, PROP_GEO_RIGHT, 0, 0x405}, {0x2001, PROP_ADJUST_VAL_FIRST, 1, 3}, {0x6000, 0x409, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_LEFT, 0x40a, 0}, {0x6000, PROP_GEO_TOP, 0x409, 0}, {0xa000, PROP_GEO_RIGHT, 0, 0x40a}, {0xa000, PROP_GEO_BOTTOM, 0, 0x409}
4795 : };
4796 :
4797 : const TextRectangle BRACE_PAIR_TRS[] =
4798 : {
4799 : { {CALCULATED_VALUE(11), CALCULATED_VALUE(12)}, {CALCULATED_VALUE(13), CALCULATED_VALUE(14)} }
4800 : };
4801 :
4802 : const int BRACE_PAIR_DEFAULT_ADJUST[] =
4803 : {
4804 : 1800
4805 : };
4806 :
4807 : const Vertex BRACE_PAIR_GLUE_POINTS[] =
4808 : {
4809 : {10800, 0}, {0, 10800}, {10800, 21600}, {21600, 10800}
4810 : };
4811 :
4812 0 : const CustomShape CS_BRACE_PAIR(
4813 : BRACE_PAIR_VERTICES, sizeof(BRACE_PAIR_VERTICES) / sizeof(Vertex),
4814 : BRACE_PAIR_SEGMENTS, sizeof(BRACE_PAIR_SEGMENTS) / sizeof(unsigned short),
4815 : BRACE_PAIR_CALC, sizeof(BRACE_PAIR_CALC) / sizeof(Calculation),
4816 : BRACE_PAIR_DEFAULT_ADJUST, sizeof(BRACE_PAIR_DEFAULT_ADJUST) / sizeof(int),
4817 : BRACE_PAIR_TRS, sizeof(BRACE_PAIR_TRS) / sizeof(TextRectangle),
4818 : 21600, 21600,
4819 : BRACE_PAIR_GLUE_POINTS, sizeof(BRACE_PAIR_GLUE_POINTS) / sizeof(Vertex));
4820 :
4821 : const Vertex DOUBLE_WAVE_VERTICES[] =
4822 : {
4823 : {CALCULATED_VALUE(7), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(15), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0x1f), CALCULATED_VALUE(9)}, {CALCULATED_VALUE(16), CALCULATED_VALUE(10)}, {CALCULATED_VALUE(12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(24), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(25), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(0x21), CALCULATED_VALUE(28)}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(26)}, {CALCULATED_VALUE(27), CALCULATED_VALUE(28)}, {CALCULATED_VALUE(29), CALCULATED_VALUE(1)}
4824 : };
4825 :
4826 : const unsigned short DOUBLE_WAVE_SEGMENTS[] =
4827 : {
4828 : 0x4000, 0x2002, 0x0001, 0x2002, 0x6000, 0x8000
4829 : };
4830 :
4831 : const Calculation DOUBLE_WAVE_CALC[] =
4832 : {
4833 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x8000, 21600, 0, 0x400}, {0x2000, PROP_ADJUST_VAL_FIRST + 1, 0, 0}, {0x2000, 0x402, 0, 10800}, {0x2001, 0x403, 2, 1}, {0x2003, 0x404, 0, 0}, {0x8000, 4320, 0, 0x405}, {0xa006, 0x403, 0, 0x405}, {0x4001, 7900, 0x400, 2230}, {0xa000, 0x400, 0, 0x408}, {0x6000, 0x400, 0x408, 0}, {0x8000, 21600, 0, 0x404}, {0x6006, 0x403, 0x40b, 21600}, {0xa000, 0x40c, 0, 0x407}, {0x2001, 0x405, 1, 2}, {0xa000, 0x407, 3600, 0x40e}, {0x6000, 0x40c, 0x40e, 3600}, {0x2001, 0x40d, 1, 2}, {0x6000, 0x407, 0x411, 0}, {0x8000, 21600, 0, 0x412}, {0x2001, 0x405, 1, 2}, {0x8000, 21600, 0, 0x414}, {0x2001, 0x400, 2, 1}, {0x8000, 21600, 0, 0x416}, {0x8000, 21600, 0, 0x407}, {0x8000, 21600, 0, 0x40f}, {0x6000, 0x401, 0x408, 0}, {0x8000, 21600, 0, 0x410}, {0xa000, 0x401, 0, 0x408}, {0x8000, 21600, 0, 0x40c}, {0xa000, 0x412, 0, 0x40e}, {0x6000, 0x412, 0x40e, 0}, {0xa000, 0x413, 0, 0x40e}, {0x6000, 0x413, 0x40e, 0}
4834 : };
4835 :
4836 : const TextRectangle DOUBLE_WAVE_TRS[] =
4837 : {
4838 : { {CALCULATED_VALUE(5), CALCULATED_VALUE(22)}, {CALCULATED_VALUE(11), CALCULATED_VALUE(23)} }
4839 : };
4840 :
4841 : const int DOUBLE_WAVE_DEFAULT_ADJUST[] =
4842 : {
4843 : 1400, 10800
4844 : };
4845 :
4846 : const Vertex DOUBLE_WAVE_GLUE_POINTS[] =
4847 : {
4848 : {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0x14), 10800}, {CALCULATED_VALUE(0x13), CALCULATED_VALUE(1)}, {CALCULATED_VALUE(0x15), 10800}
4849 : };
4850 :
4851 0 : const CustomShape CS_DOUBLE_WAVE(
4852 : DOUBLE_WAVE_VERTICES, sizeof(DOUBLE_WAVE_VERTICES) / sizeof(Vertex),
4853 : DOUBLE_WAVE_SEGMENTS, sizeof(DOUBLE_WAVE_SEGMENTS) / sizeof(unsigned short),
4854 : DOUBLE_WAVE_CALC, sizeof(DOUBLE_WAVE_CALC) / sizeof(Calculation),
4855 : DOUBLE_WAVE_DEFAULT_ADJUST, sizeof(DOUBLE_WAVE_DEFAULT_ADJUST) / sizeof(int),
4856 : DOUBLE_WAVE_TRS, sizeof(DOUBLE_WAVE_TRS) / sizeof(TextRectangle),
4857 : 21600, 21600,
4858 : DOUBLE_WAVE_GLUE_POINTS, sizeof(DOUBLE_WAVE_GLUE_POINTS) / sizeof(Vertex));
4859 :
4860 : const Vertex ACTION_BUTTON_BLANK_VERTICES[] =
4861 : {
4862 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(0)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(0), CALCULATED_VALUE(2)}
4863 : };
4864 :
4865 : const unsigned short ACTION_BUTTON_BLANK_SEGMENTS[] =
4866 : {
4867 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000
4868 : };
4869 :
4870 : const Calculation ACTION_BUTTON_BLANK_CALC[] =
4871 : {
4872 : {0x2001, PROP_ADJUST_VAL_FIRST, 21599, 21600}, {0xa000, PROP_GEO_RIGHT, 0, 0x400}, {0xa000, PROP_GEO_BOTTOM, 0, 0x400}
4873 : };
4874 :
4875 : const TextRectangle ACTION_BUTTON_BLANK_TRS[] =
4876 : {
4877 : { {CALCULATED_VALUE(0), CALCULATED_VALUE(0)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)} }
4878 : };
4879 :
4880 : const int ACTION_BUTTON_BLANK_DEFAULT_ADJUST[] =
4881 : {
4882 : 1400
4883 : };
4884 :
4885 0 : const CustomShape CS_ACTION_BUTTON_BLANK(
4886 : ACTION_BUTTON_BLANK_VERTICES, sizeof(ACTION_BUTTON_BLANK_VERTICES) / sizeof(Vertex),
4887 : ACTION_BUTTON_BLANK_SEGMENTS, sizeof(ACTION_BUTTON_BLANK_SEGMENTS) / sizeof(unsigned short),
4888 : ACTION_BUTTON_BLANK_CALC, sizeof(ACTION_BUTTON_BLANK_CALC) / sizeof(Calculation),
4889 : ACTION_BUTTON_BLANK_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_BLANK_DEFAULT_ADJUST) / sizeof(int),
4890 : ACTION_BUTTON_BLANK_TRS, sizeof(ACTION_BUTTON_BLANK_TRS) / sizeof(TextRectangle),
4891 : 21600, 21600,
4892 : NULL, 0);
4893 :
4894 : const Vertex ACTION_BUTTON_HOME_VERTICES[] =
4895 : {
4896 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0xa)}, {CALCULATED_VALUE(0xc), CALCULATED_VALUE(0xe)}, {CALCULATED_VALUE(0xc), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0xc), CALCULATED_VALUE(0xe)}, {CALCULATED_VALUE(0xc), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x22), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x22), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(0x1a)}
4897 : };
4898 :
4899 : const unsigned short ACTION_BUTTON_HOME_SEGMENTS[] =
4900 : {
4901 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x000a, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0007, 0x6001, 0x8000
4902 : };
4903 :
4904 : const Calculation ACTION_BUTTON_HOME_CALC[] =
4905 : {
4906 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -8000, 0x0406, 1}, {0x6000, 0x0409, 0x0408, 0}, {0x4001, 2960, 0x0406, 1}, {0x6000, 0x040b, 0x0407, 0}, {0x4001, -5000, 0x0406, 1}, {0x6000, 0x040d, 0x0408, 0}, {0x4001, -7000, 0x0406, 1}, {0x6000, 0x040f, 0x0408, 0}, {0x4001, 5000, 0x0406, 1}, {0x6000, 0x0411, 0x0407, 0}, {0x4001, -2960, 0x0406, 1}, {0x6000, 0x0413, 0x0408, 0}, {0x4001, 8000, 0x0406, 1}, {0x6000, 0x0415, 0x0407, 0}, {0x4001, 6100, 0x0406, 1}, {0x6000, 0x0417, 0x0407, 0}, {0x4001, 8260, 0x0406, 1}, {0x6000, 0x0419, 0x0408, 0}, {0x4001, -6100, 0x0406, 1}, {0x6000, 0x041b, 0x0407, 0}, {0x4001, -8000, 0x0406, 1}, {0x6000, 0x041d, 0x0407, 0}, {0x4001, -1060, 0x0406, 1}, {0x6000, 0x041f, 0x0407, 0}, {0x4001, 1060, 0x0406, 1}, {0x6000, 0x0421, 0x0407, 0}, {0x4001, 4020, 0x0406, 1}, {0x6000, 0x0423, 0x0408, 0}
4907 : };
4908 :
4909 : const TextRectangle ACTION_BUTTON_HOME_TRS[] =
4910 : {
4911 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
4912 : };
4913 :
4914 : const int ACTION_BUTTON_HOME_DEFAULT_ADJUST[] =
4915 : {
4916 : 1400
4917 : };
4918 :
4919 0 : const CustomShape CS_ACTION_BUTTON_HOME(
4920 : ACTION_BUTTON_HOME_VERTICES, sizeof(ACTION_BUTTON_HOME_VERTICES) / sizeof(Vertex),
4921 : ACTION_BUTTON_HOME_SEGMENTS, sizeof(ACTION_BUTTON_HOME_SEGMENTS) / sizeof(unsigned short),
4922 : ACTION_BUTTON_HOME_CALC, sizeof(ACTION_BUTTON_HOME_CALC) / sizeof(Calculation),
4923 : ACTION_BUTTON_HOME_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_HOME_DEFAULT_ADJUST) / sizeof(int),
4924 : ACTION_BUTTON_HOME_TRS, sizeof(ACTION_BUTTON_HOME_TRS) / sizeof(TextRectangle),
4925 : 21600, 21600,
4926 : NULL, 0);
4927 :
4928 : const Vertex ACTION_BUTTON_HELP_VERTICES[] =
4929 : {
4930 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0x3e)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0x3e)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x18)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(0x22)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(0x26)}, {CALCULATED_VALUE(0x28), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0x2c), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0x2e), CALCULATED_VALUE(0x26)}, {CALCULATED_VALUE(0x2e), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x30), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x30), CALCULATED_VALUE(0x32)}, {CALCULATED_VALUE(0x34), CALCULATED_VALUE(0x36)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0x36)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x36)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x32)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x38)}, {CALCULATED_VALUE(0x3a), CALCULATED_VALUE(0x3c)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x3c)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0x3c)}, {CALCULATED_VALUE(0x34), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x34), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x34), CALCULATED_VALUE(0x14)}
4931 : };
4932 :
4933 : const unsigned short ACTION_BUTTON_HELP_SEGMENTS[] =
4934 : {
4935 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0xa704, 0x6000, 0x8000, 0x4000, 0x0001, 0x2004, 0x0001, 0x2004, 0x0001, 0x6001, 0x8000
4936 : };
4937 :
4938 : const Calculation ACTION_BUTTON_HELP_CALC[] =
4939 : {
4940 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -1690, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, 4600, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, 1690, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, 7980, 0x0406, 1}, {0x6000, 0x040f, 0x0408, 0}, {0x4001, 1270, 0x0406, 1}, {0x6000, 0x0411, 0x0407, 0}, {0x4001, 4000, 0x0406, 1}, {0x6000, 0x0413, 0x0408, 0}, {0x4001, 1750, 0x0406, 1}, {0x6000, 0x0415, 0x0408, 0}, {0x4001, 800, 0x0406, 1}, {0x6000, 0x0417, 0x0408, 0}, {0x4001, 1650, 0x0406, 1}, {0x6000, 0x0419, 0x0407, 0}, {0x4001, 2340, 0x0406, 1}, {0x6000, 0x041b, 0x0407, 0}, {0x4001, 3640, 0x0406, 1}, {0x6000, 0x041d, 0x0407, 0}, {0x4001, 4670, 0x0406, 1}, {0x6000, 0x041f, 0x0407, 0}, {0x4001, -1570, 0x0406, 1}, {0x6000, 0x0421, 0x0408, 0}, {0x4001, -3390, 0x0406, 1}, {0x6000, 0x0423, 0x0408, 0}, {0x4001, -6050, 0x0406, 1}, {0x6000, 0x0425, 0x0408, 0}, {0x4001, 2540, 0x0406, 1}, {0x6000, 0x0427, 0x0407, 0}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0429, 0x0408, 0}, {0x4001, -2540, 0x0406, 1}, {0x6000, 0x042b, 0x0407, 0}, {0x4001, -4460, 0x0406, 1}, {0x6000, 0x042d, 0x0407, 0}, {0x4001, -2330, 0x0406, 1}, {0x6000, 0x042f, 0x0407, 0}, {0x4001, -4700, 0x0406, 1}, {0x6000, 0x0431, 0x0408, 0}, {0x4001, -1270, 0x0406, 1}, {0x6000, 0x0433, 0x0407, 0}, {0x4001, -5720, 0x0406, 1}, {0x6000, 0x0435, 0x0408, 0}, {0x4001, -2540, 0x0406, 1}, {0x6000, 0x0437, 0x0408, 0}, {0x4001, 1800, 0x0406, 1}, {0x6000, 0x0439, 0x0407, 0}, {0x4001, -1700, 0x0406, 1}, {0x6000, 0x043b, 0x0408, 0}, {0x4001, 6290, 0x0406, 1}, {0x6000, 0x043d, 0x0408, 0}
4941 : };
4942 :
4943 : const TextRectangle ACTION_BUTTON_HELP_TRS[] =
4944 : {
4945 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
4946 : };
4947 :
4948 : const int ACTION_BUTTON_HELP_DEFAULT_ADJUST[] =
4949 : {
4950 : 1400
4951 : };
4952 :
4953 0 : const CustomShape CS_ACTION_BUTTON_HELP(
4954 : ACTION_BUTTON_HELP_VERTICES, sizeof(ACTION_BUTTON_HELP_VERTICES) / sizeof(Vertex),
4955 : ACTION_BUTTON_HELP_SEGMENTS, sizeof(ACTION_BUTTON_HELP_SEGMENTS) / sizeof(unsigned short),
4956 : ACTION_BUTTON_HELP_CALC, sizeof(ACTION_BUTTON_HELP_CALC) / sizeof(Calculation),
4957 : ACTION_BUTTON_HELP_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_HELP_DEFAULT_ADJUST) / sizeof(int),
4958 : ACTION_BUTTON_HELP_TRS, sizeof(ACTION_BUTTON_HELP_TRS) / sizeof(TextRectangle),
4959 : 21600, 21600,
4960 : NULL, 0);
4961 :
4962 : const Vertex ACTION_BUTTON_INFORMATION_VERTICES[] =
4963 : {
4964 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0x7), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0x8)}, {CALCULATED_VALUE(0x7), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x7), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x7), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0x7), CALCULATED_VALUE(0x18)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0x7), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(0x1c)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(0x1c)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(0x20)}, {CALCULATED_VALUE(0x22), CALCULATED_VALUE(0x20)}, {CALCULATED_VALUE(0x22), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(0x20)}, {CALCULATED_VALUE(0x26), CALCULATED_VALUE(0x20)}, {CALCULATED_VALUE(0x26), CALCULATED_VALUE(0x28)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(0x28)}
4965 : };
4966 :
4967 : const unsigned short ACTION_BUTTON_INFORMATION_SEGMENTS[] =
4968 : {
4969 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0xa704, 0x6000, 0x8000, 0x4000, 0xa704, 0x6000, 0x8000, 0x4000, 0x0009, 0x6001, 0x8000
4970 : };
4971 :
4972 : const Calculation ACTION_BUTTON_INFORMATION_CALC[] =
4973 : {
4974 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040f, 0x0408, 0}, {0x4001, -2060, 0x0406, 1}, {0x6000, 0x0411, 0x0407, 0}, {0x4001, -7620, 0x0406, 1}, {0x6000, 0x0413, 0x0408, 0}, {0x4001, 2060, 0x0406, 1}, {0x6000, 0x0415, 0x0407, 0}, {0x4001, -3500, 0x0406, 1}, {0x6000, 0x0417, 0x0408, 0}, {0x4001, -2960, 0x0406, 1}, {0x6000, 0x0419, 0x0407, 0}, {0x4001, -2960, 0x0406, 1}, {0x6000, 0x041b, 0x0408, 0}, {0x4001, 1480, 0x0406, 1}, {0x6000, 0x041d, 0x0407, 0}, {0x4001, 5080, 0x0406, 1}, {0x6000, 0x041f, 0x0408, 0}, {0x4001, 2960, 0x0406, 1}, {0x6000, 0x0421, 0x0407, 0}, {0x4001, 6140, 0x0406, 1}, {0x6000, 0x0423, 0x0408, 0}, {0x4001, -1480, 0x0406, 1}, {0x6000, 0x0425, 0x0407, 0}, {0x4001, -1920, 0x0406, 1}, {0x6000, 0x0427, 0x0408, 0}, {0x4001, -5560, 0x0406, 1}, {0x6000, 0x0429, 0x0408, 0}
4975 : };
4976 :
4977 : const TextRectangle ACTION_BUTTON_INFORMATION_TRS[] =
4978 : {
4979 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
4980 : };
4981 :
4982 : const int ACTION_BUTTON_INFORMATION_DEFAULT_ADJUST[] =
4983 : {
4984 : 1400
4985 : };
4986 :
4987 0 : const CustomShape CS_ACTION_BUTTON_INFORMATION(
4988 : ACTION_BUTTON_INFORMATION_VERTICES, sizeof(ACTION_BUTTON_INFORMATION_VERTICES) / sizeof(Vertex),
4989 : ACTION_BUTTON_INFORMATION_SEGMENTS, sizeof(ACTION_BUTTON_INFORMATION_SEGMENTS) / sizeof(unsigned short),
4990 : ACTION_BUTTON_INFORMATION_CALC, sizeof(ACTION_BUTTON_INFORMATION_CALC) / sizeof(Calculation),
4991 : ACTION_BUTTON_INFORMATION_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_INFORMATION_DEFAULT_ADJUST) / sizeof(int),
4992 : ACTION_BUTTON_INFORMATION_TRS, sizeof(ACTION_BUTTON_INFORMATION_TRS) / sizeof(TextRectangle),
4993 : 21600, 21600,
4994 : NULL, 0);
4995 :
4996 : const Vertex ACTION_BUTTON_FORWARD_NEXT_VERTICES[] =
4997 : {
4998 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0x10)}
4999 : };
5000 :
5001 : const unsigned short ACTION_BUTTON_FORWARD_NEXT_SEGMENTS[] =
5002 : {
5003 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000
5004 : };
5005 :
5006 : const Calculation ACTION_BUTTON_FORWARD_NEXT_CALC[] =
5007 : {
5008 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040f, 0x0408, 0}
5009 : };
5010 :
5011 : const TextRectangle ACTION_BUTTON_FORWARD_NEXT_TRS[] =
5012 : {
5013 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
5014 : };
5015 :
5016 : const int ACTION_BUTTON_FORWARD_NEXT_DEFAULT_ADJUST[] =
5017 : {
5018 : 1400
5019 : };
5020 :
5021 0 : const CustomShape CS_ACTION_BUTTON_FORWARD_NEXT(
5022 : ACTION_BUTTON_FORWARD_NEXT_VERTICES, sizeof(ACTION_BUTTON_FORWARD_NEXT_VERTICES) / sizeof(Vertex),
5023 : ACTION_BUTTON_FORWARD_NEXT_SEGMENTS, sizeof(ACTION_BUTTON_FORWARD_NEXT_SEGMENTS) / sizeof(unsigned short),
5024 : ACTION_BUTTON_FORWARD_NEXT_CALC, sizeof(ACTION_BUTTON_FORWARD_NEXT_CALC) / sizeof(Calculation),
5025 : ACTION_BUTTON_FORWARD_NEXT_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_FORWARD_NEXT_DEFAULT_ADJUST) / sizeof(int),
5026 : ACTION_BUTTON_FORWARD_NEXT_TRS, sizeof(ACTION_BUTTON_FORWARD_NEXT_TRS) / sizeof(TextRectangle),
5027 : 21600, 21600,
5028 : NULL, 0);
5029 :
5030 : const Vertex ACTION_BUTTON_BACK_PREVIOUS_VERTICES[] =
5031 : {
5032 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0x10)}
5033 : };
5034 :
5035 : const unsigned short ACTION_BUTTON_BACK_PREVIOUS_SEGMENTS[] =
5036 : {
5037 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000
5038 : };
5039 :
5040 : const Calculation ACTION_BUTTON_BACK_PREVIOUS_CALC[] =
5041 : {
5042 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040f, 0x0408, 0}
5043 : };
5044 :
5045 : const TextRectangle ACTION_BUTTON_BACK_PREVIOUS_TRS[] =
5046 : {
5047 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
5048 : };
5049 :
5050 : const int ACTION_BUTTON_BACK_PREVIOUS_DEFAULT_ADJUST[] =
5051 : {
5052 : 1400
5053 : };
5054 :
5055 0 : const CustomShape CS_ACTION_BUTTON_BACK_PREVIOUS(
5056 : ACTION_BUTTON_BACK_PREVIOUS_VERTICES, sizeof(ACTION_BUTTON_BACK_PREVIOUS_VERTICES) / sizeof(Vertex),
5057 : ACTION_BUTTON_BACK_PREVIOUS_SEGMENTS, sizeof(ACTION_BUTTON_BACK_PREVIOUS_SEGMENTS) / sizeof(unsigned short),
5058 : ACTION_BUTTON_BACK_PREVIOUS_CALC, sizeof(ACTION_BUTTON_BACK_PREVIOUS_CALC) / sizeof(Calculation),
5059 : ACTION_BUTTON_BACK_PREVIOUS_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_BACK_PREVIOUS_DEFAULT_ADJUST) / sizeof(int),
5060 : ACTION_BUTTON_BACK_PREVIOUS_TRS, sizeof(ACTION_BUTTON_BACK_PREVIOUS_TRS) / sizeof(TextRectangle),
5061 : 21600, 21600,
5062 : NULL, 0);
5063 :
5064 : const Vertex ACTION_BUTTON_END_VERTICES[] =
5065 : {
5066 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0xc)}
5067 : };
5068 :
5069 : const unsigned short ACTION_BUTTON_END_SEGMENTS[] =
5070 : {
5071 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000
5072 : };
5073 :
5074 : const Calculation ACTION_BUTTON_END_CALC[] =
5075 : {
5076 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -4020, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040f, 0x0408, 0}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0411, 0x0407, 0}, {0x4001, -6140, 0x0406, 1}, {0x6000, 0x0413, 0x0407, 0}, {0x4001, 4020, 0x0406, 1}, {0x6000, 0x0415, 0x0407, 0}, {0x4001, 6140, 0x0406, 1}, {0x6000, 0x0417, 0x0407, 0}
5077 : };
5078 :
5079 : const TextRectangle ACTION_BUTTON_END_TRS[] =
5080 : {
5081 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
5082 : };
5083 :
5084 : const int ACTION_BUTTON_END_DEFAULT_ADJUST[] =
5085 : {
5086 : 1400
5087 : };
5088 :
5089 0 : const CustomShape CS_ACTION_BUTTON_END(
5090 : ACTION_BUTTON_END_VERTICES, sizeof(ACTION_BUTTON_END_VERTICES) / sizeof(Vertex),
5091 : ACTION_BUTTON_END_SEGMENTS, sizeof(ACTION_BUTTON_END_SEGMENTS) / sizeof(unsigned short),
5092 : ACTION_BUTTON_END_CALC, sizeof(ACTION_BUTTON_END_CALC) / sizeof(Calculation),
5093 : ACTION_BUTTON_END_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_END_DEFAULT_ADJUST) / sizeof(int),
5094 : ACTION_BUTTON_END_TRS, sizeof(ACTION_BUTTON_END_TRS) / sizeof(TextRectangle),
5095 : 21600, 21600,
5096 : NULL, 0);
5097 :
5098 : const Vertex ACTION_BUTTON_BEGINNING_VERTICES[] =
5099 : {
5100 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x14), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x14), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x12), CALCULATED_VALUE(0x10)}
5101 : };
5102 :
5103 : const unsigned short ACTION_BUTTON_BEGINNING_SEGMENTS[] =
5104 : {
5105 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000
5106 : };
5107 :
5108 : const Calculation ACTION_BUTTON_BEGINNING_CALC[] =
5109 : {
5110 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -4020, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x040f, 0x0408, 0}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0411, 0x0407, 0}, {0x4001, -6140, 0x0406, 1}, {0x6000, 0x0413, 0x0407, 0}, {0x4001, 4020, 0x0406, 1}, {0x6000, 0x0415, 0x0407, 0}, {0x4001, 6140, 0x0406, 1}, {0x6000, 0x0417, 0x0407, 0}
5111 : };
5112 :
5113 : const TextRectangle ACTION_BUTTON_BEGINNING_TRS[] =
5114 : {
5115 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
5116 : };
5117 :
5118 : const int ACTION_BUTTON_BEGINNING_DEFAULT_ADJUST[] =
5119 : {
5120 : 1400
5121 : };
5122 :
5123 0 : const CustomShape CS_ACTION_BUTTON_BEGINNING(
5124 : ACTION_BUTTON_BEGINNING_VERTICES, sizeof(ACTION_BUTTON_BEGINNING_VERTICES) / sizeof(Vertex),
5125 : ACTION_BUTTON_BEGINNING_SEGMENTS, sizeof(ACTION_BUTTON_BEGINNING_SEGMENTS) / sizeof(unsigned short),
5126 : ACTION_BUTTON_BEGINNING_CALC, sizeof(ACTION_BUTTON_BEGINNING_CALC) / sizeof(Calculation),
5127 : ACTION_BUTTON_BEGINNING_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_BEGINNING_DEFAULT_ADJUST) / sizeof(int),
5128 : ACTION_BUTTON_BEGINNING_TRS, sizeof(ACTION_BUTTON_BEGINNING_TRS) / sizeof(TextRectangle),
5129 : 21600, 21600,
5130 : NULL, 0);
5131 :
5132 : const Vertex ACTION_BUTTON_RETURN_VERTICES[] =
5133 : {
5134 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x14), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(0x20)}, {CALCULATED_VALUE(0x22), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x24), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x24), CALCULATED_VALUE(0x10)}, {CALCULATED_VALUE(0x24), CALCULATED_VALUE(0x26)}, {CALCULATED_VALUE(0x28), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(7), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0x2c), CALCULATED_VALUE(0x2a)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0x26)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0x10)}
5135 : };
5136 :
5137 : const unsigned short ACTION_BUTTON_RETURN_SEGMENTS[] =
5138 : {
5139 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0002, 0x2001, 0x0001, 0x2001, 0x0006, 0x2001, 0x0001, 0x2001, 0x6001, 0x8000
5140 : };
5141 :
5142 : const Calculation ACTION_BUTTON_RETURN_CALC[] =
5143 : {
5144 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, -3800, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, -4020, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, 2330, 0x0406, 1}, {0x6000, 0x040f, 0x0408, 0}, {0x4001, 3390, 0x0406, 1}, {0x6000, 0x0411, 0x0408, 0}, {0x4001, -3100, 0x0406, 1}, {0x6000, 0x0413, 0x0407, 0}, {0x4001, 4230, 0x0406, 1}, {0x6000, 0x0415, 0x0408, 0}, {0x4001, -1910, 0x0406, 1}, {0x6000, 0x0417, 0x0407, 0}, {0x4001, 1190, 0x0406, 1}, {0x6000, 0x0419, 0x0407, 0}, {0x4001, 2110, 0x0406, 1}, {0x6000, 0x041b, 0x0407, 0}, {0x4001, 4030, 0x0406, 1}, {0x6000, 0x041d, 0x0407, 0}, {0x4001, -7830, 0x0406, 1}, {0x6000, 0x041f, 0x0408, 0}, {0x4001, 8250, 0x0406, 1}, {0x6000, 0x0421, 0x0407, 0}, {0x4001, 6140, 0x0406, 1}, {0x6000, 0x0423, 0x0407, 0}, {0x4001, 5510, 0x0406, 1}, {0x6000, 0x0425, 0x0408, 0}, {0x4001, 3180, 0x0406, 1}, {0x6000, 0x0427, 0x0407, 0}, {0x4001, 8450, 0x0406, 1}, {0x6000, 0x0429, 0x0408, 0}, {0x4001, -5090, 0x0406, 1}, {0x6000, 0x042b, 0x0407, 0}
5145 : };
5146 :
5147 : const TextRectangle ACTION_BUTTON_RETURN_TRS[] =
5148 : {
5149 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
5150 : };
5151 :
5152 : const int ACTION_BUTTON_RETURN_DEFAULT_ADJUST[] =
5153 : {
5154 : 1400
5155 : };
5156 :
5157 0 : const CustomShape CS_ACTION_BUTTON_RETURN(
5158 : ACTION_BUTTON_RETURN_VERTICES, sizeof(ACTION_BUTTON_RETURN_VERTICES) / sizeof(Vertex),
5159 : ACTION_BUTTON_RETURN_SEGMENTS, sizeof(ACTION_BUTTON_RETURN_SEGMENTS) / sizeof(unsigned short),
5160 : ACTION_BUTTON_RETURN_CALC, sizeof(ACTION_BUTTON_RETURN_CALC) / sizeof(Calculation),
5161 : ACTION_BUTTON_RETURN_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_RETURN_DEFAULT_ADJUST) / sizeof(int),
5162 : ACTION_BUTTON_RETURN_TRS, sizeof(ACTION_BUTTON_RETURN_TRS) / sizeof(TextRectangle),
5163 : 21600, 21600,
5164 : NULL, 0);
5165 :
5166 : const Vertex ACTION_BUTTON_DOCUMENT_VERTICES[] =
5167 : {
5168 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x10), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x10), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x10), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0x12)}
5169 : };
5170 :
5171 : const unsigned short ACTION_BUTTON_DOCUMENT_SEGMENTS[] =
5172 : {
5173 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0004, 0x6001, 0x8000, 0x4000, 0x0002, 0x6001, 0x8000
5174 : };
5175 :
5176 : const Calculation ACTION_BUTTON_DOCUMENT_CALC[] =
5177 : {
5178 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -6350, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, -7830, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, 1690, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, 6350, 0x0406, 1}, {0x6000, 0x040f, 0x0407, 0}, {0x4001, -3810, 0x0406, 1}, {0x6000, 0x0411, 0x0408, 0}, {0x4001, 7830, 0x0406, 1}, {0x6000, 0x0413, 0x0408, 0}
5179 : };
5180 :
5181 : const TextRectangle ACTION_BUTTON_DOCUMENT_TRS[] =
5182 : {
5183 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
5184 : };
5185 :
5186 : const int ACTION_BUTTON_DOCUMENT_DEFAULT_ADJUST[] =
5187 : {
5188 : 1400
5189 : };
5190 :
5191 0 : const CustomShape CS_ACTION_BUTTON_DOCUMENT(
5192 : ACTION_BUTTON_DOCUMENT_VERTICES, sizeof(ACTION_BUTTON_DOCUMENT_VERTICES) / sizeof(Vertex),
5193 : ACTION_BUTTON_DOCUMENT_SEGMENTS, sizeof(ACTION_BUTTON_DOCUMENT_SEGMENTS) / sizeof(unsigned short),
5194 : ACTION_BUTTON_DOCUMENT_CALC, sizeof(ACTION_BUTTON_DOCUMENT_CALC) / sizeof(Calculation),
5195 : ACTION_BUTTON_DOCUMENT_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_DOCUMENT_DEFAULT_ADJUST) / sizeof(int),
5196 : ACTION_BUTTON_DOCUMENT_TRS, sizeof(ACTION_BUTTON_DOCUMENT_TRS) / sizeof(TextRectangle),
5197 : 21600, 21600,
5198 : NULL, 0);
5199 :
5200 : const Vertex ACTION_BUTTON_SOUND_VERTICES[] =
5201 : {
5202 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x10), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x10), CALCULATED_VALUE(0x14)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(8)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(0x1c)}, {CALCULATED_VALUE(0x18), CALCULATED_VALUE(0x16)}, {CALCULATED_VALUE(0x1a), CALCULATED_VALUE(0x1e)}
5203 : };
5204 :
5205 : const unsigned short ACTION_BUTTON_SOUND_SEGMENTS[] =
5206 : {
5207 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0005, 0x6001, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000, 0x4000, 0x0001, 0x8000
5208 : };
5209 :
5210 : const Calculation ACTION_BUTTON_SOUND_CALC[] =
5211 : {
5212 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, -2750, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, -2960, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, 2120, 0x0406, 1}, {0x6000, 0x040f, 0x0407, 0}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0411, 0x0408, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x0413, 0x0408, 0}, {0x4001, 2750, 0x0406, 1}, {0x6000, 0x0415, 0x0408, 0}, {0x4001, 4020, 0x0406, 1}, {0x6000, 0x0417, 0x0407, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x0419, 0x0407, 0}, {0x4001, -5930, 0x0406, 1}, {0x6000, 0x041b, 0x0408, 0}, {0x4001, 5930, 0x0406, 1}, {0x6000, 0x041d, 0x0408, 0}
5213 : };
5214 :
5215 : const TextRectangle ACTION_BUTTON_SOUND_TRS[] =
5216 : {
5217 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
5218 : };
5219 :
5220 : const int ACTION_BUTTON_SOUND_DEFAULT_ADJUST[] =
5221 : {
5222 : 1400
5223 : };
5224 :
5225 0 : const CustomShape CS_ACTION_BUTTON_SOUND(
5226 : ACTION_BUTTON_SOUND_VERTICES, sizeof(ACTION_BUTTON_SOUND_VERTICES) / sizeof(Vertex),
5227 : ACTION_BUTTON_SOUND_SEGMENTS, sizeof(ACTION_BUTTON_SOUND_SEGMENTS) / sizeof(unsigned short),
5228 : ACTION_BUTTON_SOUND_CALC, sizeof(ACTION_BUTTON_SOUND_CALC) / sizeof(Calculation),
5229 : ACTION_BUTTON_SOUND_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_SOUND_DEFAULT_ADJUST) / sizeof(int),
5230 : ACTION_BUTTON_SOUND_TRS, sizeof(ACTION_BUTTON_SOUND_TRS) / sizeof(TextRectangle),
5231 : 21600, 21600,
5232 : NULL, 0);
5233 :
5234 : const Vertex ACTION_BUTTON_MOVIE_VERTICES[] =
5235 : {
5236 : {0, 0}, {21600, 0}, {21600, 21600}, {0, 21600}, {0, 0}, {21600, 0}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {21600, 0}, {21600, 21600}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(2)}, {21600, 21600}, {0, 21600}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)}, {0, 21600}, {0, 0}, {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(1), CALCULATED_VALUE(4)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0xc)}, {CALCULATED_VALUE(0x10), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x14), CALCULATED_VALUE(0x12)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(0x18)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x1a)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(0x18)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(0x18)}, {CALCULATED_VALUE(0x20), CALCULATED_VALUE(0x22)}, {CALCULATED_VALUE(0x1e), CALCULATED_VALUE(0x22)}, {CALCULATED_VALUE(0x1c), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(0x24)}, {CALCULATED_VALUE(0x16), CALCULATED_VALUE(0x26)}, {CALCULATED_VALUE(0x2a), CALCULATED_VALUE(0x26)}, {CALCULATED_VALUE(0x2a), CALCULATED_VALUE(0x28)}, {CALCULATED_VALUE(0x10), CALCULATED_VALUE(0x28)}, {CALCULATED_VALUE(0xe), CALCULATED_VALUE(0x2c)}, {CALCULATED_VALUE(0xa), CALCULATED_VALUE(0x2c)}
5237 : };
5238 :
5239 : const unsigned short ACTION_BUTTON_MOVIE_SEGMENTS[] =
5240 : {
5241 : 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0003, 0x6001, 0x8000, 0x4000, 0x0012, 0x6001, 0x8000
5242 : };
5243 :
5244 : const Calculation ACTION_BUTTON_MOVIE_CALC[] =
5245 : {
5246 : {0x2000, PROP_ADJUST_VAL_FIRST, 0, 0}, {0x6000, PROP_GEO_LEFT, PROP_ADJUST_VAL_FIRST, 0}, {0x6000, PROP_GEO_TOP, PROP_ADJUST_VAL_FIRST, 0}, {0xa000, PROP_GEO_RIGHT, 0, PROP_ADJUST_VAL_FIRST}, {0xa000, PROP_GEO_BOTTOM, 0, PROP_ADJUST_VAL_FIRST}, {0x8000, 10800, 0, PROP_ADJUST_VAL_FIRST}, {0x2001, 0x0405, 1, 10800}, {0x2001, PROP_GEO_RIGHT, 1, 2}, {0x2001, PROP_GEO_BOTTOM, 1, 2}, {0x4001, -8050, 0x0406, 1}, {0x6000, 0x0409, 0x0407, 0}, {0x4001, -4020, 0x0406, 1}, {0x6000, 0x040b, 0x0408, 0}, {0x4001, -7000, 0x0406, 1}, {0x6000, 0x040d, 0x0407, 0}, {0x4001, -6560, 0x0406, 1}, {0x6000, 0x040f, 0x0407, 0}, {0x4001, -3600, 0x0406, 1}, {0x6000, 0x0411, 0x0408, 0}, {0x4001, 4020, 0x0406, 1}, {0x6000, 0x0413, 0x0407, 0}, {0x4001, 4660, 0x0406, 1}, {0x6000, 0x0415, 0x0407, 0}, {0x4001, -2960, 0x0406, 1}, {0x6000, 0x0417, 0x0408, 0}, {0x4001, -2330, 0x0406, 1}, {0x6000, 0x0419, 0x0408, 0}, {0x4001, 6780, 0x0406, 1}, {0x6000, 0x041b, 0x0407, 0}, {0x4001, 7200, 0x0406, 1}, {0x6000, 0x041d, 0x0407, 0}, {0x4001, 8050, 0x0406, 1}, {0x6000, 0x041f, 0x0407, 0}, {0x4001, 2960, 0x0406, 1}, {0x6000, 0x0421, 0x0408, 0}, {0x4001, 2330, 0x0406, 1}, {0x6000, 0x0423, 0x0408, 0}, {0x4001, 3800, 0x0406, 1}, {0x6000, 0x0425, 0x0408, 0}, {0x4001, -1060, 0x0406, 1}, {0x6000, 0x0427, 0x0408, 0}, {0x4001, -6350, 0x0406, 1}, {0x6000, 0x0429, 0x0407, 0}, {0x4001, -640, 0x0406, 1}, {0x6000, 0x042b, 0x0408, 0}
5247 : };
5248 :
5249 : const TextRectangle ACTION_BUTTON_MOVIE_TRS[] =
5250 : {
5251 : { {CALCULATED_VALUE(1), CALCULATED_VALUE(2)}, {CALCULATED_VALUE(3), CALCULATED_VALUE(4)} }
5252 : };
5253 :
5254 : const int ACTION_BUTTON_MOVIE_DEFAULT_ADJUST[] =
5255 : {
5256 : 1400
5257 : };
5258 :
5259 0 : const CustomShape CS_ACTION_BUTTON_MOVIE(
5260 : ACTION_BUTTON_MOVIE_VERTICES, sizeof(ACTION_BUTTON_MOVIE_VERTICES) / sizeof(Vertex),
5261 : ACTION_BUTTON_MOVIE_SEGMENTS, sizeof(ACTION_BUTTON_MOVIE_SEGMENTS) / sizeof(unsigned short),
5262 : ACTION_BUTTON_MOVIE_CALC, sizeof(ACTION_BUTTON_MOVIE_CALC) / sizeof(Calculation),
5263 : ACTION_BUTTON_MOVIE_DEFAULT_ADJUST, sizeof(ACTION_BUTTON_MOVIE_DEFAULT_ADJUST) / sizeof(int),
5264 : ACTION_BUTTON_MOVIE_TRS, sizeof(ACTION_BUTTON_MOVIE_TRS) / sizeof(TextRectangle),
5265 : 21600, 21600,
5266 : NULL, 0);
5267 :
5268 0 : const CustomShape *libmspub::getCustomShape(ShapeType type)
5269 : {
5270 0 : switch(type)
5271 : {
5272 : case RECTANGLE:
5273 0 : return &CS_RECTANGLE;
5274 : case ELLIPSE:
5275 0 : return &CS_ELLIPSE;
5276 : case ISOCELES_TRIANGLE:
5277 0 : return &CS_ISOCELES_TRIANGLE;
5278 : case SEAL_4:
5279 0 : return &CS_SEAL_4;
5280 : case PARALLELOGRAM:
5281 0 : return &CS_PARALLELOGRAM;
5282 : case RIGHT_TRIANGLE:
5283 0 : return &CS_RIGHT_TRIANGLE;
5284 : case DIAMOND:
5285 0 : return &CS_DIAMOND;
5286 : case TRAPEZOID:
5287 0 : return &CS_TRAPEZOID;
5288 : case HEXAGON:
5289 0 : return &CS_HEXAGON;
5290 : case STAR:
5291 0 : return &CS_STAR;
5292 : case PLUS:
5293 0 : return &CS_PLUS;
5294 : case ROUND_RECTANGLE:
5295 0 : return &CS_ROUND_RECTANGLE;
5296 : case OCTAGON:
5297 0 : return &CS_OCTAGON;
5298 : case ARROW:
5299 0 : return &CS_ARROW;
5300 : case HOME_PLATE:
5301 0 : return &CS_HOME_PLATE;
5302 : case CUBE:
5303 0 : return &CS_CUBE;
5304 : case BALLOON:
5305 0 : return &CS_BALLOON;
5306 : case ARC_SHAPE:
5307 0 : return &CS_ARC;
5308 : case PLAQUE:
5309 0 : return &CS_PLAQUE;
5310 : case CAN:
5311 0 : return &CS_CAN;
5312 : case DONUT:
5313 0 : return &CS_DONUT;
5314 : case TEXT_BOX:
5315 : case TEXT_SIMPLE:
5316 0 : return &CS_TEXT_SIMPLE;
5317 : case STRAIGHT_CONNECTOR_1:
5318 0 : return &CS_STRAIGHT_CONNECTOR_1;
5319 : case BENT_CONNECTOR_2:
5320 0 : return &CS_BENT_CONNECTOR_2;
5321 : case BENT_CONNECTOR_3:
5322 0 : return &CS_BENT_CONNECTOR_3;
5323 : case BENT_CONNECTOR_4:
5324 0 : return &CS_BENT_CONNECTOR_4;
5325 : case BENT_CONNECTOR_5:
5326 0 : return &CS_BENT_CONNECTOR_5;
5327 : case CURVED_CONNECTOR_2:
5328 0 : return &CS_CURVED_CONNECTOR_2;
5329 : case CURVED_CONNECTOR_3:
5330 0 : return &CS_CURVED_CONNECTOR_3;
5331 : case CURVED_CONNECTOR_4:
5332 0 : return &CS_CURVED_CONNECTOR_4;
5333 : case CURVED_CONNECTOR_5:
5334 0 : return &CS_CURVED_CONNECTOR_5;
5335 : case CALLOUT_1:
5336 0 : return &CS_CALLOUT_1;
5337 : case CALLOUT_2:
5338 0 : return &CS_CALLOUT_2;
5339 : case CALLOUT_3:
5340 0 : return &CS_CALLOUT_3;
5341 : case RIBBON:
5342 0 : return &CS_RIBBON;
5343 : case RIBBON_2:
5344 0 : return &CS_RIBBON_2;
5345 : case CHEVRON:
5346 0 : return &CS_CHEVRON;
5347 : case PENTAGON:
5348 0 : return &CS_PENTAGON;
5349 : case NO_SMOKING:
5350 0 : return &CS_NO_SMOKING;
5351 : case SEAL_8:
5352 0 : return &CS_SEAL_8;
5353 : case SEAL_16:
5354 0 : return &CS_SEAL_16;
5355 : case SEAL_32:
5356 0 : return &CS_SEAL_32;
5357 : case WAVE:
5358 0 : return &CS_WAVE;
5359 : case LINE:
5360 0 : return &CS_LINE;
5361 : case FOLDED_CORNER:
5362 0 : return &CS_FOLDED_CORNER;
5363 : case LEFT_ARROW:
5364 0 : return &CS_LEFT_ARROW;
5365 : case DOWN_ARROW:
5366 0 : return &CS_DOWN_ARROW;
5367 : case UP_ARROW:
5368 0 : return &CS_UP_ARROW;
5369 : case LEFT_RIGHT_ARROW:
5370 0 : return &CS_LEFT_RIGHT_ARROW;
5371 : case UP_DOWN_ARROW:
5372 0 : return &CS_UP_DOWN_ARROW;
5373 : case IRREGULAR_SEAL_1:
5374 0 : return &CS_IRREGULAR_SEAL_1;
5375 : case IRREGULAR_SEAL_2:
5376 0 : return &CS_IRREGULAR_SEAL_2;
5377 : case LIGHTNING_BOLT:
5378 0 : return &CS_LIGHTNING_BOLT;
5379 : case HEART:
5380 0 : return &CS_HEART;
5381 : case PICTURE_FRAME:
5382 0 : return NULL; //FIXME
5383 : case QUAD_ARROW:
5384 0 : return &CS_QUAD_ARROW;
5385 : case BEVEL:
5386 0 : return &CS_BEVEL;
5387 : case LEFT_BRACKET:
5388 0 : return &CS_LEFT_BRACKET;
5389 : case RIGHT_BRACKET:
5390 0 : return &CS_RIGHT_BRACKET;
5391 : case LEFT_BRACE:
5392 0 : return &CS_LEFT_BRACE;
5393 : case RIGHT_BRACE:
5394 0 : return &CS_RIGHT_BRACE;
5395 : case LEFT_UP_ARROW:
5396 0 : return &CS_LEFT_UP_ARROW;
5397 : case BENT_UP_ARROW:
5398 0 : return &CS_BENT_UP_ARROW;
5399 : case BENT_ARROW:
5400 0 : return &CS_BENT_ARROW;
5401 : case SEAL_24:
5402 0 : return &CS_SEAL_24;
5403 : case STRIPED_RIGHT_ARROW:
5404 0 : return &CS_STRIPED_RIGHT_ARROW;
5405 : case NOTCHED_RIGHT_ARROW:
5406 0 : return &CS_NOTCHED_RIGHT_ARROW;
5407 : case BLOCK_ARC:
5408 0 : return &CS_BLOCK_ARC;
5409 : case SMILEY_FACE:
5410 0 : return &CS_SMILEY_FACE;
5411 : case VERTICAL_SCROLL:
5412 0 : return &CS_VERTICAL_SCROLL;
5413 : case HORIZONTAL_SCROLL:
5414 0 : return &CS_HORIZONTAL_SCROLL;
5415 : case CIRCULAR_ARROW:
5416 0 : return &CS_CIRCULAR_ARROW;
5417 : case U_TURN_ARROW:
5418 0 : return &CS_U_TURN_ARROW;
5419 : case CURVED_RIGHT_ARROW:
5420 0 : return &CS_CURVED_RIGHT_ARROW;
5421 : case CURVED_LEFT_ARROW:
5422 0 : return &CS_CURVED_LEFT_ARROW;
5423 : case CURVED_UP_ARROW:
5424 0 : return &CS_CURVED_UP_ARROW;
5425 : case CURVED_DOWN_ARROW:
5426 0 : return &CS_CURVED_DOWN_ARROW;
5427 : case FLOW_CHART_PROCESS:
5428 0 : return &CS_FLOW_CHART_PROCESS;
5429 : case FLOW_CHART_DECISION:
5430 0 : return &CS_FLOW_CHART_DECISION;
5431 : case FLOW_CHART_IO:
5432 0 : return &CS_FLOW_CHART_IO;
5433 : case FLOW_CHART_PREDEFINED_PROCESS:
5434 0 : return &CS_FLOW_CHART_PREDEFINED_PROCESS;
5435 : case FLOW_CHART_INTERNAL_STORAGE:
5436 0 : return &CS_FLOW_CHART_INTERNAL_STORAGE;
5437 : case FLOW_CHART_DOCUMENT:
5438 0 : return &CS_FLOW_CHART_DOCUMENT;
5439 : case FLOW_CHART_MULTI_DOCUMENT:
5440 0 : return &CS_FLOW_CHART_MULTI_DOCUMENT;
5441 : case FLOW_CHART_TERMINATOR:
5442 0 : return &CS_FLOW_CHART_TERMINATOR;
5443 : case FLOW_CHART_PREPARATION:
5444 0 : return &CS_FLOW_CHART_PREPARATION;
5445 : case FLOW_CHART_MANUAL_INPUT:
5446 0 : return &CS_FLOW_CHART_MANUAL_INPUT;
5447 : case FLOW_CHART_MANUAL_OPERATION:
5448 0 : return &CS_FLOW_CHART_MANUAL_OPERATION;
5449 : case FLOW_CHART_CONNECTOR:
5450 0 : return &CS_FLOW_CHART_CONNECTOR;
5451 : case FLOW_CHART_PUNCHED_CARD:
5452 0 : return &CS_FLOW_CHART_PUNCHED_CARD;
5453 : case FLOW_CHART_PUNCHED_TAPE:
5454 0 : return &CS_FLOW_CHART_PUNCHED_TAPE;
5455 : case FLOW_CHART_SUMMING_JUNCTION:
5456 0 : return &CS_FLOW_CHART_SUMMING_JUNCTION;
5457 : case FLOW_CHART_OR:
5458 0 : return &CS_FLOW_CHART_OR;
5459 : case FLOW_CHART_COLLATE:
5460 0 : return &CS_FLOW_CHART_COLLATE;
5461 : case FLOW_CHART_SORT:
5462 0 : return &CS_FLOW_CHART_SORT;
5463 : case FLOW_CHART_EXTRACT:
5464 0 : return &CS_FLOW_CHART_EXTRACT;
5465 : case FLOW_CHART_MERGE:
5466 0 : return &CS_FLOW_CHART_MERGE;
5467 : case FLOW_CHART_ONLINE_STORAGE:
5468 0 : return &CS_FLOW_CHART_ONLINE_STORAGE;
5469 : case FLOW_CHART_MAGNETIC_TAPE:
5470 0 : return &CS_FLOW_CHART_MAGNETIC_TAPE;
5471 : case FLOW_CHART_MAGNETIC_DISK:
5472 0 : return &CS_FLOW_CHART_MAGNETIC_DISK;
5473 : case FLOW_CHART_MAGNETIC_DRUM:
5474 0 : return &CS_FLOW_CHART_MAGNETIC_DRUM;
5475 : case FLOW_CHART_DISPLAY:
5476 0 : return &CS_FLOW_CHART_DISPLAY;
5477 : case FLOW_CHART_DELAY:
5478 0 : return &CS_FLOW_CHART_DELAY;
5479 : case TEXT_PLAIN_TEXT:
5480 0 : return &CS_TEXT_PLAIN_TEXT;
5481 : case TEXT_STOP:
5482 0 : return &CS_TEXT_STOP;
5483 : case TEXT_TRIANGLE:
5484 0 : return &CS_TEXT_TRIANGLE;
5485 : case TEXT_TRIANGLE_INVERTED:
5486 0 : return &CS_TEXT_TRIANGLE_INVERTED;
5487 : case TEXT_CHEVRON:
5488 0 : return &CS_TEXT_CHEVRON;
5489 : case TEXT_CHEVRON_INVERTED:
5490 0 : return &CS_TEXT_CHEVRON_INVERTED;
5491 : case TEXT_RING_OUTSIDE:
5492 0 : return &CS_TEXT_RING_OUTSIDE;
5493 : case TEXT_ARCH_UP_CURVE:
5494 0 : return &CS_TEXT_ARCH_UP_CURVE;
5495 : case TEXT_ARCH_DOWN_CURVE:
5496 0 : return &CS_TEXT_ARCH_DOWN_CURVE;
5497 : case TEXT_CIRCLE_CURVE:
5498 0 : return &CS_TEXT_CIRCLE_CURVE;
5499 : case TEXT_BUTTON_CURVE:
5500 0 : return &CS_TEXT_BUTTON_CURVE;
5501 : case TEXT_ARCH_UP_POUR:
5502 0 : return &CS_TEXT_ARCH_UP_POUR;
5503 : case TEXT_ARCH_DOWN_POUR:
5504 0 : return &CS_TEXT_ARCH_DOWN_POUR;
5505 : case TEXT_CIRCLE_POUR:
5506 0 : return &CS_TEXT_CIRCLE_POUR;
5507 : case TEXT_BUTTON_POUR:
5508 0 : return &CS_TEXT_BUTTON_POUR;
5509 : case TEXT_CURVE_UP:
5510 0 : return &CS_TEXT_CURVE_UP;
5511 : case TEXT_CURVE_DOWN:
5512 0 : return &CS_TEXT_CURVE_DOWN;
5513 : case TEXT_CASCADE_UP:
5514 0 : return &CS_TEXT_CASCADE_UP;
5515 : case TEXT_CASCADE_DOWN:
5516 0 : return &CS_TEXT_CASCADE_DOWN;
5517 : case TEXT_WAVE_1:
5518 0 : return &CS_TEXT_WAVE_1;
5519 : case TEXT_WAVE_2:
5520 0 : return &CS_TEXT_WAVE_2;
5521 : case TEXT_WAVE_3:
5522 0 : return &CS_TEXT_WAVE_3;
5523 : case TEXT_WAVE_4:
5524 0 : return &CS_TEXT_WAVE_4;
5525 : case TEXT_INFLATE:
5526 0 : return &CS_TEXT_INFLATE;
5527 : case TEXT_DEFLATE:
5528 0 : return &CS_TEXT_DEFLATE;
5529 : case TEXT_INFLATE_BOTTOM:
5530 0 : return &CS_TEXT_INFLATE_BOTTOM;
5531 : case TEXT_DEFLATE_BOTTOM:
5532 0 : return &CS_TEXT_DEFLATE_BOTTOM;
5533 : case TEXT_INFLATE_TOP:
5534 0 : return &CS_TEXT_INFLATE_TOP;
5535 : case TEXT_DEFLATE_TOP:
5536 0 : return &CS_TEXT_DEFLATE_TOP;
5537 : case TEXT_DEFLATE_INFLATE:
5538 0 : return &CS_TEXT_DEFLATE_INFLATE;
5539 : case TEXT_DEFLATE_INFLATE_DEFLATE: // great name
5540 0 : return &CS_TEXT_DEFLATE_INFLATE_DEFLATE;
5541 : case TEXT_FADE_RIGHT:
5542 0 : return &CS_TEXT_FADE_RIGHT;
5543 : case TEXT_FADE_LEFT:
5544 0 : return &CS_TEXT_FADE_LEFT;
5545 : case TEXT_FADE_UP:
5546 0 : return &CS_TEXT_FADE_UP;
5547 : case TEXT_FADE_DOWN:
5548 0 : return &CS_TEXT_FADE_DOWN;
5549 : case TEXT_SLANT_UP:
5550 0 : return &CS_TEXT_SLANT_UP;
5551 : case TEXT_SLANT_DOWN:
5552 0 : return &CS_TEXT_SLANT_DOWN;
5553 : case TEXT_CAN_UP:
5554 0 : return &CS_TEXT_CAN_UP;
5555 : case TEXT_CAN_DOWN:
5556 0 : return &CS_TEXT_CAN_DOWN;
5557 : case FLOW_CHART_ALTERNATE_PROCESS:
5558 0 : return &CS_FLOW_CHART_ALTERNATE_PROCESS;
5559 : case FLOW_CHART_OFFPAGE_CONNECTOR:
5560 0 : return &CS_FLOW_CHART_OFFPAGE_CONNECTOR;
5561 : case LEFT_RIGHT_UP_ARROW:
5562 0 : return &CS_LEFT_RIGHT_UP_ARROW;
5563 : case SUN:
5564 0 : return &CS_SUN;
5565 : case MOON:
5566 0 : return &CS_MOON;
5567 : case BRACKET_PAIR:
5568 0 : return &CS_BRACKET_PAIR;
5569 : case BRACE_PAIR:
5570 0 : return &CS_BRACE_PAIR;
5571 : case DOUBLE_WAVE:
5572 0 : return &CS_DOUBLE_WAVE;
5573 : case ACTION_BUTTON_BLANK:
5574 0 : return &CS_ACTION_BUTTON_BLANK;
5575 : case ACTION_BUTTON_HOME:
5576 0 : return &CS_ACTION_BUTTON_HOME;
5577 : case ACTION_BUTTON_HELP:
5578 0 : return &CS_ACTION_BUTTON_HELP;
5579 : case ACTION_BUTTON_INFORMATION:
5580 0 : return &CS_ACTION_BUTTON_INFORMATION;
5581 : case ACTION_BUTTON_FORWARD_NEXT:
5582 0 : return &CS_ACTION_BUTTON_FORWARD_NEXT;
5583 : case ACTION_BUTTON_BACK_PREVIOUS:
5584 0 : return &CS_ACTION_BUTTON_BACK_PREVIOUS;
5585 : case ACTION_BUTTON_END:
5586 0 : return &CS_ACTION_BUTTON_END;
5587 : case ACTION_BUTTON_BEGINNING:
5588 0 : return &CS_ACTION_BUTTON_BEGINNING;
5589 : case ACTION_BUTTON_RETURN:
5590 0 : return &CS_ACTION_BUTTON_RETURN;
5591 : case ACTION_BUTTON_DOCUMENT:
5592 0 : return &CS_ACTION_BUTTON_DOCUMENT;
5593 : case ACTION_BUTTON_SOUND:
5594 0 : return &CS_ACTION_BUTTON_SOUND;
5595 : case ACTION_BUTTON_MOVIE:
5596 0 : return &CS_ACTION_BUTTON_MOVIE;
5597 : default:
5598 0 : return NULL;
5599 : }
5600 : }
5601 :
5602 : enum Command
5603 : {
5604 : MOVETO,
5605 : LINETO,
5606 : CURVETO,
5607 : NOFILL,
5608 : NOSTROKE,
5609 : ANGLEELLIPSE,
5610 : CLOSESUBPATH,
5611 : ARCTO,
5612 : ARC,
5613 : CLOCKWISEARCTO,
5614 : CLOCKWISEARC,
5615 : ENDSUBPATH,
5616 : ELLIPTICALQUADRANTX,
5617 : ELLIPTICALQUADRANTY
5618 : };
5619 :
5620 : struct ShapeElementCommand
5621 : {
5622 : Command m_command;
5623 : unsigned char m_count;
5624 0 : ShapeElementCommand(Command command, unsigned char count) : m_command(command), m_count(count) { }
5625 : };
5626 :
5627 0 : ShapeElementCommand getCommandFromBinary(unsigned short binary)
5628 : {
5629 : Command cmd;
5630 0 : unsigned count = 0;
5631 0 : switch(binary >> 8)
5632 : {
5633 : case 0xAA:
5634 0 : cmd = NOFILL;
5635 0 : break;
5636 : case 0xAB:
5637 0 : cmd = NOSTROKE;
5638 0 : break;
5639 : case 0xAD:
5640 : case 0xB3:
5641 : case 0x20:
5642 : case 0xAF:
5643 0 : cmd = CURVETO;
5644 0 : count = (binary & 0xFF);
5645 0 : break;
5646 : case 0xA2:
5647 0 : cmd = ANGLEELLIPSE;
5648 0 : count = (binary & 0xFF) / 3;
5649 0 : break;
5650 : case 0xA3:
5651 0 : cmd = ARCTO;
5652 0 : count = (binary & 0xFF) / 4;
5653 0 : break;
5654 : case 0xA4:
5655 0 : cmd = ARC;
5656 0 : count = (binary & 0xFF) / 4;
5657 0 : break;
5658 : case 0xA5:
5659 0 : cmd = CLOCKWISEARCTO;
5660 0 : count = (binary & 0xFF) / 4;
5661 0 : break;
5662 : case 0xA6:
5663 0 : cmd = CLOCKWISEARC;
5664 0 : count = (binary & 0xFF) / 4;
5665 0 : break;
5666 : case 0xA7:
5667 0 : cmd = ELLIPTICALQUADRANTX;
5668 0 : count = (binary & 0xFF);
5669 0 : break;
5670 : case 0xA8:
5671 0 : cmd = ELLIPTICALQUADRANTY;
5672 0 : count = (binary & 0xFF);
5673 0 : break;
5674 : case 0xAC:
5675 : case 0xAE:
5676 : case 0x0:
5677 0 : cmd = LINETO;
5678 0 : count = (binary & 0xFF);
5679 0 : break;
5680 : case 0x40:
5681 0 : cmd = MOVETO;
5682 0 : count = (binary & 0xFF);
5683 0 : count = count ? count : 1;
5684 0 : break;
5685 : case 0x60:
5686 0 : cmd = CLOSESUBPATH;
5687 0 : break;
5688 : case 0x80:
5689 0 : cmd = ENDSUBPATH;
5690 0 : break;
5691 : default:
5692 : MSPUB_DEBUG_MSG(("unknown segment command 0x%x\n", binary >> 8));
5693 0 : cmd = MOVETO;
5694 0 : count = 1;
5695 0 : break;
5696 : }
5697 0 : return ShapeElementCommand(cmd, count);
5698 : }
5699 :
5700 0 : double getSpecialIfNecessary(boost::function<double (unsigned index)> calculator, int val)
5701 : {
5702 0 : bool special = val & 0x80000000;
5703 0 : return special ? calculator(val ^ 0x80000000) : val;
5704 : }
5705 :
5706 0 : Coordinate libmspub::CustomShape::getTextRectangle(double x, double y, double width, double height, boost::function<double (unsigned index)> calculator) const
5707 : {
5708 0 : double scaleX = width * m_coordWidth;
5709 0 : double scaleY = height * m_coordHeight;
5710 0 : if (m_numTextRectangles == 0)
5711 : {
5712 0 : return Coordinate(x, y, x + width, y + height);
5713 : }
5714 0 : const Vertex &start = mp_textRectangles[0].first;
5715 0 : const Vertex &end = mp_textRectangles[0].second;
5716 0 : double startX = x + scaleX * getSpecialIfNecessary(calculator, start.m_x);
5717 0 : double startY = y + scaleY * getSpecialIfNecessary(calculator, start.m_y);
5718 0 : double endX = x + scaleX * getSpecialIfNecessary(calculator, end.m_x);
5719 0 : double endY = y + scaleY * getSpecialIfNecessary(calculator, end.m_y);
5720 0 : return Coordinate(startX, startY, endX, endY);
5721 : }
5722 :
5723 0 : struct LineInfo
5724 : {
5725 : WPXPropertyListVector m_vertices;
5726 : double m_width;
5727 : WPXString m_color;
5728 : bool m_lineExists;
5729 0 : LineInfo(WPXPropertyListVector vertices, Line current, std::vector<Color> palette) : m_vertices(vertices),
5730 : m_width((double)(current.m_widthInEmu) / EMUS_IN_INCH),
5731 0 : m_color(libmspub::MSPUBCollector::getColorString(current.m_color.getFinalColor(palette))),
5732 0 : m_lineExists(current.m_lineExists) { }
5733 0 : void output(libwpg::WPGPaintInterface *painter, WPXPropertyList &graphicsProps)
5734 : {
5735 0 : graphicsProps.insert("draw:stroke", m_lineExists ? "solid" : "none");
5736 0 : graphicsProps.insert("svg:stroke-width", m_width);
5737 0 : graphicsProps.insert("svg:stroke-color", m_color);
5738 0 : painter->setStyle(graphicsProps, WPXPropertyListVector());
5739 0 : painter->drawPolyline(m_vertices);
5740 0 : }
5741 : private:
5742 : };
5743 :
5744 0 : void drawEmulatedLine(boost::shared_ptr<const CustomShape> shape, ShapeType shapeType, const std::vector<Line> &lines,
5745 : Vector2D center, VectorTransformation2D transform,
5746 : double x, double y, double scaleX, double scaleY,
5747 : bool drawStroke, WPXPropertyList &graphicsProps, libwpg::WPGPaintInterface *painter,
5748 : boost::function<double (unsigned index)> calculator,
5749 : const std::vector<Color> &palette)
5750 : {
5751 0 : std::vector<LineInfo> lineInfos;
5752 0 : unsigned i_line = 0;
5753 0 : bool rectangle = isShapeTypeRectangle(shapeType) && !lines.empty(); // ugly HACK: special handling for rectangle outlines.
5754 0 : Vector2D vector(0, 0);
5755 0 : Vector2D old(0, 0);
5756 0 : for (unsigned i = 0; i < shape->m_numVertices; ++i)
5757 : {
5758 0 : WPXPropertyListVector vertices;
5759 0 : WPXPropertyList vertex;
5760 0 : if (i > 0)
5761 : {
5762 0 : WPXPropertyList vertexStart;
5763 0 : double lineWidth = (double)(lines[i_line].m_widthInEmu) / EMUS_IN_INCH;
5764 0 : switch (i - 1) // fudge the lines inward by half their width so they are fully inside the shape and hence proper borders
5765 : {
5766 : case 0:
5767 0 : old.m_y += lineWidth / 2;
5768 0 : break;
5769 : case 1:
5770 0 : old.m_x -= lineWidth / 2;
5771 0 : break;
5772 : case 2:
5773 0 : old.m_y -= lineWidth / 2;
5774 0 : break;
5775 : case 3:
5776 0 : old.m_x += lineWidth / 2;
5777 0 : break;
5778 : }
5779 0 : old = transform.transformWithOrigin(old, center);
5780 0 : vertexStart.insert("svg:x", old.m_x);
5781 0 : vertexStart.insert("svg:y", old.m_y);
5782 0 : vertices.append(vertexStart);
5783 : }
5784 0 : vector.m_x = x + scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[i].m_x);
5785 0 : vector.m_y = y + scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[i].m_y);
5786 0 : old = vector;
5787 0 : if (rectangle)
5788 : {
5789 0 : double lineWidth = (double)(lines[i_line].m_widthInEmu) / EMUS_IN_INCH;
5790 0 : switch (i) // fudge the lines inward by half their width so they are fully inside the shape and hence proper borders
5791 : {
5792 : case 1:
5793 0 : vector.m_y += lineWidth / 2;
5794 0 : break;
5795 : case 2:
5796 0 : vector.m_x -= lineWidth / 2;
5797 0 : break;
5798 : case 3:
5799 0 : vector.m_y -= lineWidth / 2;
5800 0 : break;
5801 : case 4:
5802 0 : vector.m_x += lineWidth / 2;
5803 0 : break;
5804 : }
5805 : }
5806 0 : vector = transform.transformWithOrigin(vector, center);
5807 0 : vertex.insert("svg:x", vector.m_x);
5808 0 : vertex.insert("svg:y", vector.m_y);
5809 0 : vertices.append(vertex);
5810 0 : if (i > 0)
5811 : {
5812 0 : lineInfos.push_back(LineInfo(vertices, lines[i_line], palette));
5813 0 : if (drawStroke)
5814 : {
5815 0 : if (i_line + 1 < lines.size()) // continue using the last element if we run out of lines.
5816 : {
5817 0 : ++i_line;
5818 : }
5819 : }
5820 : }
5821 0 : }
5822 0 : if (rectangle)
5823 : {
5824 0 : LineInfo *top = &lineInfos[0];
5825 0 : LineInfo *right = (lineInfos.size() > 1) ? &lineInfos[1] : NULL;
5826 0 : LineInfo *bottom = (lineInfos.size() > 2) ? &lineInfos[2] : NULL;
5827 0 : LineInfo *left = (lineInfos.size() > 3) ? &lineInfos[3] : NULL;
5828 0 : if (left)
5829 : {
5830 0 : left->output(painter, graphicsProps);
5831 : }
5832 0 : if (right)
5833 : {
5834 0 : right->output(painter, graphicsProps);
5835 : }
5836 0 : if (top)
5837 : {
5838 0 : top->output(painter, graphicsProps);
5839 : }
5840 0 : if (bottom)
5841 : {
5842 0 : bottom->output(painter, graphicsProps);
5843 : }
5844 : }
5845 : else
5846 : {
5847 0 : for (unsigned i = 0; i < lineInfos.size(); ++i)
5848 : {
5849 0 : lineInfos[i].output(painter, graphicsProps);
5850 : }
5851 0 : }
5852 0 : }
5853 :
5854 0 : void getRayEllipseIntersection(double initX, double initY, double rx, double ry, double cx, double cy, double &xOut, double &yOut)
5855 : {
5856 0 : double x = initX - cx;
5857 0 : double y = initY - cy;
5858 0 : if (x != 0 && y != 0)
5859 : {
5860 0 : xOut = rx * ry / sqrt(ry * ry + rx * rx * (y / x) * (y / x));
5861 0 : if (x < 0)
5862 : {
5863 0 : xOut *= -1;
5864 : }
5865 0 : yOut = xOut * y / x;
5866 : }
5867 0 : else if (y != 0)
5868 : {
5869 0 : xOut = 0;
5870 0 : if (y > 0)
5871 : {
5872 0 : yOut = ry;
5873 : }
5874 : else
5875 : {
5876 0 : yOut = -ry;
5877 : }
5878 : }
5879 0 : else if (x != 0)
5880 : {
5881 0 : yOut = 0;
5882 0 : if (x > 0)
5883 : {
5884 0 : xOut = rx;
5885 : }
5886 : else
5887 : {
5888 0 : xOut = -rx;
5889 : }
5890 : }
5891 : else
5892 : {
5893 0 : xOut = yOut = 0;
5894 : }
5895 0 : xOut += cx;
5896 0 : yOut += cy;
5897 0 : }
5898 :
5899 0 : void libmspub::writeCustomShape(ShapeType shapeType, WPXPropertyList &graphicsProps, libwpg::WPGPaintInterface *painter, double x, double y, double height, double width, bool closeEverything, VectorTransformation2D transform, std::vector<Line> lines, boost::function<double(unsigned index)> calculator, const std::vector<Color> &palette, boost::shared_ptr<const CustomShape> shape)
5900 : {
5901 : MSPUB_DEBUG_MSG(("***STARTING CUSTOM SHAPE***\n"));
5902 0 : if (!shape)
5903 : {
5904 : return;
5905 : }
5906 0 : bool drawStroke = !lines.empty();
5907 0 : bool horizontal = height == 0;
5908 0 : bool vertical = width == 0;
5909 0 : if (horizontal && vertical)
5910 : {
5911 : return;
5912 : }
5913 0 : Vector2D center(x + width / 2, y + height / 2);
5914 0 : double scaleX = width / shape->m_coordWidth;
5915 0 : double scaleY = height / shape->m_coordHeight;
5916 0 : bool allLinesSame = true;
5917 0 : for (unsigned i = 0; allLinesSame && i + 1< lines.size(); ++i)
5918 : {
5919 0 : const Line &l1 = lines[i];
5920 0 : const Line &l2 = lines[i + 1];
5921 0 : allLinesSame = l1 == l2;
5922 : }
5923 0 : if (shape->mp_elements == NULL)
5924 : {
5925 0 : bool shouldDrawShape = true;
5926 0 : if ((!graphicsProps["draw:fill"]) || (graphicsProps["draw:fill"]->getStr() == "none"))
5927 : {
5928 0 : if (!allLinesSame)
5929 : {
5930 : drawEmulatedLine(shape, shapeType, lines, center, transform,
5931 0 : x, y, scaleX, scaleY, drawStroke, graphicsProps, painter, calculator, palette);
5932 0 : shouldDrawShape = false;
5933 : }
5934 0 : else if (drawStroke)
5935 : {
5936 0 : Line &first = lines[0];
5937 0 : if (!first.m_lineExists)
5938 : {
5939 0 : graphicsProps.insert("draw:stroke", "none");
5940 : }
5941 0 : graphicsProps.insert("svg:stroke-width", (double)(first.m_widthInEmu) / EMUS_IN_INCH);
5942 0 : graphicsProps.insert("svg:stroke-color", libmspub::MSPUBCollector::getColorString(first.m_color.getFinalColor(palette)));
5943 0 : painter->setStyle(graphicsProps, WPXPropertyListVector());
5944 : }
5945 : }
5946 0 : if (shouldDrawShape)
5947 : {
5948 0 : WPXPropertyListVector vertices;
5949 0 : for (unsigned i = 0; i < shape->m_numVertices; ++i)
5950 : {
5951 0 : WPXPropertyList vertex;
5952 0 : Vector2D vector(x + scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[i].m_x),
5953 0 : y + scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[i].m_y));
5954 0 : vector = transform.transformWithOrigin(vector, center);
5955 0 : vertex.insert("svg:x", vector.m_x);
5956 0 : vertex.insert("svg:y", vector.m_y);
5957 0 : vertices.append(vertex);
5958 0 : }
5959 0 : painter->drawPolygon(vertices);
5960 : }
5961 : }
5962 : else
5963 : {
5964 0 : WPXPropertyListVector vertices;
5965 0 : if (drawStroke)
5966 : {
5967 : // don't bother with different strokes for things defined by segments
5968 0 : Line &first = lines[0];
5969 0 : if (!first.m_lineExists)
5970 : {
5971 0 : graphicsProps.insert("draw:stroke", "none");
5972 : }
5973 0 : graphicsProps.insert("svg:stroke-width", (double)(first.m_widthInEmu) / EMUS_IN_INCH);
5974 0 : graphicsProps.insert("svg:stroke-color", libmspub::MSPUBCollector::getColorString(first.m_color.getFinalColor(palette)));
5975 0 : painter->setStyle(graphicsProps, WPXPropertyListVector());
5976 : }
5977 0 : unsigned vertexIndex = 0;
5978 0 : bool hasUnclosedElements = false;
5979 0 : boost::optional<Vector2D> lastPoint;
5980 : // Escher assigns segments into subpaths somewhat differently than SVG does,
5981 : // so we have to keep track of the following, rather than just adding a 'Z'
5982 : // directive on path close and expecting everything to work.
5983 0 : boost::optional<Vector2D> pathBegin;
5984 0 : for (unsigned i = 0; i < shape->m_numElements; ++i)
5985 : {
5986 0 : ShapeElementCommand cmd = getCommandFromBinary(shape->mp_elements[i]);
5987 0 : switch (cmd.m_command)
5988 : {
5989 : case ELLIPTICALQUADRANTX:
5990 : case ELLIPTICALQUADRANTY:
5991 : {
5992 0 : if (cmd.m_command == ELLIPTICALQUADRANTX)
5993 : {
5994 : MSPUB_DEBUG_MSG(("ELLIPTICALQUADRANTX %d\n", cmd.m_count));
5995 : }
5996 : else
5997 : {
5998 : MSPUB_DEBUG_MSG(("ELLIPTICALQUADRANTY %d\n", cmd.m_count));
5999 : }
6000 0 : bool firstDirection = true;
6001 0 : for (unsigned j = 0; (j < cmd.m_count) && (vertexIndex < shape->m_numVertices); ++j, ++vertexIndex)
6002 : {
6003 0 : bool modifier = cmd.m_command == ELLIPTICALQUADRANTX ? true : false;
6004 0 : const Vertex &curr = shape->mp_vertices[vertexIndex];
6005 0 : Vector2D curr2D(x + scaleX * getSpecialIfNecessary(calculator, curr.m_x), y + scaleY * getSpecialIfNecessary(calculator, curr.m_y));
6006 0 : if (lastPoint.is_initialized())
6007 : {
6008 0 : if (!pathBegin.is_initialized())
6009 : {
6010 0 : pathBegin = curr2D;
6011 : }
6012 0 : hasUnclosedElements = true;
6013 0 : double prevX = lastPoint.get().m_x;
6014 0 : double prevY = lastPoint.get().m_y;
6015 0 : double tmpX = curr2D.m_x - prevX;
6016 0 : double tmpY = curr2D.m_y - prevY;
6017 0 : if ((tmpX < 0 && tmpY >= 0) || (tmpX >= 0 && tmpY < 0))
6018 : {
6019 0 : if (j == 0)
6020 : {
6021 0 : firstDirection = true;
6022 : }
6023 0 : else if (! firstDirection)
6024 : {
6025 0 : modifier = !modifier;
6026 : }
6027 : }
6028 : else
6029 : {
6030 0 : if (j == 0)
6031 : {
6032 0 : firstDirection = false;
6033 : }
6034 0 : else if (firstDirection)
6035 : {
6036 0 : modifier = !modifier;
6037 : }
6038 : }
6039 0 : if (modifier)
6040 : {
6041 0 : tmpX = curr2D.m_x;
6042 0 : tmpY = prevY;
6043 : }
6044 : else
6045 : {
6046 0 : tmpX = prevX;
6047 0 : tmpY = curr2D.m_y;
6048 : }
6049 0 : double vecX = (tmpX - prevX) / 2;
6050 0 : double vecY = (tmpY - prevY) / 2;
6051 0 : Vector2D vec1(prevX + vecX, prevY + vecY);
6052 0 : vecX = (tmpX - curr2D.m_x) / 2;
6053 0 : vecY = (tmpY - curr2D.m_y) / 2;
6054 0 : Vector2D vec2(curr2D.m_x + vecX, curr2D.m_y + vecY);
6055 0 : vec1 = transform.transformWithOrigin(vec1, center);
6056 0 : vec2 = transform.transformWithOrigin(vec2, center);
6057 0 : curr2D = transform.transformWithOrigin(curr2D, center);
6058 0 : WPXPropertyList bezier;
6059 0 : bezier.insert("libwpg:path-action", "C");
6060 0 : bezier.insert("svg:x1", vec1.m_x);
6061 0 : bezier.insert("svg:x2", vec2.m_x);
6062 0 : bezier.insert("svg:y1", vec1.m_y);
6063 0 : bezier.insert("svg:y2", vec2.m_y);
6064 0 : bezier.insert("svg:x", curr2D.m_x);
6065 0 : bezier.insert("svg:y", curr2D.m_y);
6066 0 : vertices.append(bezier);
6067 : }
6068 : else
6069 : {
6070 : //something is broken, just move
6071 0 : if (vertexIndex < shape->m_numVertices)
6072 : {
6073 0 : WPXPropertyList moveVertex;
6074 0 : if (hasUnclosedElements && closeEverything)
6075 : {
6076 0 : WPXPropertyList closeVertex;
6077 0 : closeVertex.insert("libwpg:path-action", "Z");
6078 0 : vertices.append(closeVertex);
6079 : }
6080 0 : hasUnclosedElements = false;
6081 0 : Vector2D new_(x + scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_x), y + scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_y));
6082 0 : new_ = transform.transformWithOrigin(new_, center);
6083 0 : moveVertex.insert("svg:x", new_.m_x);
6084 0 : moveVertex.insert("svg:y", new_.m_y);
6085 0 : moveVertex.insert("libwpg:path-action", "M");
6086 0 : vertices.append(moveVertex);
6087 0 : ++vertexIndex;
6088 : }
6089 : }
6090 : }
6091 : }
6092 0 : break;
6093 : case CLOCKWISEARCTO:
6094 : case CLOCKWISEARC:
6095 : case ARCTO:
6096 : case ARC:
6097 0 : switch (cmd.m_command)
6098 : {
6099 : case CLOCKWISEARCTO:
6100 : MSPUB_DEBUG_MSG(("CLOCKWISEARCTO %d\n", cmd.m_count));
6101 0 : break;
6102 : case CLOCKWISEARC:
6103 : MSPUB_DEBUG_MSG(("CLOCKWISEARC %d\n", cmd.m_count));
6104 0 : break;
6105 : case ARCTO:
6106 : MSPUB_DEBUG_MSG(("ARCTO %d\n", cmd.m_count));
6107 0 : break;
6108 : case ARC:
6109 : MSPUB_DEBUG_MSG(("ARC %d\n", cmd.m_count));
6110 0 : break;
6111 : default:
6112 0 : break;
6113 : }
6114 0 : for (unsigned j = 0; (j < cmd.m_count) && (vertexIndex + 3 < shape->m_numVertices); ++j, vertexIndex += 4)
6115 : {
6116 0 : for (unsigned k = 0; k < 4; ++k)
6117 : {
6118 : MSPUB_DEBUG_MSG(("Calculated vertex x: %f, y: %f\n", getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + k].m_x), getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + k].m_y)));
6119 : }
6120 0 : bool to = cmd.m_command == CLOCKWISEARCTO || cmd.m_command == ARCTO;
6121 0 : bool clockwise = cmd.m_command == CLOCKWISEARCTO || cmd.m_command == CLOCKWISEARC;
6122 0 : const Vertex &bound1 = shape->mp_vertices[vertexIndex];
6123 0 : const Vertex &bound2 = shape->mp_vertices[vertexIndex + 1];
6124 0 : const Vertex &start = shape->mp_vertices[vertexIndex + 2];
6125 0 : const Vertex &end = shape->mp_vertices[vertexIndex + 3];
6126 :
6127 0 : double bound1X = x + scaleX * getSpecialIfNecessary(calculator, bound1.m_x);
6128 0 : double bound1Y = y + scaleY * getSpecialIfNecessary(calculator, bound1.m_y);
6129 0 : double bound2X = x + scaleX * getSpecialIfNecessary(calculator, bound2.m_x);
6130 0 : double bound2Y = y + scaleY * getSpecialIfNecessary(calculator, bound2.m_y);
6131 0 : double rx = fabs(bound1X - bound2X) / 2;
6132 0 : double ry = fabs(bound1Y - bound2Y) / 2;
6133 0 : double cx = (bound1X + bound2X) / 2;
6134 0 : double cy = (bound1Y + bound2Y) / 2;
6135 0 : double startX = x + scaleX * getSpecialIfNecessary(calculator, start.m_x);
6136 0 : double startY = y + scaleY * getSpecialIfNecessary(calculator, start.m_y);
6137 0 : double endX = x + scaleX * getSpecialIfNecessary(calculator, end.m_x);
6138 0 : double endY = y + scaleY * getSpecialIfNecessary(calculator, end.m_y);
6139 0 : getRayEllipseIntersection(startX, startY, rx, ry, cx, cy, startX, startY);
6140 0 : getRayEllipseIntersection(endX, endY, rx, ry, cx, cy, endX, endY);
6141 0 : Vector2D start2D(startX, startY);
6142 0 : if (!pathBegin.is_initialized())
6143 : {
6144 0 : pathBegin = start2D;
6145 : }
6146 0 : start2D = transform.transformWithOrigin(start2D, center);
6147 0 : Vector2D end2D(endX, endY);
6148 0 : lastPoint = end2D;
6149 0 : end2D = transform.transformWithOrigin(end2D, center);
6150 0 : bool clockwiseAfterTransform = clockwise ^ transform.orientationReversing();
6151 0 : WPXPropertyList startVertex;
6152 0 : startVertex.insert("svg:x", start2D.m_x);
6153 0 : startVertex.insert("svg:y", start2D.m_y);
6154 0 : startVertex.insert("libwpg:path-action", ((to || closeEverything) && hasUnclosedElements) ? "L" : "M");
6155 0 : vertices.append(startVertex);
6156 0 : double startAngle = atan2(cy - startY, startX - cx);
6157 0 : double endAngle = atan2(cy -endY, endX - cx);
6158 0 : double angleDifference = clockwise ? doubleModulo(startAngle - endAngle, 2 * M_PI)
6159 0 : : doubleModulo(endAngle - startAngle, 2 * M_PI);
6160 : // don't worry about corner cases; the closer an arc gets to pi radians, the
6161 : // less difference there is between the large and small arcs, down to no difference at all
6162 : // for an exact 180-degree arc.
6163 0 : bool largeArc = angleDifference >= M_PI;
6164 0 : WPXPropertyList ellipseVertex;
6165 0 : ellipseVertex.insert("svg:x", end2D.m_x);
6166 0 : ellipseVertex.insert("svg:y", end2D.m_y);
6167 : // The next two lines won't work if "transform" stretches the shape.
6168 : // Since currently the only transforms are flips and rotations, this isn't a problem now,
6169 : // but keep it in mind if we ever change how this code works, since it breaks abstraction.
6170 0 : ellipseVertex.insert("svg:rx", rx);
6171 0 : ellipseVertex.insert("svg:ry", ry);
6172 0 : ellipseVertex.insert("libwpg:large-arc", largeArc ? 1 : 0);
6173 0 : ellipseVertex.insert("libwpg:sweep", clockwiseAfterTransform ? 1 : 0);
6174 0 : ellipseVertex.insert("libwpg:rotate", -transform.getRotation());
6175 0 : ellipseVertex.insert("libwpg:path-action", "A");
6176 0 : vertices.append(ellipseVertex);
6177 0 : hasUnclosedElements = true;
6178 0 : }
6179 0 : break;
6180 :
6181 : case ANGLEELLIPSE:
6182 : MSPUB_DEBUG_MSG(("ANGLEELLIPSE %d\n", cmd.m_count));
6183 0 : for (unsigned j = 0; (j < cmd.m_count) && (vertexIndex + 2 < shape->m_numVertices); ++j, vertexIndex += 3)
6184 : {
6185 0 : hasUnclosedElements = true;
6186 0 : WPXPropertyList vertex;
6187 0 : double startAngle = getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + 2].m_x);
6188 0 : double endAngle = getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + 2].m_y);
6189 0 : double cx = x + scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_x);
6190 0 : double cy = y + scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_y);
6191 0 : double rx = scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + 1].m_x);
6192 0 : double ry = scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + 1].m_y);
6193 :
6194 : // FIXME: Are angles supposed to be the actual angle of the point with the x-axis,
6195 : // or the eccentric anomaly, or something else?
6196 : //
6197 : // assuming eccentric anomaly for now
6198 0 : WPXPropertyList moveVertex;
6199 0 : Vector2D start(cx + rx * cos(startAngle * M_PI / 180),
6200 0 : cy + ry * sin(startAngle * M_PI / 180));
6201 0 : if (!pathBegin.is_initialized())
6202 : {
6203 0 : pathBegin = start;
6204 : }
6205 0 : start = transform.transformWithOrigin(start, center);
6206 0 : moveVertex.insert("libwpg:path-action", "M");
6207 0 : moveVertex.insert("svg:x", start.m_x);
6208 0 : moveVertex.insert("svg:y", start.m_y);
6209 0 : vertices.append(moveVertex);
6210 0 : Vector2D half(cx + rx * cos(endAngle * M_PI / 360),
6211 0 : cy + ry * sin(endAngle * M_PI / 360));
6212 0 : half = transform.transformWithOrigin(half, center);
6213 0 : WPXPropertyList halfVertex;
6214 0 : halfVertex.insert("libwpg:path-action", "A");
6215 0 : halfVertex.insert("svg:x", half.m_x);
6216 0 : halfVertex.insert("svg:y", half.m_y);
6217 0 : halfVertex.insert("svg:rx", rx * transform.getHorizontalScaling());
6218 0 : halfVertex.insert("svg:ry", ry * transform.getVerticalScaling());
6219 0 : halfVertex.insert("libwpg:rotate", transform.getRotation() * 180 / M_PI);
6220 0 : vertices.append(halfVertex);
6221 0 : Vector2D end(cx + rx * cos(endAngle * M_PI / 180),
6222 0 : cy + ry * sin(endAngle * M_PI / 180));
6223 0 : lastPoint = end;
6224 0 : end = transform.transformWithOrigin(end, center);
6225 0 : vertex.insert("svg:x", end.m_x);
6226 0 : vertex.insert("svg:y", end.m_y);
6227 0 : vertex.insert("svg:rx", rx);
6228 0 : vertex.insert("svg:ry", ry);
6229 0 : vertex.insert("libwpg:rotate", transform.getRotation() * 180 / M_PI);
6230 0 : vertex.insert("libwpg:path-action", "A");
6231 0 : vertices.append(vertex);
6232 0 : }
6233 0 : break;
6234 : case MOVETO:
6235 : MSPUB_DEBUG_MSG(("MOVETO %d\n", cmd.m_count));
6236 0 : for (unsigned j = 0; (j < cmd.m_count) && (vertexIndex < shape->m_numVertices); ++j, ++vertexIndex)
6237 : {
6238 : MSPUB_DEBUG_MSG(("x: %f, y: %f\n", getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_x), getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_y)));
6239 0 : if (hasUnclosedElements && closeEverything)
6240 : {
6241 0 : WPXPropertyList closeVertex;
6242 0 : closeVertex.insert("libwpg:path-action", "Z");
6243 0 : vertices.append(closeVertex);
6244 : }
6245 0 : hasUnclosedElements = false;
6246 0 : WPXPropertyList moveVertex;
6247 0 : Vector2D new_(x + scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_x),
6248 0 : y + scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_y));
6249 0 : pathBegin = new_;
6250 0 : lastPoint = new_;
6251 0 : new_ = transform.transformWithOrigin(new_, center);
6252 0 : moveVertex.insert("svg:x", new_.m_x);
6253 0 : moveVertex.insert("svg:y", new_.m_y);
6254 0 : moveVertex.insert("libwpg:path-action", "M");
6255 0 : vertices.append(moveVertex);
6256 0 : }
6257 0 : break;
6258 : case LINETO:
6259 : MSPUB_DEBUG_MSG(("LINETO %d\n", cmd.m_count));
6260 0 : for (unsigned j = 0; (j < cmd.m_count) && (vertexIndex < shape->m_numVertices); ++j, ++vertexIndex)
6261 : {
6262 : MSPUB_DEBUG_MSG(("x: %f, y: %f\n", getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_x), getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_y)));
6263 0 : hasUnclosedElements = true;
6264 0 : WPXPropertyList vertex;
6265 0 : Vector2D vector(x + scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_x),
6266 0 : y + scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_y));
6267 0 : lastPoint = vector;
6268 0 : vector = transform.transformWithOrigin(vector, center);
6269 0 : vertex.insert("svg:x", vector.m_x);
6270 0 : vertex.insert("svg:y", vector.m_y);
6271 0 : vertex.insert("libwpg:path-action", "L");
6272 0 : vertices.append(vertex);
6273 0 : }
6274 0 : break;
6275 : case CURVETO:
6276 : MSPUB_DEBUG_MSG(("CURVETO %d\n", cmd.m_count));
6277 0 : for (unsigned j = 0; (j < cmd.m_count) && (vertexIndex + 2 < shape->m_numVertices); ++j, vertexIndex += 3)
6278 : {
6279 0 : hasUnclosedElements = true;
6280 0 : Vector2D firstCtrl(x + scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_x),
6281 0 : y + scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex].m_y));
6282 0 : firstCtrl = transform.transformWithOrigin(firstCtrl, center);
6283 0 : Vector2D secondCtrl(x + scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + 1].m_x),
6284 0 : y + scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + 1].m_y));
6285 0 : secondCtrl = transform.transformWithOrigin(secondCtrl, center);
6286 0 : Vector2D end( x + scaleX * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + 2].m_x),
6287 0 : y + scaleY * getSpecialIfNecessary(calculator, shape->mp_vertices[vertexIndex + 2].m_y));
6288 0 : lastPoint = end;
6289 0 : end = transform.transformWithOrigin(end, center);
6290 0 : WPXPropertyList bezier;
6291 0 : bezier.insert("libwpg:path-action", "C");
6292 0 : bezier.insert("svg:x1", firstCtrl.m_x);
6293 0 : bezier.insert("svg:x2", secondCtrl.m_x);
6294 0 : bezier.insert("svg:y1", firstCtrl.m_y);
6295 0 : bezier.insert("svg:y2", secondCtrl.m_y);
6296 0 : bezier.insert("svg:x", end.m_x);
6297 0 : bezier.insert("svg:y", end.m_y);
6298 0 : vertices.append(bezier);
6299 0 : }
6300 0 : break;
6301 : case CLOSESUBPATH:
6302 : {
6303 : MSPUB_DEBUG_MSG(("CLOSESUBPATH\n"));
6304 0 : if (!pathBegin.is_initialized())
6305 : {
6306 : MSPUB_DEBUG_MSG(("Tried to close a subpath that hadn't yet begun!\n"));
6307 : }
6308 0 : else if (closeEverything)
6309 : {
6310 0 : WPXPropertyList end;
6311 0 : end.insert("libwpg:path-action", "Z");
6312 0 : vertices.append(end);
6313 : }
6314 : else
6315 : {
6316 0 : WPXPropertyList end;
6317 0 : end.insert("libwpg:path-action", "L");
6318 0 : Vector2D transformedPathBegin = transform.transformWithOrigin(pathBegin.get(), center);
6319 0 : end.insert("svg:x", transformedPathBegin.m_x);
6320 0 : end.insert("svg:y", transformedPathBegin.m_y);
6321 0 : vertices.append(end);
6322 : }
6323 0 : hasUnclosedElements = false;
6324 : }
6325 : //intentionally no break
6326 : case ENDSUBPATH:
6327 : MSPUB_DEBUG_MSG(("ENDSUBPATH\n"));
6328 0 : if (closeEverything && pathBegin.is_initialized())
6329 : {
6330 0 : WPXPropertyList end;
6331 0 : end.insert("libwpg:path-action", "Z");
6332 0 : vertices.append(end);
6333 : }
6334 0 : pathBegin = boost::optional<Vector2D>();
6335 0 : break;
6336 : case NOFILL:
6337 : MSPUB_DEBUG_MSG(("NOFILL (ignored)\n"));
6338 0 : break;
6339 : case NOSTROKE:
6340 : MSPUB_DEBUG_MSG(("NOSTROKE (ignored)\n"));
6341 0 : break;
6342 : default:
6343 : MSPUB_DEBUG_MSG(("Unknown custom shape command %d\n", cmd.m_command));
6344 0 : break;
6345 : }
6346 : }
6347 0 : if (hasUnclosedElements && closeEverything)
6348 : {
6349 0 : if (pathBegin.is_initialized())
6350 : {
6351 0 : WPXPropertyList end;
6352 0 : end.insert("libwpg:path-action", "Z");
6353 0 : vertices.append(end);
6354 : }
6355 : }
6356 0 : painter->drawPath(vertices);
6357 : }
6358 : }
6359 :
6360 0 : bool libmspub::isShapeTypeRectangle(ShapeType type)
6361 : {
6362 0 : return type == RECTANGLE || type == TEXT_BOX;
6363 : }
6364 :
6365 :
6366 0 : boost::shared_ptr<const libmspub::CustomShape> libmspub::getFromDynamicCustomShape(const libmspub::DynamicCustomShape &dcs)
6367 : {
6368 : return boost::shared_ptr<const CustomShape>(new CustomShape(
6369 0 : dcs.m_vertices.empty() ? NULL : &dcs.m_vertices[0],
6370 0 : dcs.m_vertices.size(),
6371 0 : dcs.m_elements.empty() ? NULL : &dcs.m_elements[0],
6372 0 : dcs.m_elements.size(),
6373 0 : dcs.m_calculations.empty() ? NULL : &dcs.m_calculations[0],
6374 0 : dcs.m_calculations.size(),
6375 0 : dcs.m_defaultAdjustValues.empty() ? NULL :
6376 0 : &dcs.m_defaultAdjustValues[0],
6377 0 : dcs.m_defaultAdjustValues.size(),
6378 0 : dcs.m_textRectangles.empty() ? NULL : &dcs.m_textRectangles[0],
6379 0 : dcs.m_textRectangles.size(),
6380 : dcs.m_coordWidth, dcs.m_coordHeight,
6381 0 : dcs.m_gluePoints.empty() ? NULL : &dcs.m_gluePoints[0],
6382 0 : dcs.m_gluePoints.size(),
6383 : dcs.m_adjustShiftMask
6384 0 : ));
6385 0 : }
6386 :
6387 : /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
|