Feathers 3.0 Migration Guide (Starling version)

This guide explains how to migrate an application created with a previous version of Feathers to Feathers 3.0. Some APIs have been removed and others have been deprecated. New classes like ImageSkin make it easier to skin components while optimizing memory and performance.

Starling 2

Feathers 3.0 has upgraded to Starling 2. For complete details about Starling's changes, see the Starling 2 migration guide.

Skinning Changes

Removal of Scale9Image, Scale3Image, and TiledImage

Starling 2.0 now offers these features natively!

To replace Scale9Image, create an Image and set its scale9Grid property:

var image:Image = new Image( texture );
image.scale9Grid = new Rectangle( 2, 2, 3, 6 );
this.addChild( image );

To replace Scale3Image, create an Image and set its scale9Grid property. For horizontal scaling, set the grid's height to the full height of the texture. For vertical scaling, set the grid's width to the full width of the texture. In the following example, the Image can be scaled horizontally like the old Scale3Image:

var image:Image = new Image( texture );
image.scale9Grid = new Rectangle( 2, 0, 3, texture.frameHeight );
this.addChild( image );

To replace TiledImage, create an Image and set the tileGrid property to an empty Rectangle:

var image:Image = new Image( texture );
image.tileGrid = new Rectangle();
this.addChild( image );

The new ImageSkin class

feathers.skin.ImageSkin provides a more optimized way to skin Feathers components that have multiple states, such as Button and TextInput.

Previously, the easiest way to skin these components involved creating separate display objects for each state. For instance, a Button might have a default skin, a down skin, a hover skin, and a disabled skin. You would create four separate Image objects with four textures.

From an optimization perspective, it would be better to use a single Image and simply reuse it with all four textures. Previously, we could do that by using the stateToSkinFunction property, but it's wasn't very intuitive, so many developers preferred to use separate display objects for each state. The ImageSkin class takes advantage of new capabilities in Starling 2.0 to make using multiple textures easy.

Let's take a look at how a button can use ImageSkin:

var skin:ImageSkin = new ImageSkin( defaultTexture );
skin.setTextureForState( ButtonState.DOWN, downTexture );
skin.setTextureForState( ButtonState.DISABLED, disabledTexture );
skin.scale9Grid = SCALE_9_GRID;
button.defaultSkin = skin;

Each state can display a different texture, and the ImageSkin automatically detects when the button's state changes. If a texture isn't specified for the current state, the default texture will be used.

ImageSkin is a subclass of starling.display.Image, so all properties like scale9Grid and tileGrid are available too!

In addition to being used for background skins, ImageSkin can also be used for the icon on buttons, text inputs, and item renderers.

Setting font styles on text renderers

Text renderers in Feathers components can now change their own font styles when their parent component changes state. Previously, the Button class managed multiple sets of properties for different states (like defaultLabelProperties and downLabelProperties) using objects that were not strictly type-checked at compile-time. The new approach is stricter, and easier to customize outside of the theme:

button.labelFactory = function():ITextRenderer
{
	var textRenderer:BitmapFontTextRenderer = new BitmapFontTextRenderer();
	textRenderer.styleProvider = null; // avoid conflicts with the theme
	textRenderer.textFormat = new BitmapFontTextFormat( "My Font", BitmapFont.NATIVE_SIZE, 0xffffff );
	return textRenderer;
};

In the code above, we create a BitmapFontTextRenderer and we use the textFormat property to set its font styles in the labelFactory of a Button.

On the BitmapFontTextRenderer, we can call the setTextFormatForState() function to pass in different font styles of each of the button's states. Let's do that in the same labelFactory:

textRenderer.setTextFormatForState( ButtonState.DOWN,
	new BitmapFontTextFormat( "My Font", BitmapFont.NATIVE_SIZE, 0xffcc00 ) );

textRenderer.setTextFormatForState( ButtonState.DISABLED,
	new BitmapFontTextFormat( "My Font", BitmapFont.NATIVE_SIZE, 0x999999 ) );

To display text with a different text renderer, the approach is mostly the same, but each text renderer has its own way to set font styles. To use a TextBlockTextRenderer, pass the default font styles to the elementFormat property. Call the setElementFormatForState() function to pass in font styles for different states.

If you prefer to keep all of your styling code in your theme, you can create a new style name for the text renderer class. On a Button, you'd pass this custom style name to the customLabelStyleName property:

button.customLabelStyleName = "my-custom-text-renderer";

In your theme, you'd add a new styling function for BitmapFontTextRenderer.

getStyleProviderForClass( BitmapFontTextRenderer )
	.setFunctionForStyleName( "my-custom-text-renderer", setCustomTextRendererStyles );

Just like above, we can set the default font styles, and styles for different states:

function setCustomTextRendererStyles( textRenderer: BitmapFontTextRenderer ):void
{
	textRenderer.textFormat = new BitmapFontTextFormat( "My Font", BitmapFont.NATIVE_SIZE, 0xffffff );
	textRenderer.setElementFormatForState( ButtonState.DOWN,
		new BitmapFontTextFormat( "My Font", BitmapFont.NATIVE_SIZE, 0xffcc00 ) );
	textRenderer.setElementFormatForState( ButtonState.DISABLED,
		new BitmapFontTextFormat( "My Font", BitmapFont.NATIVE_SIZE, 0x999999 ) );
}

Removal of StandardIcons.listDrillDownAccessoryTexture

This static property was previously used to return a special icon for item renderers inside accessorySourceFunction. In Feathers 3.0, you should add the DefaultListItemRenderer.ALTERNATE_STYLE_NAME_DRILL_DOWN constant to the item renderer's styleNameList instead. The theme will detect this style name, and it will pass a drill down icon to the item renderer.

DefaultGroupedListItemRenderer also defines a ALTERNATE_STYLE_NAME_DRILL_DOWN constant.

If some of the items in the list should not display a drill down icon, use the setItemRendererFactoryWithID() and factoryIDFunction to pass multiple item renderer factories to the List or GroupedList.

list.itemRendererFactory = function():IListItemRenderer
{
	var itemRenderer:DefaultListItemRenderer = new DefaultListItemRenderer();
	itemRenderer.styleNameList.add( DefaultListItemRenderer.ALTERNATE_STYLE_NAME_DRILL_DOWN );
	return itemRenderer;
};

If all items in the list should have a drill down icon, you may use customItemRendererStyleName instead:

list.customItemRendererStyleName = DefaultListItemRenderer.ALTERNATE_STYLE_NAME_DRILL_DOWN;

saveMeasurements() replaces setSizeInternal()

Custom component developers should migrate to the new saveMeasurements() as a replacement for setSizeInternal(), which is now considered deprecated.

In addition to the more intuitive name, saveMeasurements() now allows components to dynamically calculate minimum width and height:

this.saveMeasurements(newWidth, newHeight, newMinWidth, newMinHeight);

To maintain the previous behavior, you may pass a value of 0 for the minimum dimensions:

this.saveMeasurements(newWidth, newHeight, 0, 0);

You might also consider setting the minimum dimensions to the same as the regular dimensions:

this.saveMeasurements(newWidth, newHeight, newWidth, newHeight);

All of the core Feathers components now calculate minimum dimensions, if they are not set explicitly.

Return type API changes

The Drawers component now requires its content and drawers to be Feathers components. Previously, starling.display.Sprite was allowed. To replace Sprite as a generic container, consider using LayoutGroup instead.

The INativeFocusOwner interface now returns type Object for its nativeFocus property to allow objects like flash.text.StageText to receive focus. Previously, the return type was flash.display.InteractiveObject.

