<?xml version="1.0"?>
<!--
    ====================================================================
    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.
    ====================================================================
-->
<record fromfile="true" name="FSPA" package="org.apache.poi.hwpf.model.types">
    <suffix>AbstractType</suffix>
    <extends>HDFType</extends>
    <description>File Shape Address (FSPA). &lt;p&gt;Class and fields descriptions are quoted from
        Microsoft Office Word 97-2007 Binary File Format
    </description>
    <author>Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary File Format
        Specification [*.doc]
    </author>
    <fields>
        <field type="int" size="4" name="spid"
            description="Shape Identifier. Used in conjunction with the office art data (found via fcDggInfo in the FIB) to find the actual data for this shape"/>
        <field type="int" size="4" name="xaLeft"
            description="Left of rectangle enclosing shape relative to the origin of the shape"/>
        <field type="int" size="4" name="yaTop"
            description="Top of rectangle enclosing shape relative to the origin of the shape"/>
        <field type="int" size="4" name="xaRight"
            description="Right of rectangle enclosing shape relative to the origin of the shape"/>
        <field type="int" size="4" name="yaBottom"
            description="Bottom of the rectangle enclosing shape relative to the origin of the shape"/>
        <field type="short" size="2" name="flags">
            <bit number="0" mask="0x0001" name="fHdr"
                description="1 in the undo doc when shape is from the header doc, 0 otherwise (undefined when not in the undo doc)"/>
            <bit number="1" mask="0x0006" name="bx" description="X position of shape relative to anchor CP">
                <const type="byte" value="0" name="PAGEMARGIN" description="relative to page margin"/>
                <const type="byte" value="1" name="PAGETOP" description="relative to top of page"/>
                <const type="byte" value="2" name="TEXT"
                    description="relative to text (column for horizontal text; paragraph for vertical text)"/>
                <const type="byte" value="3" name="RESERVED" description="reserved for future use"/>
            </bit>
            <bit number="2" mask="0x0018" name="by" description="Y position of shape relative to anchor CP">
                <const type="byte" value="0" name="PAGEMARGIN" description="relative to page margin"/>
                <const type="byte" value="1" name="PAGETOP" description="relative to top of page"/>
                <const type="byte" value="2" name="TEXT"
                    description="relative to text (paragraph for horizontal text; column for vertical text)"/>
            </bit>
            <bit number="3" mask="0x01E0" name="wr" description="Text wrapping mode">
                <const type="byte" value="0" name="AROUNDABSOLUTENR"
                    description="like 2, but doesn‘t require absolute object"/>
                <const type="byte" value="1" name="NOTEXTNEXTTO" description="no text next to shape"/>
                <const type="byte" value="2" name="AROUNDABSOLUTE" description="wrap around absolute object"/>
                <const type="byte" value="3" name="NOOBJECT" description="wrap as if no object present"/>
                <const type="byte" value="4" name="TIGHTLY" description="wrap tightly around object"/>
                <const type="byte" value="5" name="TIGHTLYWITHHOLES" description="wrap tightly, but allow holes"/>
            </bit>
            <bit number="4" mask="0x1E00" name="wrk"
                description="Text wrapping mode type (valid only for wrapping modes 2 and 4"/>
            <bit number="5" mask="0x2000" name="fRcaSimple"
                description="When set, temporarily overrides bx, by, forcing the xaLeft, xaRight, yaTop, and yaBottom fields to all be page relative."/>
            <bit number="6" mask="0x4000" name="fBelowText"/>
            <bit number="7" mask="0x8000" name="fAnchorLock"/>
        </field>
        <field type="int" size="4" name="cTxbx" description="Count of textboxes in shape (undo doc only)"/>
    </fields>
</record>
