Remove redundant Android skins (it now comes with the 4.14 SDK)

Project: http://git-wip-us.apache.org/repos/asf/flex-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-examples/commit/8ccec1f5
Tree: http://git-wip-us.apache.org/repos/asf/flex-examples/tree/8ccec1f5
Diff: http://git-wip-us.apache.org/repos/asf/flex-examples/diff/8ccec1f5

Branch: refs/heads/develop
Commit: 8ccec1f59b749e246aa509e1cd5013ed9a1f2ce1
Parents: eb3b97a
Author: OmPrakash Muppirala <[email protected]>
Authored: Fri Dec 19 15:32:23 2014 -0800
Committer: OmPrakash Muppirala <[email protected]>
Committed: Fri Dec 19 15:32:23 2014 -0800

----------------------------------------------------------------------
 .../src/spark/skins/android4/ActionBarSkin.as   | 725 ---------------
 .../skins/android4/ButtonBarFirstButtonSkin.as  |  93 --
 .../skins/android4/ButtonBarMiddleButtonSkin.as |  95 --
 .../src/spark/skins/android4/ButtonBarSkin.as   | 166 ----
 .../src/spark/skins/android4/ButtonSkin.as      | 397 ---------
 .../src/spark/skins/android4/CalloutSkin.as     | 825 -----------------
 .../src/spark/skins/android4/CheckBoxSkin.as    | 268 ------
 .../src/spark/skins/android4/DateSpinnerSkin.as | 153 ----
 .../src/spark/skins/android4/HScrollBarSkin.as  | 205 -----
 .../spark/skins/android4/HScrollBarThumbSkin.as | 169 ----
 .../src/spark/skins/android4/HSliderSkin.as     | 293 ------
 .../spark/skins/android4/HSliderThumbSkin.as    | 333 -------
 .../spark/skins/android4/HSliderTrackSkin.as    | 227 -----
 .../src/spark/skins/android4/ListSkin.as        | 204 -----
 .../src/spark/skins/android4/RadioButtonSkin.as | 253 ------
 .../skins/android4/SpinnerListContainerSkin.as  | 327 -------
 .../skins/android4/SpinnerListScrollerSkin.mxml |  94 --
 .../src/spark/skins/android4/SpinnerListSkin.as | 293 ------
 .../skins/android4/SplitViewNavigatorSkin.as    | 157 ----
 .../android4/TabbedViewNavigatorTabBarSkin.as   | 122 ---
 .../skins/android4/TextAreaHScrollBarSkin.as    | 105 ---
 .../android4/TextAreaHScrollBarThumbSkin.as     | 116 ---
 .../src/spark/skins/android4/TextAreaSkin.as    | 892 -------------------
 .../skins/android4/TextAreaVScrollBarSkin.as    | 105 ---
 .../android4/TextAreaVScrollBarThumbSkin.as     | 117 ---
 .../src/spark/skins/android4/TextInputSkin.as   | 375 --------
 .../spark/skins/android4/ToggleSwitchSkin.as    | 506 -----------
 .../android4/TransparentNavigationButtonSkin.as | 109 ---
 .../src/spark/skins/android4/VScrollBarSkin.as  | 207 -----
 .../spark/skins/android4/VScrollBarThumbSkin.as | 178 ----
 .../spark/skins/android4/ViewMenuItemSkin.as    | 238 -----
 .../src/spark/skins/android4/ViewMenuSkin.mxml  | 184 ----
 .../android4/supportClasses/CalloutArrow.as     | 457 ----------
 .../supportClasses/StageTextSkinBase.as         | 402 ---------
 .../android4/supportClasses/TextSkinBase.as     | 213 -----
 35 files changed, 9603 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-examples/blob/8ccec1f5/tourdeflexmobile/src/spark/skins/android4/ActionBarSkin.as
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/spark/skins/android4/ActionBarSkin.as 
b/tourdeflexmobile/src/spark/skins/android4/ActionBarSkin.as
deleted file mode 100644
index f1ef220..0000000
--- a/tourdeflexmobile/src/spark/skins/android4/ActionBarSkin.as
+++ /dev/null
@@ -1,725 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.skins.android4
-{
-       import flash.display.GradientType;
-       import flash.events.Event;
-       import flash.text.TextFormatAlign;
-       
-       import mx.core.DPIClassification;
-       import mx.core.mx_internal;
-       import mx.utils.ColorUtil;
-       
-       import spark.components.ActionBar;
-       import spark.components.Group;
-       import spark.components.supportClasses.StyleableTextField;
-       import spark.core.SpriteVisualElement;
-       import spark.layouts.HorizontalAlign;
-       import spark.layouts.HorizontalLayout;
-       import spark.layouts.VerticalAlign;
-       import spark.skins.android4.assets.ActionBarBackground;
-       import spark.skins.mobile.supportClasses.MobileSkin;
-       
-       use namespace mx_internal;
-       
-       /**
-        *  The default skin class for the Spark ActionBar component in mobile
-        *  applications.
-        *  
-        *  @see spark.components.ActionBar
-        *  @see spark.skins.mobile.TransparentNavigationButtonSkin
-        *  @see spark.skins.mobile.BeveledBackButtonSkin
-        *  @see spark.skins.mobile.TransparentActionButtonSkin
-        *  @see spark.skins.mobile.BeveledActionButtonSkin
-        *  
-        *  @langversion 3.0
-        *  @playerversion AIR 2.5
-        *  @productversion Flex 4.5
-        */
-       public class ActionBarSkin extends MobileSkin
-       {
-               
//--------------------------------------------------------------------------
-               //
-               //  Class constants
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  @private
-                */
-               mx_internal static const ACTIONBAR_CHROME_COLOR_RATIOS:Array = 
[0, 80];
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Constructor
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  Constructor.
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 2.5
-                *  @productversion Flex 4.5
-                */
-               public function ActionBarSkin()
-               {
-                       super();
-                       
-                       borderClass = 
spark.skins.android4.assets.ActionBarBackground;
-                       
-                       switch (applicationDPI)
-                       {
-                               
-                               case DPIClassification.DPI_640:
-                               {
-                                       borderSize = 2;
-                                       layoutContentGroupHeight = 172;
-                                       layoutTitleGroupHorizontalPadding = 52;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_480:
-                               {
-                                       borderSize = 2;
-                                       layoutContentGroupHeight = 130;
-                                       layoutTitleGroupHorizontalPadding = 40;
-                                       
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_320:
-                               {
-                                       borderSize = 2;
-                                       layoutContentGroupHeight = 86;
-                                       layoutTitleGroupHorizontalPadding = 26;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_240:
-                               {
-                                       borderSize = 1;
-                                       layoutContentGroupHeight = 65;
-                                       layoutTitleGroupHorizontalPadding = 20;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_120:
-                               {
-                                       borderSize = 1;
-                                       layoutContentGroupHeight = 32;
-                                       layoutTitleGroupHorizontalPadding = 10;
-                                       
-                                       break;
-                               }       
-                               default:
-                               {
-                                       // default DPI_160
-                                       borderSize = 1;
-                                       layoutContentGroupHeight = 43;
-                                       layoutTitleGroupHorizontalPadding = 13;
-                                       
-                                       break;
-                               }
-                       }
-               }
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Graphics variables
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  FXG Class reference for the ActionBar background border 
graphic.
-                *
-                *  @langversion 3.0
-                *  @playerversion AIR 2.5
-                *  @productversion Flex 4.5
-                */
-               protected var borderClass:Class;
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Layout variables
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  @private
-                */
-               private var borderSize:uint;
-               
-               /**
-                *  Default height for navigationGroup, titleGroup and 
actionGroup.
-                *
-                *  @langversion 3.0
-                *  @playerversion AIR 2.5
-                *  @productversion Flex 4.5
-                */
-               protected var layoutContentGroupHeight:uint;
-               
-               /**
-                *  Default horizontal padding for the titleGroup and 
titleDisplay.
-                *
-                *  @langversion 3.0
-                *  @playerversion AIR 2.5
-                *  @productversion Flex 4.5
-                */
-               protected var layoutTitleGroupHorizontalPadding:uint;
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Variables
-               //
-               
//--------------------------------------------------------------------------
-               
-               /** 
-                *  @copy spark.skins.spark.ApplicationSkin#hostComponent
-                */
-               public var hostComponent:ActionBar;
-               
-               /**
-                *  @private
-                */
-               private var _navigationVisible:Boolean = false;
-               
-               /**
-                *  @private
-                */
-               private var _titleContentVisible:Boolean = false;
-               
-               /**
-                *  @private
-                */
-               private var _actionVisible:Boolean = false;
-               
-               /**
-                *  @private
-                */
-               private var border:SpriteVisualElement;
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Skin parts
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  @copy spark.components.ActionBar#navigationGroup
-                */
-               public var navigationGroup:Group;
-               
-               /**
-                *  @copy spark.components.ActionBar#titleGroup
-                */
-               public var titleGroup:Group;
-               
-               /**
-                *  @copy spark.components.ActionBar#actionGroup
-                */
-               public var actionGroup:Group;
-               
-               /**
-                *  @copy spark.components.ActionBar#titleDisplay
-                * 
-                *  @private
-                *  Wraps a StyleableTextField in a UIComponent to be 
compatible with
-                *  ViewTransition effects.
-                */
-               public var titleDisplay:TitleDisplayComponent;
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Overridden methods
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  @private
-                */
-               override protected function createChildren():void
-               {
-                       if (borderClass)
-                       {
-                               border = new borderClass();
-                               addChild(border);
-                       }
-                       
-                       navigationGroup = new Group();
-                       var hLayout:HorizontalLayout = new HorizontalLayout();
-                       hLayout.horizontalAlign = HorizontalAlign.LEFT;
-                       hLayout.verticalAlign = VerticalAlign.MIDDLE;
-                       hLayout.gap = 0;
-                       hLayout.paddingLeft = hLayout.paddingTop = 
hLayout.paddingRight =  hLayout.paddingBottom = 0;
-                       navigationGroup.layout = hLayout;
-                       navigationGroup.id = "navigationGroup";
-                       
-                       titleGroup = new Group();
-                       hLayout = new HorizontalLayout();
-                       hLayout.horizontalAlign = HorizontalAlign.LEFT;
-                       hLayout.verticalAlign = VerticalAlign.MIDDLE;
-                       hLayout.gap = 0;
-                       hLayout.paddingLeft = hLayout.paddingRight = 
layoutTitleGroupHorizontalPadding; 
-                       hLayout.paddingTop = hLayout.paddingBottom = 0;
-                       titleGroup.layout = hLayout;
-                       titleGroup.id = "titleGroup";
-                       
-                       actionGroup = new Group();
-                       hLayout = new HorizontalLayout();
-                       hLayout.horizontalAlign = HorizontalAlign.RIGHT;
-                       hLayout.verticalAlign = VerticalAlign.MIDDLE;
-                       hLayout.gap = 0;
-                       hLayout.paddingLeft = hLayout.paddingTop = 
hLayout.paddingRight =  hLayout.paddingBottom = 0;
-                       actionGroup.layout = hLayout;
-                       actionGroup.id = "actionGroup";
-                       
-                       titleDisplay = new TitleDisplayComponent();
-                       titleDisplay.id = "titleDisplay";
-                       
-                       // initialize titleAlign style (center is managed 
explicitly in layoutContents)
-                       var titleAlign:String = getStyle("titleAlign");
-                       titleAlign = (titleAlign == "center") ? 
TextFormatAlign.LEFT : titleAlign;
-                       titleDisplay.setStyle("textAlign", titleAlign);
-                       
-                       addChild(navigationGroup);
-                       addChild(titleGroup);
-                       addChild(actionGroup);
-                       addChild(titleDisplay);
-               }
-               
-               /**
-                *  @private
-                */
-               override protected function measure():void
-               {
-                       var titleWidth:Number = 0;
-                       var titleHeight:Number = 0;
-                       
-                       if (_titleContentVisible)
-                       {
-                               titleWidth = 
titleGroup.getPreferredBoundsWidth();
-                               titleHeight = 
titleGroup.getPreferredBoundsHeight();
-                       }
-                       else
-                       {
-                               // use titleLayout for paddingLeft and 
paddingRight
-                               var layoutObject:Object = 
hostComponent.titleLayout;
-                               titleWidth = ((layoutObject.paddingLeft) ? 
Number(layoutObject.paddingLeft) : 0)
-                                       + ((layoutObject.paddingRight) ? 
Number(layoutObject.paddingRight) : 0)
-                                       + 
titleDisplay.getPreferredBoundsWidth();
-                               
-                               titleHeight = 
titleDisplay.getPreferredBoundsHeight();
-                       }
-                       
-                       measuredWidth =
-                               getStyle("paddingLeft")
-                               + navigationGroup.getPreferredBoundsWidth()
-                               + titleWidth
-                               + actionGroup.getPreferredBoundsWidth()
-                               + getStyle("paddingRight");
-                       
-                       // measuredHeight is contentGroupHeight, 2x border on 
top and bottom
-                       measuredHeight =
-                               getStyle("paddingTop")
-                               + Math.max(layoutContentGroupHeight,
-                                       
navigationGroup.getPreferredBoundsHeight(), 
-                                       actionGroup.getPreferredBoundsHeight(),
-                                       titleHeight)
-                               + getStyle("paddingBottom");
-               }
-               
-               /**
-                *  @private
-                */
-               override protected function commitCurrentState():void
-               {
-                       super.commitCurrentState();
-                       
-                       _titleContentVisible = 
currentState.indexOf("titleContent") >= 0;
-                       _navigationVisible = currentState.indexOf("Navigation") 
>= 0;
-                       _actionVisible = currentState.indexOf("Action") >= 0;
-                       
-                       invalidateSize();
-                       invalidateDisplayList();
-               }
-               
-               /**
-                *  @private
-                */
-               override public function styleChanged(styleProp:String):void
-               {
-                       if (titleDisplay)
-                       {
-                               var allStyles:Boolean = !styleProp || styleProp 
== "styleName";
-                               
-                               if (allStyles || (styleProp == "titleAlign"))
-                               {
-                                       var titleAlign:String = 
getStyle("titleAlign");
-                                       
-                                       if (titleAlign == "center")
-                                       { 
-                                               // If the title align is set to 
center, the alignment is set to LEFT
-                                               // so that the skin can 
manually center the component in layoutContents
-                                               
titleDisplay.setStyle("textAlign", TextFormatAlign.LEFT);
-                                       }
-                                       else
-                                       {
-                                               
titleDisplay.setStyle("textAlign", titleAlign);
-                                       }
-                               }
-                       }
-                       
-                       super.styleChanged(styleProp);
-               }
-               
-               /**
-                *  @private
-                */
-               override protected function 
layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
-               {
-                       super.layoutContents(unscaledWidth, unscaledHeight);
-                       
-                       var navigationGroupWidth:Number = 0;
-                       
-                       var paddingLeft:Number   = getStyle("paddingLeft"); 
-                       var paddingRight:Number  = getStyle("paddingRight");
-                       var paddingTop:Number    = getStyle("paddingTop");
-                       var paddingBottom:Number = getStyle("paddingBottom");
-                       
-                       var titleCompX:Number = paddingLeft;
-                       var titleCompWidth:Number = 0;
-                       
-                       var actionGroupX:Number = unscaledWidth;
-                       var actionGroupWidth:Number = 0;
-                       
-                       // remove top and bottom padding from content group 
height
-                       var contentGroupsHeight:Number = Math.max(0, 
unscaledHeight - paddingTop - paddingBottom);
-                       
-                       if (border)
-                       {
-                               // FXG uses scale-9, drop shadow is drawn 
outside the bounds
-                               setElementSize(border, unscaledWidth, 
unscaledHeight);
-                       }
-                       
-                       // position groups, overlap of navigation and action 
groups is allowed
-                       // when overlap occurs, titleDisplay/titleGroup is not 
visible
-                       if (_navigationVisible)
-                       {
-                               navigationGroupWidth = 
navigationGroup.getPreferredBoundsWidth();
-                               titleCompX += navigationGroupWidth;
-                               
-                               setElementSize(navigationGroup, 
navigationGroupWidth, contentGroupsHeight);
-                               setElementPosition(navigationGroup, 
paddingLeft, paddingTop);
-                       }
-                       
-                       if (_actionVisible)
-                       {
-                               // actionGroup x position can be negative
-                               actionGroupWidth = 
actionGroup.getPreferredBoundsWidth();
-                               actionGroupX = unscaledWidth - actionGroupWidth 
- paddingRight;
-                               
-                               setElementSize(actionGroup, actionGroupWidth, 
contentGroupsHeight);
-                               setElementPosition(actionGroup, actionGroupX, 
paddingTop);
-                       }
-                       
-                       // titleGroup or titleDisplay is given remaining width 
after navigation
-                       // and action groups preferred widths
-                       titleCompWidth = unscaledWidth - navigationGroupWidth - 
actionGroupWidth
-                               - paddingLeft - paddingRight;
-                       
-                       if (titleCompWidth <= 0)
-                       {
-                               titleDisplay.visible = false;
-                               titleGroup.visible = false;
-                       }
-                       else if (_titleContentVisible)
-                       {
-                               titleDisplay.visible = false;
-                               titleGroup.visible = true;
-                               
-                               // use titleGroup for titleContent
-                               setElementSize(titleGroup, titleCompWidth, 
contentGroupsHeight);
-                               setElementPosition(titleGroup, titleCompX, 
paddingTop);
-                       }
-                       else
-                       {
-                               // use titleDisplay for title text label
-                               titleGroup.visible = false;
-                               
-                               // use titleLayout for paddingLeft and 
paddingRight
-                               var layoutObject:Object = 
hostComponent.titleLayout;
-                               var titlePaddingLeft:Number = 
(layoutObject.paddingLeft) ? Number(layoutObject.paddingLeft) : 0;
-                               var titlePaddingRight:Number = 
(layoutObject.paddingRight) ? Number(layoutObject.paddingRight) : 0;
-                               
-                               // align titleDisplay to the absolute center
-                               var titleAlign:String = getStyle("titleAlign");
-                               
-                               // check for available width after padding
-                               if ((titleCompWidth - titlePaddingLeft - 
titlePaddingRight) <= 0)
-                               {
-                                       titleCompX = 0;
-                                       titleCompWidth = 0;
-                               }
-                               else if (titleAlign == "center")
-                               { 
-                                       // use LEFT instead of CENTER
-                                       titleCompWidth = 
titleDisplay.getExplicitOrMeasuredWidth();
-                                       
-                                       // use x position of titleDisplay to 
implement CENTER
-                                       titleCompX = Math.round((unscaledWidth 
- titleCompWidth) / 2); 
-                                       
-                                       var navigationOverlap:Number = 
navigationGroupWidth + titlePaddingLeft - titleCompX;
-                                       var actionOverlap:Number = (titleCompX 
+ titleCompWidth + titlePaddingRight) - actionGroupX;
-                                       
-                                       // shrink and/or move titleDisplay 
width if there is any
-                                       // overlap after centering
-                                       if ((navigationOverlap > 0) && 
(actionOverlap > 0))
-                                       {
-                                               // remaining width
-                                               titleCompX = 
navigationGroupWidth + titlePaddingLeft;
-                                               titleCompWidth = unscaledWidth 
- navigationGroupWidth - actionGroupWidth - titlePaddingLeft - 
titlePaddingRight;
-                                       }
-                                       else if ((navigationOverlap > 0) || 
(actionOverlap > 0))
-                                       {
-                                               if (navigationOverlap > 0)
-                                               {
-                                                       // nudge to the right
-                                                       titleCompX += 
navigationOverlap;
-                                               }
-                                               else if (actionOverlap > 0)
-                                               {
-                                                       // nudge to the left
-                                                       titleCompX -= 
actionOverlap;
-                                                       
-                                                       // force left padding
-                                                       if (titleCompX < 
(navigationGroupWidth + titlePaddingLeft))
-                                                               titleCompX = 
navigationGroupWidth + titlePaddingLeft;
-                                               }
-                                               
-                                               // recompute action overlap and 
force right padding
-                                               actionOverlap = (titleCompX + 
titleCompWidth + titlePaddingRight) - actionGroupX;
-                                               
-                                               if (actionOverlap > 0)
-                                                       titleCompWidth -= 
actionOverlap;
-                                       }
-                               }
-                               else
-                               {
-                                       // implement padding by adjusting width 
and position
-                                       titleCompX += titlePaddingLeft;
-                                       titleCompWidth = titleCompWidth - 
titlePaddingLeft - titlePaddingRight;
-                               }
-                               
-                               // check for negative width
-                               titleCompWidth = (titleCompWidth < 0) ? 0 : 
titleCompWidth;
-                               
-                               setElementSize(titleDisplay, titleCompWidth, 
contentGroupsHeight);
-                               setElementPosition(titleDisplay, titleCompX, 
paddingTop);
-                               
-                               titleDisplay.visible = true;
-                       }
-               }
-               
-               /**
-                *  @private
-                */
-               override protected function 
drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
-               {
-                       super.drawBackground(unscaledWidth, unscaledHeight);
-                       
-                       var chromeColor:uint = getStyle("chromeColor");
-                       var backgroundAlphaValue:Number = 
getStyle("backgroundAlpha");
-                       var colors:Array = [];
-                       
-                       // apply alpha to chromeColor fill only
-                       var backgroundAlphas:Array = [backgroundAlphaValue, 
backgroundAlphaValue];
-                       
-                       // exclude top and bottom 1px borders
-                       colorMatrix.createGradientBox(unscaledWidth, 
unscaledHeight - (borderSize * 2), Math.PI / 2, 0, 0);
-                       
-                       colors[0] = ColorUtil.adjustBrightness2(chromeColor, 
20);
-                       colors[1] = chromeColor;
-                       
-                       graphics.beginGradientFill(GradientType.LINEAR, colors, 
backgroundAlphas, ACTIONBAR_CHROME_COLOR_RATIOS, colorMatrix);
-                       graphics.drawRect(0, borderSize, unscaledWidth, 
unscaledHeight - (borderSize * 2));
-                       graphics.endFill();
-               }
-               
-       }
-}
-import flash.events.Event;
-
-import mx.core.UIComponent;
-import mx.core.mx_internal;
-import mx.events.FlexEvent;
-
-import spark.components.supportClasses.StyleableTextField;
-import spark.core.IDisplayText;
-
-use namespace mx_internal;
-
-/**
- *  @private
- *  Component that holds StyleableTextFields to produce a drop shadow effect.
- *  Combines label and shadow into a single component to allow transitions to
- *  target them both.
- */
-class TitleDisplayComponent extends UIComponent implements IDisplayText
-{
-       private var titleDisplay:StyleableTextField;
-       private var titleDisplayShadow:StyleableTextField;
-       private var title:String;
-       private var titleChanged:Boolean;
-       
-       public function TitleDisplayComponent()
-       {
-               super();
-               title = "";
-       }
-       
-       override public function get baselinePosition():Number
-       {
-               return titleDisplay.baselinePosition;
-       }
-       
-       /**
-        *  @private
-        */
-       override protected function createChildren():void
-       {
-               super.createChildren();
-               
-               titleDisplay = 
StyleableTextField(createInFontContext(StyleableTextField));
-               titleDisplay.styleName = this;
-               titleDisplay.editable = false;
-               titleDisplay.selectable = false;
-               titleDisplay.multiline = false;
-               titleDisplay.wordWrap = false;
-               titleDisplay.addEventListener(FlexEvent.VALUE_COMMIT,
-                       titleDisplay_valueCommitHandler);
-               
-               titleDisplayShadow =
-                       
StyleableTextField(createInFontContext(StyleableTextField));
-               titleDisplayShadow.styleName = this;
-               titleDisplayShadow.colorName = "textShadowColor";
-               titleDisplayShadow.editable = false;
-               titleDisplayShadow.selectable = false;
-               titleDisplayShadow.multiline = false;
-               titleDisplayShadow.wordWrap = false;
-               
-               addChild(titleDisplayShadow);
-               addChild(titleDisplay);
-       }
-       
-       /**
-        *  @private
-        */
-       override protected function commitProperties():void
-       {
-               super.commitProperties();
-               
-               if (titleChanged)
-               {
-                       titleDisplay.text = title;
-                       
-                       invalidateSize();
-                       invalidateDisplayList();
-                       
-                       titleChanged = false;
-               }
-       }
-       
-       /**
-        *  @private
-        */
-       override protected function measure():void
-       {
-               // reset text if it was truncated before.
-               if (titleDisplay.isTruncated)
-                       titleDisplay.text = title;
-               
-               measuredWidth = titleDisplay.getPreferredBoundsWidth();
-               
-               // tightTextHeight
-               measuredHeight = titleDisplay.getPreferredBoundsHeight();
-       }
-       
-       /**
-        *  @private
-        */
-       override protected function updateDisplayList(unscaledWidth:Number, 
unscaledHeight:Number):void
-       {
-               super.updateDisplayList(unscaledWidth, unscaledHeight);
-               
-               // reset text if it was truncated before.
-               if (titleDisplay.isTruncated)
-                       titleDisplay.text = title;
-               titleDisplay.commitStyles();
-               
-               // use preferred height, setLayoutBoundsSize will accommodate 
for tight
-               // text adjustment
-               var tightHeight:Number = 
titleDisplay.getPreferredBoundsHeight();
-               var tightY:Number = (unscaledHeight - tightHeight) / 2;
-               
-               titleDisplay.setLayoutBoundsSize(unscaledWidth, tightHeight);
-               titleDisplay.setLayoutBoundsPosition(0, (unscaledHeight - 
tightHeight) / 2);
-               
-               // now truncate the text
-               titleDisplay.truncateToFit();
-               
-               titleDisplayShadow.commitStyles();
-               titleDisplayShadow.setLayoutBoundsSize(unscaledWidth, 
tightHeight);
-               titleDisplayShadow.setLayoutBoundsPosition(0, tightY + 1);
-               
-               titleDisplayShadow.alpha = getStyle("textShadowAlpha");
-               
-               // if labelDisplay is truncated, then push it down here as well.
-               // otherwise, it would have gotten pushed in the 
labelDisplay_valueCommitHandler()
-               if (titleDisplay.isTruncated)
-                       titleDisplayShadow.text = titleDisplay.text;
-       }
-       
-       /**
-        *  @private 
-        */ 
-       private function titleDisplay_valueCommitHandler(event:Event):void 
-       {
-               titleDisplayShadow.text = titleDisplay.text;
-       }
-       
-       public function get text():String
-       {
-               return title;
-       }
-       
-       public function set text(value:String):void
-       {
-               title = value;
-               titleChanged = true;
-               
-               invalidateProperties();
-       }
-       
-       public function get isTruncated():Boolean
-       {
-               return titleDisplay.isTruncated;
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/8ccec1f5/tourdeflexmobile/src/spark/skins/android4/ButtonBarFirstButtonSkin.as
----------------------------------------------------------------------
diff --git 
a/tourdeflexmobile/src/spark/skins/android4/ButtonBarFirstButtonSkin.as 
b/tourdeflexmobile/src/spark/skins/android4/ButtonBarFirstButtonSkin.as
deleted file mode 100644
index 4b8cbba..0000000
--- a/tourdeflexmobile/src/spark/skins/android4/ButtonBarFirstButtonSkin.as
+++ /dev/null
@@ -1,93 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.skins.android4
-{
-       import spark.skins.android4.assets.ButtonBarFirstButton_selectedDown;
-       import spark.skins.android4.assets.ButtonBarFirstButton_selectedUp;
-       import spark.skins.mobile.supportClasses.ButtonBarButtonSkinBase;
-       
-       /**
-        *  Android 4.x specific Button skin for the first Button in a 
ButtonBar.
-        * 
-        *  @see spark.components.ButtonBar#firstButton
-        * 
-        *  @langversion 3.0
-        *  @playerversion Flash 10
-        *  @playerversion AIR 2.5 
-        *  @productversion Flex 4.5
-        */
-       public class ButtonBarFirstButtonSkin extends ButtonBarButtonSkinBase
-       {
-               
-               /**
-                *  Class to use for the border in the selected and down state.
-                * 
-                *  @langversion 3.0
-                *  @playerversion Flash 10
-                *  @playerversion AIR 2.5 
-                *  @productversion Flex 4.5
-                */  
-               protected var selectedDownBorderSkin:Class;
-               
-               /**
-                *  Constructor.
-                * 
-                *  @langversion 3.0
-                *  @playerversion Flash 10
-                *  @playerversion AIR 2.5 
-                *  @productversion Flex 4.5
-                */
-               public function ButtonBarFirstButtonSkin()
-               {
-                       super();
-                       
-                       upBorderSkin = 
spark.skins.android4.assets.ButtonBarFirstButton_up;
-                       downBorderSkin = 
spark.skins.android4.assets.ButtonBarFirstButton_down;
-                       selectedBorderSkin = 
spark.skins.android4.assets.ButtonBarFirstButton_selectedUp;
-                       selectedDownBorderSkin = 
spark.skins.android4.assets.ButtonBarFirstButton_selectedDown;
-               }
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Overridden methods
-               //
-               
//--------------------------------------------------------------------------
-               
-               override protected function 
drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
-               {
-                       //Dont draw background
-               }
-               
-               override protected function 
getBorderClassForCurrentState():Class
-               {
-                       var isSelected:Boolean = 
currentState.indexOf("Selected") >= 0;
-                       var isDown:Boolean = currentState.indexOf("down") >= 0;
-                       
-                       if (isSelected && !isDown )
-                               return selectedBorderSkin;
-                       else if (isSelected && isDown)
-                               return selectedDownBorderSkin;
-                       else if (!isSelected && !isDown)
-                               return upBorderSkin;
-                       else 
-                               return downBorderSkin;
-               }
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/8ccec1f5/tourdeflexmobile/src/spark/skins/android4/ButtonBarMiddleButtonSkin.as
----------------------------------------------------------------------
diff --git 
a/tourdeflexmobile/src/spark/skins/android4/ButtonBarMiddleButtonSkin.as 
b/tourdeflexmobile/src/spark/skins/android4/ButtonBarMiddleButtonSkin.as
deleted file mode 100644
index c6206d0..0000000
--- a/tourdeflexmobile/src/spark/skins/android4/ButtonBarMiddleButtonSkin.as
+++ /dev/null
@@ -1,95 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.skins.android4
-{
-       
-       import spark.skins.android4.assets.ButtonBarMiddleButton_selectedDown;
-       import spark.skins.android4.assets.ButtonBarMiddleButton_selectedUp;
-       import spark.skins.android4.assets.ButtonBarMiddleButton_up;
-       import spark.skins.mobile.supportClasses.ButtonBarButtonSkinBase;
-       
-       /**
-        *  Android 4.x specific Button skin for middle Buttons in a ButtonBar.
-        * 
-        *  @see spark.components.ButtonBar#middleButton
-        * 
-        *  @langversion 3.0
-        *  @playerversion Flash 10
-        *  @playerversion AIR 2.5 
-        *  @productversion Flex 4.5
-        */
-       public class ButtonBarMiddleButtonSkin extends ButtonBarButtonSkinBase
-       {
-               
-               /**
-                *  Class to use for the border in the selected and down state.
-                * 
-                *  @langversion 3.0
-                *  @playerversion Flash 10
-                *  @playerversion AIR 2.5 
-                *  @productversion Flex 4.5
-                */  
-               protected var selectedDownBorderSkin:Class;
-               
-               /**
-                *  Constructor.
-                * 
-                *  @langversion 3.0
-                *  @playerversion Flash 10
-                *  @playerversion AIR 2.5 
-                *  @productversion Flex 4.5
-                */
-               public function ButtonBarMiddleButtonSkin()
-               {
-                       super();
-                       
-                       upBorderSkin = 
spark.skins.android4.assets.ButtonBarMiddleButton_up;
-                       downBorderSkin = 
spark.skins.android4.assets.ButtonBarMiddleButton_down;
-                       selectedBorderSkin = 
spark.skins.android4.assets.ButtonBarMiddleButton_selectedUp;
-                       selectedDownBorderSkin = 
spark.skins.android4.assets.ButtonBarMiddleButton_selectedDown;
-               }
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Overridden methods
-               //
-               
//--------------------------------------------------------------------------
-               
-               override protected function 
drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
-               {
-                       //Dont draw background
-               }
-               
-               override protected function 
getBorderClassForCurrentState():Class
-               {
-                       var isSelected:Boolean = 
currentState.indexOf("Selected") >= 0;
-                       var isDown:Boolean = currentState.indexOf("down") >= 0;
-                       
-                       if (isSelected && !isDown )
-                               return selectedBorderSkin;
-                       else if (isSelected && isDown)
-                               return selectedDownBorderSkin;
-                       else if (!isSelected && !isDown)
-                               return upBorderSkin;
-                       else 
-                               return downBorderSkin;
-               }
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/8ccec1f5/tourdeflexmobile/src/spark/skins/android4/ButtonBarSkin.as
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/spark/skins/android4/ButtonBarSkin.as 
b/tourdeflexmobile/src/spark/skins/android4/ButtonBarSkin.as
deleted file mode 100644
index 4b194fd..0000000
--- a/tourdeflexmobile/src/spark/skins/android4/ButtonBarSkin.as
+++ /dev/null
@@ -1,166 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.skins.android4
-{
-import spark.components.ButtonBar;
-import spark.components.ButtonBarButton;
-import spark.components.DataGroup;
-import spark.components.supportClasses.ButtonBarHorizontalLayout;
-import spark.skins.android4.ButtonBarFirstButtonSkin;
-import spark.skins.mobile.ButtonBarLastButtonSkin;
-import spark.skins.mobile.supportClasses.ButtonBarButtonClassFactory;
-import spark.skins.mobile.supportClasses.MobileSkin;
-
-/**
- *  The Android 4.x specific skin class for the Spark ButtonBar component.
- *
- *  @see spark.components.ButtonBar
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 2.5
- *  @productversion Flex 4.5
- */
-public class ButtonBarSkin extends MobileSkin
-{
-    
//--------------------------------------------------------------------------
-    //
-    //  Constructor
-    //
-    
//--------------------------------------------------------------------------
-    
-    /**
-     * Constructor.
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     *
-     */
-    public function ButtonBarSkin()
-    {
-        super();
-    }
-    
-    
//--------------------------------------------------------------------------
-    //
-    //  Skin parts
-    //
-    
//--------------------------------------------------------------------------
-    
-    /**
-     *  @copy spark.skins.spark.ApplicationSkin#hostComponent
-     */
-    public var hostComponent:ButtonBar;
-    
-    /**
-     *  @copy spark.components.ButtonBar#firstButton
-     */
-    public var firstButton:ButtonBarButtonClassFactory;
-    
-    /**
-     *  @copy spark.components.ButtonBar#lastButton
-     */
-    public var lastButton:ButtonBarButtonClassFactory;
-    
-    /**
-     *  @copy spark.components.ButtonBar#middleButton
-     */
-    public var middleButton:ButtonBarButtonClassFactory;
-    
-    /**
-     *  @copy spark.components.SkinnableDataContainer#dataGroup
-     */
-    public var dataGroup:DataGroup;
-    
-    
//--------------------------------------------------------------------------
-    //
-    //  Overridden methods
-    //
-    
//--------------------------------------------------------------------------
-    
-    /**
-     *  @private
-     */
-    override protected function createChildren():void
-    {
-        // Set up the class factories for the buttons
-        if (!firstButton)
-        {
-            firstButton = new ButtonBarButtonClassFactory(ButtonBarButton);
-            firstButton.skinClass = 
spark.skins.android4.ButtonBarFirstButtonSkin;
-        }
-        
-        if (!lastButton)
-        {
-            lastButton = new ButtonBarButtonClassFactory(ButtonBarButton);
-            lastButton.skinClass = 
spark.skins.android4.ButtonBarFirstButtonSkin;
-        }
-        
-        if (!middleButton)
-        {
-            middleButton = new ButtonBarButtonClassFactory(ButtonBarButton);
-            middleButton.skinClass = 
spark.skins.android4.ButtonBarMiddleButtonSkin;
-        }
-        
-        // create the data group to house the buttons
-        if (!dataGroup)
-        {
-            dataGroup = new DataGroup();
-            var hLayout:ButtonBarHorizontalLayout = new 
ButtonBarHorizontalLayout();
-            hLayout.gap = 0;
-            dataGroup.layout = hLayout;
-            addChild(dataGroup);
-        }
-    }
-    
-    /**
-     *  @private
-     */
-    override protected function commitCurrentState():void
-    {
-        alpha = (currentState == "disabled") ? 0.5 : 1;
-    }
-    
-    /**
-     *  @private
-     */
-    override protected function measure():void
-    {
-        measuredWidth = dataGroup.measuredWidth;
-        measuredHeight = dataGroup.measuredHeight;
-        
-        measuredMinWidth = dataGroup.measuredMinWidth;
-        measuredMinHeight = dataGroup.measuredMinHeight;
-    }
-    
-    /**
-     *  @private
-     */
-    override protected function layoutContents(unscaledWidth:Number, 
unscaledHeight:Number):void
-    {
-        super.layoutContents(unscaledWidth, unscaledHeight);
-        
-        setElementPosition(dataGroup, 0, 0);
-        setElementSize(dataGroup, unscaledWidth, unscaledHeight);
-    }
-}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/8ccec1f5/tourdeflexmobile/src/spark/skins/android4/ButtonSkin.as
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/spark/skins/android4/ButtonSkin.as 
b/tourdeflexmobile/src/spark/skins/android4/ButtonSkin.as
deleted file mode 100644
index 43fb108..0000000
--- a/tourdeflexmobile/src/spark/skins/android4/ButtonSkin.as
+++ /dev/null
@@ -1,397 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.skins.android4
-{
-
-import flash.display.DisplayObject;
-
-import mx.core.DPIClassification;
-import mx.core.mx_internal;
-import mx.events.FlexEvent;
-
-import spark.components.supportClasses.StyleableTextField;
-import spark.skins.android4.assets.Button_down;
-import spark.skins.android4.assets.Button_up;
-import spark.skins.mobile.supportClasses.ButtonSkinBase;
-
-
-use namespace mx_internal;
-
-/**
- *  ActionScript-based skin for Button controls in mobile applications. The 
skin supports 
- *  iconClass and labelPlacement. It uses FXG classes to 
- *  implement the vector drawing.  
- * 
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 2.5 
- *  @productversion Flex 4.5
- */
-public class ButtonSkin extends ButtonSkinBase
-{
-    
//--------------------------------------------------------------------------
-    //
-    //  Class constants
-    //
-    
//--------------------------------------------------------------------------
-    
-    /**
-     * An array of color distribution ratios.
-     * This is used in the chrome color fill.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    mx_internal static const CHROME_COLOR_RATIOS:Array = [0, 127.5];
-    
-    /**
-     * An array of alpha values for the corresponding colors in the colors 
array. 
-     * This is used in the chrome color fill.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    mx_internal static const CHROME_COLOR_ALPHAS:Array = [1, 1];
-    
-    
//--------------------------------------------------------------------------
-    //
-    //  Constructor
-    //
-    
//--------------------------------------------------------------------------
-    /**
-     *  Constructor.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public function ButtonSkin()
-    {
-        super();
-               upBorderSkin = spark.skins.android4.assets.Button_up;
-               downBorderSkin = spark.skins.android4.assets.Button_down;
-               layoutCornerEllipseSize = 0;
-        
-        switch (applicationDPI)
-        {
-                       case DPIClassification.DPI_640:
-                       {
-                               
-                               layoutGap = 20;
-                               layoutPaddingLeft = 40;
-                               layoutPaddingRight = 40;
-                               layoutPaddingTop = 40;
-                               layoutPaddingBottom = 40;
-                               layoutBorderSize = 2;
-                               measuredDefaultWidth = 128;
-                               measuredDefaultHeight = 172;
-                               
-                               break;
-                       }
-                       case DPIClassification.DPI_480:
-                       {
-                               
-                               layoutGap = 14;
-                               layoutPaddingLeft = 30;
-                               layoutPaddingRight = 30;
-                               layoutPaddingTop = 30;
-                               layoutPaddingBottom = 30;
-                               layoutBorderSize = 2;
-                               measuredDefaultWidth = 96;
-                               measuredDefaultHeight = 130;
-                               
-                               break;
-                       }
-            case DPIClassification.DPI_320:
-            {
-                
-                layoutGap = 10;
-                layoutPaddingLeft = 20;
-                layoutPaddingRight = 20;
-                layoutPaddingTop = 20;
-                layoutPaddingBottom = 20;
-                layoutBorderSize = 2;
-                measuredDefaultWidth = 64;
-                measuredDefaultHeight = 86;
-                
-                break;
-            }
-                       case DPIClassification.DPI_240:
-                       {
-                               
-                               layoutGap = 7;
-                               layoutPaddingLeft = 15;
-                               layoutPaddingRight = 15;
-                               layoutPaddingTop = 15;
-                               layoutPaddingBottom = 15;
-                               layoutBorderSize = 1;
-                               measuredDefaultWidth = 48;
-                               measuredDefaultHeight = 65;
-                               
-                               break;
-                       }
-                       case DPIClassification.DPI_120:
-                       {
-                               
-                               layoutGap = 4;
-                               layoutPaddingLeft = 8;
-                               layoutPaddingRight = 8;
-                               layoutPaddingTop = 8;
-                               layoutPaddingBottom = 8;
-                               layoutBorderSize = 1;
-                               measuredDefaultWidth = 24;
-                               measuredDefaultHeight = 33;
-                               
-                               break;
-                       }
-            default:
-            {
-                
-                layoutGap = 5;
-                layoutPaddingLeft = 10;
-                layoutPaddingRight = 10;
-                layoutPaddingTop = 10;
-                layoutPaddingBottom = 10;
-                layoutBorderSize = 1;
-                measuredDefaultWidth = 32;
-                measuredDefaultHeight = 43;
-                
-                break;
-            }
-        }
-    }
-    
-    
//--------------------------------------------------------------------------
-    //
-    //  Layout variables
-    //
-    
//--------------------------------------------------------------------------
-    
-    /**
-     *  Defines the corner radius.
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5 
-     *  @productversion Flex 4.5
-     */  
-    protected var layoutCornerEllipseSize:uint;
-    
-    
//--------------------------------------------------------------------------
-    //
-    //  Variables
-    //
-    
//--------------------------------------------------------------------------
-    private var _border:DisplayObject;
-    
-    private var changeFXGSkin:Boolean = false;
-    
-    private var borderClass:Class;
-    
-    mx_internal var fillColorStyleName:String = "chromeColor";
-    
-    /**
-     *  Defines the shadow for the Button control's label.
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5 
-     *  @productversion Flex 4.5
-     */  
-    public var labelDisplayShadow:StyleableTextField;
-    
-    /**
-     *  Read-only button border graphic. Use getBorderClassForCurrentState()
-     *  to specify a graphic per-state.
-     * 
-     *  @see #getBorderClassForCurrentState()
-     */
-    protected function get border():DisplayObject
-    {
-        return _border;
-    }
-    
-    
//--------------------------------------------------------------------------
-    //
-    //  Properties
-    //
-    
//--------------------------------------------------------------------------
-    
-    /**
-     *  Class to use for the border in the up state.
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5 
-     *  @productversion Flex 4.5
-     * 
-     *  @default Button_up
-     */  
-    protected var upBorderSkin:Class;
-    
-    /**
-     *  Class to use for the border in the down state.
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5 
-     *  @productversion Flex 4.5
-     *       
-     *  @default Button_down
-     */ 
-    protected var downBorderSkin:Class;
-    
-    
-    
//--------------------------------------------------------------------------
-    //
-    //  Overridden methods
-    //
-    
//--------------------------------------------------------------------------
-    
-    /**
-     *  @private
-     */
-    override protected function createChildren():void
-    {
-        super.createChildren();
-        
-        if (!labelDisplayShadow && labelDisplay)
-        {
-            labelDisplayShadow = 
StyleableTextField(createInFontContext(StyleableTextField));
-            labelDisplayShadow.styleName = this;
-            labelDisplayShadow.colorName = "textShadowColor";
-            labelDisplayShadow.useTightTextBounds = false;
-            
-            // add shadow before display
-            addChildAt(labelDisplayShadow, getChildIndex(labelDisplay));
-        }
-        
-        setStyle("textAlign", "center");
-    }
-    
-    /**
-     *  @private 
-     */
-    override protected function commitCurrentState():void
-    {   
-        super.commitCurrentState();
-        
-        borderClass = getBorderClassForCurrentState();
-        
-        if (!(_border is borderClass))
-            changeFXGSkin = true;
-        
-        // update borderClass and background
-        invalidateDisplayList();
-    }
-    
-    /**
-     *  @private
-     */
-    override protected function layoutContents(unscaledWidth:Number, 
unscaledHeight:Number):void
-    {
-        super.layoutContents(unscaledWidth, unscaledHeight);
-        
-        // size the FXG background
-        if (changeFXGSkin)
-        {
-            changeFXGSkin = false;
-            
-            if (_border)
-            {
-                removeChild(_border);
-                _border = null;
-            }
-            
-            if (borderClass)
-            {
-                _border = new borderClass();
-                addChildAt(_border, 0);
-            }
-        }
-        
-        layoutBorder(unscaledWidth, unscaledHeight);
-        
-        // update label shadow
-        labelDisplayShadow.alpha = getStyle("textShadowAlpha");
-        labelDisplayShadow.commitStyles();
-        
-        // don't use tightText positioning on shadow
-        setElementPosition(labelDisplayShadow, labelDisplay.x, labelDisplay.y 
+ 1);
-        setElementSize(labelDisplayShadow, labelDisplay.width, 
labelDisplay.height);
-        
-        // if labelDisplay is truncated, then push it down here as well.
-        // otherwise, it would have gotten pushed in the 
labelDisplay_valueCommitHandler()
-        if (labelDisplay.isTruncated)
-            labelDisplayShadow.text = labelDisplay.text;
-    }
-    
-    /**
-     *  Position the background of the skin. Override this function to 
re-position the background. 
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5 
-     *  @productversion Flex 4.5
-     */ 
-    mx_internal function layoutBorder(unscaledWidth:Number, 
unscaledHeight:Number):void
-    {
-        setElementSize(border, unscaledWidth, unscaledHeight);
-        setElementPosition(border, 0, 0);
-    }
-    
-    /**
-     *  Returns the borderClass to use based on the currentState.
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5 
-     *  @productversion Flex 4.5
-     */
-    protected function getBorderClassForCurrentState():Class
-    {
-        if (currentState == "down") 
-            return downBorderSkin;
-        else
-            return upBorderSkin;
-    }
-    
-    
//--------------------------------------------------------------------------
-    //
-    //  Event Handlers
-    //
-    
//--------------------------------------------------------------------------
-    
-    /**
-     *  @private 
-     */
-    override protected function 
labelDisplay_valueCommitHandler(event:FlexEvent):void 
-    {
-        super.labelDisplay_valueCommitHandler(event);
-        labelDisplayShadow.text = labelDisplay.text;
-    }
-    
-}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/8ccec1f5/tourdeflexmobile/src/spark/skins/android4/CalloutSkin.as
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/spark/skins/android4/CalloutSkin.as 
b/tourdeflexmobile/src/spark/skins/android4/CalloutSkin.as
deleted file mode 100644
index 22f04f5..0000000
--- a/tourdeflexmobile/src/spark/skins/android4/CalloutSkin.as
+++ /dev/null
@@ -1,825 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.skins.android4
-{
-       import flash.display.BlendMode;
-       import flash.display.GradientType;
-       import flash.display.Graphics;
-       import flash.display.Sprite;
-       import flash.events.Event;
-       
-       import mx.core.DPIClassification;
-       import mx.core.UIComponent;
-       import mx.core.mx_internal;
-       import mx.events.EffectEvent;
-       import mx.events.FlexEvent;
-       import mx.utils.ColorUtil;
-       
-       import spark.components.ArrowDirection;
-       import spark.components.Callout;
-       import spark.components.ContentBackgroundAppearance;
-       import spark.components.Group;
-       import spark.core.SpriteVisualElement;
-       import spark.effects.Fade;
-       import spark.primitives.RectangularDropShadow;
-       import spark.skins.android4.assets.CalloutContentBackground;
-       import spark.skins.android4.supportClasses.CalloutArrow;
-       import spark.skins.mobile.supportClasses.MobileSkin;
-       
-       use namespace mx_internal;
-       
-       /**
-        *  The default skin class for the Spark Callout component in mobile
-        *  applications.
-        * 
-        *  <p>The <code>contentGroup</code> lies above a 
<code>backgroundColor</code> fill
-        *  which frames the <code>contentGroup</code>. The position and size 
of the frame 
-        *  adjust based on the host component <code>arrowDirection</code>, 
leaving
-        *  space for the <code>arrow</code> to appear on the outside edge of 
the
-        *  frame.</p>
-        * 
-        *  <p>The <code>arrow</code> skin part is not positioned by the skin. 
Instead,
-        *  the Callout component positions the arrow relative to the owner in
-        *  <code>updateSkinDisplayList()</code>. This method assumes that 
Callout skin
-        *  and the <code>arrow</code> use the same coordinate space.</p>
-        *  
-        *  @see spark.components.Callout
-        *  
-        *  @langversion 3.0
-        *  @playerversion AIR 3
-        *  @productversion Flex 4.6
-        */ 
-       public class CalloutSkin extends MobileSkin
-       {
-               mx_internal static const BACKGROUND_GRADIENT_BRIGHTNESS_TOP:int 
= 15;
-               
-               mx_internal static const 
BACKGROUND_GRADIENT_BRIGHTNESS_BOTTOM:int = -15;
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Constructor
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  Constructor. 
-                * 
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               public function CalloutSkin()
-               {
-                       super();
-                       
-                       dropShadowAlpha = 0.7;
-                       contentBackgroundInsetClass = 
spark.skins.android4.assets.CalloutContentBackground;
-                       
-                       switch (applicationDPI)
-                       {
-                               case DPIClassification.DPI_640:
-                               {
-                                       
-                                       backgroundCornerRadius = 24;
-                                       backgroundGradientHeight = 440;
-                                       frameThickness = 12;
-                                       arrowWidth = 160;
-                                       arrowHeight = 80;
-                                       contentCornerRadius = 40;
-                                       dropShadowBlurX = 64;
-                                       dropShadowBlurY = 64;
-                                       dropShadowDistance = 12;
-                                       highlightWeight = 4;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_480:
-                               {
-                                       backgroundCornerRadius = 16;
-                                       backgroundGradientHeight = 330;
-                                       frameThickness = 8;
-                                       arrowWidth = 120;
-                                       arrowHeight = 60;
-                                       contentCornerRadius = 28;
-                                       dropShadowBlurX = 48;
-                                       dropShadowBlurY = 48;
-                                       dropShadowDistance = 8;
-                                       highlightWeight = 2;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_320:
-                               {
-                                       
-                                       backgroundCornerRadius = 12;
-                                       backgroundGradientHeight = 220;
-                                       frameThickness = 6;
-                                       arrowWidth = 80;
-                                       arrowHeight = 40;
-                                       contentCornerRadius = 20;
-                                       dropShadowBlurX = 32;
-                                       dropShadowBlurY = 32;
-                                       dropShadowDistance = 6;
-                                       highlightWeight = 2;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_240:
-                               {
-                                       backgroundCornerRadius = 8;
-                                       backgroundGradientHeight = 165;
-                                       frameThickness = 4;
-                                       arrowWidth = 60;
-                                       arrowHeight = 30;
-                                       contentCornerRadius = 14;
-                                       dropShadowBlurX = 24;
-                                       dropShadowBlurY = 24;
-                                       dropShadowDistance = 4;
-                                       highlightWeight = 1;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_120:
-                               {
-                                       backgroundCornerRadius = 4;
-                                       backgroundGradientHeight = 83;
-                                       frameThickness = 2;
-                                       arrowWidth = 30;
-                                       arrowHeight = 15;
-                                       contentCornerRadius = 7;
-                                       dropShadowBlurX = 12;
-                                       dropShadowBlurY = 12;
-                                       dropShadowDistance = 2;
-                                       highlightWeight = 0.5;
-                                       
-                                       break;
-                               }
-                               default:
-                               {
-                                       // default DPI_160
-                                       backgroundCornerRadius = 6;
-                                       backgroundGradientHeight = 110;
-                                       frameThickness = 3;
-                                       arrowWidth = 40;
-                                       arrowHeight = 20;
-                                       contentCornerRadius = 10;
-                                       dropShadowBlurX = 16;
-                                       dropShadowBlurY = 16;
-                                       dropShadowDistance = 3;
-                                       highlightWeight = 1;
-                                       
-                                       break;
-                               }
-                       }
-               }
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Variables
-               //
-               
//--------------------------------------------------------------------------
-               
-               /** 
-                *  @copy spark.skins.spark.ApplicationSkin#hostComponent
-                */
-               public var hostComponent:Callout;
-               
-               /**
-                *  Enables a RectangularDropShadow behind the 
<code>backgroundColor</code> frame.
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var dropShadowVisible:Boolean = true;
-               
-               /**
-                *  Enables a vertical linear gradient in the 
<code>backgroundColor</code> frame. This
-                *  gradient fill is drawn across both the arrow and the frame. 
By default,
-                *  the gradient brightens the background color by 15% and 
darkens it by 60%.
-                * 
-                *  @default true
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var useBackgroundGradient:Boolean = true;
-               
-               /**
-                *  Corner radius used for the 
<code>contentBackgroundColor</code> fill.
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var contentCornerRadius:uint;
-               
-               /**
-                *  A class reference to an FXG class that is layered 
underneath the
-                *  <code>contentGroup</code>. The instance of this class is 
sized to match the
-                *  <code>contentGroup</code>.
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var contentBackgroundInsetClass:Class;
-               
-               /**
-                *  Corner radius of the <code>backgroundColor</code> "frame".
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var backgroundCornerRadius:Number;
-               
-               /**
-                *  The thickness of the <code>backgroundColor</code> "frame" 
that surrounds the
-                *  <code>contentGroup</code>.
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var frameThickness:Number;
-               
-               /**
-                *  Color of the border stroke around the 
<code>backgroundColor</code> "frame".
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var borderColor:Number = -1; // not set
-               
-               /**
-                *  Thickness of the border stroke around the 
<code>backgroundColor</code>
-                *  "frame".
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var borderThickness:Number = -1 ;      // marker that 
borderThickness was not set  directly
-               
-               /**
-                *  Width of the arrow in vertical directions. This property 
also controls
-                *  the height of the arrow in horizontal directions.
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var arrowWidth:Number;
-               
-               /**
-                *  Height of the arrow in vertical directions. This property 
also controls
-                *  the width of the arrow in horizontal directions.
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               protected var arrowHeight:Number;
-               
-               /**
-                *  @private
-                *  Instance of the contentBackgroundClass
-                */
-               mx_internal var contentBackgroundGraphic:SpriteVisualElement;
-               
-               /**
-                *  @private
-                *  Tracks changes to the skin state to support the fade out 
tranisition 
-                *  when closed;
-                */
-               mx_internal var isOpen:Boolean;
-               
-               private var backgroundGradientHeight:Number;
-               
-               private var contentMask:Sprite;
-               
-               private var backgroundFill:SpriteVisualElement;
-               
-               private var dropShadow:RectangularDropShadow;
-               
-               private var dropShadowBlurX:Number;
-               
-               private var dropShadowBlurY:Number;
-               
-               private var dropShadowDistance:Number;
-               
-               private var dropShadowAlpha:Number;
-               
-               private var fade:Fade;
-               
-               private var highlightWeight:Number;
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Skin parts
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  @copy spark.components.SkinnableContainer#contentGroup
-                */
-               public var contentGroup:Group;
-               
-               /**
-                * @copy spark.components.Callout#arrow
-                */
-               public var arrow:UIComponent;
-               
-               /* helper private accessors */
-               
-               /* returns borderThickness from style if member is -1, or 
borderThickness.  Returns 0 if NaN */
-               mx_internal function get actualBorderThickness():Number
-               {
-                       var border: Number =  borderThickness != -1 ? 
borderThickness : getStyle('borderThickness');
-                       return isNaN(border)? 0: border;
-               }
-               
-               mx_internal function get actualBorderColor():uint
-               {
-                       return borderColor != -1 ? borderColor: 
getStyle('borderColor');
-               }
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Overridden methods
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                * @private
-                */
-               override protected function createChildren():void
-               {
-                       super.createChildren();
-                       
-                       if (dropShadowVisible)
-                       {
-                               dropShadow = new RectangularDropShadow();
-                               dropShadow.angle = 90;
-                               dropShadow.distance = dropShadowDistance;
-                               dropShadow.blurX = dropShadowBlurX;
-                               dropShadow.blurY = dropShadowBlurY;
-                               dropShadow.tlRadius = dropShadow.trRadius = 
dropShadow.blRadius = 
-                                       dropShadow.brRadius = 
backgroundCornerRadius ;
-                               dropShadow.mouseEnabled = false;
-                               dropShadow.alpha = dropShadowAlpha;
-                               addChild(dropShadow);
-                       }
-                       
-                       // background fill placed above the drop shadow
-                       backgroundFill = new SpriteVisualElement();
-                       addChild(backgroundFill);
-                       
-                       // arrow
-                       if (!arrow)
-                       {
-                               arrow = new CalloutArrow();
-                               arrow.id = "arrow";
-                               arrow.styleName = this;
-                               addChild(arrow);
-                       }
-                       
-                       // contentGroup
-                       if (!contentGroup)
-                       {
-                               contentGroup = new Group();
-                               contentGroup.id = "contentGroup";
-                               addChild(contentGroup);
-                       }
-                       
-                       
-               }
-               
-               /**
-                * @private
-                */
-               override protected function commitProperties():void
-               {
-                       super.commitProperties();
-                       
-                       // add or remove the contentBackgroundGraphic
-                       var contentBackgroundAppearance:String = 
getStyle("contentBackgroundAppearance");
-                       
-                       if (contentBackgroundAppearance == 
ContentBackgroundAppearance.INSET)
-                       {
-                               // create the contentBackgroundGraphic
-                               if (!contentBackgroundGraphic && 
contentBackgroundInsetClass)
-                               {
-                                       contentBackgroundGraphic = new 
contentBackgroundInsetClass() as SpriteVisualElement;
-                                       
-                                       // with the current skin structure, 
contentBackgroundGraphic is
-                                       // always the last child
-                                       addChild(contentBackgroundGraphic);
-                               }
-                       }
-                       else if (contentBackgroundGraphic)
-                       {
-                               // if already created, remove the graphic for 
"flat" and "none"
-                               removeChild(contentBackgroundGraphic);
-                               contentBackgroundGraphic = null;
-                       }
-                       
-                       // always invalidate to accomodate arrow direction 
changes
-                       invalidateSize();
-                       invalidateDisplayList();
-               }
-               
-               
-               /**
-                * @private
-                */
-               override protected function measure():void
-               {
-                       super.measure();
-                       
-                       var borderWeight:Number =actualBorderThickness;
-                       var frameAdjustment:Number = (frameThickness + 
borderWeight) * 2;
-                       
-                       var arrowMeasuredWidth:Number;
-                       var arrowMeasuredHeight:Number;
-                       
-                       // pad the arrow so that the edges are within the 
background corner radius
-                       if (isArrowHorizontal)
-                       {
-                               arrowMeasuredWidth = arrowHeight;
-                               arrowMeasuredHeight = arrowWidth + 
(backgroundCornerRadius * 2);
-                       }
-                       else if (isArrowVertical)
-                       {
-                               arrowMeasuredWidth = arrowWidth + 
(backgroundCornerRadius * 2);
-                               arrowMeasuredHeight = arrowHeight;
-                       }
-                       
-                       // count the contentGroup size and frame size
-                       measuredMinWidth = contentGroup.measuredMinWidth + 
frameAdjustment;
-                       measuredMinHeight = contentGroup.measuredMinHeight + 
frameAdjustment;
-                       
-                       measuredWidth = contentGroup.getPreferredBoundsWidth() 
+ frameAdjustment;
-                       measuredHeight = 
contentGroup.getPreferredBoundsHeight() + frameAdjustment;
-                       
-                       // add the arrow size based on the arrowDirection
-                       if (isArrowHorizontal)
-                       {
-                               measuredMinWidth += arrowMeasuredWidth;
-                               measuredMinHeight = Math.max(measuredMinHeight, 
arrowMeasuredHeight);
-                               
-                               measuredWidth += arrowMeasuredWidth;
-                               measuredHeight = Math.max(measuredHeight, 
arrowMeasuredHeight);
-                       }
-                       else if (isArrowVertical)
-                       {
-                               measuredMinWidth += Math.max(measuredMinWidth, 
arrowMeasuredWidth);
-                               measuredMinHeight += arrowMeasuredHeight;
-                               
-                               measuredWidth = Math.max(measuredWidth, 
arrowMeasuredWidth);
-                               measuredHeight += arrowMeasuredHeight;
-                       }
-               }
-               
-               /**
-                *  @private
-                *  SkinnaablePopUpContainer skins must dispatch a 
-                *  FlexEvent.STATE_CHANGE_COMPLETE event for the component to 
properly
-                *  update the skin state.
-                */
-               override protected function commitCurrentState():void
-               {
-                       super.commitCurrentState();
-                       
-                       var isNormal:Boolean = (currentState == "normal");
-                       var isDisabled:Boolean = (currentState == "disabled")
-                       
-                       // play a fade out if the callout was previously open
-                       if (!(isNormal || isDisabled) && isOpen)
-                       {
-                               if (!fade)
-                               {
-                                       fade = new Fade();
-                                       fade.target = this;
-                                       fade.duration = 200;
-                                       fade.alphaTo = 0;
-                               }
-                               
-                               // BlendMode.LAYER while fading out
-                               blendMode = BlendMode.LAYER;
-                               
-                               // play a short fade effect
-                               fade.addEventListener(EffectEvent.EFFECT_END, 
stateChangeComplete);
-                               fade.play();
-                               
-                               isOpen = false;
-                       }
-                       else
-                       {
-                               isOpen = isNormal || isDisabled;
-                               
-                               // handle re-opening the Callout while fading 
out
-                               if (fade && fade.isPlaying)
-                               {
-                                       // Do not dispatch a state change 
complete.
-                                       // SkinnablePopUpContainer handles 
state interruptions.
-                                       
fade.removeEventListener(EffectEvent.EFFECT_END, stateChangeComplete);
-                                       fade.stop();
-                               }
-                               
-                               if (isDisabled)
-                               {
-                                       // BlendMode.LAYER to allow 
CalloutArrow BlendMode.ERASE
-                                       blendMode = BlendMode.LAYER;
-                                       
-                                       alpha = 0.5;
-                               }
-                               else
-                               {
-                                       // BlendMode.NORMAL for non-animated 
state transitions
-                                       blendMode = BlendMode.NORMAL;
-                                       
-                                       if (isNormal)
-                                               alpha = 1;
-                                       else
-                                               alpha = 0;
-                               }
-                               
-                               stateChangeComplete();
-                       }
-               }
-               
-               /**
-                * @private
-                */
-               override protected function 
drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
-               {
-                       super.drawBackground(unscaledWidth, unscaledHeight);
-                       
-                       var frameEllipseSize:Number = backgroundCornerRadius * 
2;
-                       
-                       // account for borderThickness center stroke alignment
-                       var borderWeight:Number =actualBorderThickness;
-                       var showBorder:Boolean = borderWeight > 0 ;
-                       
-                       
-                       // contentBackgroundGraphic already accounts for the 
arrow position
-                       // use it's positioning instead of recalculating based 
on unscaledWidth
-                       // and unscaledHeight
-                       var frameX:Number = 
Math.floor(contentGroup.getLayoutBoundsX() - frameThickness) - (borderWeight / 
2);
-                       var frameY:Number = 
Math.floor(contentGroup.getLayoutBoundsY() - frameThickness) - (borderWeight / 
2);
-                       var frameWidth:Number = 
contentGroup.getLayoutBoundsWidth() + (frameThickness * 2) + borderWeight;
-                       var frameHeight:Number = 
contentGroup.getLayoutBoundsHeight() + (frameThickness * 2) + borderWeight;
-                       
-                       var backgroundColor:Number = 
getStyle("primaryAccentColor");
-                       var backgroundAlpha:Number = 
getStyle("backgroundAlpha");
-                       
-                       var bgFill:Graphics = backgroundFill.graphics;
-                       bgFill.clear();
-                       
-                       if (showBorder)
-                               bgFill.lineStyle(borderWeight, 
actualBorderColor, 1, true);
-                       
-                       if (useBackgroundGradient)
-                       {
-                               // top color is brighter if arrowDirection == 
ArrowDirection.UP
-                               var backgroundColorTop:Number = 
ColorUtil.adjustBrightness2(backgroundColor, 
-                                       BACKGROUND_GRADIENT_BRIGHTNESS_TOP);
-                               var backgroundColorBottom:Number = 
ColorUtil.adjustBrightness2(backgroundColor, 
-                                       BACKGROUND_GRADIENT_BRIGHTNESS_BOTTOM);
-                               
-                               // max gradient height = 
backgroundGradientHeight
-                               colorMatrix.createGradientBox(unscaledWidth, 
backgroundGradientHeight,
-                                       Math.PI / 2, 0, 0);
-                               
-                               bgFill.beginGradientFill(GradientType.LINEAR,
-                                       [backgroundColorTop, 
backgroundColorBottom],
-                                       [backgroundAlpha, backgroundAlpha],
-                                       [0, 255],
-                                       colorMatrix);
-                       }
-                       else
-                       {
-                               bgFill.beginFill(backgroundColor, 
backgroundAlpha);
-                       }
-                       
-                       bgFill.drawRoundRect(frameX, frameY, frameWidth,
-                               frameHeight, frameEllipseSize, 
frameEllipseSize);
-                       bgFill.endFill();
-                       
-                       // draw content background styles
-                       var contentBackgroundAppearance:String = 
getStyle("contentBackgroundAppearance");
-                       
-                       if (contentBackgroundAppearance != 
ContentBackgroundAppearance.NONE)
-                       {
-                               var contentEllipseSize:Number = 
contentCornerRadius * 2;
-                               var contentBackgroundAlpha:Number = 
getStyle("contentBackgroundAlpha");
-                               var contentWidth:Number = 
contentGroup.getLayoutBoundsWidth();
-                               var contentHeight:Number = 
contentGroup.getLayoutBoundsHeight();
-                               
-                               // all appearance values except for "none" use 
a mask
-                               if (!contentMask)
-                                       contentMask = new SpriteVisualElement();
-                               
-                               contentGroup.mask = contentMask;
-                               
-                               // draw contentMask in contentGroup coordinate 
space
-                               var maskGraphics:Graphics = 
contentMask.graphics;
-                               maskGraphics.clear();
-                               maskGraphics.beginFill(0, 1);
-                               maskGraphics.drawRoundRect(0, 0, contentWidth, 
contentHeight,
-                                       contentEllipseSize, contentEllipseSize);
-                               maskGraphics.endFill();
-                               
-                               // reset line style to none
-                               if (showBorder)
-                                       bgFill.lineStyle(NaN);
-                               
-                               // draw the contentBackgroundColor
-                               
bgFill.beginFill(getStyle("contentBackgroundColor"),
-                                       contentBackgroundAlpha);
-                               
bgFill.drawRoundRect(contentGroup.getLayoutBoundsX(),
-                                       contentGroup.getLayoutBoundsY(),
-                                       contentWidth, contentHeight, 
contentEllipseSize, contentEllipseSize);
-                               bgFill.endFill();
-                               
-                               if (contentBackgroundGraphic)
-                                       contentBackgroundGraphic.alpha = 
contentBackgroundAlpha;
-                       }
-                       else // if (contentBackgroundAppearance == 
CalloutContentBackgroundAppearance.NONE))
-                       {
-                               // remove the mask
-                               if (contentMask)
-                               {
-                                       contentGroup.mask = null;
-                                       contentMask = null;
-                               }
-                       }
-                       
-                       // draw highlight in the callout when the arrow is 
hidden
-                       if (useBackgroundGradient && !isArrowHorizontal && 
!isArrowVertical)
-                       {
-                               // highlight width spans the callout width 
minus the corner radius
-                               var highlightWidth:Number = frameWidth - 
frameEllipseSize;
-                               var highlightX:Number = frameX + 
backgroundCornerRadius;
-                               var highlightOffset:Number = (highlightWeight * 
1.5);
-                               
-                               // straight line across the top
-                               bgFill.lineStyle(highlightWeight, 0xFFFFFF, 0.2 
* backgroundAlpha);
-                               bgFill.moveTo(highlightX, highlightOffset);
-                               bgFill.lineTo(highlightX + highlightWidth, 
highlightOffset);
-                       }
-               }
-               
-               /**
-                * @private
-                */
-               override protected function 
layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
-               {
-                       super.layoutContents(unscaledWidth, unscaledHeight);
-                       
-                       // pad the arrow so that the edges are within the 
background corner radius
-                       if (isArrowHorizontal)
-                       {
-                               arrow.width = arrowHeight;
-                               arrow.height = arrowWidth + 
(backgroundCornerRadius * 2);
-                       }
-                       else if (isArrowVertical)
-                       {
-                               arrow.width = arrowWidth + 
(backgroundCornerRadius * 2);
-                               arrow.height = arrowHeight;
-                       }
-                       
-                       setElementSize(backgroundFill, unscaledWidth, 
unscaledHeight);
-                       setElementPosition(backgroundFill, 0, 0);
-                       
-                       var frameX:Number = 0;
-                       var frameY:Number = 0;
-                       var frameWidth:Number = unscaledWidth;
-                       var frameHeight:Number = unscaledHeight;
-                       
-                       switch (hostComponent.arrowDirection)
-                       {
-                               case ArrowDirection.UP:
-                                       frameY = arrow.height;
-                                       frameHeight -= arrow.height;
-                                       break;
-                               case ArrowDirection.DOWN:
-                                       frameHeight -= arrow.height;
-                                       break;
-                               case ArrowDirection.LEFT:
-                                       frameX = arrow.width;
-                                       frameWidth -= arrow.width;
-                                       break;
-                               case ArrowDirection.RIGHT:
-                                       frameWidth -= arrow.width;
-                                       break;
-                               default:
-                                       // no arrow, content takes all 
available space
-                                       break;
-                       }
-                       
-                       if (dropShadow)
-                       {
-                               setElementSize(dropShadow, frameWidth, 
frameHeight);
-                               setElementPosition(dropShadow, frameX, frameY);
-                       }
-                       
-                       // Show frameThickness by inset of contentGroup
-                       var borderWeight:Number = actualBorderThickness;
-                       var contentBackgroundAdjustment:Number = frameThickness 
+ borderWeight;
-                       
-                       var contentBackgroundX:Number = frameX + 
contentBackgroundAdjustment;
-                       var contentBackgroundY:Number = frameY + 
contentBackgroundAdjustment;
-                       
-                       contentBackgroundAdjustment = 
contentBackgroundAdjustment * 2;
-                       var contentBackgroundWidth:Number = frameWidth - 
contentBackgroundAdjustment;
-                       var contentBackgroundHeight:Number = frameHeight - 
contentBackgroundAdjustment;
-                       
-                       if (contentBackgroundGraphic)
-                       {
-                               setElementSize(contentBackgroundGraphic, 
contentBackgroundWidth, contentBackgroundHeight);
-                               setElementPosition(contentBackgroundGraphic, 
contentBackgroundX, contentBackgroundY);
-                       }
-                       
-                       setElementSize(contentGroup, contentBackgroundWidth, 
contentBackgroundHeight);
-                       setElementPosition(contentGroup, contentBackgroundX, 
contentBackgroundY);
-                       
-                       // mask position is in the contentGroup coordinate space
-                       if (contentMask)
-                               setElementSize(contentMask, 
contentBackgroundWidth, contentBackgroundHeight);
-               }
-               
-               override public function styleChanged(styleProp:String):void
-               {
-                       super.styleChanged(styleProp);
-                       
-                       var allStyles:Boolean = !styleProp || styleProp == 
"styleName";
-                       
-                       if (allStyles || (styleProp == 
"contentBackgroundAppearance"))
-                               invalidateProperties();
-                       
-                       if (allStyles || (styleProp == "backgroundAlpha"))
-                       {
-                               var backgroundAlpha:Number = 
getStyle("backgroundAlpha");
-                               
-                               // Use BlendMode.LAYER to allow CalloutArrow to 
erase the dropShadow
-                               // when the Callout background is transparent
-                               blendMode = (backgroundAlpha < 1) ? 
BlendMode.LAYER : BlendMode.NORMAL;
-                       }
-               }
-               
-               /**
-                * @private
-                */
-               mx_internal function get isArrowHorizontal():Boolean
-               {
-                       return (hostComponent.arrowDirection == 
ArrowDirection.LEFT
-                               || hostComponent.arrowDirection == 
ArrowDirection.RIGHT);
-               }
-               
-               /**
-                * @private
-                */
-               mx_internal function get isArrowVertical():Boolean
-               {
-                       return (hostComponent.arrowDirection == 
ArrowDirection.UP
-                               || hostComponent.arrowDirection == 
ArrowDirection.DOWN);
-               }
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Event handlers
-               //
-               
//--------------------------------------------------------------------------
-               
-               private function stateChangeComplete(event:Event=null):void
-               {
-                       if (fade && event)
-                               
fade.removeEventListener(EffectEvent.EFFECT_END, stateChangeComplete);
-                       
-                       // SkinnablePopUpContainer relies on state changes for 
open and close
-                       dispatchEvent(new 
FlexEvent(FlexEvent.STATE_CHANGE_COMPLETE));
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/8ccec1f5/tourdeflexmobile/src/spark/skins/android4/CheckBoxSkin.as
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/spark/skins/android4/CheckBoxSkin.as 
b/tourdeflexmobile/src/spark/skins/android4/CheckBoxSkin.as
deleted file mode 100644
index f091205..0000000
--- a/tourdeflexmobile/src/spark/skins/android4/CheckBoxSkin.as
+++ /dev/null
@@ -1,268 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.skins.android4
-{
-       import flash.display.DisplayObject;
-       
-       import mx.core.DPIClassification;
-       
-       import spark.skins.android4.assets.CheckBox_up;
-       import spark.skins.mobile.supportClasses.SelectableButtonSkinBase;
-       
-       /**
-        *  ActionScript-based skin for CheckBox components in mobile 
applications. 
-        * 
-        *  @see spark.components.CheckBox
-        * 
-        *  @langversion 3.0
-        *  @playerversion Flash 10
-        *  @playerversion AIR 2.5 
-        *  @productversion Flex 4.5
-        */
-       public class CheckBoxSkin extends SelectableButtonSkinBase
-       {
-               
//--------------------------------------------------------------------------
-               //
-               //  Class constants
-               //
-               
//--------------------------------------------------------------------------
-               
-               private static const exclusions:Array = ["labelDisplay", 
"labelDisplayShadow"];
-
-               
//--------------------------------------------------------------------------
-               //
-               //  Member variables
-               //
-               
//--------------------------------------------------------------------------
-
-               protected var symbolOffsetX:Number;
-               protected var symbolOffsetY:Number;
-               protected var iconWidth:Number;
-               protected var iconHeight:Number;
-               protected var symbolWidth:Number;
-               protected var symbolHeight:Number;
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Constructor
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  Constructor.
-                *  
-                *  @langversion 3.0
-                *  @playerversion Flash 10
-                *  @playerversion AIR 2.5
-                *  @productversion Flex 4.5
-                */
-               public function CheckBoxSkin()
-               {
-                       super();
-                       
-                       layoutPaddingLeft = 0;
-                       layoutPaddingRight = 0;
-                       layoutPaddingTop = 0;
-                       layoutPaddingBottom = 0;
-                       
-                       upIconClass = spark.skins.android4.assets.CheckBox_up;
-                       upSelectedIconClass = 
spark.skins.android4.assets.CheckBox_upSelected;
-                       downIconClass = 
spark.skins.android4.assets.CheckBox_down;
-                       downSelectedIconClass = 
spark.skins.android4.assets.CheckBox_downSelected;
-                       upSymbolIconClass = null;
-                       upSymbolIconSelectedClass = 
spark.skins.android4.assets.CheckBox_upSymbolSelected;
-                       downSymbolIconSelectedClass = 
spark.skins.android4.assets.CheckBox_downSymbolSelected;
-                       downSymbolIconClass = null;
-                                       
-                       switch (applicationDPI)
-                       {
-                               case DPIClassification.DPI_640:
-                               {
-                                       
-                                       layoutGap = 16;
-                                       minWidth = 128;
-                                       minHeight = 128;
-                                       layoutBorderSize = 6;
-                                       iconWidth = 128;
-                                       iconHeight = 128;
-                                       symbolWidth = 64;
-                                       symbolHeight = 64;
-                                       symbolOffsetX = 32;
-                                       symbolOffsetY = 32;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_480:
-                               {
-                                       
-                                       layoutGap = 12;
-                                       minWidth = 96;
-                                       minHeight = 96;
-                                       layoutBorderSize = 4;
-                                       iconWidth = 96;
-                                       iconHeight = 96;
-                                       symbolWidth = 48;
-                                       symbolHeight = 48;
-                                       symbolOffsetX = 24;
-                                       symbolOffsetY = 24;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_320:
-                               {
-                                       
-                                       layoutGap = 8;
-                                       minWidth = 64;
-                                       minHeight = 64;
-                                       layoutBorderSize = 3;
-                                       iconWidth = 64;
-                                       iconHeight = 64;
-                                       symbolWidth = 32;
-                                       symbolHeight = 32;
-                                       symbolOffsetX = 16;
-                                       symbolOffsetY = 16;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_240:
-                               {
-                                       
-                                       layoutGap = 6;
-                                       minWidth = 48;
-                                       minHeight = 48;
-                                       layoutBorderSize = 2;
-                                       iconWidth = 48;
-                                       iconHeight = 48;
-                                       symbolWidth = 24;
-                                       symbolHeight = 24;
-                                       symbolOffsetX = 12;
-                                       symbolOffsetY = 12;
-                                       
-                                       break;
-                               }
-                               case DPIClassification.DPI_120:
-                               {
-                                       
-                                       layoutGap = 3;
-                                       minWidth = 24;
-                                       minHeight = 24;
-                                       layoutBorderSize = 1;
-                                       iconWidth = 24;
-                                       iconHeight = 24;
-                                       symbolWidth = 12;
-                                       symbolHeight = 12;
-                                       symbolOffsetX = 6;
-                                       symbolOffsetY = 6;
-                                       
-                                       break;
-                               }
-                               default:
-                               {
-                                       // default DPI_160
-                                       
-                                       layoutGap = 4;
-                                       minWidth = 32;
-                                       minHeight = 32;
-                                       layoutBorderSize = 2;
-                                       iconWidth = 32;
-                                       iconHeight = 32;
-                                       symbolWidth = 16;
-                                       symbolHeight = 16;
-                                       symbolOffsetX = 8;
-                                       symbolOffsetY = 8;
-                                       
-                                       
-                                       break;
-                               }
-                       }
-               }
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Overridden methods
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  @private
-                *  CheckBox <code>chromeColor</code> is drawn to match the FXG 
rectangle
-                *  shape and position.
-                */
-               override protected function 
drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
-               {
-                       // super draws a transparent hit zone
-                       super.drawBackground(unscaledWidth, unscaledHeight);
-                       
-                       // get the size and position of iconDisplay
-                       var currentIcon:DisplayObject = getIconDisplay();
-                       var widthAdjustment:Number = layoutBorderSize * 2;
-                       
-                       graphics.beginFill(getStyle("chromeColor"));
-                       graphics.drawRoundRect(currentIcon.x + layoutBorderSize,
-                               currentIcon.y + layoutBorderSize,
-                               currentIcon.width - widthAdjustment,
-                               currentIcon.height - widthAdjustment, 
layoutBorderSize, layoutBorderSize);
-                       graphics.endFill();
-               }
-               
-               /**
-                *  List of IDs of items that should be excluded when rendering 
the focus ring.
-                *  Only items of type DisplayObject or GraphicElement should 
be excluded. Items
-                *  of other types are ignored.
-                *  
-                *  @langversion 3.0
-                *  @playerversion Flash 10
-                *  @playerversion AIR 2.5
-                *  @productversion Flex 4.5
-                */
-               override protected function get focusSkinExclusions():Array 
-               {
-                       return exclusions;
-               }
-               
-               override protected function commitCurrentState():void
-               {
-                       super.commitCurrentState();
-                       if(symbolIcon != null)
-                       {
-                               symbolIcon.width = symbolWidth;
-                               symbolIcon.height = symbolHeight;
-                       }
-                       var iconDisplay:DisplayObject = getIconDisplay(); 
-                       if(iconDisplay != null)
-                       {
-                               iconDisplay.width = iconWidth;
-                               iconDisplay.height = iconHeight;
-                       }
-               }
-               
-               override protected function 
layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
-               {
-                       super.layoutContents(unscaledWidth, unscaledHeight);
-                       // position the symbols to align with the background 
"icon"
-                       if (symbolIcon)
-                       {
-                               var currentIcon:DisplayObject = 
getIconDisplay();
-                               setElementPosition(symbolIcon, symbolOffsetX, 
symbolOffsetY);
-                       }
-               }
-               
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/8ccec1f5/tourdeflexmobile/src/spark/skins/android4/DateSpinnerSkin.as
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/spark/skins/android4/DateSpinnerSkin.as 
b/tourdeflexmobile/src/spark/skins/android4/DateSpinnerSkin.as
deleted file mode 100644
index d45e039..0000000
--- a/tourdeflexmobile/src/spark/skins/android4/DateSpinnerSkin.as
+++ /dev/null
@@ -1,153 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.skins.android4
-{
-       import mx.core.ClassFactory;
-       import mx.core.IFactory;
-       import mx.core.IVisualElementContainer;
-       
-       import spark.components.DateSpinner;
-       import spark.components.SpinnerList;
-       import spark.components.SpinnerListContainer;
-       import spark.components.calendarClasses.DateSpinnerItemRenderer;
-       import spark.skins.mobile.supportClasses.MobileSkin;
-       
-       /**
-        *  ActionScript-based skin for the DateSpinner in mobile applications.
-        *  
-        * @see spark.components.DateSpinner
-        * 
-        *  @langversion 3.0
-        *  @playerversion AIR 3
-        *  @productversion Flex 4.6
-        *  
-        */
-       public class DateSpinnerSkin extends MobileSkin
-       {
-               
//--------------------------------------------------------------------------
-               //
-               //  Constructor
-               //
-               
//--------------------------------------------------------------------------
-               /**
-                *  Constructor.
-                * 
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               public function DateSpinnerSkin()
-               {
-                       super();
-               }
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Skin parts
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  Factory for creating dateItem list parts.
-                *
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               public var dateItemList:IFactory;
-               
-               /**
-                *  Skin part; container of dateItem list(s).
-                *
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               public var listContainer:IVisualElementContainer;
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Properties 
-               //
-               
//--------------------------------------------------------------------------
-               /** 
-                *  @copy spark.skins.spark.ApplicationSkin#hostComponent
-                */
-               public var hostComponent:DateSpinner;
-               
-               
//--------------------------------------------------------------------------
-               //
-               //  Overridden Methods
-               //
-               
//--------------------------------------------------------------------------
-               
-               /**
-                *  @inheritDoc
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               override protected function createChildren():void
-               {
-                       listContainer = new SpinnerListContainer();
-                       
-                       addChild(SpinnerListContainer(listContainer));          
-                       
-                       dateItemList = new ClassFactory(SpinnerList);           
-                       (dateItemList as ClassFactory).properties = { 
itemRenderer: new 
ClassFactory(spark.components.calendarClasses.DateSpinnerItemRenderer), 
percentHeight : 100 };
-               }
-               
-               /**
-                *  @inheritDoc
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               override protected function measure():void
-               {
-                       measuredWidth = 
SpinnerListContainer(listContainer).getPreferredBoundsWidth();
-                       measuredHeight = 
SpinnerListContainer(listContainer).getPreferredBoundsHeight();
-                       measuredMinWidth = 
SpinnerListContainer(listContainer).getMinBoundsWidth();
-                       measuredMinHeight = 
SpinnerListContainer(listContainer).getMinBoundsHeight();
-               }
-               
-               /**
-                *  @inheritDoc
-                *  
-                *  @langversion 3.0
-                *  @playerversion AIR 3
-                *  @productversion Flex 4.6
-                */
-               override protected function 
layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
-               {
-                       super.layoutContents(unscaledWidth, unscaledHeight);
-                       
-                       // Always set the SpinnerListContainer to its measured 
width, regardless of our size
-                       var containerWidth:Number = 
SpinnerListContainer(listContainer).getPreferredBoundsWidth();
-                       var containerHeight:Number = unscaledHeight;
-                       
-                       setElementSize(listContainer, containerWidth, 
containerHeight);
-                       // if width is greater than necessary, center the 
component
-                       setElementPosition(listContainer, 
Math.max((unscaledWidth - containerWidth)/2, 0), 0);
-               }
-               
-       }
-}

Reply via email to