Multi-Resolution Development with Feathers

Feathers 3.0 fully embraces Starling's contentScaleFactor system described in Starling Multi-Resolution Development. Feathers even has some tricks up its sleeve to make it easy to scale to any mobile device's screen, while using its native aspect ratio.

ScreenDensityScaleFactorManager

The ScreenDensityScaleFactorManager class provides a convienent way to automatically calculate an appropriate contentScaleFactor value while maintaining the aspect ratio of any mobile device's screen. It uses a system inspired by Android that takes into account the screen density and the screen's resolution.

The following example shows how to use ScreenDensityScaleFactorManager by modifying the sample Startup Code from the Starling wiki.

public class Startup extends Sprite
{
	private var mStarling:Starling;
	private var mScaler:ScreenDensityScaleFactorManager;

	public function Startup()
	{
		mStarling = new Starling( Game, stage );
		mScaler = new ScreenDensityScaleFactorManager( mStarling );
		mStarling.start();
	}
}

You don't need to set the dimensions of Starling's view port, or the stageWidth and stageHeight properties of the Starling stage. ScreenDensityScaleFactorManager handles it all for you — even when the device's orientation changes.

ScreenDensityScaleFactorManager is considered optional, and if you'd prefer to manage the Starling view port and stage size manually using the techniques in Multi-Resolution Development, Feathers fully supports that approach too.

Changes to example themes

The example themes have been modified to allow Starling to automatically scale assets using contentScaleFactor. The textures in these themes now use a scale factor value of 2.

The themes no longer have scale variable that is calculated using the screen density. Pixel dimensions and font sizes are now the same for all scale factors.

If subclasses of example themes define scale9Grid rectangles, the values may need to be scaled down to continue working in Feathers 3.0. Previously, these themes defined textures with scale factor 1, and then scaled them up or down manually using the scale variable. Since the textures now use scale factor 2, the old scale9Grid values should be divided by 2. Note: If the original values in the scale9Grid are odd numbers, rounding up may work, but the skin may need to be widened by an extra pixel to get an even number width or height.

Duplicate constants moved to shared classes

In previous versions of Feathers, a number of constants were duplicated across many classes. For instance, you could find HORIZONTAL_ALIGN_LEFT on such classes as Button, DefaultListItemRenderer, HorizontalLayout, and TiledRowsLayout (and elsewhere too!). In Feathers 3.0, you can now use a shared HorizontalAlign.LEFT constant. Put another way, once you've used HorizontalAlign.LEFT constant with one class, you'll know exactly where to find when you need it in the future for any other class.

Other duplicate constants have been consolidated in the same way. The following classes with shared constants have been added to Feathers:

See Appendix: List of Deprecated APIs for details about which deprecated constants map to the new shared constants.

The original duplicate constants are considered deprecated. They will remain available in order to maintain backward compatibility for a short time. However, they will be removed at some point in the future.

In general, a deprecated API in Feathers will not be removed until six months have passed or two minor updates have been released (whichever takes longer). However, due to the impact of this change, the deprecated constants will not be removed until 18 months have passed or one major update has been released (again, whichever takes longer). This should give developers more time to migrate.

Additionally, take a look at Appendix: Find and Replace Regular Expressions to find a set of regular expressions to help automate the process of migrating to these new shared constants.

Backwards compatibility with feathers-compat

The feathers-compat project is a backwards compatibility library that is designed to make migration to Feathers 3.0 easier. It includes a number classes that were removed from Feathers 3.0. If you relied on these classes with earlier versions of Feathers, use feathers-compat to get your project up and running more quickly when upgrading to Starling 2.0 and Feathers 3.0. Then, you can take a little extra time to migrate your existing code.

For example, if you used SmartDisplayObjectValueSelector for skinning, you are strongly encouraged to switch to the new, more intuitive ImageSkin. However, you can add feathers-compat to your project, and you'll be able to continue using SmartDisplayObjectValueSelector and save the migration to ImageSkin for a later time.

Download feathers-compat from Github

Appendix: List of Removed APIs

The following table lists all removed APIs, organized alphabetically. The replacement API or migration instructions appear next to each listed API.

Removed APIHow to Migrate
BitmapFontTextRenderer.snapToPixelsUse the pixelSnapping property instead, which is also the name of the new property on starling.display.Mesh.
ImageLoader.snapToPixelsUse the pixelSnapping property instead, which is also the name of the new property on starling.display.Mesh.
ImageLoader.smoothingUse the textureSmoothing property instead, which is also the new name of the property on starling.display.Image.
OldFadeNewSlideTransitionManagerSwitch to StackScreenNavigator to get full support for navigation history. Create a custom pushTransition and popTransition.
Scale3ImageCreate a starling.display.Image and set its scale9Grid property.
Scale3TexturesSee instructions for Scale3Image.
Scale9ImageCreate a starling.display.Image and set its scale9Grid property.
Scale9TexturesSee instructions for Scale9Image.
Scale9ImageStateValueSelectorCreate a feathers.skins.ImageSkin and call setTextureForState() to use multiple textures.
ScreenFadeTransitionManagerUse Fade transition.
ScreenSlidingStackTransitionManagerSwitch to StackScreenNavigator to get full support for navigation history. Use Slide for pushTransition and popTransition.
SmartDisplayObjectStateValueSelectorCreate a feathers.skins.ImageSkin and call setTextureForState() to use multiple textures.
StandardIcons.listDrillDownAccessoryTextureAdd DefaultListItemRenderer.ALTERNATE_STYLE_NAME_DRILL_DOWN to the item renderer's styleNameList.
TextBlockTextRenderer.snapToPixelsUse the pixelSnapping property instead, which is also the name of the new property on starling.display.Mesh.
TextFieldTextRenderer.snapToPixelsUse the pixelSnapping property instead, which is also the name of the new property on starling.display.Mesh.
TiledImageCreate a starling.display.Image and set the tileGrid property.

Appendix: List of Deprecated APIs

The following tables list all deprecated APIs, organized by class. The replacement API or migration instructions appear next to each listed property or method.

APIs that are deprecated have not been removed yet, but they will be removed at some point in the future. You are encouraged to migrate as soon as possible.

FeathersControl

Deprecated APIHow to Migrate
setSizeInternal()saveMeasurements()

Alert

No APIs are deprecated.

AutoComplete

No APIs are deprecated.

BaseDefaultItemRenderer

