Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include <algorithm>
21 : #include <filter/msfilter/dffpropset.hxx>
22 : #include <rtl/ustrbuf.hxx>
23 :
24 : static const DffPropSetEntry mso_PropSetDefaults[] = {
25 :
26 : // 0
27 : { { false, false, false, false }, 0, 0 },
28 : { { false, false, false, false }, 0, 0 },
29 : { { false, false, false, false }, 0, 0 },
30 : { { false, false, false, false }, 0, 0 },
31 : { { false, false, false, false }, 0, 0 },
32 : { { false, false, false, false }, 0, 0 },
33 : { { false, false, false, false }, 0, 0 },
34 : { { false, false, false, false }, 0, 0 },
35 : { { false, false, false, false }, 0, 0 },
36 : { { false, false, false, false }, 0, 0 },
37 : { { false, false, false, false }, 0, 0 },
38 : { { false, false, false, false }, 0, 0 },
39 : { { false, false, false, false }, 0, 0 },
40 : { { false, false, false, false }, 0, 0 },
41 : { { false, false, false, false }, 0, 0 },
42 : { { false, false, false, false }, 0, 0 },
43 : { { false, false, false, false }, 0, 0 },
44 : { { false, false, false, false }, 0, 0 },
45 : { { false, false, false, false }, 0, 0 },
46 : { { false, false, false, false }, 0, 0 },
47 : { { false, false, false, false }, 0, 0 },
48 : { { false, false, false, false }, 0, 0 },
49 : { { false, false, false, false }, 0, 0 },
50 : { { false, false, false, false }, 0, 0 },
51 : { { false, false, false, false }, 0, 0 },
52 : { { false, false, false, false }, 0, 0 },
53 : { { false, false, false, false }, 0, 0 },
54 : { { false, false, false, false }, 0, 0 },
55 : { { false, false, false, false }, 0, 0 },
56 : { { false, false, false, false }, 0, 0 },
57 : { { false, false, false, false }, 0, 0 },
58 : { { false, false, false, false }, 0, 0 },
59 : { { false, false, false, false }, 0, 0 },
60 : { { false, false, false, false }, 0, 0 },
61 : { { false, false, false, false }, 0, 0 },
62 : { { false, false, false, false }, 0, 0 },
63 : { { false, false, false, false }, 0, 0 },
64 : { { false, false, false, false }, 0, 0 },
65 : { { false, false, false, false }, 0, 0 },
66 : { { false, false, false, false }, 0, 0 },
67 : { { false, false, false, false }, 0, 0 },
68 : { { false, false, false, false }, 0, 0 },
69 : { { false, false, false, false }, 0, 0 },
70 : { { false, false, false, false }, 0, 0 },
71 : { { false, false, false, false }, 0, 0 },
72 : { { false, false, false, false }, 0, 0 },
73 : { { false, false, false, false }, 0, 0 },
74 : { { false, false, false, false }, 0, 0 },
75 : { { false, false, false, false }, 0, 0 },
76 : { { false, false, false, false }, 0, 0 },
77 : { { false, false, false, false }, 0, 0 },
78 : { { false, false, false, false }, 0, 0 },
79 : { { false, false, false, false }, 0, 0 },
80 : { { false, false, false, false }, 0, 0 },
81 : { { false, false, false, false }, 0, 0 },
82 : { { false, false, false, false }, 0, 0 },
83 : { { false, false, false, false }, 0, 0 },
84 : { { false, false, false, false }, 0, 0 },
85 : { { false, false, false, false }, 0, 0 },
86 : { { false, false, false, false }, 0, 0 },
87 : { { false, false, false, false }, 0, 0 },
88 : { { false, false, false, false }, 0, 0 },
89 : { { false, false, false, false }, 0, 0 },
90 : { { false, false, false, false }, 0, 0 },
91 :
92 : // 64
93 : { { false, false, false, false }, 0, 0 },
94 : { { false, false, false, false }, 0, 0 },
95 : { { false, false, false, false }, 0, 0 },
96 : { { false, false, false, false }, 0, 0 },
97 : { { false, false, false, false }, 0, 0 },
98 : { { false, false, false, false }, 0, 0 },
99 : { { false, false, false, false }, 0, 0 },
100 : { { false, false, false, false }, 0, 0 },
101 : { { false, false, false, false }, 0, 0 },
102 : { { false, false, false, false }, 0, 0 },
103 : { { false, false, false, false }, 0, 0 },
104 : { { false, false, false, false }, 0, 0 },
105 : { { false, false, false, false }, 0, 0 },
106 : { { false, false, false, false }, 0, 0 },
107 : { { false, false, false, false }, 0, 0 },
108 : { { false, false, false, false }, 0, 0 },
109 : { { false, false, false, false }, 0, 0 },
110 : { { false, false, false, false }, 0, 0 },
111 : { { false, false, false, false }, 0, 0 },
112 : { { false, false, false, false }, 0, 0 },
113 : { { false, false, false, false }, 0, 0 },
114 : { { false, false, false, false }, 0, 0 },
115 : { { false, false, false, false }, 0, 0 },
116 : { { false, false, false, false }, 0, 0 },
117 : { { false, false, false, false }, 0, 0 },
118 : { { false, false, false, false }, 0, 0 },
119 : { { false, false, false, false }, 0, 0 },
120 : { { false, false, false, false }, 0, 0 },
121 : { { false, false, false, false }, 0, 0 },
122 : { { false, false, false, false }, 0, 0 },
123 : { { false, false, false, false }, 0, 0 },
124 : { { false, false, false, false }, 0, 0 },
125 : { { false, false, false, false }, 0, 0 },
126 : { { false, false, false, false }, 0, 0 },
127 : { { false, false, false, false }, 0, 0 },
128 : { { false, false, false, false }, 0, 0 },
129 : { { false, false, false, false }, 0, 0 },
130 : { { false, false, false, false }, 0, 0 },
131 : { { false, false, false, false }, 0, 0 },
132 : { { false, false, false, false }, 0, 0 },
133 : { { false, false, false, false }, 0, 0 },
134 : { { false, false, false, false }, 0, 0 },
135 : { { false, false, false, false }, 0, 0 },
136 : { { false, false, false, false }, 0, 0 },
137 : { { false, false, false, false }, 0, 0 },
138 : { { false, false, false, false }, 0, 0 },
139 : { { false, false, false, false }, 0, 0 },
140 : { { false, false, false, false }, 0, 0 },
141 : { { false, false, false, false }, 0, 0 },
142 : { { false, false, false, false }, 0, 0 },
143 : { { false, false, false, false }, 0, 0 },
144 : { { false, false, false, false }, 0, 0 },
145 : { { false, false, false, false }, 0, 0 },
146 : { { false, false, false, false }, 0, 0 },
147 : { { false, false, false, false }, 0, 0 },
148 : { { false, false, false, false }, 0, 0 },
149 : { { false, false, false, false }, 0, 0 },
150 : { { false, false, false, false }, 0, 0 },
151 : { { false, false, false, false }, 0, 0 },
152 : { { false, false, false, false }, 0, 0 },
153 : { { false, false, false, false }, 0, 0 },
154 : { { false, false, false, false }, 0, 0 },
155 : { { false, false, false, false }, 0, 0 },
156 : { { true, false, false, true }, 0, 0 }, // DFF_Prop_LockAgainstGrouping
157 :
158 : // 128
159 : { { false, false, false, false }, 0, 0 },
160 : { { false, false, false, false }, 0, 0 },
161 : { { false, false, false, false }, 0, 0 },
162 : { { false, false, false, false }, 0, 0 },
163 : { { false, false, false, false }, 0, 0 },
164 : { { false, false, false, false }, 0, 0 },
165 : { { false, false, false, false }, 0, 0 },
166 : { { false, false, false, false }, 0, 0 },
167 : { { false, false, false, false }, 0, 0 },
168 : { { false, false, false, false }, 0, 0 },
169 : { { false, false, false, false }, 0, 0 },
170 : { { false, false, false, false }, 0, 0 },
171 : { { false, false, false, false }, 0, 0 },
172 : { { false, false, false, false }, 0, 0 },
173 : { { false, false, false, false }, 0, 0 },
174 : { { false, false, false, false }, 0, 0 },
175 : { { false, false, false, false }, 0, 0 },
176 : { { false, false, false, false }, 0, 0 },
177 : { { false, false, false, false }, 0, 0 },
178 : { { false, false, false, false }, 0, 0 },
179 : { { false, false, false, false }, 0, 0 },
180 : { { false, false, false, false }, 0, 0 },
181 : { { false, false, false, false }, 0, 0 },
182 : { { false, false, false, false }, 0, 0 },
183 : { { false, false, false, false }, 0, 0 },
184 : { { false, false, false, false }, 0, 0 },
185 : { { false, false, false, false }, 0, 0 },
186 : { { false, false, false, false }, 0, 0 },
187 : { { false, false, false, false }, 0, 0 },
188 : { { false, false, false, false }, 0, 0 },
189 : { { false, false, false, false }, 0, 0 },
190 : { { false, false, false, false }, 0, 0 },
191 : { { false, false, false, false }, 0, 0 },
192 : { { false, false, false, false }, 0, 0 },
193 : { { false, false, false, false }, 0, 0 },
194 : { { false, false, false, false }, 0, 0 },
195 : { { false, false, false, false }, 0, 0 },
196 : { { false, false, false, false }, 0, 0 },
197 : { { false, false, false, false }, 0, 0 },
198 : { { false, false, false, false }, 0, 0 },
199 : { { false, false, false, false }, 0, 0 },
200 : { { false, false, false, false }, 0, 0 },
201 : { { false, false, false, false }, 0, 0 },
202 : { { false, false, false, false }, 0, 0 },
203 : { { false, false, false, false }, 0, 0 },
204 : { { false, false, false, false }, 0, 0 },
205 : { { false, false, false, false }, 0, 0 },
206 : { { false, false, false, false }, 0, 0 },
207 : { { false, false, false, false }, 0, 0 },
208 : { { false, false, false, false }, 0, 0 },
209 : { { false, false, false, false }, 0, 0 },
210 : { { false, false, false, false }, 0, 0 },
211 : { { false, false, false, false }, 0, 0 },
212 : { { false, false, false, false }, 0, 0 },
213 : { { false, false, false, false }, 0, 0 },
214 : { { false, false, false, false }, 0, 0 },
215 : { { false, false, false, false }, 0, 0 },
216 : { { false, false, false, false }, 0, 0 },
217 : { { false, false, false, false }, 0, 0 },
218 : { { false, false, false, false }, 0, 0 },
219 : { { false, false, false, false }, 0, 0 },
220 : { { false, false, false, false }, 0, 0 },
221 : { { false, false, false, false }, 0, 0 },
222 : { { true, false, false, true }, 0, 0x0010 }, // DFF_Prop_FitTextToShape
223 :
224 : // 192
225 : { { false, false, false, false }, 0, 0 },
226 : { { false, false, false, false }, 0, 0 },
227 : { { false, false, false, false }, 0, 0 },
228 : { { false, false, false, false }, 0, 0 },
229 : { { false, false, false, false }, 0, 0 },
230 : { { false, false, false, false }, 0, 0 },
231 : { { false, false, false, false }, 0, 0 },
232 : { { false, false, false, false }, 0, 0 },
233 : { { false, false, false, false }, 0, 0 },
234 : { { false, false, false, false }, 0, 0 },
235 : { { false, false, false, false }, 0, 0 },
236 : { { false, false, false, false }, 0, 0 },
237 : { { false, false, false, false }, 0, 0 },
238 : { { false, false, false, false }, 0, 0 },
239 : { { false, false, false, false }, 0, 0 },
240 : { { false, false, false, false }, 0, 0 },
241 : { { false, false, false, false }, 0, 0 },
242 : { { false, false, false, false }, 0, 0 },
243 : { { false, false, false, false }, 0, 0 },
244 : { { false, false, false, false }, 0, 0 },
245 : { { false, false, false, false }, 0, 0 },
246 : { { false, false, false, false }, 0, 0 },
247 : { { false, false, false, false }, 0, 0 },
248 : { { false, false, false, false }, 0, 0 },
249 : { { false, false, false, false }, 0, 0 },
250 : { { false, false, false, false }, 0, 0 },
251 : { { false, false, false, false }, 0, 0 },
252 : { { false, false, false, false }, 0, 0 },
253 : { { false, false, false, false }, 0, 0 },
254 : { { false, false, false, false }, 0, 0 },
255 : { { false, false, false, false }, 0, 0 },
256 : { { false, false, false, false }, 0, 0 },
257 : { { false, false, false, false }, 0, 0 },
258 : { { false, false, false, false }, 0, 0 },
259 : { { false, false, false, false }, 0, 0 },
260 : { { false, false, false, false }, 0, 0 },
261 : { { false, false, false, false }, 0, 0 },
262 : { { false, false, false, false }, 0, 0 },
263 : { { false, false, false, false }, 0, 0 },
264 : { { false, false, false, false }, 0, 0 },
265 : { { false, false, false, false }, 0, 0 },
266 : { { false, false, false, false }, 0, 0 },
267 : { { false, false, false, false }, 0, 0 },
268 : { { false, false, false, false }, 0, 0 },
269 : { { false, false, false, false }, 0, 0 },
270 : { { false, false, false, false }, 0, 0 },
271 : { { false, false, false, false }, 0, 0 },
272 : { { false, false, false, false }, 0, 0 },
273 : { { false, false, false, false }, 0, 0 },
274 : { { false, false, false, false }, 0, 0 },
275 : { { false, false, false, false }, 0, 0 },
276 : { { false, false, false, false }, 0, 0 },
277 : { { false, false, false, false }, 0, 0 },
278 : { { false, false, false, false }, 0, 0 },
279 : { { false, false, false, false }, 0, 0 },
280 : { { false, false, false, false }, 0, 0 },
281 : { { false, false, false, false }, 0, 0 },
282 : { { false, false, false, false }, 0, 0 },
283 : { { false, false, false, false }, 0, 0 },
284 : { { false, false, false, false }, 0, 0 },
285 : { { false, false, false, false }, 0, 0 },
286 : { { false, false, false, false }, 0, 0 },
287 : { { false, false, false, false }, 0, 0 },
288 : { { true, false, false, true }, 0, 0 }, // DFF_Prop_gtextFStrikethrough
289 :
290 : //256
291 : { { false, false, false, false }, 0, 0 },
292 : { { false, false, false, false }, 0, 0 },
293 : { { false, false, false, false }, 0, 0 },
294 : { { false, false, false, false }, 0, 0 },
295 : { { false, false, false, false }, 0, 0 },
296 : { { false, false, false, false }, 0, 0 },
297 : { { false, false, false, false }, 0, 0 },
298 : { { false, false, false, false }, 0, 0 },
299 : { { false, false, false, false }, 0, 0 },
300 : { { false, false, false, false }, 0, 0 },
301 : { { false, false, false, false }, 0, 0 },
302 : { { false, false, false, false }, 0, 0 },
303 : { { false, false, false, false }, 0, 0 },
304 : { { false, false, false, false }, 0, 0 },
305 : { { false, false, false, false }, 0, 0 },
306 : { { false, false, false, false }, 0, 0 },
307 : { { false, false, false, false }, 0, 0 },
308 : { { false, false, false, false }, 0, 0 },
309 : { { false, false, false, false }, 0, 0 },
310 : { { false, false, false, false }, 0, 0 },
311 : { { false, false, false, false }, 0, 0 },
312 : { { false, false, false, false }, 0, 0 },
313 : { { false, false, false, false }, 0, 0 },
314 : { { false, false, false, false }, 0, 0 },
315 : { { false, false, false, false }, 0, 0 },
316 : { { false, false, false, false }, 0, 0 },
317 : { { false, false, false, false }, 0, 0 },
318 : { { false, false, false, false }, 0, 0 },
319 : { { false, false, false, false }, 0, 0 },
320 : { { false, false, false, false }, 0, 0 },
321 : { { false, false, false, false }, 0, 0 },
322 : { { false, false, false, false }, 0, 0 },
323 : { { false, false, false, false }, 0, 0 },
324 : { { false, false, false, false }, 0, 0 },
325 : { { false, false, false, false }, 0, 0 },
326 : { { false, false, false, false }, 0, 0 },
327 : { { false, false, false, false }, 0, 0 },
328 : { { false, false, false, false }, 0, 0 },
329 : { { false, false, false, false }, 0, 0 },
330 : { { false, false, false, false }, 0, 0 },
331 : { { false, false, false, false }, 0, 0 },
332 : { { false, false, false, false }, 0, 0 },
333 : { { false, false, false, false }, 0, 0 },
334 : { { false, false, false, false }, 0, 0 },
335 : { { false, false, false, false }, 0, 0 },
336 : { { false, false, false, false }, 0, 0 },
337 : { { false, false, false, false }, 0, 0 },
338 : { { false, false, false, false }, 0, 0 },
339 : { { false, false, false, false }, 0, 0 },
340 : { { false, false, false, false }, 0, 0 },
341 : { { false, false, false, false }, 0, 0 },
342 : { { false, false, false, false }, 0, 0 },
343 : { { false, false, false, false }, 0, 0 },
344 : { { false, false, false, false }, 0, 0 },
345 : { { false, false, false, false }, 0, 0 },
346 : { { false, false, false, false }, 0, 0 },
347 : { { false, false, false, false }, 0, 0 },
348 : { { false, false, false, false }, 0, 0 },
349 : { { false, false, false, false }, 0, 0 },
350 : { { false, false, false, false }, 0, 0 },
351 : { { false, false, false, false }, 0, 0 },
352 : { { false, false, false, false }, 0, 0 },
353 : { { false, false, false, false }, 0, 0 },
354 : { { true, false, false, true }, 0, 0 }, // DFF_Prop_pictureActive
355 :
356 : // 320
357 : { { false, false, false, false }, 0, 0 },
358 : { { false, false, false, false }, 0, 0 },
359 : { { false, false, false, false }, 0, 0 },
360 : { { false, false, false, false }, 0, 0 },
361 : { { false, false, false, false }, 0, 0 },
362 : { { false, false, false, false }, 0, 0 },
363 : { { false, false, false, false }, 0, 0 },
364 : { { false, false, false, false }, 0, 0 },
365 : { { false, false, false, false }, 0, 0 },
366 : { { false, false, false, false }, 0, 0 },
367 : { { false, false, false, false }, 0, 0 },
368 : { { false, false, false, false }, 0, 0 },
369 : { { false, false, false, false }, 0, 0 },
370 : { { false, false, false, false }, 0, 0 },
371 : { { false, false, false, false }, 0, 0 },
372 : { { false, false, false, false }, 0, 0 },
373 : { { false, false, false, false }, 0, 0 },
374 : { { false, false, false, false }, 0, 0 },
375 : { { false, false, false, false }, 0, 0 },
376 : { { false, false, false, false }, 0, 0 },
377 : { { false, false, false, false }, 0, 0 },
378 : { { false, false, false, false }, 0, 0 },
379 : { { false, false, false, false }, 0, 0 },
380 : { { false, false, false, false }, 0, 0 },
381 : { { false, false, false, false }, 0, 0 },
382 : { { false, false, false, false }, 0, 0 },
383 : { { false, false, false, false }, 0, 0 },
384 : { { false, false, false, false }, 0, 0 },
385 : { { false, false, false, false }, 0, 0 },
386 : { { false, false, false, false }, 0, 0 },
387 : { { false, false, false, false }, 0, 0 },
388 : { { false, false, false, false }, 0, 0 },
389 : { { false, false, false, false }, 0, 0 },
390 : { { false, false, false, false }, 0, 0 },
391 : { { false, false, false, false }, 0, 0 },
392 : { { false, false, false, false }, 0, 0 },
393 : { { false, false, false, false }, 0, 0 },
394 : { { false, false, false, false }, 0, 0 },
395 : { { false, false, false, false }, 0, 0 },
396 : { { false, false, false, false }, 0, 0 },
397 : { { false, false, false, false }, 0, 0 },
398 : { { false, false, false, false }, 0, 0 },
399 : { { false, false, false, false }, 0, 0 },
400 : { { false, false, false, false }, 0, 0 },
401 : { { false, false, false, false }, 0, 0 },
402 : { { false, false, false, false }, 0, 0 },
403 : { { false, false, false, false }, 0, 0 },
404 : { { false, false, false, false }, 0, 0 },
405 : { { false, false, false, false }, 0, 0 },
406 : { { false, false, false, false }, 0, 0 },
407 : { { false, false, false, false }, 0, 0 },
408 : { { false, false, false, false }, 0, 0 },
409 : { { false, false, false, false }, 0, 0 },
410 : { { false, false, false, false }, 0, 0 },
411 : { { false, false, false, false }, 0, 0 },
412 : { { false, false, false, false }, 0, 0 },
413 : { { false, false, false, false }, 0, 0 },
414 : { { false, false, false, false }, 0, 0 },
415 : { { false, false, false, false }, 0, 0 },
416 : { { false, false, false, false }, 0, 0 },
417 : { { false, false, false, false }, 0, 0 },
418 : { { false, false, false, false }, 0, 0 },
419 : { { false, false, false, false }, 0, 0 },
420 : { { true, false, false, true }, 0, 0x0039 }, // DFF_Prop_fFillOK
421 :
422 : // 384
423 : { { false, false, false, false }, 0, 0 },
424 : { { true, false, false, true }, 0, 0xffffff }, // DFF_Prop_fillColor
425 : { { false, false, false, false }, 0, 0 },
426 : { { false, false, false, false }, 0, 0 },
427 : { { false, false, false, false }, 0, 0 },
428 : { { false, false, false, false }, 0, 0 },
429 : { { false, false, false, false }, 0, 0 },
430 : { { false, false, false, false }, 0, 0 },
431 : { { false, false, false, false }, 0, 0 },
432 : { { false, false, false, false }, 0, 0 },
433 : { { false, false, false, false }, 0, 0 },
434 : { { false, false, false, false }, 0, 0 },
435 : { { false, false, false, false }, 0, 0 },
436 : { { false, false, false, false }, 0, 0 },
437 : { { false, false, false, false }, 0, 0 },
438 : { { false, false, false, false }, 0, 0 },
439 : { { false, false, false, false }, 0, 0 },
440 : { { false, false, false, false }, 0, 0 },
441 : { { false, false, false, false }, 0, 0 },
442 : { { false, false, false, false }, 0, 0 },
443 : { { false, false, false, false }, 0, 0 },
444 : { { false, false, false, false }, 0, 0 },
445 : { { false, false, false, false }, 0, 0 },
446 : { { false, false, false, false }, 0, 0 },
447 : { { false, false, false, false }, 0, 0 },
448 : { { false, false, false, false }, 0, 0 },
449 : { { false, false, false, false }, 0, 0 },
450 : { { false, false, false, false }, 0, 0 },
451 : { { false, false, false, false }, 0, 0 },
452 : { { false, false, false, false }, 0, 0 },
453 : { { false, false, false, false }, 0, 0 },
454 : { { false, false, false, false }, 0, 0 },
455 : { { false, false, false, false }, 0, 0 },
456 : { { false, false, false, false }, 0, 0 },
457 : { { false, false, false, false }, 0, 0 },
458 : { { false, false, false, false }, 0, 0 },
459 : { { false, false, false, false }, 0, 0 },
460 : { { false, false, false, false }, 0, 0 },
461 : { { false, false, false, false }, 0, 0 },
462 : { { false, false, false, false }, 0, 0 },
463 : { { false, false, false, false }, 0, 0 },
464 : { { false, false, false, false }, 0, 0 },
465 : { { false, false, false, false }, 0, 0 },
466 : { { false, false, false, false }, 0, 0 },
467 : { { false, false, false, false }, 0, 0 },
468 : { { false, false, false, false }, 0, 0 },
469 : { { false, false, false, false }, 0, 0 },
470 : { { false, false, false, false }, 0, 0 },
471 : { { false, false, false, false }, 0, 0 },
472 : { { false, false, false, false }, 0, 0 },
473 : { { false, false, false, false }, 0, 0 },
474 : { { false, false, false, false }, 0, 0 },
475 : { { false, false, false, false }, 0, 0 },
476 : { { false, false, false, false }, 0, 0 },
477 : { { false, false, false, false }, 0, 0 },
478 : { { false, false, false, false }, 0, 0 },
479 : { { false, false, false, false }, 0, 0 },
480 : { { false, false, false, false }, 0, 0 },
481 : { { false, false, false, false }, 0, 0 },
482 : { { false, false, false, false }, 0, 0 },
483 : { { false, false, false, false }, 0, 0 },
484 : { { false, false, false, false }, 0, 0 },
485 : { { false, false, false, false }, 0, 0 },
486 : { { true, false, false, true }, 0, 0x001c }, // DFF_Prop_fNoFillHitTest
487 :
488 : // 448
489 : { { false, false, false, false }, 0, 0 },
490 : { { false, false, false, false }, 0, 0 },
491 : { { false, false, false, false }, 0, 0 },
492 : { { false, false, false, false }, 0, 0 },
493 : { { false, false, false, false }, 0, 0 },
494 : { { false, false, false, false }, 0, 0 },
495 : { { false, false, false, false }, 0, 0 },
496 : { { false, false, false, false }, 0, 0 },
497 : { { false, false, false, false }, 0, 0 },
498 : { { false, false, false, false }, 0, 0 },
499 : { { false, false, false, false }, 0, 0 },
500 : { { false, false, false, false }, 0, 0 },
501 : { { false, false, false, false }, 0, 0 },
502 : { { false, false, false, false }, 0, 0 },
503 : { { false, false, false, false }, 0, 0 },
504 : { { false, false, false, false }, 0, 0 },
505 : { { false, false, false, false }, 0, 0 },
506 : { { false, false, false, false }, 0, 0 },
507 : { { false, false, false, false }, 0, 0 },
508 : { { false, false, false, false }, 0, 0 },
509 : { { false, false, false, false }, 0, 0 },
510 : { { false, false, false, false }, 0, 0 },
511 : { { false, false, false, false }, 0, 0 },
512 : { { false, false, false, false }, 0, 0 },
513 : { { false, false, false, false }, 0, 0 },
514 : { { false, false, false, false }, 0, 0 },
515 : { { false, false, false, false }, 0, 0 },
516 : { { false, false, false, false }, 0, 0 },
517 : { { false, false, false, false }, 0, 0 },
518 : { { false, false, false, false }, 0, 0 },
519 : { { false, false, false, false }, 0, 0 },
520 : { { false, false, false, false }, 0, 0 },
521 : { { false, false, false, false }, 0, 0 },
522 : { { false, false, false, false }, 0, 0 },
523 : { { false, false, false, false }, 0, 0 },
524 : { { false, false, false, false }, 0, 0 },
525 : { { false, false, false, false }, 0, 0 },
526 : { { false, false, false, false }, 0, 0 },
527 : { { false, false, false, false }, 0, 0 },
528 : { { false, false, false, false }, 0, 0 },
529 : { { false, false, false, false }, 0, 0 },
530 : { { false, false, false, false }, 0, 0 },
531 : { { false, false, false, false }, 0, 0 },
532 : { { false, false, false, false }, 0, 0 },
533 : { { false, false, false, false }, 0, 0 },
534 : { { false, false, false, false }, 0, 0 },
535 : { { false, false, false, false }, 0, 0 },
536 : { { false, false, false, false }, 0, 0 },
537 : { { false, false, false, false }, 0, 0 },
538 : { { false, false, false, false }, 0, 0 },
539 : { { false, false, false, false }, 0, 0 },
540 : { { false, false, false, false }, 0, 0 },
541 : { { false, false, false, false }, 0, 0 },
542 : { { false, false, false, false }, 0, 0 },
543 : { { false, false, false, false }, 0, 0 },
544 : { { false, false, false, false }, 0, 0 },
545 : { { false, false, false, false }, 0, 0 },
546 : { { false, false, false, false }, 0, 0 },
547 : { { false, false, false, false }, 0, 0 },
548 : { { false, false, false, false }, 0, 0 },
549 : { { false, false, false, false }, 0, 0 },
550 : { { false, false, false, false }, 0, 0 },
551 : { { false, false, false, false }, 0, 0 },
552 : { { true, false, false, true }, 0, 0x001e }, // DFF_Prop_fNoLineDrawDash
553 :
554 : // 512
555 : { { false, false, false, false }, 0, 0 },
556 : { { false, false, false, false }, 0, 0 },
557 : { { false, false, false, false }, 0, 0 },
558 : { { false, false, false, false }, 0, 0 },
559 : { { false, false, false, false }, 0, 0 },
560 : { { false, false, false, false }, 0, 0 },
561 : { { false, false, false, false }, 0, 0 },
562 : { { false, false, false, false }, 0, 0 },
563 : { { false, false, false, false }, 0, 0 },
564 : { { false, false, false, false }, 0, 0 },
565 : { { false, false, false, false }, 0, 0 },
566 : { { false, false, false, false }, 0, 0 },
567 : { { false, false, false, false }, 0, 0 },
568 : { { false, false, false, false }, 0, 0 },
569 : { { false, false, false, false }, 0, 0 },
570 : { { false, false, false, false }, 0, 0 },
571 : { { false, false, false, false }, 0, 0 },
572 : { { false, false, false, false }, 0, 0 },
573 : { { false, false, false, false }, 0, 0 },
574 : { { false, false, false, false }, 0, 0 },
575 : { { false, false, false, false }, 0, 0 },
576 : { { false, false, false, false }, 0, 0 },
577 : { { false, false, false, false }, 0, 0 },
578 : { { false, false, false, false }, 0, 0 },
579 : { { false, false, false, false }, 0, 0 },
580 : { { false, false, false, false }, 0, 0 },
581 : { { false, false, false, false }, 0, 0 },
582 : { { false, false, false, false }, 0, 0 },
583 : { { false, false, false, false }, 0, 0 },
584 : { { false, false, false, false }, 0, 0 },
585 : { { false, false, false, false }, 0, 0 },
586 : { { false, false, false, false }, 0, 0 },
587 : { { false, false, false, false }, 0, 0 },
588 : { { false, false, false, false }, 0, 0 },
589 : { { false, false, false, false }, 0, 0 },
590 : { { false, false, false, false }, 0, 0 },
591 : { { false, false, false, false }, 0, 0 },
592 : { { false, false, false, false }, 0, 0 },
593 : { { false, false, false, false }, 0, 0 },
594 : { { false, false, false, false }, 0, 0 },
595 : { { false, false, false, false }, 0, 0 },
596 : { { false, false, false, false }, 0, 0 },
597 : { { false, false, false, false }, 0, 0 },
598 : { { false, false, false, false }, 0, 0 },
599 : { { false, false, false, false }, 0, 0 },
600 : { { false, false, false, false }, 0, 0 },
601 : { { false, false, false, false }, 0, 0 },
602 : { { false, false, false, false }, 0, 0 },
603 : { { false, false, false, false }, 0, 0 },
604 : { { false, false, false, false }, 0, 0 },
605 : { { false, false, false, false }, 0, 0 },
606 : { { false, false, false, false }, 0, 0 },
607 : { { false, false, false, false }, 0, 0 },
608 : { { false, false, false, false }, 0, 0 },
609 : { { false, false, false, false }, 0, 0 },
610 : { { false, false, false, false }, 0, 0 },
611 : { { false, false, false, false }, 0, 0 },
612 : { { false, false, false, false }, 0, 0 },
613 : { { false, false, false, false }, 0, 0 },
614 : { { false, false, false, false }, 0, 0 },
615 : { { false, false, false, false }, 0, 0 },
616 : { { false, false, false, false }, 0, 0 },
617 : { { false, false, false, false }, 0, 0 },
618 : { { true, false, false, true }, 0, 0 }, // DFF_Prop_fshadowObscured
619 :
620 : // 576
621 : { { false, false, false, false }, 0, 0 },
622 : { { false, false, false, false }, 0, 0 },
623 : { { false, false, false, false }, 0, 0 },
624 : { { false, false, false, false }, 0, 0 },
625 : { { false, false, false, false }, 0, 0 },
626 : { { false, false, false, false }, 0, 0 },
627 : { { false, false, false, false }, 0, 0 },
628 : { { false, false, false, false }, 0, 0 },
629 : { { false, false, false, false }, 0, 0 },
630 : { { false, false, false, false }, 0, 0 },
631 : { { false, false, false, false }, 0, 0 },
632 : { { false, false, false, false }, 0, 0 },
633 : { { false, false, false, false }, 0, 0 },
634 : { { false, false, false, false }, 0, 0 },
635 : { { false, false, false, false }, 0, 0 },
636 : { { false, false, false, false }, 0, 0 },
637 : { { false, false, false, false }, 0, 0 },
638 : { { false, false, false, false }, 0, 0 },
639 : { { false, false, false, false }, 0, 0 },
640 : { { false, false, false, false }, 0, 0 },
641 : { { false, false, false, false }, 0, 0 },
642 : { { false, false, false, false }, 0, 0 },
643 : { { false, false, false, false }, 0, 0 },
644 : { { false, false, false, false }, 0, 0 },
645 : { { false, false, false, false }, 0, 0 },
646 : { { false, false, false, false }, 0, 0 },
647 : { { false, false, false, false }, 0, 0 },
648 : { { false, false, false, false }, 0, 0 },
649 : { { false, false, false, false }, 0, 0 },
650 : { { false, false, false, false }, 0, 0 },
651 : { { false, false, false, false }, 0, 0 },
652 : { { false, false, false, false }, 0, 0 },
653 : { { false, false, false, false }, 0, 0 },
654 : { { false, false, false, false }, 0, 0 },
655 : { { false, false, false, false }, 0, 0 },
656 : { { false, false, false, false }, 0, 0 },
657 : { { false, false, false, false }, 0, 0 },
658 : { { false, false, false, false }, 0, 0 },
659 : { { false, false, false, false }, 0, 0 },
660 : { { false, false, false, false }, 0, 0 },
661 : { { false, false, false, false }, 0, 0 },
662 : { { false, false, false, false }, 0, 0 },
663 : { { false, false, false, false }, 0, 0 },
664 : { { false, false, false, false }, 0, 0 },
665 : { { false, false, false, false }, 0, 0 },
666 : { { false, false, false, false }, 0, 0 },
667 : { { false, false, false, false }, 0, 0 },
668 : { { false, false, false, false }, 0, 0 },
669 : { { false, false, false, false }, 0, 0 },
670 : { { false, false, false, false }, 0, 0 },
671 : { { false, false, false, false }, 0, 0 },
672 : { { false, false, false, false }, 0, 0 },
673 : { { false, false, false, false }, 0, 0 },
674 : { { false, false, false, false }, 0, 0 },
675 : { { false, false, false, false }, 0, 0 },
676 : { { false, false, false, false }, 0, 0 },
677 : { { false, false, false, false }, 0, 0 },
678 : { { false, false, false, false }, 0, 0 },
679 : { { false, false, false, false }, 0, 0 },
680 : { { false, false, false, false }, 0, 0 },
681 : { { false, false, false, false }, 0, 0 },
682 : { { false, false, false, false }, 0, 0 },
683 : { { false, false, false, false }, 0, 0 },
684 : { { true, false, false, true }, 0, 0 }, // DFF_Prop_fPerspective
685 :
686 : // 640
687 : { { false, false, false, false }, 0, 0 },
688 : { { false, false, false, false }, 0, 0 },
689 : { { false, false, false, false }, 0, 0 },
690 : { { false, false, false, false }, 0, 0 },
691 : { { false, false, false, false }, 0, 0 },
692 : { { false, false, false, false }, 0, 0 },
693 : { { false, false, false, false }, 0, 0 },
694 : { { false, false, false, false }, 0, 0 },
695 : { { false, false, false, false }, 0, 0 },
696 : { { false, false, false, false }, 0, 0 },
697 : { { false, false, false, false }, 0, 0 },
698 : { { false, false, false, false }, 0, 0 },
699 : { { false, false, false, false }, 0, 0 },
700 : { { false, false, false, false }, 0, 0 },
701 : { { false, false, false, false }, 0, 0 },
702 : { { false, false, false, false }, 0, 0 },
703 : { { false, false, false, false }, 0, 0 },
704 : { { false, false, false, false }, 0, 0 },
705 : { { false, false, false, false }, 0, 0 },
706 : { { false, false, false, false }, 0, 0 },
707 : { { false, false, false, false }, 0, 0 },
708 : { { false, false, false, false }, 0, 0 },
709 : { { false, false, false, false }, 0, 0 },
710 : { { false, false, false, false }, 0, 0 },
711 : { { false, false, false, false }, 0, 0 },
712 : { { false, false, false, false }, 0, 0 },
713 : { { false, false, false, false }, 0, 0 },
714 : { { false, false, false, false }, 0, 0 },
715 : { { false, false, false, false }, 0, 0 },
716 : { { false, false, false, false }, 0, 0 },
717 : { { false, false, false, false }, 0, 0 },
718 : { { false, false, false, false }, 0, 0 },
719 : { { false, false, false, false }, 0, 0 },
720 : { { false, false, false, false }, 0, 0 },
721 : { { false, false, false, false }, 0, 0 },
722 : { { false, false, false, false }, 0, 0 },
723 : { { false, false, false, false }, 0, 0 },
724 : { { false, false, false, false }, 0, 0 },
725 : { { false, false, false, false }, 0, 0 },
726 : { { false, false, false, false }, 0, 0 },
727 : { { false, false, false, false }, 0, 0 },
728 : { { false, false, false, false }, 0, 0 },
729 : { { false, false, false, false }, 0, 0 },
730 : { { false, false, false, false }, 0, 0 },
731 : { { false, false, false, false }, 0, 0 },
732 : { { false, false, false, false }, 0, 0 },
733 : { { false, false, false, false }, 0, 0 },
734 : { { false, false, false, false }, 0, 0 },
735 : { { false, false, false, false }, 0, 0 },
736 : { { false, false, false, false }, 0, 0 },
737 : { { false, false, false, false }, 0, 0 },
738 : { { false, false, false, false }, 0, 0 },
739 : { { false, false, false, false }, 0, 0 },
740 : { { false, false, false, false }, 0, 0 },
741 : { { false, false, false, false }, 0, 0 },
742 : { { false, false, false, false }, 0, 0 },
743 : { { false, false, false, false }, 0, 0 },
744 : { { false, false, false, false }, 0, 0 },
745 : { { false, false, false, false }, 0, 0 },
746 : { { false, false, false, false }, 0, 0 },
747 : { { false, false, false, false }, 0, 0 },
748 : { { false, false, false, false }, 0, 0 },
749 : { { false, false, false, false }, 0, 0 },
750 : { { true, false, false, true }, 0, 0x0001 }, // DFF_Prop_fc3DLightFace
751 :
752 : // 704
753 : { { false, false, false, false }, 0, 0 },
754 : { { false, false, false, false }, 0, 0 },
755 : { { false, false, false, false }, 0, 0 },
756 : { { false, false, false, false }, 0, 0 },
757 : { { false, false, false, false }, 0, 0 },
758 : { { false, false, false, false }, 0, 0 },
759 : { { false, false, false, false }, 0, 0 },
760 : { { false, false, false, false }, 0, 0 },
761 : { { false, false, false, false }, 0, 0 },
762 : { { false, false, false, false }, 0, 0 },
763 : { { false, false, false, false }, 0, 0 },
764 : { { false, false, false, false }, 0, 0 },
765 : { { false, false, false, false }, 0, 0 },
766 : { { false, false, false, false }, 0, 0 },
767 : { { false, false, false, false }, 0, 0 },
768 : { { false, false, false, false }, 0, 0 },
769 : { { false, false, false, false }, 0, 0 },
770 : { { false, false, false, false }, 0, 0 },
771 : { { false, false, false, false }, 0, 0 },
772 : { { false, false, false, false }, 0, 0 },
773 : { { false, false, false, false }, 0, 0 },
774 : { { false, false, false, false }, 0, 0 },
775 : { { false, false, false, false }, 0, 0 },
776 : { { false, false, false, false }, 0, 0 },
777 : { { false, false, false, false }, 0, 0 },
778 : { { false, false, false, false }, 0, 0 },
779 : { { false, false, false, false }, 0, 0 },
780 : { { false, false, false, false }, 0, 0 },
781 : { { false, false, false, false }, 0, 0 },
782 : { { false, false, false, false }, 0, 0 },
783 : { { false, false, false, false }, 0, 0 },
784 : { { false, false, false, false }, 0, 0 },
785 : { { false, false, false, false }, 0, 0 },
786 : { { false, false, false, false }, 0, 0 },
787 : { { false, false, false, false }, 0, 0 },
788 : { { false, false, false, false }, 0, 0 },
789 : { { false, false, false, false }, 0, 0 },
790 : { { false, false, false, false }, 0, 0 },
791 : { { false, false, false, false }, 0, 0 },
792 : { { false, false, false, false }, 0, 0 },
793 : { { false, false, false, false }, 0, 0 },
794 : { { false, false, false, false }, 0, 0 },
795 : { { false, false, false, false }, 0, 0 },
796 : { { false, false, false, false }, 0, 0 },
797 : { { false, false, false, false }, 0, 0 },
798 : { { false, false, false, false }, 0, 0 },
799 : { { false, false, false, false }, 0, 0 },
800 : { { false, false, false, false }, 0, 0 },
801 : { { false, false, false, false }, 0, 0 },
802 : { { false, false, false, false }, 0, 0 },
803 : { { false, false, false, false }, 0, 0 },
804 : { { false, false, false, false }, 0, 0 },
805 : { { false, false, false, false }, 0, 0 },
806 : { { false, false, false, false }, 0, 0 },
807 : { { false, false, false, false }, 0, 0 },
808 : { { false, false, false, false }, 0, 0 },
809 : { { false, false, false, false }, 0, 0 },
810 : { { false, false, false, false }, 0, 0 },
811 : { { false, false, false, false }, 0, 0 },
812 : { { false, false, false, false }, 0, 0 },
813 : { { false, false, false, false }, 0, 0 },
814 : { { false, false, false, false }, 0, 0 },
815 : { { false, false, false, false }, 0, 0 },
816 : { { true, false, false, true }, 0, 0x0016 }, // DFF_Prop_fc3DFillHarsh
817 :
818 : // 768
819 : { { false, false, false, false }, 0, 0 },
820 : { { false, false, false, false }, 0, 0 },
821 : { { false, false, false, false }, 0, 0 },
822 : { { false, false, false, false }, 0, 0 },
823 : { { false, false, false, false }, 0, 0 },
824 : { { false, false, false, false }, 0, 0 },
825 : { { false, false, false, false }, 0, 0 },
826 : { { false, false, false, false }, 0, 0 },
827 : { { false, false, false, false }, 0, 0 },
828 : { { false, false, false, false }, 0, 0 },
829 : { { false, false, false, false }, 0, 0 },
830 : { { false, false, false, false }, 0, 0 },
831 : { { false, false, false, false }, 0, 0 },
832 : { { false, false, false, false }, 0, 0 },
833 : { { false, false, false, false }, 0, 0 },
834 : { { false, false, false, false }, 0, 0 },
835 : { { false, false, false, false }, 0, 0 },
836 : { { false, false, false, false }, 0, 0 },
837 : { { false, false, false, false }, 0, 0 },
838 : { { false, false, false, false }, 0, 0 },
839 : { { false, false, false, false }, 0, 0 },
840 : { { false, false, false, false }, 0, 0 },
841 : { { false, false, false, false }, 0, 0 },
842 : { { false, false, false, false }, 0, 0 },
843 : { { false, false, false, false }, 0, 0 },
844 : { { false, false, false, false }, 0, 0 },
845 : { { false, false, false, false }, 0, 0 },
846 : { { false, false, false, false }, 0, 0 },
847 : { { false, false, false, false }, 0, 0 },
848 : { { false, false, false, false }, 0, 0 },
849 : { { false, false, false, false }, 0, 0 },
850 : { { false, false, false, false }, 0, 0 },
851 : { { false, false, false, false }, 0, 0 },
852 : { { false, false, false, false }, 0, 0 },
853 : { { false, false, false, false }, 0, 0 },
854 : { { false, false, false, false }, 0, 0 },
855 : { { false, false, false, false }, 0, 0 },
856 : { { false, false, false, false }, 0, 0 },
857 : { { false, false, false, false }, 0, 0 },
858 : { { false, false, false, false }, 0, 0 },
859 : { { false, false, false, false }, 0, 0 },
860 : { { false, false, false, false }, 0, 0 },
861 : { { false, false, false, false }, 0, 0 },
862 : { { false, false, false, false }, 0, 0 },
863 : { { false, false, false, false }, 0, 0 },
864 : { { false, false, false, false }, 0, 0 },
865 : { { false, false, false, false }, 0, 0 },
866 : { { false, false, false, false }, 0, 0 },
867 : { { false, false, false, false }, 0, 0 },
868 : { { false, false, false, false }, 0, 0 },
869 : { { false, false, false, false }, 0, 0 },
870 : { { false, false, false, false }, 0, 0 },
871 : { { false, false, false, false }, 0, 0 },
872 : { { false, false, false, false }, 0, 0 },
873 : { { false, false, false, false }, 0, 0 },
874 : { { false, false, false, false }, 0, 0 },
875 : { { false, false, false, false }, 0, 0 },
876 : { { false, false, false, false }, 0, 0 },
877 : { { false, false, false, false }, 0, 0 },
878 : { { false, false, false, false }, 0, 0 },
879 : { { false, false, false, false }, 0, 0 },
880 : { { false, false, false, false }, 0, 0 },
881 : { { false, false, false, false }, 0, 0 },
882 : { { true, false, false, true }, 0, 0 }, // DFF_Prop_fBackground
883 :
884 : // 832
885 : { { false, false, false, false }, 0, 0 },
886 : { { false, false, false, false }, 0, 0 },
887 : { { false, false, false, false }, 0, 0 },
888 : { { false, false, false, false }, 0, 0 },
889 : { { false, false, false, false }, 0, 0 },
890 : { { false, false, false, false }, 0, 0 },
891 : { { false, false, false, false }, 0, 0 },
892 : { { false, false, false, false }, 0, 0 },
893 : { { false, false, false, false }, 0, 0 },
894 : { { false, false, false, false }, 0, 0 },
895 : { { false, false, false, false }, 0, 0 },
896 : { { false, false, false, false }, 0, 0 },
897 : { { false, false, false, false }, 0, 0 },
898 : { { false, false, false, false }, 0, 0 },
899 : { { false, false, false, false }, 0, 0 },
900 : { { false, false, false, false }, 0, 0 },
901 : { { false, false, false, false }, 0, 0 },
902 : { { false, false, false, false }, 0, 0 },
903 : { { false, false, false, false }, 0, 0 },
904 : { { false, false, false, false }, 0, 0 },
905 : { { false, false, false, false }, 0, 0 },
906 : { { false, false, false, false }, 0, 0 },
907 : { { false, false, false, false }, 0, 0 },
908 : { { false, false, false, false }, 0, 0 },
909 : { { false, false, false, false }, 0, 0 },
910 : { { false, false, false, false }, 0, 0 },
911 : { { false, false, false, false }, 0, 0 },
912 : { { false, false, false, false }, 0, 0 },
913 : { { false, false, false, false }, 0, 0 },
914 : { { false, false, false, false }, 0, 0 },
915 : { { false, false, false, false }, 0, 0 },
916 : { { false, false, false, false }, 0, 0 },
917 : { { false, false, false, false }, 0, 0 },
918 : { { false, false, false, false }, 0, 0 },
919 : { { false, false, false, false }, 0, 0 },
920 : { { false, false, false, false }, 0, 0 },
921 : { { false, false, false, false }, 0, 0 },
922 : { { false, false, false, false }, 0, 0 },
923 : { { false, false, false, false }, 0, 0 },
924 : { { false, false, false, false }, 0, 0 },
925 : { { false, false, false, false }, 0, 0 },
926 : { { false, false, false, false }, 0, 0 },
927 : { { false, false, false, false }, 0, 0 },
928 : { { false, false, false, false }, 0, 0 },
929 : { { false, false, false, false }, 0, 0 },
930 : { { false, false, false, false }, 0, 0 },
931 : { { false, false, false, false }, 0, 0 },
932 : { { false, false, false, false }, 0, 0 },
933 : { { false, false, false, false }, 0, 0 },
934 : { { false, false, false, false }, 0, 0 },
935 : { { false, false, false, false }, 0, 0 },
936 : { { false, false, false, false }, 0, 0 },
937 : { { false, false, false, false }, 0, 0 },
938 : { { false, false, false, false }, 0, 0 },
939 : { { false, false, false, false }, 0, 0 },
940 : { { false, false, false, false }, 0, 0 },
941 : { { false, false, false, false }, 0, 0 },
942 : { { false, false, false, false }, 0, 0 },
943 : { { false, false, false, false }, 0, 0 },
944 : { { false, false, false, false }, 0, 0 },
945 : { { false, false, false, false }, 0, 0 },
946 : { { false, false, false, false }, 0, 0 },
947 : { { false, false, false, false }, 0, 0 },
948 : { { true, false, false, true }, 0, 0x0010 }, // DFF_Prop_fCalloutLengthSpecified
949 :
950 : // 896
951 : { { false, false, false, false }, 0, 0 },
952 : { { false, false, false, false }, 0, 0 },
953 : { { false, false, false, false }, 0, 0 },
954 : { { false, false, false, false }, 0, 0 },
955 : { { false, false, false, false }, 0, 0 },
956 : { { false, false, false, false }, 0, 0 },
957 : { { false, false, false, false }, 0, 0 },
958 : { { false, false, false, false }, 0, 0 },
959 : { { false, false, false, false }, 0, 0 },
960 : { { false, false, false, false }, 0, 0 },
961 : { { false, false, false, false }, 0, 0 },
962 : { { false, false, false, false }, 0, 0 },
963 : { { false, false, false, false }, 0, 0 },
964 : { { false, false, false, false }, 0, 0 },
965 : { { false, false, false, false }, 0, 0 },
966 : { { false, false, false, false }, 0, 0 },
967 : { { false, false, false, false }, 0, 0 },
968 : { { false, false, false, false }, 0, 0 },
969 : { { false, false, false, false }, 0, 0 },
970 : { { false, false, false, false }, 0, 0 },
971 : { { false, false, false, false }, 0, 0 },
972 : { { false, false, false, false }, 0, 0 },
973 : { { false, false, false, false }, 0, 0 },
974 : { { false, false, false, false }, 0, 0 },
975 : { { false, false, false, false }, 0, 0 },
976 : { { false, false, false, false }, 0, 0 },
977 : { { false, false, false, false }, 0, 0 },
978 : { { false, false, false, false }, 0, 0 },
979 : { { false, false, false, false }, 0, 0 },
980 : { { false, false, false, false }, 0, 0 },
981 : { { false, false, false, false }, 0, 0 },
982 : { { false, false, false, false }, 0, 0 },
983 : { { false, false, false, false }, 0, 0 },
984 : { { false, false, false, false }, 0, 0 },
985 : { { false, false, false, false }, 0, 0 },
986 : { { false, false, false, false }, 0, 0 },
987 : { { false, false, false, false }, 0, 0 },
988 : { { false, false, false, false }, 0, 0 },
989 : { { false, false, false, false }, 0, 0 },
990 : { { false, false, false, false }, 0, 0 },
991 : { { false, false, false, false }, 0, 0 },
992 : { { false, false, false, false }, 0, 0 },
993 : { { false, false, false, false }, 0, 0 },
994 : { { false, false, false, false }, 0, 0 },
995 : { { false, false, false, false }, 0, 0 },
996 : { { false, false, false, false }, 0, 0 },
997 : { { false, false, false, false }, 0, 0 },
998 : { { false, false, false, false }, 0, 0 },
999 : { { false, false, false, false }, 0, 0 },
1000 : { { false, false, false, false }, 0, 0 },
1001 : { { false, false, false, false }, 0, 0 },
1002 : { { false, false, false, false }, 0, 0 },
1003 : { { false, false, false, false }, 0, 0 },
1004 : { { false, false, false, false }, 0, 0 },
1005 : { { false, false, false, false }, 0, 0 },
1006 : { { false, false, false, false }, 0, 0 },
1007 : { { false, false, false, false }, 0, 0 },
1008 : { { false, false, false, false }, 0, 0 },
1009 : { { false, false, false, false }, 0, 0 },
1010 : { { false, false, false, false }, 0, 0 },
1011 : { { false, false, false, false }, 0, 0 },
1012 : { { false, false, false, false }, 0, 0 },
1013 : { { false, false, false, false }, 0, 0 },
1014 : { { true, false, false, true }, 0, 0x0001 }, // DFF_Prop_fPrint
1015 :
1016 : // 960
1017 : { { false, false, false, false }, 0, 0 },
1018 : { { false, false, false, false }, 0, 0 },
1019 : { { false, false, false, false }, 0, 0 },
1020 : { { false, false, false, false }, 0, 0 },
1021 : { { false, false, false, false }, 0, 0 },
1022 : { { false, false, false, false }, 0, 0 },
1023 : { { false, false, false, false }, 0, 0 },
1024 : { { false, false, false, false }, 0, 0 },
1025 : { { false, false, false, false }, 0, 0 },
1026 : { { false, false, false, false }, 0, 0 },
1027 : { { false, false, false, false }, 0, 0 },
1028 : { { false, false, false, false }, 0, 0 },
1029 : { { false, false, false, false }, 0, 0 },
1030 : { { false, false, false, false }, 0, 0 },
1031 : { { false, false, false, false }, 0, 0 },
1032 : { { false, false, false, false }, 0, 0 },
1033 : { { false, false, false, false }, 0, 0 },
1034 : { { false, false, false, false }, 0, 0 },
1035 : { { false, false, false, false }, 0, 0 },
1036 : { { false, false, false, false }, 0, 0 },
1037 : { { false, false, false, false }, 0, 0 },
1038 : { { false, false, false, false }, 0, 0 },
1039 : { { false, false, false, false }, 0, 0 },
1040 : { { false, false, false, false }, 0, 0 },
1041 : { { false, false, false, false }, 0, 0 },
1042 : { { false, false, false, false }, 0, 0 },
1043 : { { false, false, false, false }, 0, 0 },
1044 : { { false, false, false, false }, 0, 0 },
1045 : { { false, false, false, false }, 0, 0 },
1046 : { { false, false, false, false }, 0, 0 },
1047 : { { false, false, false, false }, 0, 0 },
1048 : { { false, false, false, false }, 0, 0 },
1049 : { { false, false, false, false }, 0, 0 },
1050 : { { false, false, false, false }, 0, 0 },
1051 : { { false, false, false, false }, 0, 0 },
1052 : { { false, false, false, false }, 0, 0 },
1053 : { { false, false, false, false }, 0, 0 },
1054 : { { false, false, false, false }, 0, 0 },
1055 : { { false, false, false, false }, 0, 0 },
1056 : { { false, false, false, false }, 0, 0 },
1057 : { { false, false, false, false }, 0, 0 },
1058 : { { false, false, false, false }, 0, 0 },
1059 : { { false, false, false, false }, 0, 0 },
1060 : { { false, false, false, false }, 0, 0 },
1061 : { { false, false, false, false }, 0, 0 },
1062 : { { false, false, false, false }, 0, 0 },
1063 : { { false, false, false, false }, 0, 0 },
1064 : { { false, false, false, false }, 0, 0 },
1065 : { { false, false, false, false }, 0, 0 },
1066 : { { false, false, false, false }, 0, 0 },
1067 : { { false, false, false, false }, 0, 0 },
1068 : { { false, false, false, false }, 0, 0 },
1069 : { { false, false, false, false }, 0, 0 },
1070 : { { false, false, false, false }, 0, 0 },
1071 : { { false, false, false, false }, 0, 0 },
1072 : { { false, false, false, false }, 0, 0 },
1073 : { { false, false, false, false }, 0, 0 },
1074 : { { false, false, false, false }, 0, 0 },
1075 : { { false, false, false, false }, 0, 0 },
1076 : { { false, false, false, false }, 0, 0 },
1077 : { { false, false, false, false }, 0, 0 },
1078 : { { false, false, false, false }, 0, 0 },
1079 : { { false, false, false, false }, 0, 0 },
1080 : { { false, false, false, false }, 0, 0 }
1081 :
1082 : };
1083 :
1084 783 : DffPropSet::DffPropSet()
1085 : {
1086 783 : mpPropSetEntries = reinterpret_cast< DffPropSetEntry* >( new sal_uInt8[ 1024 * sizeof( DffPropSetEntry ) ] );
1087 783 : }
1088 :
1089 1566 : DffPropSet::~DffPropSet()
1090 : {
1091 783 : delete[] reinterpret_cast< sal_uInt8* >( mpPropSetEntries );
1092 783 : }
1093 :
1094 2615 : void DffPropSet::ReadPropSet( SvStream& rIn, bool bSetUninitializedOnly )
1095 : {
1096 2615 : DffRecordHeader aHd;
1097 2615 : ReadDffRecordHeader( rIn, aHd );
1098 :
1099 2615 : if ( !bSetUninitializedOnly )
1100 : {
1101 2507 : InitializePropSet( aHd.nRecType );
1102 2507 : maOffsets.clear();
1103 : }
1104 :
1105 2615 : sal_uInt32 nPropCount = aHd.nRecInstance;
1106 :
1107 : // FilePos der ComplexData merken
1108 2615 : sal_uInt32 nComplexDataFilePos = rIn.Tell() + ( nPropCount * 6 );
1109 :
1110 26498 : for( sal_uInt32 nPropNum = 0; nPropNum < nPropCount; nPropNum++ )
1111 : {
1112 : sal_uInt16 nTmp;
1113 : sal_uInt32 nRecType, nContent;
1114 23907 : rIn.ReadUInt16( nTmp )
1115 23907 : .ReadUInt32( nContent );
1116 :
1117 23907 : nRecType = nTmp & 0x3fff;
1118 :
1119 23907 : if ( nRecType > 0x3ff )
1120 24 : break;
1121 23883 : if ( ( nRecType & 0x3f ) == 0x3f )
1122 : {
1123 9202 : if ( bSetUninitializedOnly )
1124 : {
1125 514 : sal_uInt32 nCurrentFlags = mpPropSetEntries[ nRecType ].nContent;
1126 514 : sal_uInt32 nMergeFlags = nContent;
1127 :
1128 514 : nMergeFlags &= ( nMergeFlags >> 16 ) | 0xffff0000; // clearing low word
1129 514 : nMergeFlags &= ( ( nCurrentFlags & 0xffff0000 ) // remove already hard set
1130 514 : | ( nCurrentFlags >> 16 ) ) ^ 0xffffffff; // attributes from mergeflags
1131 514 : nCurrentFlags &= ( ( nMergeFlags & 0xffff0000 ) // apply zero master bits
1132 514 : | ( nMergeFlags >> 16 ) ) ^ 0xffffffff;
1133 514 : nCurrentFlags |= (sal_uInt16)nMergeFlags; // apply filled master bits
1134 514 : mpPropSetEntries[ nRecType ].nContent = nCurrentFlags;
1135 514 : mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr |= static_cast< sal_uInt16 >( nContent >> 16 );
1136 : }
1137 : else
1138 : {
1139 : // clear flags that have to be cleared
1140 8688 : mpPropSetEntries[ nRecType ].nContent &= ( ( nContent >> 16 ) ^ 0xffffffff );
1141 : // set flags that have to be set
1142 8688 : mpPropSetEntries[ nRecType ].nContent |= nContent;
1143 8688 : mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr = static_cast< sal_uInt16 >( nContent >> 16 );
1144 : }
1145 : }
1146 : else
1147 : {
1148 14681 : bool bSetProperty = !bSetUninitializedOnly || ( !IsProperty( nRecType ) || !IsHardAttribute( nRecType ) );
1149 :
1150 14681 : DffPropFlags aPropFlag = { true, false, false, false };
1151 14681 : if ( nTmp & 0x4000 )
1152 677 : aPropFlag.bBlip = true;
1153 14681 : if ( nTmp & 0x8000 )
1154 562 : aPropFlag.bComplex = true;
1155 14681 : if ( aPropFlag.bComplex && nContent && ( nComplexDataFilePos < aHd.GetRecEndFilePos() ) )
1156 : {
1157 : // normally nContent is the complete size of the complex property,
1158 : // but this is not always true for IMsoArrays ( what the hell is a IMsoArray ? )
1159 :
1160 : // I love special threatments :-(
1161 253 : if ( ( nRecType == DFF_Prop_pVertices ) || ( nRecType == DFF_Prop_pSegmentInfo )
1162 245 : || ( nRecType == DFF_Prop_fillShadeColors ) || ( nRecType == DFF_Prop_lineDashStyle )
1163 244 : || ( nRecType == DFF_Prop_pWrapPolygonVertices ) || ( nRecType == DFF_Prop_connectorPoints )
1164 244 : || ( nRecType == DFF_Prop_Handles ) || ( nRecType == DFF_Prop_pFormulas )
1165 242 : || ( nRecType == DFF_Prop_textRectangles ) )
1166 : {
1167 : // now check if the current content size is possible, or 6 bytes too small
1168 13 : sal_uInt32 nOldPos = rIn.Tell();
1169 : sal_Int16 nNumElem, nNumElemReserved, nSize;
1170 :
1171 13 : rIn.Seek( nComplexDataFilePos );
1172 13 : rIn. ReadInt16( nNumElem ).ReadInt16( nNumElemReserved ).ReadInt16( nSize );
1173 13 : if ( nNumElemReserved >= nNumElem )
1174 : {
1175 : // the size of these array elements is nowhere defined,
1176 : // what if the size is negative ?
1177 : // ok, we will make it positive and shift it.
1178 : // for -16 this works
1179 13 : if ( nSize < 0 )
1180 2 : nSize = ( -nSize ) >> 2;
1181 13 : sal_uInt32 nDataSize = (sal_uInt32)( nSize * nNumElem );
1182 :
1183 : // sometimes the content size is 6 bytes too small (array header information is missing )
1184 13 : if ( nDataSize == nContent )
1185 10 : nContent += 6;
1186 :
1187 : // check if array fits into the PropertyContainer
1188 13 : if ( ( nComplexDataFilePos + nContent ) > aHd.GetRecEndFilePos() )
1189 0 : nContent = 0;
1190 : }
1191 : else
1192 0 : nContent = 0;
1193 13 : rIn.Seek( nOldPos );
1194 : }
1195 253 : if ( nContent )
1196 : {
1197 253 : if ( bSetProperty )
1198 : {
1199 248 : mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr = static_cast< sal_uInt16 >( maOffsets.size() );
1200 248 : maOffsets.push_back( nComplexDataFilePos ); // insert the filepos of this property;
1201 : }
1202 253 : nComplexDataFilePos += nContent; // store filepos, that is used for the next complex property
1203 : }
1204 : else // a complex property needs content
1205 0 : aPropFlag.bSet = false; // otherwise something is wrong
1206 : }
1207 14681 : if ( bSetProperty )
1208 : {
1209 14251 : mpPropSetEntries[ nRecType ].nContent = nContent;
1210 14251 : mpPropSetEntries[ nRecType ].aFlags = aPropFlag;
1211 : }
1212 : }
1213 : }
1214 2615 : aHd.SeekToEndOfRecord( rIn );
1215 2615 : }
1216 :
1217 2507 : SvStream& ReadDffPropSet( SvStream& rIn, DffPropSet& rRec )
1218 : {
1219 2507 : rRec.ReadPropSet( rIn, false );
1220 2507 : return rIn;
1221 : }
1222 :
1223 108 : SvStream& operator|=( SvStream& rIn, DffPropSet& rRec )
1224 : {
1225 108 : rRec.ReadPropSet( rIn, true );
1226 108 : return rIn;
1227 : }
1228 :
1229 3363 : void DffPropSet::InitializePropSet( sal_uInt16 nPropSetType ) const
1230 : {
1231 : /*
1232 : cmc:
1233 : " Boolean properties are grouped in bitfields by property set; note that
1234 : the Boolean properties in each property set are contiguous. They are saved
1235 : under the property ID of the last Boolean property in the set, and are
1236 : placed in the value field in reverse order starting with the last property
1237 : in the low bit. "
1238 :
1239 : e.g.
1240 :
1241 : fEditedWrap
1242 : fBehindDocument
1243 : fOnDblClickNotify
1244 : fIsButton
1245 : fOneD
1246 : fHidden
1247 : fPrint
1248 :
1249 : are all part of a group and all are by default false except for fPrint,
1250 : which equates to a default bit sequence for the group of 0000001 -> 0x1
1251 :
1252 : If at a later stage word sets fBehindDocument away from the default it
1253 : will be done by having a property named fPrint whose bitsequence will have
1254 : the fBehindDocument bit set. e.g. a DFF_Prop_fPrint with value 0x200020
1255 : has set bit 6 on so as to enable fBehindDocument (as well as disabling
1256 : everything else)
1257 : */
1258 3363 : if ( nPropSetType == DFF_msofbtOPT )
1259 : {
1260 2859 : memcpy( mpPropSetEntries, mso_PropSetDefaults, 0x400 * sizeof( DffPropSetEntry ) );
1261 : }
1262 : else
1263 : {
1264 504 : memset( mpPropSetEntries, 0, 0x400 * sizeof( DffPropSetEntry ) );
1265 : }
1266 3363 : }
1267 :
1268 11236 : bool DffPropSet::IsHardAttribute( sal_uInt32 nId ) const
1269 : {
1270 11236 : bool bRetValue = true;
1271 11236 : nId &= 0x3ff;
1272 11236 : if ( ( nId & 0x3f ) >= 48 ) // is this a flag id
1273 10757 : bRetValue = (mpPropSetEntries[nId | 0x3f].nComplexIndexOrFlagsHAttr
1274 10757 : & (1 << (0xf - (nId & 0xf)))) != 0;
1275 : else
1276 479 : bRetValue = !mpPropSetEntries[ nId ].aFlags.bSoftAttr;
1277 11236 : return bRetValue;
1278 : };
1279 :
1280 67402 : sal_uInt32 DffPropSet::GetPropertyValue( sal_uInt32 nId, sal_uInt32 nDefault ) const
1281 : {
1282 67402 : nId &= 0x3ff;
1283 67402 : return ( mpPropSetEntries[ nId ].aFlags.bSet ) ? mpPropSetEntries[ nId ].nContent : nDefault;
1284 : };
1285 :
1286 342 : bool DffPropSet::GetPropertyBool( sal_uInt32 nId, bool bDefault ) const
1287 : {
1288 342 : sal_uInt32 nBaseId = nId | 31; // base ID to get the sal_uInt32 property value
1289 342 : sal_uInt32 nMask = 1 << (nBaseId - nId); // bit mask of the boolean property
1290 :
1291 342 : sal_uInt32 nPropValue = GetPropertyValue( nBaseId, bDefault ? nMask : 0 );
1292 342 : return (nPropValue & nMask) != 0;
1293 : }
1294 :
1295 1861 : OUString DffPropSet::GetPropertyString( sal_uInt32 nId, SvStream& rStrm ) const
1296 : {
1297 1861 : sal_Size nOldPos = rStrm.Tell();
1298 1861 : OUStringBuffer aBuffer;
1299 1861 : sal_uInt32 nBufferSize = GetPropertyValue( nId );
1300 1861 : if( (nBufferSize > 0) && SeekToContent( nId, rStrm ) )
1301 : {
1302 157 : sal_Int32 nStrLen = static_cast< sal_Int32 >( nBufferSize / 2 );
1303 : //clip initial size of buffer to something sane in case of silly length
1304 : //strings. If there really is a silly amount of data available it still
1305 : //works out ok of course
1306 157 : aBuffer.ensureCapacity(std::min(nStrLen,static_cast<sal_Int32>(8192)));
1307 3378 : for( sal_Int32 nCharIdx = 0; nCharIdx < nStrLen; ++nCharIdx )
1308 : {
1309 1689 : sal_uInt16 nChar = 0;
1310 1689 : rStrm.ReadUInt16( nChar );
1311 1689 : if( nChar > 0 )
1312 1532 : aBuffer.append( static_cast< sal_Unicode >( nChar ) );
1313 : else
1314 157 : break;
1315 : }
1316 : }
1317 1861 : rStrm.Seek( nOldPos );
1318 1861 : return aBuffer.makeStringAndClear();
1319 : }
1320 :
1321 2541 : bool DffPropSet::SeekToContent( sal_uInt32 nRecType, SvStream& rStrm ) const
1322 : {
1323 2541 : nRecType &= 0x3ff;
1324 2541 : if ( mpPropSetEntries[ nRecType ].aFlags.bSet )
1325 : {
1326 338 : if ( mpPropSetEntries[ nRecType ].aFlags.bComplex )
1327 : {
1328 338 : sal_uInt16 nIndex = mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr;
1329 338 : if ( nIndex < maOffsets.size() )
1330 : {
1331 243 : rStrm.Seek( maOffsets[ nIndex ] );
1332 243 : return true;
1333 : }
1334 : }
1335 : }
1336 2298 : return false;
1337 : }
1338 :
1339 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|