<?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="false" id="0x101B" name="TC" package="org.apache.poi.hwpf.model.types">
    <suffix>AbstractType</suffix>
    <extends>HDFType</extends>
    <description>Table Cell Descriptor.</description>
    <author>S. Ryan Ackley. Field descriptions are quoted from Microsoft Office Word 97-2007 Binary
        File Format (.doc) Specification
    </author>
    <fields>
        <field type="short" size="2" name="rgf">
            <bit number="0" mask="0x0001" name="fFirstMerged"
                description="When 1, cell is first cell of a range of cells that have been merged. When a cell is merged, the display areas of the merged cells are consolidated and the text within the cells is interpreted as belonging to one text stream for purposes of calculating line breaks."/>
            <bit number="1" mask="0x0002" name="fMerged"
                description="When 1, cell has been merged with preceding cell"/>
            <bit number="2" mask="0x0004" name="fVertical" description="When 1, cell has vertical text flow"/>
            <bit number="3" mask="0x0008" name="fBackward"
                description="For a vertical table cell, text flow is bottom to top when 1 and is bottom to top when 0"/>
            <bit number="4" mask="0x0010" name="fRotateFont"
                description="When 1, cell has rotated characters (i.e. uses @font)"/>
            <bit number="5" mask="0x0020" name="fVertMerge"
                description="When 1, cell is vertically merged with the cell(s) above and/or below. When cells are vertically merged, the display area of the merged cells are consolidated. The consolidated area is used to display the contents of the first vertically merged cell (the cell with fVertRestart set to 1), and all other vertically merged cells (those with fVertRestart set to 0) must be empty. Cells can only be merged vertically if their left and right boundaries are (nearly) identical (i.e. if corresponding entries in rgdxaCenter of the table rows differ by at most 3)."/>
            <bit number="6" mask="0x0040" name="fVertRestart"
                description="When 1, the cell is the first of a set of vertically merged cells. The contents of a cell with fVertStart set to 1 are displayed in the consolidated area belonging to the entire set of vertically merged cells. Vertically merged cells with fVertRestart set to 0 must be empty."/>
            <bit number="7" mask="0x0180" name="vertAlign"
                description="Specifies the alignment of the cell contents relative to text flow (e.g. in a cell with bottom to top text flow and bottom vertical alignment, the text is shifted horizontally to match the cell's right boundary)"/>
            <bit number="8" mask="0x0E00" name="ftsWidth" description="Units for wWidth"/>
            <bit number="9" mask="0x1000" name="fFitText" description="When 1, make the text fit the table cell"/>
            <bit number="10" mask="0x2000" name="fNoWrap"
                description="When 1, do not allow text to wrap in the table cell"/>
            <bit number="11" mask="0xC000" name="fUnused" description="Not used"/>
        </field>
        <field type="short" size="2" name="wWidth" description="Preferred cell width"/>
        <field type="ShadingDescriptor" size="10" name="shd" description="Cell shading"/>
        <!-- tcd -->
        <field type="short" size="2" name="wCellPaddingLeft" description="Left cell margin/padding"/>
        <field type="short" size="2" name="wCellPaddingTop" description="Top cell margin/padding"/>
        <field type="short" size="2" name="wCellPaddingBottom" description="Bottom cell margin/padding"/>
        <field type="short" size="2" name="wCellPaddingRight" description="Right cell margin/padding"/>
        <field type="byte" size="1" name="ftsCellPaddingLeft" description="Left cell margin/padding units"/>
        <field type="byte" size="1" name="ftsCellPaddingTop" description="Top cell margin/padding units"/>
        <field type="byte" size="1" name="ftsCellPaddingBottom" description="Bottom cell margin/padding units"/>
        <field type="byte" size="1" name="ftsCellPaddingRight" description="Right cell margin/padding units"/>
        <field type="short" size="2" name="wCellSpacingLeft" description="Left cell spacing"/>
        <field type="short" size="2" name="wCellSpacingTop" description="Top cell spacing"/>
        <field type="short" size="2" name="wCellSpacingBottom" description="Bottom cell spacing"/>
        <field type="short" size="2" name="wCellSpacingRight" description="Right cell spacing"/>
        <field type="byte" size="1" name="ftsCellSpacingLeft" description="Left cell spacing units"/>
        <field type="byte" size="1" name="ftsCellSpacingTop" description="Top cell spacing units"/>
        <field type="byte" size="1" name="ftsCellSpacingBottom" description="Bottom cell spacing units"/>
        <field type="byte" size="1" name="ftsCellSpacingRight" description="Right cell spacing units"/>
        <!-- mpibrcfValidGapHalf[cbrcTc] -->
        <!-- mpibrcdzaGapHalf[cbrcTc] -->
        <field type="BorderCode" size="4" name="brcTop" description="Top border"/>
        <field type="BorderCode" size="4" name="brcLeft" description="Left border"/>
        <field type="BorderCode" size="4" name="brcBottom" description="Bottom border"/>
        <field type="BorderCode" size="4" name="brcRight" description="Right border"/>
    </fields>
</record>