Deprecated APIHow to Migrate
BaseDefaultItemRenderer.STATE_UPButtonState.UP
BaseDefaultItemRenderer.STATE_DOWNButtonState.DOWN
BaseDefaultItemRenderer.STATE_HOVERButtonState.HOVER
BaseDefaultItemRenderer.STATE_DISABLEDButtonState.DISABLED
BaseDefaultItemRenderer.STATE_UP_AND_SELECTEDButtonState.UP_AND_SELECTED
BaseDefaultItemRenderer.STATE_DOWN_AND_SELECTEDButtonState.DOWN_AND_SELECTED
BaseDefaultItemRenderer.STATE_HOVER_AND_SELECTEDButtonState.HOVER_AND_SELECTED
BaseDefaultItemRenderer.STATE_DISABLED_AND_SELECTEDButtonState.DISABLED_AND_SELECTED
BaseDefaultItemRenderer.ICON_POSITION_TOPRelativePosition.TOP
BaseDefaultItemRenderer.ICON_POSITION_RIGHTRelativePosition.RIGHT
BaseDefaultItemRenderer.ICON_POSITION_BOTTOMRelativePosition.BOTTOM
BaseDefaultItemRenderer.ICON_POSITION_LEFTRelativePosition.LEFT
BaseDefaultItemRenderer.ICON_POSITION_MANUALRelativePosition.MANUAL
BaseDefaultItemRenderer.ICON_POSITION_LEFT_BASELINERelativePosition.LEFT_BASELINE
BaseDefaultItemRenderer.ICON_POSITION_RIGHT_BASELINERelativePosition.RIGHT_BASELINE
BaseDefaultItemRenderer.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
BaseDefaultItemRenderer.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
BaseDefaultItemRenderer.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
BaseDefaultItemRenderer.VERTICAL_ALIGN_TOPVerticalAlign.TOP
BaseDefaultItemRenderer.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
BaseDefaultItemRenderer.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
BaseDefaultItemRenderer.ACCESSORY_POSITION_TOPRelativePosition.TOP
BaseDefaultItemRenderer.ACCESSORY_POSITION_RIGHTRelativePosition.RIGHT
BaseDefaultItemRenderer.ACCESSORY_POSITION_BOTTOMRelativePosition.BOTTOM
BaseDefaultItemRenderer.ACCESSORY_POSITION_LEFTRelativePosition.LEFT
BaseDefaultItemRenderer.ACCESSORY_POSITION_MANUALRelativePosition.MANUAL

Button

Deprecated APIHow to Migrate
stateToSkinFunctionPass an ImageSkin to the defaultSkin property.
stateToIconFunctionPass an ImageSkin to the defaultIcon property.
stateToLabelPropertiesFunctionSet the font styles directly on the text renderer and use the ButtonState constants to set font styles for each state.
upLabelPropertiesSet font styles on text renderer using ButtonState.UP
downLabelPropertiesSet font styles on text renderer using ButtonState.DOWN
hoverLabelPropertiesSet font styles on text renderer using ButtonState.HOVER
disabledLabelPropertiesSet font styles on text renderer using ButtonState.DISABLED
Button.STATE_UPButtonState.UP
Button.STATE_DOWNButtonState.DOWN
Button.STATE_HOVERButtonState.HOVER
Button.STATE_DISABLEDButtonState.DISABLED
Button.ICON_POSITION_TOPRelativePosition.TOP
Button.ICON_POSITION_RIGHTRelativePosition.RIGHT
Button.ICON_POSITION_BOTTOMRelativePosition.BOTTOM
Button.ICON_POSITION_LEFTRelativePosition.LEFT
Button.ICON_POSITION_MANUALRelativePosition.MANUAL
Button.ICON_POSITION_LEFT_BASELINERelativePosition.LEFT_BASELINE
Button.ICON_POSITION_RIGHT_BASELINERelativePosition.RIGHT_BASELINE
Button.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
Button.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
Button.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
Button.VERTICAL_ALIGN_TOPVerticalAlign.TOP
Button.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
Button.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM

ButtonGroup

Deprecated APIHow to Migrate
ButtonGroup.DIRECTION_HORIZONTALDirection.HORIZONTAL
ButtonGroup.DIRECTION_VERTICALDirection.VERTICAL
ButtonGroup.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
ButtonGroup.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
ButtonGroup.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
ButtonGroup.HORIZONTAL_ALIGN_JUSTIFYHorizontalAlign.JUSTIFY
ButtonGroup.VERTICAL_ALIGN_TOPVerticalAlign.TOP
ButtonGroup.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
ButtonGroup.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
ButtonGroup.VERTICAL_ALIGN_JUSTIFYVerticalAlign.JUSTIFY

Callout

Deprecated APIHow to Migrate
supportedDirectionssupportedPositions
Callout.ARROW_POSITION_TOPRelativePosition.TOP
Callout.ARROW_POSITION_RIGHTRelativePosition.RIGHT
Callout.ARROW_POSITION_BOTTOMRelativePosition.BOTTOM
Callout.ARROW_POSITION_LEFTRelativePosition.LEFT
Callout.DIRECTION_ANYnull
Callout.DIRECTION_HORIZONTALnew <String>[RelativePosition.RIGHT, RelativePosition.LEFT]
Callout.DIRECTION_VERTICALnew <String>[RelativePosition.BOTTOM, RelativePosition.TOP]
Callout.DIRECTION_TOPnew <String>[RelativePosition.TOP]
Callout.DIRECTION_RIGHTnew <String>[RelativePosition.RIGHT]
Callout.DIRECTION_BOTTOMnew <String>[RelativePosition.BOTTOM]
Callout.DIRECTION_LEFTnew <String>[RelativePosition.LEFT]

Check

Deprecated APIHow to Migrate
Check.STATE_UPButtonState.UP
Check.STATE_DOWNButtonState.DOWN
Check.STATE_HOVERButtonState.HOVER
Check.STATE_DISABLEDButtonState.DISABLED
Check.STATE_UP_AND_SELECTEDButtonState.UP_AND_SELECTED
Check.STATE_DOWN_AND_SELECTEDButtonState.DOWN_AND_SELECTED
Check.STATE_HOVER_AND_SELECTEDButtonState.HOVER_AND_SELECTED
Check.STATE_DISABLED_AND_SELECTEDButtonState.DISABLED_AND_SELECTED
Check.ICON_POSITION_TOPRelativePosition.TOP
Check.ICON_POSITION_RIGHTRelativePosition.RIGHT
Check.ICON_POSITION_BOTTOMRelativePosition.BOTTOM
Check.ICON_POSITION_LEFTRelativePosition.LEFT
Check.ICON_POSITION_MANUALRelativePosition.MANUAL
Check.ICON_POSITION_LEFT_BASELINERelativePosition.LEFT_BASELINE
Check.ICON_POSITION_RIGHT_BASELINERelativePosition.RIGHT_BASELINE
Check.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
Check.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
Check.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
Check.VERTICAL_ALIGN_TOPVerticalAlign.TOP
Check.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
Check.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM

DateTimeSpinner

Deprecated APIHow to Migrate
DateTimeSpinner.EDITING_MODE_DATEDateTimeMode.DATE
DateTimeSpinner.EDITING_MODE_TIMEDateTimeMode.TIME
DateTimeSpinner.EDITING_MODE_DATE_AND_TIMEDateTimeMode.DATE_AND_TIME

DefaultGroupedListItemRenderer

