<?xml version="1.0" encoding="utf-8"?>
<!--

  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.

-->
<s:Application backgroundColor="0xFFFFFF"  xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" xmlns="*" width="600" height="600" >
<s:layout><s:VerticalLayout/></s:layout>
    <fx:Style source="../../../../Assets/Fonts/myStyles.css" />

    <fx:Style>
        .customAlternatingItemColors {
            alternatingItemColors: #fff000,#000fff;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customColor {
            color: #FFF000;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customFontFamily {
            fontFamily: "MyVerdana";
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customFontSize {
            fontSize: 20;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customFontSize2 {
            fontSize: 2;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

         .customFontStyle {
            fontStyle: "italic";
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customFontStyle2 {
            fontStyle: "normal";
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customFontWeight {
            fontWeight: "bold";
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customTextIndent {
            textIndent: 20;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customTextDecoration2 {
            textDecoration: "normal";
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customTextDecoration {
            textDecoration: "underline";
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customRollOverColor {
            rollOverColor: #11770e;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customSelectionColor {
            selectionColor: #cc2211;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customTextRollOverColor {
            textRollOverColor: #11770e;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customTextSelectedColor {
            textSelectedColor: #cc2211;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customLetterSpacing {
            letterSpacing: 2;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }

        .customLetterSpacing2 {
            letterSpacing: 10;
            borderThickness: 0;
            cornerRadius: 0;
            dropShadowEnabled: true;
            fontWeight: "normal";
            leading: 0;
            paddingLeft: 5;
            paddingRight: 5;
            shadowDirection: "center";
            shadowDistance: 1;
        }
    </fx:Style>
    <ComboBoxComp id="mybox" />

</s:Application>

