<?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
    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:comps="comps.*"
    backgroundColor="0xFFFFFF">

	<fx:Style>
		@namespace s "library://ns.adobe.com/flex/spark";
		@namespace mx "library://ns.adobe.com/flex/mx";

		@font-face {
			src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Regular.ttf");
			fontFamily: MyVera;
			embedAsCFF: true;
		}

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

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

		global{
			fontAntiAliasType: "normal";
			fontFamily: MyVera;
            fontLookup: "embeddedCFF";
		}

	</fx:Style>

    <fx:Script>
		<![CDATA[
		    [Bindable]
	            [Embed('Assets/resultset_next.png')]
	            public var Ico2:Class;

			public function setLdRTL():void
			{
				cb_m1.setStyle('layoutDirection','rtl');
			}

			public function setDRTL():void
			{
				cb_m1.setStyle('direction','rtl');
			}
		]]>
    </fx:Script>

    <s:layout>
        <s:VerticalLayout paddingTop="10" paddingLeft="10"/>
    </s:layout>

	<s:Panel id="myPanel">
	    <s:layout>
	        <s:VerticalLayout paddingTop="20" paddingLeft="20" paddingBottom="20" paddingRight="20"/>
	    </s:layout>

		<comps:Custom_CB_M id="cb_m1"/>

	</s:Panel>

	<s:Panel id="myPanel2">
	    <s:layout>
	        <s:VerticalLayout paddingTop="20" paddingLeft="20" paddingBottom="20" paddingRight="20"/>
	    </s:layout>

		<comps:Custom_CB_M_RTL id="cb_m2"/>

	</s:Panel>

	<comps:myCustomPanel_M id="myPanel3"/>

        <mx:ComboBox id="cb_icon" width="100"  >
            <mx:dataProvider>
                <mx:ArrayList>
                    <fx:Object label="red" icon="{Ico2}" />
                    <fx:Object label="green" icon="{Ico2}" />
                    <fx:Object label="Blue" />
                </mx:ArrayList>
            </mx:dataProvider>
        </mx:ComboBox>

</s:Application>
