{ "type": "class",
  "qname": "org.apache.royale.textLayout.container.ColumnState",
  "baseClassname": ""
  ,
    "description": "The ColumnState class calculates the sizes and locations of columns using the width of the container and the container attributes. You can create instances of this class independently to calculate column values, or you can get the column values that were used for the text after the container has been composed or updated (redrawn).",
  "tags": [
  {  "tagName": "see",
         "values": ["ContainerController"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "org.apache.royale.textLayout.container.ColumnState",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor function - creates a ColumnState object.  If the values of <code>controller.compositionWidth</code> and <code>controller.compositionHeight</code> equal <code>NaN</code> (not a number), the constructor measures the container's contents to determine the actual composition width and height that feed into ColumnState.  Use the constants defined by the <code>org.apache.royale.textLayout.formats.BlockProgression</code> class to specify the value of the <code>blockProgression</code> parameter. Use the constants defined by <code>org.apache.royale.textLayout.formats.Direction</code> to specify the value of the <code>columnDirection</code> parameter.  BlockProgression.RL (right-to-left). Direction.LTR (left-to-right).",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BlockProgression BlockProgression", "org.apache.royale.textLayout.formats.Direction Direction"]},
            {  "tagName": "param",
               "values": ["blockProgression The direction of lines for the textflow, either BlockProgression.TB (top-to-bottom) or", "columnDirection The direction of column layout for the text flow, either Direction.RTL (right-to-left) or", "controller A ContainerController instance whose attributes are used to calculate the column values.", "compositionWidth The horizontal extent, in pixels, allowed for text inside the container.", "compositionHeight The vertical extent, in pixels, allowed for text inside the container."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": [{ "name": "blockProgression", "type": "String"},
        { "name": "columnDirection", "type": "String"},
        { "name": "controller", "type": "org.apache.royale.textLayout.container.IContainerController"},
        { "name": "compositionWidth", "type": "Number"},
        { "name": "compositionHeight", "type": "Number"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "Number",
        "qname": "columnWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The width of columns, in pixels, in the container.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "columnCount",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The number of columns in the container.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "cellCount",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The number of cells in the container.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "Number",
        "qname": "columnGap",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The amount of space, in pixels, left between columns in the container.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "getColumnAt",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the area that a column takes within the container. Allows you to access the area for a specific column.  column at position 0.",
        "tags": [
        {  "tagName": "param",
               "values": ["index The relative position of the column among all columns in the container, with the first"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["The area of the specified column."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.geom.Rectangle",
          "params": [{ "name": "index", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "getCellAt",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "org.apache.royale.textLayout.elements.TableCellElement",
          "params": [{ "name": "index", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "pushTableCell",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "void",
          "params": [{ "name": "cell", "type": "org.apache.royale.textLayout.elements.TableCellElement"}]}
      ,
      { "type": "method",
        "qname": "clearCellList",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "void",
          "params": []}
      ]
  }
