1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 #include "precompiled_filter.hxx"
25
26 #include <filter/msfilter/dffpropset.hxx>
27 #include <rtl/ustrbuf.hxx>
28
29 static const DffPropSetEntry mso_PropSetDefaults[] = {
30
31 // 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 { { false, false, false, false }, 0, 0 },
92 { { false, false, false, false }, 0, 0 },
93 { { false, false, false, false }, 0, 0 },
94 { { false, false, false, false }, 0, 0 },
95 { { false, false, false, false }, 0, 0 },
96
97 // 64
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 { { false, false, false, false }, 0, 0 },
157 { { false, false, false, false }, 0, 0 },
158 { { false, false, false, false }, 0, 0 },
159 { { false, false, false, false }, 0, 0 },
160 { { false, false, false, false }, 0, 0 },
161 { { true, false, false, true }, 0, 0 }, // DFF_Prop_LockAgainstGrouping
162
163 // 128
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 { { false, false, false, false }, 0, 0 },
223 { { false, false, false, false }, 0, 0 },
224 { { false, false, false, false }, 0, 0 },
225 { { false, false, false, false }, 0, 0 },
226 { { false, false, false, false }, 0, 0 },
227 { { true, false, false, true }, 0, 0x0010 }, // DFF_Prop_FitTextToShape
228
229 // 192
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 { { false, false, false, false }, 0, 0 },
289 { { false, false, false, false }, 0, 0 },
290 { { false, false, false, false }, 0, 0 },
291 { { false, false, false, false }, 0, 0 },
292 { { false, false, false, false }, 0, 0 },
293 { { true, false, false, true }, 0, 0 }, // DFF_Prop_gtextFStrikethrough
294
295 //256
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 { { false, false, false, false }, 0, 0 },
355 { { false, false, false, false }, 0, 0 },
356 { { false, false, false, false }, 0, 0 },
357 { { false, false, false, false }, 0, 0 },
358 { { false, false, false, false }, 0, 0 },
359 { { true, false, false, true }, 0, 0 }, // DFF_Prop_pictureActive
360
361 // 320
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 { { false, false, false, false }, 0, 0 },
421 { { false, false, false, false }, 0, 0 },
422 { { false, false, false, false }, 0, 0 },
423 { { false, false, false, false }, 0, 0 },
424 { { false, false, false, false }, 0, 0 },
425 { { true, false, false, true }, 0, 0x0039 }, // DFF_Prop_fFillOK
426
427 // 384
428 { { false, false, false, false }, 0, 0 },
429 { { true, false, false, true }, 0, 0xffffff }, // DFF_Prop_fillColor
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 { { false, false, false, false }, 0, 0 },
487 { { false, false, false, false }, 0, 0 },
488 { { false, false, false, false }, 0, 0 },
489 { { false, false, false, false }, 0, 0 },
490 { { false, false, false, false }, 0, 0 },
491 { { true, false, false, true }, 0, 0x001c }, // DFF_Prop_fNoFillHitTest
492
493 // 448
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 { { false, false, false, false }, 0, 0 },
553 { { false, false, false, false }, 0, 0 },
554 { { false, false, false, false }, 0, 0 },
555 { { false, false, false, false }, 0, 0 },
556 { { false, false, false, false }, 0, 0 },
557 { { true, false, false, true }, 0, 0x001e }, // DFF_Prop_fNoLineDrawDash
558
559 // 512
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 { { false, false, false, false }, 0, 0 },
619 { { false, false, false, false }, 0, 0 },
620 { { false, false, false, false }, 0, 0 },
621 { { false, false, false, false }, 0, 0 },
622 { { false, false, false, false }, 0, 0 },
623 { { true, false, false, true }, 0, 0 }, // DFF_Prop_fshadowObscured
624
625 // 576
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 { { false, false, false, false }, 0, 0 },
685 { { false, false, false, false }, 0, 0 },
686 { { false, false, false, false }, 0, 0 },
687 { { false, false, false, false }, 0, 0 },
688 { { false, false, false, false }, 0, 0 },
689 { { true, false, false, true }, 0, 0 }, // DFF_Prop_fPerspective
690
691 // 640
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 { { false, false, false, false }, 0, 0 },
751 { { false, false, false, false }, 0, 0 },
752 { { false, false, false, false }, 0, 0 },
753 { { false, false, false, false }, 0, 0 },
754 { { false, false, false, false }, 0, 0 },
755 { { true, false, false, true }, 0, 0x0001 }, // DFF_Prop_fc3DLightFace
756
757 // 704
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 { { false, false, false, false }, 0, 0 },
817 { { false, false, false, false }, 0, 0 },
818 { { false, false, false, false }, 0, 0 },
819 { { false, false, false, false }, 0, 0 },
820 { { false, false, false, false }, 0, 0 },
821 { { true, false, false, true }, 0, 0x0016 }, // DFF_Prop_fc3DFillHarsh
822
823 // 768
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 { { false, false, false, false }, 0, 0 },
883 { { false, false, false, false }, 0, 0 },
884 { { false, false, false, false }, 0, 0 },
885 { { false, false, false, false }, 0, 0 },
886 { { false, false, false, false }, 0, 0 },
887 { { true, false, false, true }, 0, 0 }, // DFF_Prop_fBackground
888
889 // 832
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 { { false, false, false, false }, 0, 0 },
949 { { false, false, false, false }, 0, 0 },
950 { { false, false, false, false }, 0, 0 },
951 { { false, false, false, false }, 0, 0 },
952 { { false, false, false, false }, 0, 0 },
953 { { true, false, false, true }, 0, 0x0010 }, // DFF_Prop_fCalloutLengthSpecified
954
955 // 896
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 { { false, false, false, false }, 0, 0 },
1015 { { false, false, false, false }, 0, 0 },
1016 { { false, false, false, false }, 0, 0 },
1017 { { false, false, false, false }, 0, 0 },
1018 { { false, false, false, false }, 0, 0 },
1019 { { true, false, false, true }, 0, 0x0001 }, // DFF_Prop_fPrint
1020
1021 // 960
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 { { false, false, false, false }, 0, 0 },
1082 { { false, false, false, false }, 0, 0 },
1083 { { false, false, false, false }, 0, 0 },
1084 { { false, false, false, false }, 0, 0 },
1085 { { false, false, false, false }, 0, 0 }
1086
1087 };
1088
DffPropSet()1089 DffPropSet::DffPropSet()
1090 {
1091 mpPropSetEntries = reinterpret_cast< DffPropSetEntry* >( new sal_uInt8[ 1024 * sizeof( DffPropSetEntry ) ] );
1092 }
1093
~DffPropSet()1094 DffPropSet::~DffPropSet()
1095 {
1096 delete[] reinterpret_cast< sal_uInt8* >( mpPropSetEntries );
1097 }
1098
ReadPropSet(SvStream & rIn,bool bSetUninitializedOnly)1099 void DffPropSet::ReadPropSet( SvStream& rIn, bool bSetUninitializedOnly )
1100 {
1101 DffRecordHeader aHd;
1102 sal_Size nEndOfStream, nEndOfRecord;
1103 rIn >> aHd;
1104 nEndOfStream = rIn.Seek(STREAM_SEEK_TO_END);
1105 aHd.SeekToContent( rIn );
1106 nEndOfRecord = Min(aHd.GetRecEndFilePos(), nEndOfStream);
1107
1108 if ( !bSetUninitializedOnly )
1109 {
1110 InitializePropSet( aHd.nRecType );
1111 maOffsets.clear();
1112 }
1113
1114 sal_uInt32 nPropCount = aHd.nRecInstance;
1115
1116 // FilePos der ComplexData merken
1117 sal_uInt32 nComplexDataFilePos = rIn.Tell() + ( nPropCount * 6 );
1118
1119 for( sal_uInt32 nPropNum = 0; nPropNum < nPropCount; nPropNum++ )
1120 {
1121 sal_uInt16 nTmp;
1122 sal_uInt32 nRecType, nContent;
1123 if (nEndOfRecord - rIn.Tell() < 6)
1124 break;
1125 rIn >> nTmp
1126 >> nContent;
1127
1128 nRecType = nTmp & 0x3fff;
1129
1130 if ( nRecType > 0x3ff )
1131 break;
1132 if ( ( nRecType & 0x3f ) == 0x3f )
1133 {
1134 if ( bSetUninitializedOnly )
1135 {
1136 sal_uInt32 nCurrentFlags = mpPropSetEntries[ nRecType ].nContent;
1137 sal_uInt32 nMergeFlags = nContent;
1138
1139 nMergeFlags &= ( nMergeFlags >> 16 ) | 0xffff0000; // clearing low word
1140 nMergeFlags &= ( ( nCurrentFlags & 0xffff0000 ) // remove allready hard set
1141 | ( nCurrentFlags >> 16 ) ) ^ 0xffffffff; // attributes from mergeflags
1142 nCurrentFlags &= ( ( nMergeFlags & 0xffff0000 ) // apply zero master bits
1143 | ( nMergeFlags >> 16 ) ) ^ 0xffffffff;
1144 nCurrentFlags |= (sal_uInt16)nMergeFlags; // apply filled master bits
1145 mpPropSetEntries[ nRecType ].nContent = nCurrentFlags;
1146 mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr |= static_cast< sal_uInt16 >( nContent >> 16 );
1147 }
1148 else
1149 {
1150 // clear flags that have to be cleared
1151 mpPropSetEntries[ nRecType ].nContent &= ( ( nContent >> 16 ) ^ 0xffffffff );
1152 // set flags that have to be set
1153 mpPropSetEntries[ nRecType ].nContent |= nContent;
1154 mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr = static_cast< sal_uInt16 >( nContent >> 16 );
1155 }
1156 }
1157 else
1158 {
1159 bool bSetProperty = !bSetUninitializedOnly || ( !IsProperty( nRecType ) || !IsHardAttribute( nRecType ) );
1160
1161 DffPropFlags aPropFlag = { 1, 0, 0, 0 };
1162 if ( nTmp & 0x4000 )
1163 aPropFlag.bBlip = sal_True;
1164 if ( nTmp & 0x8000 )
1165 aPropFlag.bComplex = sal_True;
1166 if ( aPropFlag.bComplex && nContent && ( nComplexDataFilePos < nEndOfRecord ) )
1167 {
1168 // normally nContent is the complete size of the complex property,
1169 // but this is not always true for IMsoArrays ( what the hell is a IMsoArray ? )
1170
1171 // I love special threatments :-(
1172 if ( ( nRecType == DFF_Prop_pVertices ) || ( nRecType == DFF_Prop_pSegmentInfo )
1173 || ( nRecType == DFF_Prop_fillShadeColors ) || ( nRecType == DFF_Prop_lineDashStyle )
1174 || ( nRecType == DFF_Prop_pWrapPolygonVertices ) || ( nRecType == DFF_Prop_connectorPoints )
1175 || ( nRecType == DFF_Prop_Handles ) || ( nRecType == DFF_Prop_pFormulas )
1176 || ( nRecType == DFF_Prop_textRectangles ) )
1177 {
1178 // now check if the current content size is possible, or 6 bytes too small
1179 sal_uInt32 nOldPos = rIn.Tell();
1180 sal_Int16 nNumElem, nNumElemReserved, nSize;
1181
1182 rIn.Seek( nComplexDataFilePos );
1183 rIn >> nNumElem >> nNumElemReserved >> nSize;
1184 if ( nNumElemReserved >= nNumElem )
1185 {
1186 // the size of these array elements is nowhere defined,
1187 // what if the size is negative ?
1188 // ok, we will make it positive and shift it.
1189 // for -16 this works
1190 if ( nSize < 0 )
1191 nSize = ( -nSize ) >> 2;
1192 sal_uInt32 nDataSize = (sal_uInt32)( nSize * nNumElem );
1193
1194 // sometimes the content size is 6 bytes too small (array header information is missing )
1195 if ( nDataSize == nContent )
1196 nContent += 6;
1197
1198 // check if array fits into the PropertyContainer
1199 if ( nContent > nEndOfRecord - nComplexDataFilePos)
1200 nContent = 0;
1201 }
1202 else
1203 nContent = 0;
1204 rIn.Seek( nOldPos );
1205 } else {
1206 // check if complex property fits into the PropertyContainer
1207 if ( nContent > nEndOfRecord - nComplexDataFilePos)
1208 nContent = 0;
1209 }
1210 if ( nContent )
1211 {
1212 if ( bSetProperty )
1213 {
1214 mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr = static_cast< sal_uInt16 >( maOffsets.size() );
1215 maOffsets.push_back( nComplexDataFilePos ); // insert the filepos of this property;
1216 }
1217 nComplexDataFilePos += nContent; // store filepos, that is used for the next complex property
1218 }
1219 else // a complex property needs content
1220 aPropFlag.bSet = sal_False; // otherwise something is wrong
1221 }
1222 if ( bSetProperty )
1223 {
1224 mpPropSetEntries[ nRecType ].nContent = nContent;
1225 mpPropSetEntries[ nRecType ].aFlags = aPropFlag;
1226 }
1227 }
1228 }
1229 aHd.SeekToEndOfRecord( rIn );
1230 }
1231
operator >>(SvStream & rIn,DffPropSet & rRec)1232 SvStream& operator>>( SvStream& rIn, DffPropSet& rRec )
1233 {
1234 rRec.ReadPropSet( rIn, false );
1235 return rIn;
1236 }
1237
operator |=(SvStream & rIn,DffPropSet & rRec)1238 SvStream& operator|=( SvStream& rIn, DffPropSet& rRec )
1239 {
1240 rRec.ReadPropSet( rIn, true );
1241 return rIn;
1242 }
1243
InitializePropSet(sal_uInt16 nPropSetType) const1244 void DffPropSet::InitializePropSet( sal_uInt16 nPropSetType ) const
1245 {
1246 /*
1247 cmc:
1248 " Boolean properties are grouped in bitfields by property set; note that
1249 the Boolean properties in each property set are contiguous. They are saved
1250 under the property ID of the last Boolean property in the set, and are
1251 placed in the value field in reverse order starting with the last property
1252 in the low bit. "
1253
1254 e.g.
1255
1256 fEditedWrap
1257 fBehindDocument
1258 fOnDblClickNotify
1259 fIsButton
1260 fOneD
1261 fHidden
1262 fPrint
1263
1264 are all part of a group and all are by default false except for fPrint,
1265 which equates to a default bit sequence for the group of 0000001 -> 0x1
1266
1267 If at a later stage word sets fBehindDocument away from the default it
1268 will be done by having a property named fPrint whose bitsequence will have
1269 the fBehindDocument bit set. e.g. a DFF_Prop_fPrint with value 0x200020
1270 has set bit 6 on so as to enable fBehindDocument (as well as disabling
1271 everything else)
1272 */
1273 if ( nPropSetType == DFF_msofbtOPT )
1274 {
1275 memcpy( mpPropSetEntries, mso_PropSetDefaults, 0x400 * sizeof( DffPropSetEntry ) );
1276 }
1277 else
1278 {
1279 memset( mpPropSetEntries, 0, 0x400 * sizeof( DffPropSetEntry ) );
1280 }
1281 }
1282
IsHardAttribute(sal_uInt32 nId) const1283 sal_Bool DffPropSet::IsHardAttribute( sal_uInt32 nId ) const
1284 {
1285 sal_Bool bRetValue = sal_True;
1286 nId &= 0x3ff;
1287 if ( ( nId & 0x3f ) >= 48 ) // is this a flag id
1288 bRetValue = ( mpPropSetEntries[ nId ].nComplexIndexOrFlagsHAttr & ( 1 << ( 0xf - ( nId & 0xf ) ) ) ) != 0;
1289 else
1290 bRetValue = ( mpPropSetEntries[ nId ].aFlags.bSoftAttr == 0 );
1291 return bRetValue;
1292 };
1293
GetPropertyValue(sal_uInt32 nId,sal_uInt32 nDefault) const1294 sal_uInt32 DffPropSet::GetPropertyValue( sal_uInt32 nId, sal_uInt32 nDefault ) const
1295 {
1296 nId &= 0x3ff;
1297 return ( mpPropSetEntries[ nId ].aFlags.bSet ) ? mpPropSetEntries[ nId ].nContent : nDefault;
1298 };
1299
GetPropertyBool(sal_uInt32 nId,bool bDefault) const1300 bool DffPropSet::GetPropertyBool( sal_uInt32 nId, bool bDefault ) const
1301 {
1302 sal_uInt32 nBaseId = nId | 31; // base ID to get the sal_uInt32 property value
1303 sal_uInt32 nMask = 1 << (nBaseId - nId); // bit mask of the boolean property
1304
1305 sal_uInt32 nPropValue = GetPropertyValue( nBaseId, bDefault ? nMask : 0 );
1306 return (nPropValue & nMask) != 0;
1307 }
1308
GetPropertyString(sal_uInt32 nId,SvStream & rStrm) const1309 ::rtl::OUString DffPropSet::GetPropertyString( sal_uInt32 nId, SvStream& rStrm ) const
1310 {
1311 sal_Size nOldPos = rStrm.Tell();
1312 ::rtl::OUStringBuffer aBuffer;
1313 sal_uInt32 nBufferSize = GetPropertyValue( nId );
1314 if( (nBufferSize > 0) && IsComplex( nId ) && SeekToContent( nId, rStrm ) )
1315 {
1316 sal_Int32 nStrLen = static_cast< sal_Int32 >( nBufferSize / 2 );
1317 aBuffer.ensureCapacity( nStrLen );
1318 for( sal_Int32 nCharIdx = 0; nCharIdx < nStrLen; ++nCharIdx )
1319 {
1320 sal_uInt16 nChar = 0;
1321 rStrm >> nChar;
1322 if( nChar > 0 )
1323 aBuffer.append( static_cast< sal_Unicode >( nChar ) );
1324 else
1325 break;
1326 }
1327 }
1328 rStrm.Seek( nOldPos );
1329 return aBuffer.makeStringAndClear();
1330 }
1331
SetPropertyValue(sal_uInt32 nId,sal_uInt32 nValue) const1332 void DffPropSet::SetPropertyValue( sal_uInt32 nId, sal_uInt32 nValue ) const
1333 {
1334 nId &= 0x3ff;
1335 mpPropSetEntries[ nId ].aFlags.bSet = true;
1336 mpPropSetEntries[ nId ].nContent = nValue;
1337 };
1338
SeekToContent(sal_uInt32 nRecType,SvStream & rStrm) const1339 sal_Bool DffPropSet::SeekToContent( sal_uInt32 nRecType, SvStream& rStrm ) const
1340 {
1341 nRecType &= 0x3ff;
1342 if ( mpPropSetEntries[ nRecType ].aFlags.bSet )
1343 {
1344 if ( mpPropSetEntries[ nRecType ].aFlags.bComplex )
1345 {
1346 sal_uInt16 nIndex = mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr;
1347 if ( nIndex < maOffsets.size() )
1348 {
1349 rStrm.Seek( maOffsets[ nIndex ] );
1350 return sal_True;
1351 }
1352 }
1353 }
1354 return sal_False;
1355 }
1356
1357 /* vi:set tabstop=4 shiftwidth=4 expandtab: */
1358