      *  @private
      */
     private var charWidth:Number;
-
-    //--------------------------------------------------------------------------
-    //
-    //  Properties: Text formatting
-    //
-    //--------------------------------------------------------------------------
-    
-    //----------------------------------
-    //  blockProgression
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _blockProgression:String = BlockProgression.TB;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get blockProgression():String
-    {
-        return _blockProgression;
-    }
-
-    /**
-     *  @private
-     */
-    public function set blockProgression(value:String):void
-    {
-        if (value == _blockProgression)
-            return;
-
-        _blockProgression = value;
-        textAttributeChanged = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  color
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _color:uint = 0x000000;
-
-    /**
-     *  The color of the text.
-     *
-     *  @default 0x000000
-     */
-    public function get color():uint
-    {
-        return _color;
-    }
-
-    /**
-     *  @private
-     */
-    public function set color(value:uint):void
-    {
-        if (value == _color)
-            return;
-        
-        _color = value;
-        textAttributeChanged = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  direction
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _direction:String = Direction.LTR;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get direction():String
-    {
-        return _direction;
-    }
-
-    /**
-     *  @private
-     */
-    public function set direction(value:String):void
-    {
-        if (value == _direction)
-            return;
-
-        _direction = value;
-        textAttributeChanged = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  fontFamily
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _fontFamily:String = "Times New Roman";
-
-    /**
-     *  The name of the font used to render the text.
-     *
-     *  @default "Times New Roman"
-     */
-    public function get fontFamily():String
-    {
-        return _fontFamily;
-    }
-
-    /**
-     *  @private
-     */
-    public function set fontFamily(value:String):void
-    {
-        if (value == _fontFamily)
-            return;
-
-        _fontFamily = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  fontSize
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _fontSize:Number = 12;
-
-    /**
-     *  The size, in pixels, of the font used to render the text.
-     *
-     *  @default 12
-     */
-    public function get fontSize():Number
-    {
-        return _fontSize;
-    }
-
-    /**
-     *  @private
-     */
-    public function set fontSize(value:Number):void
-    {
-        if (value == _fontSize)
-            return;
-
-        _fontSize = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  fontStyle
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _fontStyle:String = FontPosture.NORMAL;
-
-    /**
-     *  Determines whether the text is italic.
-     *  Recognized values are <code>"normal"</code> and <code>"italic"</code>.
-     * 
-     *  @default "normal"
-     */
-    public function get fontStyle():String
-    {
-        return _fontStyle;
-    }
-
-    /**
-     *  @private
-     */
-    public function set fontStyle(value:String):void
-    {
-        if (value == _fontStyle)
-            return;
-
-        _fontStyle = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  fontWeight
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _fontWeight:String = FontWeight.NORMAL;
-
-    /**
-     *  Determines whether the text is boldface.
-     *  Recognized values are <code>"normal"</code> and <code>"bold"</code>.
-     * 
-     *  @default "normal"
-     */
-    public function get fontWeight():String
-    {
-        return _fontWeight;
-    }
-
-    /**
-     *  @private
-     */
-    public function set fontWeight(value:String):void
-    {
-        if (value == _fontWeight)
-            return;
-
-        _fontWeight = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  kerning
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _kerning:String = Kerning.AUTO;
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get kerning():String
-    {
-        return _kerning;
-    }
-
-    /**
-     *  @private
-     */
-    public function set kerning(value:String):void
-    {
-        if (value == _kerning)
-            return;
-
-        _kerning = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  lineBreak
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _lineBreak:String = LineBreak.TO_FIT;
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get lineBreak():String
-    {
-        return _lineBreak;
-    }
-
-    /**
-     *  @private
-     */
-    public function set lineBreak(value:String):void
-    {
-        if (value == _lineBreak)
-            return;
-
-        _lineBreak = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  lineHeight
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _lineHeight:Object = "120%";
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get lineHeight():Object
-    {
-        return _lineHeight;
-    }
-
-    /**
-     *  @private
-     */
-    public function set lineHeight(value:Object):void
-    {
-        if (value == _lineHeight)
-            return;
-
-        _lineHeight = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  lineThrough
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _lineThrough:Boolean = false;
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get lineThrough():Boolean
-    {
-        return _lineThrough;
-    }
-
-    /**
-     *  @private
-     */
-    public function set lineThrough(value:Boolean):void
-    {
-        if (value == _lineThrough)
-            return;
-
-        _lineThrough = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  marginBottom
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _marginBottom:Number = 0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get marginBottom():Number
-    {
-        return _marginBottom;
-    }
-
-    /**
-     *  @private
-     */
-    public function set marginBottom(value:Number):void
-    {
-        if (value == _marginBottom)
-            return;
-
-        _marginBottom = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  marginLeft
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _marginLeft:Number = 0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get marginLeft():Number
-    {
-        return _marginLeft;
-    }
-
-    /**
-     *  @private
-     */
-    public function set marginLeft(value:Number):void
-    {
-        if (value == _marginLeft)
-            return;
-
-        _marginLeft = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  marginRight
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _marginRight:Number = 0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get marginRight():Number
-    {
-        return _marginRight;
-    }
-
-    /**
-     *  @private
-     */
-    public function set marginRight(value:Number):void
-    {
-        if (value == _marginRight)
-            return;
-
-        _marginRight = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  marginTop
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _marginTop:Number = 0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get marginTop():Number
-    {
-        return _marginTop;
-    }
-
-    /**
-     *  @private
-     */
-    public function set marginTop(value:Number):void
-    {
-        if (value == _marginTop)
-            return;
-
-        _marginTop = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  paddingBottom
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _paddingBottom:Number = 0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get paddingBottom():Number
-    {
-        return _paddingBottom;
-    }
-
-    /**
-     *  @private
-     */
-    public function set paddingBottom(value:Number):void
-    {
-        if (value == _paddingBottom)
-            return;
-
-        _paddingBottom = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  paddingLeft
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _paddingLeft:Number = 0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get paddingLeft():Number
-    {
-        return _paddingLeft;
-    }
-
-    /**
-     *  @private
-     */
-    public function set paddingLeft(value:Number):void
-    {
-        if (value == _paddingLeft)
-            return;
-
-        _paddingLeft = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  paddingRight
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _paddingRight:Number = 0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get paddingRight():Number
-    {
-        return _paddingRight;
-    }
-
-    /**
-     *  @private
-     */
-    public function set paddingRight(value:Number):void
-    {
-        if (value == _paddingRight)
-            return;
-
-        _paddingRight = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  paddingTop
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _paddingTop:Number = 0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get paddingTop():Number
-    {
-        return _paddingTop;
-    }
-
-    /**
-     *  @private
-     */
-    public function set paddingTop(value:Number):void
-    {
-        if (value == _paddingTop)
-            return;
-
-        _paddingTop = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  textAlign
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _textAlign:String = TextAlign.START;
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get textAlign():String
-    {
-        return _textAlign;
-    }
-
-    /**
-     *  @private
-     */
-    public function set textAlign(value:String):void
-    {
-        if (value == _textAlign)
-            return;
-
-        _textAlign = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  textAlignLast
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _textAlignLast:String = TextAlign.START;
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get textAlignLast():String
-    {
-        return _textAlignLast;
-    }
-
-    /**
-     *  @private
-     */
-    public function set textAlignLast(value:String):void
-    {
-        if (value == _textAlignLast)
-            return;
-
-        _textAlignLast = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  textAlpha
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _textAlpha:Number = 1.0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get textAlpha():Number
-    {
-        return _textAlpha;
-    }
-
-    /**
-     *  @private
-     */
-    public function set textAlpha(value:Number):void
-    {
-        if (value == _textAlpha)
-            return;
-
-        _textAlpha = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  textDecoration
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _textDecoration:String = TextDecoration.NONE;
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get textDecoration():String
-    {
-        return _textDecoration;
-    }
-
-    /**
-     *  @private
-     */
-    public function set textDecoration(value:String):void
-    {
-        if (value == _textDecoration)
-            return;
-
-        _textDecoration = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  textIndent
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _textIndent:Number = 0;
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function get textIndent():Number
-    {
-        return _textIndent;
-    }
-
-    /**
-     *  @private
-     */
-    public function set textIndent(value:Number):void
-    {
-        if (value == _textIndent)
-            return;
-
-        _textIndent = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-        
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  tracking
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _tracking:Object = 0;
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get tracking():Object
-    {
-        return _tracking;
-    }
-
-    /**
-     *  @private
-     */
-    public function set tracking(value:Object):void
-    {
-        if (value == _tracking)
-            return;
-
-        _tracking = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  verticalAlign
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _verticalAlign:String = VerticalAlign.TOP;
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get verticalAlign():String
-    {
-        return _verticalAlign;
-    }
-
-    /**
-     *  @private
-     */
-    public function set verticalAlign(value:String):void
-    {
-        if (value == _verticalAlign)
-            return;
-
-        _verticalAlign = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  whiteSpaceCollapse
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _whiteSpaceCollapse:String = WhitespaceCollapse.PRESERVE;
-
-    /**
-     *  Documentation is not currrently available.
-     */
-    public function get whiteSpaceCollapse():String
-    {
-        return _whiteSpaceCollapse;
-    }
-
-    /**
-     *  @private
-     */
-    public function set whiteSpaceCollapse(value:String):void
-    {
-        if (value == _whiteSpaceCollapse)
-            return;
-
-        _whiteSpaceCollapse = value;
-        textAttributeChanged = true;
-        fontMetricsInvalid = true;
-
-        invalidateProperties();
-        invalidateSize();
-        invalidateDisplayList();
-    }
 
     //--------------------------------------------------------------------------
     //

            
    /**
     *  @private
     */
    private var textAttributeChanged:Boolean = true;


 */
[Event(name="enter", type="mx.events.FlexEvent")]

//--------------------------------------
//  Styles
//--------------------------------------

include "../styles/metadata/BasicContainerFormatTextStyles.as"
include "../styles/metadata/AdvancedContainerFormatTextStyles.as"
include "../styles/metadata/BasicParagraphFormatTextStyles.as"
include "../styles/metadata/AdvancedParagraphFormatTextStyles.as"
include "../styles/metadata/BasicCharacterFormatTextStyles.as"
include "../styles/metadata/AdvancedCharacterFormatTextStyles.as"

//--------------------------------------
//  Other metadata
//--------------------------------------

[DefaultProperty("content")]

/**
