package { import fl.controls.Button; import fl.controls.CheckBox; import fl.controls.ComboBox; import fl.controls.DataGrid; import fl.controls.Label; import fl.controls.List; import fl.controls.NumericStepper; import fl.controls.RadioButton; import fl.controls.TextArea; import fl.controls.TextInput; import fl.core.UIComponent; import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFormat; /** * Utilities for styling. * @author Craig Grummitt */ public class StyleUtils { /** * Sets the TextFormat style of an object, regardless of the object type * @param object The object to set. * @param format The TextFormat style to use. */ public static function setStyle(object:Sprite, format:TextFormat):void { if (object is TextField) { var textField:TextField = object as TextField; textField.embedFonts=true; textField.defaultTextFormat=format; } else if (object is UIComponent) { var component:UIComponent = object as UIComponent; if (component is TextArea || component is Button || component is TextInput || component is Label || component is NumericStepper || component is RadioButton || component is CheckBox) { component.setStyle("embedFonts", true); component.setStyle("textFormat", format); } else if (component is ComboBox) { var cb:ComboBox = component as ComboBox; cb.textField.setStyle("embedFonts", true); //textField is the item displayed in the combo box cb.textField.setStyle("textFormat", format); cb.dropdown.setRendererStyle("embedFonts", true); //dropdown is the list of options cb.dropdown.setRendererStyle("textFormat", format); } else if (component is List) { var list:List = component as List; list.setRendererStyle("embedFonts", true); list.setRendererStyle("textFormat", format); } else if (component is DataGrid) { var dataGrid:DataGrid = component as DataGrid; dataGrid.setRendererStyle("embedFonts", true); dataGrid.setRendererStyle("textFormat", format); dataGrid.setStyle("headerTextFormat", format); //styles the datagrid's header } } } } }