Deprecated APIHow to Migrate
DefaultGroupedListItemRenderer.STATE_UPButtonState.UP
DefaultGroupedListItemRenderer.STATE_DOWNButtonState.DOWN
DefaultGroupedListItemRenderer.STATE_HOVERButtonState.HOVER
DefaultGroupedListItemRenderer.STATE_DISABLEDButtonState.DISABLED
DefaultGroupedListItemRenderer.STATE_UP_AND_SELECTEDButtonState.UP_AND_SELECTED
DefaultGroupedListItemRenderer.STATE_DOWN_AND_SELECTEDButtonState.DOWN_AND_SELECTED
DefaultGroupedListItemRenderer.STATE_HOVER_AND_SELECTEDButtonState.HOVER_AND_SELECTED
DefaultGroupedListItemRenderer.STATE_DISABLED_AND_SELECTEDButtonState.DISABLED_AND_SELECTED
DefaultGroupedListItemRenderer.ICON_POSITION_TOPRelativePosition.TOP
DefaultGroupedListItemRenderer.ICON_POSITION_RIGHTRelativePosition.RIGHT
DefaultGroupedListItemRenderer.ICON_POSITION_BOTTOMRelativePosition.BOTTOM
DefaultGroupedListItemRenderer.ICON_POSITION_LEFTRelativePosition.LEFT
DefaultGroupedListItemRenderer.ICON_POSITION_MANUALRelativePosition.MANUAL
DefaultGroupedListItemRenderer.ICON_POSITION_LEFT_BASELINERelativePosition.LEFT_BASELINE
DefaultGroupedListItemRenderer.ICON_POSITION_RIGHT_BASELINERelativePosition.RIGHT_BASELINE
DefaultGroupedListItemRenderer.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
DefaultGroupedListItemRenderer.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
DefaultGroupedListItemRenderer.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
DefaultGroupedListItemRenderer.VERTICAL_ALIGN_TOPVerticalAlign.TOP
DefaultGroupedListItemRenderer.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
DefaultGroupedListItemRenderer.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
DefaultGroupedListItemRenderer.ACCESSORY_POSITION_TOPRelativePosition.TOP
DefaultGroupedListItemRenderer.ACCESSORY_POSITION_RIGHTRelativePosition.RIGHT
DefaultGroupedListItemRenderer.ACCESSORY_POSITION_BOTTOMRelativePosition.BOTTOM
DefaultGroupedListItemRenderer.ACCESSORY_POSITION_LEFTRelativePosition.LEFT
DefaultGroupedListItemRenderer.ACCESSORY_POSITION_MANUALRelativePosition.MANUAL
DefaultGroupedListItemRenderer.LAYOUT_ORDER_LABEL_ICON_ACCESSORYItemRendererLayoutOrder.MANUAL
DefaultGroupedListItemRenderer.LAYOUT_ORDER_LABEL_ACCESSORY_ICONItemRendererLayoutOrder.MANUAL

DefaultListItemRenderer

Deprecated APIHow to Migrate
DefaultListItemRenderer.STATE_UPButtonState.UP
DefaultListItemRenderer.STATE_DOWNButtonState.DOWN
DefaultListItemRenderer.STATE_HOVERButtonState.HOVER
DefaultListItemRenderer.STATE_DISABLEDButtonState.DISABLED
DefaultListItemRenderer.STATE_UP_AND_SELECTEDButtonState.UP_AND_SELECTED
DefaultListItemRenderer.STATE_DOWN_AND_SELECTEDButtonState.DOWN_AND_SELECTED
DefaultListItemRenderer.STATE_HOVER_AND_SELECTEDButtonState.HOVER_AND_SELECTED
DefaultListItemRenderer.STATE_DISABLED_AND_SELECTEDButtonState.DISABLED_AND_SELECTED
DefaultListItemRenderer.ICON_POSITION_TOPRelativePosition.TOP
DefaultListItemRenderer.ICON_POSITION_RIGHTRelativePosition.RIGHT
DefaultListItemRenderer.ICON_POSITION_BOTTOMRelativePosition.BOTTOM
DefaultListItemRenderer.ICON_POSITION_LEFTRelativePosition.LEFT
DefaultListItemRenderer.ICON_POSITION_MANUALRelativePosition.MANUAL
DefaultListItemRenderer.ICON_POSITION_LEFT_BASELINERelativePosition.LEFT_BASELINE
DefaultListItemRenderer.ICON_POSITION_RIGHT_BASELINERelativePosition.RIGHT_BASELINE
DefaultListItemRenderer.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
DefaultListItemRenderer.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
DefaultListItemRenderer.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
DefaultListItemRenderer.VERTICAL_ALIGN_TOPVerticalAlign.TOP
DefaultListItemRenderer.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
DefaultListItemRenderer.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
DefaultListItemRenderer.ACCESSORY_POSITION_TOPRelativePosition.TOP
DefaultListItemRenderer.ACCESSORY_POSITION_RIGHTRelativePosition.RIGHT
DefaultListItemRenderer.ACCESSORY_POSITION_BOTTOMRelativePosition.BOTTOM
DefaultListItemRenderer.ACCESSORY_POSITION_LEFTRelativePosition.LEFT
DefaultListItemRenderer.ACCESSORY_POSITION_MANUALRelativePosition.MANUAL
DefaultListItemRenderer.LAYOUT_ORDER_LABEL_ICON_ACCESSORYItemRendererLayoutOrder.MANUAL
DefaultListItemRenderer.LAYOUT_ORDER_LABEL_ACCESSORY_ICONItemRendererLayoutOrder.MANUAL

Drawers

Deprecated APIHow to Migrate
Drawers.AUTO_SIZE_MODE_STAGEAutoSizeMode.STAGE
Drawers.AUTO_SIZE_MODE_CONTENTAutoSizeMode.CONTENT
Drawers.DOCK_MODE_LANDSCAPEOrientation.LANDSCAPE
Drawers.DOCK_MODE_PORTRAITOrientation.PORTRAIT
Drawers.DOCK_MODE_BOTHOrientation.BOTH
Drawers.DOCK_MODE_NONEOrientation.NONE
Drawers.OPEN_GESTURE_DRAG_CONTENTDragGesture.CONTENT
Drawers.OPEN_GESTURE_DRAG_CONTENT_EDGEDragGesture.EDGE
Drawers.OPEN_GESTURE_NONEDragGesture.NONE

GroupedList

Deprecated APIHow to Migrate
GroupedList.SCROLL_POLICY_AUTOScrollPolicy.AUTO
GroupedList.SCROLL_POLICY_ONScrollPolicy.ON
GroupedList.SCROLL_POLICY_OFFScrollPolicy.OFF
GroupedList.SCROLL_BAR_DISPLAY_MODE_FIXEDScrollBarDisplayMode.FIXED
GroupedList.SCROLL_BAR_DISPLAY_MODE_FLOATScrollBarDisplayMode.FLOAT
GroupedList.SCROLL_BAR_DISPLAY_MODE_NONEScrollBarDisplayMode.NONE
GroupedList.SCROLL_BAR_DISPLAY_MODE_FIXED_FLOATScrollBarDisplayMode.FIXED_FLOAT
GroupedList.VERTICAL_SCROLL_BAR_POSITION_RIGHTRelativePosition.RIGHT
GroupedList.VERTICAL_SCROLL_BAR_POSITION_LEFTRelativePosition.LEFT
GroupedList.INTERACTION_MODE_TOUCHScrollInteractionMode.TOUCH
GroupedList.INTERACTION_MODE_MOUSEScrollInteractionMode.MOUSE
GroupedList.INTERACTION_MODE_TOUCH_AND_SCROLL_BARSScrollInteractionMode.TOUCH_AND_SCROLL_BARS
GroupedList.MOUSE_WHEEL_SCROLL_DIRECTION_VERTICALDirection.VERTICAL
GroupedList.MOUSE_WHEEL_SCROLL_DIRECTION_HORIZONTALDirection.HORIZONTAL
GroupedList.DECELERATION_RATE_NORMALDecelerationRate.NORMAL
GroupedList.DECELERATION_RATE_FASTDecelerationRate.FAST
Deprecated APIHow to Migrate
Header.VERTICAL_ALIGN_TOPVerticalAlign.TOP
Header.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
Header.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
Header.TITLE_ALIGN_PREFER_LEFTHorizontalAlign.LEFT
Header.TITLE_ALIGN_CENTERHorizontalAlign.CENTER
Header.TITLE_ALIGN_PREFER_RIGHTHorizontalAlign.RIGHT

ImageLoader

Deprecated APIHow to Migrate
ImageLoader.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
ImageLoader.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
ImageLoader.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
ImageLoader.VERTICAL_ALIGN_TOPVerticalAlign.TOP
ImageLoader.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
ImageLoader.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM

Label

No APIs are deprecated.

LayoutGroup

