{ "type": "class",
  "qname": "org.apache.royale.textLayout.operations.ClearFormatOperation",
  "baseClassname": "org.apache.royale.textLayout.operations.FlowTextOperation"
  ,
    "description": "The ClearFormatOperation class encapsulates a way to undefine formats.  <p>An UndefineFormatOperation undefines properties set in the leaf format to the text in the specified range (no change is made if the specified range is a single point). It undefines properties set in the paragraph format to any paragraphs at least partially within the range (or a single paragraph if the range is a single point). And it undefines properties set in the container format to any containers at least partially within the range (or a single container if the range is a single point).</p>",
  "tags": [
  {  "tagName": "see",
         "values": ["org.apache.royale.textLayout.edit.EditManager", "org.apache.royale.textLayout.events.FlowOperationEvent"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "org.apache.royale.textLayout.operations.ClearFormatOperation",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Creates an ClearFormatOperation object.",
        "tags": [
        {  "tagName": "param",
               "values": ["operationState Defines the text range to which the format is applied.", "leafFormat  The format whose set values indicate properties to undefine to LeafFlowElement objects in the selected range.", "paragraphFormat The format whose set values indicate properties to undefine to ParagraphElement objects in the selected range.", "containerFormat The format whose set values indicate properties to undefine to ContainerController objects in the selected range."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": [{ "name": "operationState", "type": "org.apache.royale.textLayout.edit.SelectionState"},
        { "name": "leafFormat", "type": "org.apache.royale.textLayout.formats.ITextLayoutFormat"},
        { "name": "paragraphFormat", "type": "org.apache.royale.textLayout.formats.ITextLayoutFormat"},
        { "name": "containerFormat", "type": "org.apache.royale.textLayout.formats.ITextLayoutFormat"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "leafFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The format properties to undefine on the leaf elements in the range.  <p>If the range of this operation is a point, or if <code>leafFormat</code> is <code>null</code>, then no leaf element formats are changed.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "paragraphFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The format properties to undefine on the paragraphs in the range.  <p>The formats of any paragraphs at least partially within the range are updated. If the range of this operation is a point, then a single paragraph is updated. If <code>paragraphFormat</code> is <code>null</code>, then no paragraph formats are changed.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "containerFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The format properties to undefine on the containers in the range.  <p>The formats of any containers at least partially within the range are updated. If the range of this operation is a point, then a single container is updated. If <code>containerFormat</code> is <code>null</code>, then no container formats are changed.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "redo",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "return": "org.apache.royale.textLayout.edit.SelectionState",
          "params": []}
      ]
  }
