             }
         }
     }
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+    
+    /**
+     *  Apply a color transform on a DisplayObject
+     * 
+     *  @param displayObject
+     *  @param tintColor
+     *  @param originalColor
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5 
+     *  @productversion Flex 4.5
+     */
+    protected function applyColorTransform(displayObject:DisplayObject, originalColor:uint, tintColor:uint):void
+    {
+        // FIXME (jasonsj): track what's already been tinted
+        // FIXME (jasonsj): track previous color transform to bypass initialization
+        if (originalColor == tintColor)
+            return;
+        
+        colorTransform.redOffset = ((tintColor & (0xFF << 16)) >> 16) - ((originalColor & (0xFF << 16)) >> 16);
+        colorTransform.greenOffset = ((tintColor & (0xFF << 8)) >> 8) - ((originalColor & (0xFF << 8)) >> 8);
+        colorTransform.blueOffset = (tintColor & 0xFF) - (originalColor & 0xFF);
+        colorTransform.alphaMultiplier = alpha;
+        
+        displayObject.transform.colorTransform = colorTransform;
+    }
     
     /**
      *  Use <code>beginFill</code> or <code>beginGradientFill</code> to specify

            element.y = y;
        }
    }

    /**
     *  A helper method to size children elements of this component.
     * 

    // Used for gradient background
    protected static var matrix:Matrix = new Matrix();
    
    protected static const MOBILE_THEME_DARK_COLOR:uint = 0x484848;
    
    protected static const MOBILE_THEME_LIGHT_COLOR:uint = 0xCCCCCC;
    
    /**
     * An array of color distribution ratios.
     * This is used in the chrome color fill.
