xref: /AOO41X/main/filter/source/msfilter/dffpropset.cxx (revision 3fd51d8f6ab4180d522b213bb4a7580b5eaa7b7a)
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