<?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:Module xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="iniit()">
	
	<fx:Style>
		@namespace mx "library://ns.adobe.com/flex/mx";
		
		@font-face{
			src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Regular.ttf");
			fontFamily: HaloVera;
			embedAsCFF: false;
		}


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

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

		@font-face{
			src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-BoldItalic.ttf");
			fontWeight: bold;
			fontStyle: italic;
			fontFamily: HaloVera;

			embedAsCFF: false;
		}

		mx|ComboBox
		{
			fontAntiAliasType: "normal";
			fontFamily: HaloVera;
		}
		
		.myComboBox
		{
			fontAntiAliasType: "normal";
			fontFamily: HaloVera;
		}
	</fx:Style>

	<fx:Script>
	<![CDATA[
	    import mx.collections.*;

	    public function iniit():void
	    {
		var arr:Array =
		 [
		   { label:'Apple', data:10.00},
		   { label:'Banana', data:15.00 },
		   { label:'Melon', data:3.50 },
		   { label:'Kiwi', data:7.65},
		   { label:'Strawberry',data:12.35 },
		   { label:'Other', data:00.00}
		 ];

		 cb.dataProvider = arr;
		 cbOne.dataProvider = arr;
	    }
	]]>
	</fx:Script>
	<mx:ComboBox id="cb" />
	<mx:ComboBox id="cbOne" styleName="myComboBox" />
</mx:Module>