Deprecated APIHow to Migrate
LayoutGroup.AUTO_SIZE_MODE_STAGEAutoSizeMode.STAGE
LayoutGroup.AUTO_SIZE_MODE_CONTENTAutoSizeMode.CONTENT

List

Deprecated APIHow to Migrate
List.SCROLL_POLICY_AUTOScrollPolicy.AUTO
List.SCROLL_POLICY_ONScrollPolicy.ON
List.SCROLL_POLICY_OFFScrollPolicy.OFF
List.SCROLL_BAR_DISPLAY_MODE_FIXEDScrollBarDisplayMode.FIXED
List.SCROLL_BAR_DISPLAY_MODE_FLOATScrollBarDisplayMode.FLOAT
List.SCROLL_BAR_DISPLAY_MODE_NONEScrollBarDisplayMode.NONE
List.SCROLL_BAR_DISPLAY_MODE_FIXED_FLOATScrollBarDisplayMode.FIXED_FLOAT
List.VERTICAL_SCROLL_BAR_POSITION_RIGHTRelativePosition.RIGHT
List.VERTICAL_SCROLL_BAR_POSITION_LEFTRelativePosition.LEFT
List.INTERACTION_MODE_TOUCHScrollInteractionMode.TOUCH
List.INTERACTION_MODE_MOUSEScrollInteractionMode.MOUSE
List.INTERACTION_MODE_TOUCH_AND_SCROLL_BARSScrollInteractionMode.TOUCH_AND_SCROLL_BARS
List.MOUSE_WHEEL_SCROLL_DIRECTION_VERTICALDirection.VERTICAL
List.MOUSE_WHEEL_SCROLL_DIRECTION_HORIZONTALDirection.HORIZONTAL
List.DECELERATION_RATE_NORMALDecelerationRate.NORMAL
List.DECELERATION_RATE_FASTDecelerationRate.FAST

NumericStepper

Deprecated APIHow to Migrate
NumericStepper.BUTTON_LAYOUT_MODE_SPLIT_HORIZONTALStepperButtonLayoutMode.SPLIT_HORIZONTAL
NumericStepper.BUTTON_LAYOUT_MODE_SPLIT_VERTICALStepperButtonLayoutMode.SPLIT_VERTICAL
NumericStepper.BUTTON_LAYOUT_MODE_RIGHT_SIDE_VERTICALStepperButtonLayoutMode.RIGHT_SIDE_VERTICAL

PageIndicator

Deprecated APIHow to Migrate
PageIndicator.INTERACTION_MODE_PREVIOUS_NEXTPageIndicatorInteractionMode.PREVIOUS_NEXT
PageIndicator.DIRECTION_HORIZONTALDirection.HORIZONTAL
PageIndicator.DIRECTION_VERTICALDirection.VERTICAL
PageIndicator.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
PageIndicator.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
PageIndicator.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
PageIndicator.VERTICAL_ALIGN_TOPVerticalAlign.TOP
PageIndicator.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
PageIndicator.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM

Panel

Deprecated APIHow to Migrate
Panel.SCROLL_POLICY_AUTOScrollPolicy.AUTO
Panel.SCROLL_POLICY_ONScrollPolicy.ON
Panel.SCROLL_POLICY_OFFScrollPolicy.OFF
Panel.SCROLL_BAR_DISPLAY_MODE_FIXEDScrollBarDisplayMode.FIXED
Panel.SCROLL_BAR_DISPLAY_MODE_FLOATScrollBarDisplayMode.FLOAT
Panel.SCROLL_BAR_DISPLAY_MODE_NONEScrollBarDisplayMode.NONE
Panel.SCROLL_BAR_DISPLAY_MODE_FIXED_FLOATScrollBarDisplayMode.FIXED_FLOAT
Panel.VERTICAL_SCROLL_BAR_POSITION_RIGHTRelativePosition.RIGHT
Panel.VERTICAL_SCROLL_BAR_POSITION_LEFTRelativePosition.LEFT
Panel.INTERACTION_MODE_TOUCHScrollInteractionMode.TOUCH
Panel.INTERACTION_MODE_MOUSEScrollInteractionMode.MOUSE
Panel.INTERACTION_MODE_TOUCH_AND_SCROLL_BARSScrollInteractionMode.TOUCH_AND_SCROLL_BARS
Panel.MOUSE_WHEEL_SCROLL_DIRECTION_VERTICALDirection.VERTICAL
Panel.MOUSE_WHEEL_SCROLL_DIRECTION_HORIZONTALDirection.HORIZONTAL
Panel.DECELERATION_RATE_NORMALDecelerationRate.NORMAL
Panel.DECELERATION_RATE_FASTDecelerationRate.FAST
Panel.AUTO_SIZE_MODE_STAGEAutoSizeMode.STAGE
Panel.AUTO_SIZE_MODE_CONTENTAutoSizeMode.CONTENT

PanelScreen

Deprecated APIHow to Migrate
PanelScreen.SCROLL_POLICY_AUTOScrollPolicy.AUTO
PanelScreen.SCROLL_POLICY_ONScrollPolicy.ON
PanelScreen.SCROLL_POLICY_OFFScrollPolicy.OFF
PanelScreen.SCROLL_BAR_DISPLAY_MODE_FIXEDScrollBarDisplayMode.FIXED
PanelScreen.SCROLL_BAR_DISPLAY_MODE_FLOATScrollBarDisplayMode.FLOAT
PanelScreen.SCROLL_BAR_DISPLAY_MODE_NONEScrollBarDisplayMode.NONE
PanelScreen.SCROLL_BAR_DISPLAY_MODE_FIXED_FLOATScrollBarDisplayMode.FIXED_FLOAT
PanelScreen.VERTICAL_SCROLL_BAR_POSITION_RIGHTRelativePosition.RIGHT
PanelScreen.VERTICAL_SCROLL_BAR_POSITION_LEFTRelativePosition.LEFT
PanelScreen.INTERACTION_MODE_TOUCHScrollInteractionMode.TOUCH
PanelScreen.INTERACTION_MODE_MOUSEScrollInteractionMode.MOUSE
PanelScreen.INTERACTION_MODE_TOUCH_AND_SCROLL_BARSScrollInteractionMode.TOUCH_AND_SCROLL_BARS
PanelScreen.MOUSE_WHEEL_SCROLL_DIRECTION_VERTICALDirection.VERTICAL
PanelScreen.MOUSE_WHEEL_SCROLL_DIRECTION_HORIZONTALDirection.HORIZONTAL
PanelScreen.DECELERATION_RATE_NORMALDecelerationRate.NORMAL
PanelScreen.DECELERATION_RATE_FASTDecelerationRate.FAST
PanelScreen.AUTO_SIZE_MODE_STAGEAutoSizeMode.STAGE
PanelScreen.AUTO_SIZE_MODE_CONTENTAutoSizeMode.CONTENT

PickerList

No APIs are deprecated.

ProgressBar

Deprecated APIHow to Migrate
ProgressBar.DIRECTION_HORIZONTALDirection.HORIZONTAL
ProgressBar.DIRECTION_VERTICALDirection.VERTICAL

Radio

