     //  Variables
     //
     //--------------------------------------------------------------------------
+    private var bgImg:DisplayObject;
     
-    private var textField:IUITextField;
-    private var textFieldShadow:IUITextField;
-    private var bgImg:DisplayObject;
+    private var changeFXGSkin:Boolean = false;
     
     private static var matrix:Matrix = new Matrix();
     
-    // TODO (jszeto) move to const values
-    // TODO (jszeto) add comments
-    private static var alphas:Array = [1, 1, 1];
-    private static var ratios:Array = [0, 127.5, 255];	
-    // TODO (jszeto) move to local vars
-    private static var colors:Array = [];  
-    
-    // Holds the icon
-    private var iconDisplay:DisplayObject;
-    
-    // TODO (jszeto) Either static consts or styles
-    private var gap:int = 10;
-    private var paddingLeft:int = 10;
-    private var paddingRight:int = 10;
-    private var paddingTop:int = 10;
-    private var paddingBottom:int = 10;
-
-    private static var TEXT_WIDTH_PADDING:Number = UITextField.TEXT_WIDTH_PADDING + 1;
-
-    //--------------------------------------------------------------------------
-    //
-    //  Overridden properties
-    //
-    //--------------------------------------------------------------------------
-    
-    /** 
-     * @copy spark.skins.spark.ApplicationSkin#hostComponent
-     */
-    public var hostComponent:Button; // SkinnableComponent will popuplate
-    
-    //--------------------------------------------------------------------------
-    //
-    //  Overridden properties
-    //
-    //--------------------------------------------------------------------------
-    
-    //----------------------------------
-    //  currentState
-    //----------------------------------
-    
-    override public function set currentState(value:String):void
-    {
-        if (value == currentState)
-            return;
-        
-        super.currentState = value;
-        
-        // TODO (jszeto) maybe call invalidateDisplayList instead of applyFXG
-        applyFXG();
-    }
+    // Used for gradient background
+    private static const alphas:Array = [1, 1, 1];
+    private static const ratios:Array = [0, 127.5, 255];
     
     //--------------------------------------------------------------------------
     //


package spark.skins.mobile
{
    
import flash.display.DisplayObject;
import flash.display.GradientType;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.geom.Matrix;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import flash.text.TextLineMetrics;

import mx.core.IUITextField;
import mx.core.UIComponent;
import mx.core.UITextField;
import mx.core.mx_internal;
import mx.states.SetProperty;
import mx.states.State;
import mx.utils.ColorUtil;

import spark.components.Button;
import spark.components.supportClasses.ButtonLabelPlacement;

use namespace mx_internal;

/*    
    ISSUES:
    - should we support textAlign

    public function ButtonSkin()
    {
        super();
    }
    
    //--------------------------------------------------------------------------
