     
     //--------------------------------------------------------------------------
     //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+    
+    //----------------------------------
+    //  styleDeclaration
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the styleDeclaration property.
+     */
+    private var _styleDeclaration:CSSStyleDeclaration;
+    
+    [Inspectable(environment="none")]
+    
+    /**
+     *  Storage for the inline inheriting styles on this object.
+     *  This CSSStyleDeclaration is created the first time that
+     *  the <code>setStyle()</code> method
+     *  is called on this component to set an inheriting style.
+     *  Developers typically never need to access this property directly.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get styleDeclaration():CSSStyleDeclaration
+    {
+        return _styleDeclaration;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set styleDeclaration(value:CSSStyleDeclaration):void
+    {
+        _styleDeclaration = value;
+    }
+    
+    //----------------------------------
+    //  styleName
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the styleName property.
+     */
+    private var _styleName:Object /* UIComponent */;
+    
+    /**
+     *  The class style used by this component. This should be an IStyleClient.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get styleName():Object /* UIComponent */
+    {
+        return _styleName;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set styleName(value:Object /* UIComponent */):void
+    {
+        if (_styleName === value)
+            return;
+        
+        _styleName = value;
+        
+        styleChanged("styleName");
+    }
+    
+    //--------------------------------------------------------------------------
+    //
     //  IDisplayText implementation
     //
     //--------------------------------------------------------------------------

    //
    //--------------------------------------------------------------------------
    
    //----------------------------------
    //  styleProvider
    //----------------------------------
    
   /**
     *  The object that provides styles for this text component. This
     *  property must be set for the text to pick up the correct styles.
     *
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.0
     *  @productversion Flex 4.5
     */
    public var styleProvider:IStyleClient;
    
    /**
     *  @private
     *  An mx_internal hook developers can set to control where the styles 
     *  come from for the StyleableTextField.  By default, StyleableTextField
     *  uses a function that just grabs the styles from styleProvider.
     * 
     *  <p>This takes precedence over styleProvider and should never 
     *  be set to null.</p>
     */
    mx_internal var getStyleFunction:Function = defaultGetStyleFunction;
    
    /**
     *  @private
     *  The object that provides styles for this text component. This
     *  property must be set for the text to pick up the correct styles.
     */
    private function defaultGetStyleFunction(styleProp:String):*
    {
        return styleProvider.getStyle(styleProp);
    }
    
    //--------------------------------------------------------------------------
    //
    //  Methods

        {
            // This should get us into the ballpark.
            var s:String = super.text = originalText;
            // TODO (rfrishbe): why is this here below...it does nothing (see SDK-26438)
            //originalText.slice(0,
            //    Math.floor((w / (textWidth + TEXT_WIDTH_PADDING)) * originalText.length));
            
            while (s.length > 1 && textWidth + TEXT_WIDTH_PADDING > w)
            {