Deprecated APIHow to Migrate
Radio.STATE_UPButtonState.UP
Radio.STATE_DOWNButtonState.DOWN
Radio.STATE_HOVERButtonState.HOVER
Radio.STATE_DISABLEDButtonState.DISABLED
Radio.STATE_UP_AND_SELECTEDButtonState.UP_AND_SELECTED
Radio.STATE_DOWN_AND_SELECTEDButtonState.DOWN_AND_SELECTED
Radio.STATE_HOVER_AND_SELECTEDButtonState.HOVER_AND_SELECTED
Radio.STATE_DISABLED_AND_SELECTEDButtonState.DISABLED_AND_SELECTED
Radio.ICON_POSITION_TOPRelativePosition.TOP
Radio.ICON_POSITION_RIGHTRelativePosition.RIGHT
Radio.ICON_POSITION_BOTTOMRelativePosition.BOTTOM
Radio.ICON_POSITION_LEFTRelativePosition.LEFT
Radio.ICON_POSITION_MANUALRelativePosition.MANUAL
Radio.ICON_POSITION_LEFT_BASELINERelativePosition.LEFT_BASELINE
Radio.ICON_POSITION_RIGHT_BASELINERelativePosition.RIGHT_BASELINE
Radio.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
Radio.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
Radio.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
Radio.VERTICAL_ALIGN_TOPVerticalAlign.TOP
Radio.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
Radio.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM

Screen

Deprecated APIHow to Migrate
Screen.AUTO_SIZE_MODE_STAGEAutoSizeMode.STAGE
Screen.AUTO_SIZE_MODE_CONTENTAutoSizeMode.CONTENT

ScreenNavigator

Deprecated APIHow to Migrate
ScreenNavigator.AUTO_SIZE_MODE_STAGEAutoSizeMode.STAGE
ScreenNavigator.AUTO_SIZE_MODE_CONTENTAutoSizeMode.CONTENT

ScrollBar

Deprecated APIHow to Migrate
ScrollBar.DIRECTION_HORIZONTALDirection.HORIZONTAL
ScrollBar.DIRECTION_VERTICALDirection.VERTICAL
ScrollBar.TRACK_LAYOUT_MODE_SINGLETrackLayoutMode.SINGLE
ScrollBar.TRACK_LAYOUT_MODE_MIN_MAXTrackLayoutMode.SPLIT

ScrollContainer

Deprecated APIHow to Migrate
ScrollContainer.SCROLL_POLICY_AUTOScrollPolicy.AUTO
ScrollContainer.SCROLL_POLICY_ONScrollPolicy.ON
ScrollContainer.SCROLL_POLICY_OFFScrollPolicy.OFF
ScrollContainer.SCROLL_BAR_DISPLAY_MODE_FIXEDScrollBarDisplayMode.FIXED
ScrollContainer.SCROLL_BAR_DISPLAY_MODE_FLOATScrollBarDisplayMode.FLOAT
ScrollContainer.SCROLL_BAR_DISPLAY_MODE_NONEScrollBarDisplayMode.NONE
ScrollContainer.SCROLL_BAR_DISPLAY_MODE_FIXED_FLOATScrollBarDisplayMode.FIXED_FLOAT
ScrollContainer.VERTICAL_SCROLL_BAR_POSITION_RIGHTRelativePosition.RIGHT
ScrollContainer.VERTICAL_SCROLL_BAR_POSITION_LEFTRelativePosition.LEFT
ScrollContainer.INTERACTION_MODE_TOUCHScrollInteractionMode.TOUCH
ScrollContainer.INTERACTION_MODE_MOUSEScrollInteractionMode.MOUSE
ScrollContainer.INTERACTION_MODE_TOUCH_AND_SCROLL_BARSScrollInteractionMode.TOUCH_AND_SCROLL_BARS
ScrollContainer.MOUSE_WHEEL_SCROLL_DIRECTION_VERTICALDirection.VERTICAL
ScrollContainer.MOUSE_WHEEL_SCROLL_DIRECTION_HORIZONTALDirection.HORIZONTAL
ScrollContainer.DECELERATION_RATE_NORMALDecelerationRate.NORMAL
ScrollContainer.DECELERATION_RATE_FASTDecelerationRate.FAST
ScrollContainer.AUTO_SIZE_MODE_STAGEAutoSizeMode.STAGE
ScrollContainer.AUTO_SIZE_MODE_CONTENTAutoSizeMode.CONTENT

ScrollScreen

Deprecated APIHow to Migrate
ScrollScreen.SCROLL_POLICY_AUTOScrollPolicy.AUTO
ScrollScreen.SCROLL_POLICY_ONScrollPolicy.ON
ScrollScreen.SCROLL_POLICY_OFFScrollPolicy.OFF
ScrollScreen.SCROLL_BAR_DISPLAY_MODE_FIXEDScrollBarDisplayMode.FIXED
ScrollScreen.SCROLL_BAR_DISPLAY_MODE_FLOATScrollBarDisplayMode.FLOAT
ScrollScreen.SCROLL_BAR_DISPLAY_MODE_NONEScrollBarDisplayMode.NONE
ScrollScreen.SCROLL_BAR_DISPLAY_MODE_FIXED_FLOATScrollBarDisplayMode.FIXED_FLOAT
ScrollScreen.VERTICAL_SCROLL_BAR_POSITION_RIGHTRelativePosition.RIGHT
ScrollScreen.VERTICAL_SCROLL_BAR_POSITION_LEFTRelativePosition.LEFT
ScrollScreen.INTERACTION_MODE_TOUCHScrollInteractionMode.TOUCH
ScrollScreen.INTERACTION_MODE_MOUSEScrollInteractionMode.MOUSE
ScrollScreen.INTERACTION_MODE_TOUCH_AND_SCROLL_BARSScrollInteractionMode.TOUCH_AND_SCROLL_BARS
ScrollScreen.MOUSE_WHEEL_SCROLL_DIRECTION_VERTICALDirection.VERTICAL
ScrollScreen.MOUSE_WHEEL_SCROLL_DIRECTION_HORIZONTALDirection.HORIZONTAL
ScrollScreen.DECELERATION_RATE_NORMALDecelerationRate.NORMAL
ScrollScreen.DECELERATION_RATE_FASTDecelerationRate.FAST
ScrollScreen.AUTO_SIZE_MODE_STAGEAutoSizeMode.STAGE
ScrollScreen.AUTO_SIZE_MODE_CONTENTAutoSizeMode.CONTENT

ScrollText

Deprecated APIHow to Migrate
ScrollText.SCROLL_POLICY_AUTOScrollPolicy.AUTO
ScrollText.SCROLL_POLICY_ONScrollPolicy.ON
ScrollText.SCROLL_POLICY_OFFScrollPolicy.OFF
ScrollText.SCROLL_BAR_DISPLAY_MODE_FIXEDScrollBarDisplayMode.FIXED
ScrollText.SCROLL_BAR_DISPLAY_MODE_FLOATScrollBarDisplayMode.FLOAT
ScrollText.SCROLL_BAR_DISPLAY_MODE_NONEScrollBarDisplayMode.NONE
ScrollText.SCROLL_BAR_DISPLAY_MODE_FIXED_FLOATScrollBarDisplayMode.FIXED_FLOAT
ScrollText.VERTICAL_SCROLL_BAR_POSITION_RIGHTRelativePosition.RIGHT
ScrollText.VERTICAL_SCROLL_BAR_POSITION_LEFTRelativePosition.LEFT
ScrollText.INTERACTION_MODE_TOUCHScrollInteractionMode.TOUCH
ScrollText.INTERACTION_MODE_MOUSEScrollInteractionMode.MOUSE
ScrollText.INTERACTION_MODE_TOUCH_AND_SCROLL_BARSScrollInteractionMode.TOUCH_AND_SCROLL_BARS
ScrollText.MOUSE_WHEEL_SCROLL_DIRECTION_VERTICALDirection.VERTICAL
ScrollText.MOUSE_WHEEL_SCROLL_DIRECTION_HORIZONTALDirection.HORIZONTAL
ScrollText.DECELERATION_RATE_NORMALDecelerationRate.NORMAL
ScrollText.DECELERATION_RATE_FASTDecelerationRate.FAST

