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