blob: 7d15ae5e9299a10dabb425b9087ea8d0a91880e3 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#include "precompiled_filter.hxx"
#include <filter/msfilter/dffpropset.hxx>
#include <rtl/ustrbuf.hxx>
static const DffPropSetEntry mso_PropSetDefaults[] = {
// 0
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
// 64
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0 }, // DFF_Prop_LockAgainstGrouping
// 128
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0x0010 }, // DFF_Prop_FitTextToShape
// 192
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0 }, // DFF_Prop_gtextFStrikethrough
//256
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0 }, // DFF_Prop_pictureActive
// 320
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0x0039 }, // DFF_Prop_fFillOK
// 384
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0xffffff }, // DFF_Prop_fillColor
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0x001c }, // DFF_Prop_fNoFillHitTest
// 448
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0x001e }, // DFF_Prop_fNoLineDrawDash
// 512
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0 }, // DFF_Prop_fshadowObscured
// 576
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0 }, // DFF_Prop_fPerspective
// 640
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0x0001 }, // DFF_Prop_fc3DLightFace
// 704
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0x0016 }, // DFF_Prop_fc3DFillHarsh
// 768
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0 }, // DFF_Prop_fBackground
// 832
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0x0010 }, // DFF_Prop_fCalloutLengthSpecified
// 896
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { true, false, false, true }, 0, 0x0001 }, // DFF_Prop_fPrint
// 960
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 },
{ { false, false, false, false }, 0, 0 }
};
DffPropSet::DffPropSet()
{
mpPropSetEntries = reinterpret_cast< DffPropSetEntry* >( new sal_uInt8[ 1024 * sizeof( DffPropSetEntry ) ] );
}
DffPropSet::~DffPropSet()
{
delete[] reinterpret_cast< sal_uInt8* >( mpPropSetEntries );
}
void DffPropSet::ReadPropSet( SvStream& rIn, bool bSetUninitializedOnly )
{
DffRecordHeader aHd;
rIn >> aHd;
if ( !bSetUninitializedOnly )
{
InitializePropSet( aHd.nRecType );
maOffsets.clear();
}
sal_uInt32 nPropCount = aHd.nRecInstance;
// FilePos der ComplexData merken
sal_uInt32 nComplexDataFilePos = rIn.Tell() + ( nPropCount * 6 );
for( sal_uInt32 nPropNum = 0; nPropNum < nPropCount; nPropNum++ )
{
sal_uInt16 nTmp;
sal_uInt32 nRecType, nContent;
rIn >> nTmp
>> nContent;
nRecType = nTmp & 0x3fff;
if ( nRecType > 0x3ff )
break;
if ( ( nRecType & 0x3f ) == 0x3f )
{
if ( bSetUninitializedOnly )
{
sal_uInt32 nCurrentFlags = mpPropSetEntries[ nRecType ].nContent;
sal_uInt32 nMergeFlags = nContent;
nMergeFlags &= ( nMergeFlags >> 16 ) | 0xffff0000; // clearing low word
nMergeFlags &= ( ( nCurrentFlags & 0xffff0000 ) // remove allready hard set
| ( nCurrentFlags >> 16 ) ) ^ 0xffffffff; // attributes from mergeflags
nCurrentFlags &= ( ( nMergeFlags & 0xffff0000 ) // apply zero master bits
| ( nMergeFlags >> 16 ) ) ^ 0xffffffff;
nCurrentFlags |= (sal_uInt16)nMergeFlags; // apply filled master bits
mpPropSetEntries[ nRecType ].nContent = nCurrentFlags;
mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr |= static_cast< sal_uInt16 >( nContent >> 16 );
}
else
{
// clear flags that have to be cleared
mpPropSetEntries[ nRecType ].nContent &= ( ( nContent >> 16 ) ^ 0xffffffff );
// set flags that have to be set
mpPropSetEntries[ nRecType ].nContent |= nContent;
mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr = static_cast< sal_uInt16 >( nContent >> 16 );
}
}
else
{
bool bSetProperty = !bSetUninitializedOnly || ( !IsProperty( nRecType ) || !IsHardAttribute( nRecType ) );
DffPropFlags aPropFlag = { 1, 0, 0, 0 };
if ( nTmp & 0x4000 )
aPropFlag.bBlip = sal_True;
if ( nTmp & 0x8000 )
aPropFlag.bComplex = sal_True;
if ( aPropFlag.bComplex && nContent && ( nComplexDataFilePos < aHd.GetRecEndFilePos() ) )
{
// normally nContent is the complete size of the complex property,
// but this is not always true for IMsoArrays ( what the hell is a IMsoArray ? )
// I love special threatments :-(
if ( ( nRecType == DFF_Prop_pVertices ) || ( nRecType == DFF_Prop_pSegmentInfo )
|| ( nRecType == DFF_Prop_fillShadeColors ) || ( nRecType == DFF_Prop_lineDashStyle )
|| ( nRecType == DFF_Prop_pWrapPolygonVertices ) || ( nRecType == DFF_Prop_connectorPoints )
|| ( nRecType == DFF_Prop_Handles ) || ( nRecType == DFF_Prop_pFormulas )
|| ( nRecType == DFF_Prop_textRectangles ) )
{
// now check if the current content size is possible, or 6 bytes too small
sal_uInt32 nOldPos = rIn.Tell();
sal_Int16 nNumElem, nNumElemReserved, nSize;
rIn.Seek( nComplexDataFilePos );
rIn >> nNumElem >> nNumElemReserved >> nSize;
if ( nNumElemReserved >= nNumElem )
{
// the size of these array elements is nowhere defined,
// what if the size is negative ?
// ok, we will make it positive and shift it.
// for -16 this works
if ( nSize < 0 )
nSize = ( -nSize ) >> 2;
sal_uInt32 nDataSize = (sal_uInt32)( nSize * nNumElem );
// sometimes the content size is 6 bytes too small (array header information is missing )
if ( nDataSize == nContent )
nContent += 6;
// check if array fits into the PropertyContainer
if ( ( nComplexDataFilePos + nContent ) > aHd.GetRecEndFilePos() )
nContent = 0;
}
else
nContent = 0;
rIn.Seek( nOldPos );
}
if ( nContent )
{
if ( bSetProperty )
{
mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr = static_cast< sal_uInt16 >( maOffsets.size() );
maOffsets.push_back( nComplexDataFilePos ); // insert the filepos of this property;
}
nComplexDataFilePos += nContent; // store filepos, that is used for the next complex property
}
else // a complex property needs content
aPropFlag.bSet = sal_False; // otherwise something is wrong
}
if ( bSetProperty )
{
mpPropSetEntries[ nRecType ].nContent = nContent;
mpPropSetEntries[ nRecType ].aFlags = aPropFlag;
}
}
}
aHd.SeekToEndOfRecord( rIn );
}
SvStream& operator>>( SvStream& rIn, DffPropSet& rRec )
{
rRec.ReadPropSet( rIn, false );
return rIn;
}
SvStream& operator|=( SvStream& rIn, DffPropSet& rRec )
{
rRec.ReadPropSet( rIn, true );
return rIn;
}
void DffPropSet::InitializePropSet( sal_uInt16 nPropSetType ) const
{
/*
cmc:
" Boolean properties are grouped in bitfields by property set; note that
the Boolean properties in each property set are contiguous. They are saved
under the property ID of the last Boolean property in the set, and are
placed in the value field in reverse order starting with the last property
in the low bit. "
e.g.
fEditedWrap
fBehindDocument
fOnDblClickNotify
fIsButton
fOneD
fHidden
fPrint
are all part of a group and all are by default false except for fPrint,
which equates to a default bit sequence for the group of 0000001 -> 0x1
If at a later stage word sets fBehindDocument away from the default it
will be done by having a property named fPrint whose bitsequence will have
the fBehindDocument bit set. e.g. a DFF_Prop_fPrint with value 0x200020
has set bit 6 on so as to enable fBehindDocument (as well as disabling
everything else)
*/
if ( nPropSetType == DFF_msofbtOPT )
{
memcpy( mpPropSetEntries, mso_PropSetDefaults, 0x400 * sizeof( DffPropSetEntry ) );
}
else
{
memset( mpPropSetEntries, 0, 0x400 * sizeof( DffPropSetEntry ) );
}
}
sal_Bool DffPropSet::IsHardAttribute( sal_uInt32 nId ) const
{
sal_Bool bRetValue = sal_True;
nId &= 0x3ff;
if ( ( nId & 0x3f ) >= 48 ) // is this a flag id
bRetValue = ( mpPropSetEntries[ nId ].nComplexIndexOrFlagsHAttr & ( 1 << ( 0xf - ( nId & 0xf ) ) ) ) != 0;
else
bRetValue = ( mpPropSetEntries[ nId ].aFlags.bSoftAttr == 0 );
return bRetValue;
};
sal_uInt32 DffPropSet::GetPropertyValue( sal_uInt32 nId, sal_uInt32 nDefault ) const
{
nId &= 0x3ff;
return ( mpPropSetEntries[ nId ].aFlags.bSet ) ? mpPropSetEntries[ nId ].nContent : nDefault;
};
bool DffPropSet::GetPropertyBool( sal_uInt32 nId, bool bDefault ) const
{
sal_uInt32 nBaseId = nId | 31; // base ID to get the sal_uInt32 property value
sal_uInt32 nMask = 1 << (nBaseId - nId); // bit mask of the boolean property
sal_uInt32 nPropValue = GetPropertyValue( nBaseId, bDefault ? nMask : 0 );
return (nPropValue & nMask) != 0;
}
::rtl::OUString DffPropSet::GetPropertyString( sal_uInt32 nId, SvStream& rStrm ) const
{
sal_Size nOldPos = rStrm.Tell();
::rtl::OUStringBuffer aBuffer;
sal_uInt32 nBufferSize = GetPropertyValue( nId );
if( (nBufferSize > 0) && SeekToContent( nId, rStrm ) )
{
sal_Int32 nStrLen = static_cast< sal_Int32 >( nBufferSize / 2 );
aBuffer.ensureCapacity( nStrLen );
for( sal_Int32 nCharIdx = 0; nCharIdx < nStrLen; ++nCharIdx )
{
sal_uInt16 nChar = 0;
rStrm >> nChar;
if( nChar > 0 )
aBuffer.append( static_cast< sal_Unicode >( nChar ) );
else
break;
}
}
rStrm.Seek( nOldPos );
return aBuffer.makeStringAndClear();
}
void DffPropSet::SetPropertyValue( sal_uInt32 nId, sal_uInt32 nValue ) const
{
nId &= 0x3ff;
mpPropSetEntries[ nId ].aFlags.bSet = true;
mpPropSetEntries[ nId ].nContent = nValue;
};
sal_Bool DffPropSet::SeekToContent( sal_uInt32 nRecType, SvStream& rStrm ) const
{
nRecType &= 0x3ff;
if ( mpPropSetEntries[ nRecType ].aFlags.bSet )
{
if ( mpPropSetEntries[ nRecType ].aFlags.bComplex )
{
sal_uInt16 nIndex = mpPropSetEntries[ nRecType ].nComplexIndexOrFlagsHAttr;
if ( nIndex < maOffsets.size() )
{
rStrm.Seek( maOffsets[ nIndex ] );
return sal_True;
}
}
}
return sal_False;
}
/* vi:set tabstop=4 shiftwidth=4 expandtab: */