////////////////////////////////////////////////////////////////////////////////
//
//  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.
//
////////////////////////////////////////////////////////////////////////////////

package
{
	import flash.display.Sprite;

	import flashx.textLayout.formats.TextLayoutFormat;

	[SWF(width="100",height="100")]
	public class TextLayoutFormatAS extends Sprite
	{
		public function TextLayoutFormatAS()
		{ }

		public function validate():void
		{
			var format:TextLayoutFormat = new TextLayoutFormat();
			format.lineThrough = "true"
			format.lineThrough = "false"
			format.lineThrough = "inherit"
			format.breakOpportunity = "all"
			format.breakOpportunity = "any"
			format.breakOpportunity = "auto"
			format.breakOpportunity = "none"
			format.breakOpportunity = "inherit"
			format.digitCase = "default"
			format.digitCase = "lining"
			format.digitCase = "oldStyle"
			format.digitCase = "inherit"
			format.digitWidth = "default"
			format.digitWidth = "proportional"
			format.digitWidth = "tabular"
			format.digitWidth = "inherit"
			format.dominantBaseline = "auto"
			format.dominantBaseline = "roman"
			format.dominantBaseline = "ascent"
			format.dominantBaseline = "descent"
			format.dominantBaseline = "ideographicTop"
			format.dominantBaseline = "ideographicCenter"
			format.dominantBaseline = "ideographicBottom"
			format.dominantBaseline = "inherit"
			format.kerning = "on"
			format.kerning = "off"
			format.kerning = "auto"
			format.kerning = "inherit"
			format.ligatureLevel = "minimum"
			format.ligatureLevel = "common"
			format.ligatureLevel = "uncommon"
			format.ligatureLevel = "exotic"
			format.ligatureLevel = "inherit"
			format.alignmentBaseline = "roman"
			format.alignmentBaseline = "ascent"
			format.alignmentBaseline = "descent"
			format.alignmentBaseline = "ideographicTop"
			format.alignmentBaseline = "ideographicCenter"
			format.alignmentBaseline = "ideographicBottom"
			format.alignmentBaseline = "useDominantBaseline"
			format.alignmentBaseline = "inherit"
			format.typographicCase = "default"
			format.typographicCase = "capsToSmallCaps"
			format.typographicCase = "uppercase"
			format.typographicCase = "lowercase"
			format.typographicCase = "lowercaseToSmallCaps"
			format.typographicCase = "inherit"
			format.textDecoration = "none"
			format.textDecoration = "underline"
			format.textDecoration = "inherit"
			format.fontWeight = "normal"
			format.fontWeight = "bold"
			format.fontWeight = "inherit"
			format.fontStyle = "normal"
			format.fontStyle = "italic"
			format.fontStyle = "inherit"
			format.whiteSpaceCollapse = "preserve"
			format.whiteSpaceCollapse = "collapse"
			format.whiteSpaceCollapse = "inherit"
			format.renderingMode = "normal"
			format.renderingMode = "cff"
			format.renderingMode = "inherit"
			format.cffHinting = "none"
			format.cffHinting = "horizontalStem"
			format.cffHinting = "inherit"
			format.fontLookup = "device"
			format.fontLookup = "embeddedCFF"
			format.fontLookup = "inherit"
			format.textRotation = "rotate0"
			format.textRotation = "rotate180"
			format.textRotation = "rotate270"
			format.textRotation = "rotate90"
			format.textRotation = "auto"
			format.textRotation = "inherit"
			format.textAlign = "left"
			format.textAlign = "right"
			format.textAlign = "center"
			format.textAlign = "justify"
			format.textAlign = "start"
			format.textAlign = "end"
			format.textAlign = "inherit"
			format.textAlignLast = "left"
			format.textAlignLast = "right"
			format.textAlignLast = "center"
			format.textAlignLast = "justify"
			format.textAlignLast = "start"
			format.textAlignLast = "end"
			format.textAlignLast = "inherit"
			format.textJustify = "interWord"
			format.textJustify = "distribute"
			format.textJustify = "inherit"
			format.justificationRule = "eastAsian"
			format.justificationRule = "space"
			format.justificationRule = "auto"
			format.justificationRule = "inherit"
			format.justificationStyle = "prioritizeLeastAdjustment"
			format.justificationStyle = "pushInKinsoku"
			format.justificationStyle = "pushOutOnly"
			format.justificationStyle = "auto"
			format.justificationStyle = "inherit"
			format.direction = "ltr"
			format.direction = "rtl"
			format.direction = "inherit"
			format.leadingModel = "romanUp"
			format.leadingModel = "ideographicTopUp"
			format.leadingModel = "ideographicCenterUp"
			format.leadingModel = "ideographicTopDown"
			format.leadingModel = "ideographicCenterDown"
			format.leadingModel = "approximateTextField"
			format.leadingModel = "ascentDescentUp"
			format.leadingModel = "box"
			format.leadingModel = "auto"
			format.leadingModel = "inherit"
			format.verticalAlign = "top"
			format.verticalAlign = "middle"
			format.verticalAlign = "bottom"
			format.verticalAlign = "justify"
			format.verticalAlign = "inherit"
			format.blockProgression = "rl"
			format.blockProgression = "tb"
			format.blockProgression = "inherit"
			format.lineBreak = "explicit"
			format.lineBreak = "toFit"
			format.lineBreak = "inherit"
			format.listStyleType = "upperAlpha"
			format.listStyleType = "lowerAlpha"
			format.listStyleType = "upperRoman"
			format.listStyleType = "lowerRoman"
			format.listStyleType = "none"
			format.listStyleType = "disc"
			format.listStyleType = "circle"
			format.listStyleType = "square"
			format.listStyleType = "box"
			format.listStyleType = "check"
			format.listStyleType = "diamond"
			format.listStyleType = "hyphen"
			format.listStyleType = "arabicIndic"
			format.listStyleType = "bengali"
			format.listStyleType = "decimal"
			format.listStyleType = "decimalLeadingZero"
			format.listStyleType = "devanagari"
			format.listStyleType = "gujarati"
			format.listStyleType = "gurmukhi"
			format.listStyleType = "kannada"
			format.listStyleType = "persian"
			format.listStyleType = "thai"
			format.listStyleType = "urdu"
			format.listStyleType = "cjkEarthlyBranch"
			format.listStyleType = "cjkHeavenlyStem"
			format.listStyleType = "hangul"
			format.listStyleType = "hangulConstant"
			format.listStyleType = "hiragana"
			format.listStyleType = "hiraganaIroha"
			format.listStyleType = "katakana"
			format.listStyleType = "katakanaIroha"
			format.listStyleType = "lowerAlpha"
			format.listStyleType = "lowerGreek"
			format.listStyleType = "lowerLatin"
			format.listStyleType = "upperAlpha"
			format.listStyleType = "upperGreek"
			format.listStyleType = "upperLatin"
			format.listStyleType = "inherit"
			format.listStylePosition = "inside"
			format.listStylePosition = "outside"
			format.listStylePosition = "inherit"
			format.clearFloats = "start"
			format.clearFloats = "end"
			format.clearFloats = "left"
			format.clearFloats = "right"
			format.clearFloats = "both"
			format.clearFloats = "none"
			format.clearFloats = "inherit"

		}
	}
}