SimpleScrollBar

Deprecated APIHow to Migrate
SimpleScrollBar.DIRECTION_HORIZONTALDirection.HORIZONTAL
SimpleScrollBar.DIRECTION_VERTICALDirection.VERTICAL

Slider

Deprecated APIHow to Migrate
Slider.DIRECTION_HORIZONTALDirection.HORIZONTAL
Slider.DIRECTION_VERTICALDirection.VERTICAL
Slider.TRACK_LAYOUT_MODE_SINGLETrackLayoutMode.SINGLE
Slider.TRACK_LAYOUT_MODE_MIN_MAXTrackLayoutMode.SPLIT
Slider.TRACK_SCALE_MODE_DIRECTIONALTrackScaleMode.DIRECTIONAL
Slider.TRACK_SCALE_MODE_EXACT_FITTrackScaleMode.EXACT_FIT
Slider.TRACK_INTERACTION_MODE_TO_VALUETrackInteractionMode.TO_VALUE
Slider.TRACK_INTERACTION_MODE_BY_PAGETrackInteractionMode.BY_PAGE

SoundPlayer

No APIs are deprecated.

SpinnerList

No APIs are deprecated.

StackScreenNavigator

Deprecated APIHow to Migrate
StackScreenNavigator.AUTO_SIZE_MODE_STAGEAutoSizeMode.STAGE
StackScreenNavigator.AUTO_SIZE_MODE_CONTENTAutoSizeMode.CONTENT

TabBar

Deprecated APIHow to Migrate
TabBar.DIRECTION_HORIZONTALDirection.HORIZONTAL
TabBar.DIRECTION_VERTICALDirection.VERTICAL
TabBar.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
TabBar.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
TabBar.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
TabBar.HORIZONTAL_ALIGN_JUSTIFYHorizontalAlign.JUSTIFY
TabBar.VERTICAL_ALIGN_TOPVerticalAlign.TOP
TabBar.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
TabBar.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
TabBar.VERTICAL_ALIGN_JUSTIFYVerticalAlign.JUSTIFY

TextArea

Deprecated APIHow to Migrate
stateToSkinFunctionPass an ImageSkin to the backgroundSkin property.
TextArea.STATE_ENABLEDTextInputState.ENABLED
TextArea.STATE_DISABLEDTextInputState.DISABLED
TextArea.STATE_FOCUSEDTextInputState.FOCUSED
TextArea.SCROLL_POLICY_AUTOScrollPolicy.AUTO
TextArea.SCROLL_POLICY_ONScrollPolicy.ON
TextArea.SCROLL_POLICY_OFFScrollPolicy.OFF
TextArea.SCROLL_BAR_DISPLAY_MODE_FIXEDScrollBarDisplayMode.FIXED
TextArea.SCROLL_BAR_DISPLAY_MODE_FLOATScrollBarDisplayMode.FLOAT
TextArea.SCROLL_BAR_DISPLAY_MODE_NONEScrollBarDisplayMode.NONE
TextArea.SCROLL_BAR_DISPLAY_MODE_FIXED_FLOATScrollBarDisplayMode.FIXED_FLOAT
TextArea.VERTICAL_SCROLL_BAR_POSITION_RIGHTRelativePosition.RIGHT
TextArea.VERTICAL_SCROLL_BAR_POSITION_LEFTRelativePosition.LEFT
TextArea.INTERACTION_MODE_TOUCHScrollInteractionMode.TOUCH
TextArea.INTERACTION_MODE_MOUSEScrollInteractionMode.MOUSE
TextArea.INTERACTION_MODE_TOUCH_AND_SCROLL_BARSScrollInteractionMode.TOUCH_AND_SCROLL_BARS
TextArea.MOUSE_WHEEL_SCROLL_DIRECTION_VERTICALDirection.VERTICAL
TextArea.MOUSE_WHEEL_SCROLL_DIRECTION_HORIZONTALDirection.HORIZONTAL
TextArea.DECELERATION_RATE_NORMALDecelerationRate.NORMAL
TextArea.DECELERATION_RATE_FASTDecelerationRate.FAST

TextInput

Deprecated APIHow to Migrate
stateToSkinFunctionPass an ImageSkin to the backgroundSkin property.
stateToIconFunctionPass an ImageSkin to the defaultIcon property.
TextInput.STATE_ENABLEDTextInputState.ENABLED
TextInput.STATE_DISABLEDTextInputState.DISABLED
TextInput.STATE_FOCUSEDTextInputState.FOCUSED
TextInput.VERTICAL_ALIGN_TOPVerticalAlign.TOP
TextInput.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
TextInput.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
TextInput.VERTICAL_ALIGN_JUSTIFYVerticalAlign.JUSTIFY

ToggleButton

Deprecated APIHow to Migrate
ToggleButton.STATE_UPButtonState.UP
ToggleButton.STATE_DOWNButtonState.DOWN
ToggleButton.STATE_HOVERButtonState.HOVER
ToggleButton.STATE_DISABLEDButtonState.DISABLED
ToggleButton.STATE_UP_AND_SELECTEDButtonState.UP_AND_SELECTED
ToggleButton.STATE_DOWN_AND_SELECTEDButtonState.DOWN_AND_SELECTED
ToggleButton.STATE_HOVER_AND_SELECTEDButtonState.HOVER_AND_SELECTED
ToggleButton.STATE_DISABLED_AND_SELECTEDButtonState.DISABLED_AND_SELECTED
ToggleButton.ICON_POSITION_TOPRelativePosition.TOP
ToggleButton.ICON_POSITION_RIGHTRelativePosition.RIGHT
ToggleButton.ICON_POSITION_BOTTOMRelativePosition.BOTTOM
ToggleButton.ICON_POSITION_LEFTRelativePosition.LEFT
ToggleButton.ICON_POSITION_MANUALRelativePosition.MANUAL
ToggleButton.ICON_POSITION_LEFT_BASELINERelativePosition.LEFT_BASELINE
ToggleButton.ICON_POSITION_RIGHT_BASELINERelativePosition.RIGHT_BASELINE
ToggleButton.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
ToggleButton.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
ToggleButton.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
ToggleButton.VERTICAL_ALIGN_TOPVerticalAlign.TOP
ToggleButton.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
ToggleButton.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM

ToggleSwitch

Deprecated APIHow to Migrate
ToggleSwitch.TRACK_LAYOUT_MODE_SINGLETrackLayoutMode.SINGLE
ToggleSwitch.TRACK_LAYOUT_MODE_ON_OFFTrackLayoutMode.SPLIT
ToggleSwitch.LABEL_ALIGN_MIDDLENo replacement. It was a workaround for incorrect height returned by TextBlockTextRenderer, and that has been fixed.
ToggleSwitch.LABEL_ALIGN_BASELINENo replacement. It was a workaround for incorrect height returned by TextBlockTextRenderer, and that has been fixed.
labelAlignNo replacement. It was a workaround for incorrect height returned by TextBlockTextRenderer, and that has been fixed.

WebView

No APIs are deprecated.

VideoPlayer

No APIs are deprecated.

FlowLayout

Deprecated APIHow to Migrate
FlowLayout.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
FlowLayout.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
FlowLayout.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
FlowLayout.VERTICAL_ALIGN_TOPVerticalAlign.TOP
FlowLayout.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
FlowLayout.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM

