<?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.

-->
<mx:Application backgroundColor="0xFFFFFF" backgroundImage="" height="375" width="500" xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" >
<mx:Script>
<![CDATA[

	    import flash.display.BlendMode;
        [Embed(source="../../../../Assets/Images/bluerect.jpg")]
        public var blueback:Class;
]]>
</mx:Script>
<mx:Style>
	@namespace "library://ns.adobe.com/flex/mx";
    .myBackground {
        backgroundColor: #CCDD22;
    }
    .myDisabledColor {
        backgroundDisabledColor: #55FF93;
    }
    .myBorder {
        borderColor: #9900CC;
        borderThickness: 4;
    }

    .colorStyle {
        color: #00CC00;
    }

    .disabledColorStyle {
        color: #00CC00;
    }

    .disabledOverlayAlphaStyle {
        disabledOverlayAlpha: 0.8;
        disabledColor: #FF0000;
    }

    .cornerRadiusStyle {
        cornerRadius: 10;
     }

   .dropShadowColorStyle {
        dropShadowEnabled: true;
        dropShadowColor: #FF0000;
   }
   .customFocusBlend {
       focusThickness: 8;
       focusBlend: "screen";
       paddingBottom: 2;
	   paddingLeft: 2;
	   paddingRight: 2;
	   paddingTop: 2;
   }
   .customFocusBlend2 {
       focusThickness: 8;
       focusBlend: "subtract";
       paddingBottom: 2;
	   paddingLeft: 2;
	   paddingRight: 2;
	   paddingTop: 2;
   }
   .customFocusThickness {
       focusThickness: 0;
       paddingBottom: 2;
	   paddingLeft: 2;
	   paddingRight: 2;
	   paddingTop: 2;
   }
   .customFocusThickness2 {
       focusThickness: 8;
       paddingBottom: 2;
	   paddingLeft: 2;
	   paddingRight: 2;
	   paddingTop: 2;
   }
   .customFocusSkin {
       focusSkin: ClassReference("RedFocusRect");
       paddingBottom: 2;
	   paddingLeft: 2;
	   paddingRight: 2;
	   paddingTop: 2;
   }
</mx:Style>
<mx:Style>
	@namespace "library://ns.adobe.com/flex/mx";
	@font-face {
		src: url("../../../../Assets/Fonts/PT_Serif/PT_Serif-Web-Regular.ttf");
		fontFamily: EmbeddedArial;
			embedAsCFF: false;
	}

	@font-face {
		src: url("../../../../Assets/Fonts/PT_Serif/PT_Serif-Web-Bold.ttf");
		fontWeight: bold;			
		fontFamily: EmbeddedArial;
			embedAsCFF: false;
	}

	@font-face {
		src: url("../../../../Assets/Fonts/PT_Serif/PT_Serif-Web-Italic.ttf");
		fontStyle: italic;			
		fontFamily: EmbeddedArial;
			embedAsCFF: false;
	}

	@font-face {
		src: url("../../../../Assets/Fonts/PT_Serif/PT_Serif-Web-Regular.ttf");
		fontFamily: EmbeddedVerdana;
			embedAsCFF: false;
	}

	@font-face {
		src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Bold.ttf");
		fontWeight: bold;
		fontFamily: EmbeddedVerdana;
			embedAsCFF: false;
	}

	@font-face {
		src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Italic.ttf");
		fontStyle: italic;
		fontFamily: EmbeddedVerdana;
			embedAsCFF: false;
	}

LinkBar{
    fontFamily: EmbeddedVerdana;
    fontAntiAliasType: normal;
}
</mx:Style>
	<mx:Canvas id="canvas1" width="200" height="200">
        <MyLinkBar id="linkBar_1" />
    </mx:Canvas>
    <mx:TextInput />

</mx:Application>