HorizontalLayout

Deprecated APIHow to Migrate
HorizontalLayout.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
HorizontalLayout.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
HorizontalLayout.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
HorizontalLayout.VERTICAL_ALIGN_TOPVerticalAlign.TOP
HorizontalLayout.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
HorizontalLayout.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
HorizontalLayout.VERTICAL_ALIGN_JUSTIFYVerticalAlign.JUSTIFY

HorizontalSpinnerLayout

Deprecated APIHow to Migrate
HorizontalSpinnerLayout.VERTICAL_ALIGN_TOPVerticalAlign.TOP
HorizontalSpinnerLayout.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
HorizontalSpinnerLayout.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
HorizontalSpinnerLayout.VERTICAL_ALIGN_JUSTIFYVerticalAlign.JUSTIFY

TiledColumnsLayout

Deprecated APIHow to Migrate
TiledColumnsLayout.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
TiledColumnsLayout.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
TiledColumnsLayout.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
TiledColumnsLayout.VERTICAL_ALIGN_TOPVerticalAlign.TOP
TiledColumnsLayout.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
TiledColumnsLayout.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
TiledColumnsLayout.TILE_HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
TiledColumnsLayout.TILE_HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
TiledColumnsLayout.TILE_HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
TiledColumnsLayout.TILE_HORIZONTAL_ALIGN_JUSTIFYHorizontalAlign.JUSTIFY
TiledColumnsLayout.TILE_VERTICAL_ALIGN_TOPVerticalAlign.TOP
TiledColumnsLayout.TILE_VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
TiledColumnsLayout.TILE_VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
TiledColumnsLayout.TILE_VERTICAL_ALIGN_JUSTIFYVerticalAlign.JUSTIFY

TiledRowsLayout

Deprecated APIHow to Migrate
TiledRowsLayout.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
TiledRowsLayout.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
TiledRowsLayout.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
TiledRowsLayout.VERTICAL_ALIGN_TOPVerticalAlign.TOP
TiledRowsLayout.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
TiledRowsLayout.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
TiledRowsLayout.TILE_HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
TiledRowsLayout.TILE_HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
TiledRowsLayout.TILE_HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
TiledRowsLayout.TILE_HORIZONTAL_ALIGN_JUSTIFYHorizontalAlign.JUSTIFY
TiledRowsLayout.TILE_VERTICAL_ALIGN_TOPVerticalAlign.TOP
TiledRowsLayout.TILE_VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
TiledRowsLayout.TILE_VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM
TiledRowsLayout.TILE_VERTICAL_ALIGN_JUSTIFYVerticalAlign.JUSTIFY

TimeLabel

Deprecated APIHow to Migrate
TimeLabel.DISPLAY_MODE_CURRENT_TIMEMediaTimeMode.CURRENT_TIME
TimeLabel.DISPLAY_MODE_TOTAL_TIMEMediaTimeMode.TOTAL_TIME
TimeLabel.DISPLAY_MODE_REMAINING_TIMEMediaTimeMode.REMAINING_TIME
TimeLabel.DISPLAY_MODE_CURRENT_AND_TOTAL_TIMESMediaTimeMode.CURRENT_AND_TOTAL_TIMES

VerticalLayout

Deprecated APIHow to Migrate
VerticalLayout.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
VerticalLayout.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
VerticalLayout.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
VerticalLayout.HORIZONTAL_ALIGN_JUSTIFYHorizontalAlign.JUSTIFY
VerticalLayout.VERTICAL_ALIGN_TOPVerticalAlign.TOP
VerticalLayout.VERTICAL_ALIGN_MIDDLEVerticalAlign.MIDDLE
VerticalLayout.VERTICAL_ALIGN_BOTTOMVerticalAlign.BOTTOM

VerticalSpinnerLayout

Deprecated APIHow to Migrate
VerticalSpinnerLayout.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
VerticalSpinnerLayout.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
VerticalSpinnerLayout.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT
VerticalSpinnerLayout.HORIZONTAL_ALIGN_JUSTIFYHorizontalAlign.JUSTIFY

WaterfallLayout

Deprecated APIHow to Migrate
WaterfallLayout.HORIZONTAL_ALIGN_LEFTHorizontalAlign.LEFT
WaterfallLayout.HORIZONTAL_ALIGN_CENTERHorizontalAlign.CENTER
WaterfallLayout.HORIZONTAL_ALIGN_RIGHTHorizontalAlign.RIGHT

Appendix: Find and Replace Regular Expressions

Many IDEs and text editors offer the ability to use regular expressions to Find and Replace text in a file. You may use the following regular expressions to accelerate the Feathers 3.0 migration process.

These regular expressions are provided for convenience only, and they may not work perfectly in all cases. After making replacements, be sure to double-check the modified code to verify that no unexpected errors were introduced.

FindReplace
\w+\.HORIZONTAL_ALIGN_(\w+)HorizontalAlign.$1
\w+\.VERTICAL_ALIGN_(\w+)VerticalAlign.$1
\w+\.VERTICAL_ALIGN_(\w+)VerticalAlign.$1
\w+\.ICON_POSITION_(\w+)RelativePosition.$1
\w+\.ACCESSORY_POSITION_(\w+)RelativePosition.$1
\w+\.AUTO_SIZE_MODE_(\w+)AutoSizeMode.$1
\w+\.SCROLL_POLICY_(\w+)ScrollPolicy.$1
\w+\.SCROLL_BAR_DISPLAY_MODE_(\w+)ScrollBarDisplayMode.$1
(?<=[\s\,\(])(?!Callout)(?:\w+)\.DIRECTION_(\w+)Direction.$1
\w+\.MOUSE_WHEEL_SCROLL_DIRECTION_(\w+)Direction.$1
\w+\.VERTICAL_SCROLL_BAR_POSITION_(\w+)RelativePosition.$1
\w+\.DECELERATION_RATE_(\w+)DecelerationRate.$1
(?:(?<=[\s\,\(])(?!PageIndicator)(?:\w+))\.INTERACTION_MODE_(\w+)ScrollInteractionMode.$1
(?:TextInput|TextArea).STATE\_(\w+)TextInputState.$1
(?:Button|ToggleButton|Check|Radio).STATE\_(\w+)ButtonState.$1
\w+ItemRenderer.STATE_(\w+)ButtonState.$1
\w+\.TRACK_LAYOUT_MODE_SINGLETrackLayoutMode.SINGLE
\w+\.TRACK*LAYOUT_MODE*(MIN_MAX|ON_OFF)TrackLayoutMode.SPLIT
\w+\.TRACK_SCALE_MODE_(\w+)TrackScaleMode.$1
\w+\.TRACK_INTERACTION_MODE_(\w+)TrackInteractionMode.$1
\w+\.EDITING_MODE_(\w+)DateTimeMode.$1
\w+\.DOCK_MODE_(\w+)Orientation.$1
TimeLabel\.DISPLAY_MODE_(\w+)MediaTimeMode.$1
Header\.TITLE_ALIGN(_PREFER){0,1}_(\w+)HorizontalAlign.$2
Drawers\.OPEN_MODE_(\w+)RelativeDepth.$1
Drawers\.OPEN_GESTURE_(DRAG_)?(CONTENT_)?(\w+)DragGesture.$3
\w+\.LAYOUT_ORDER_(\w+)ItemRendererLayoutOrder.$1
\w+\.BUTTON_LAYOUT_MODE_(\w+)StepperButtonLayoutMode.$1
PageIndicator.INTERACTION_MODE_(\w+)PageIndicatorInteractionMode.$1