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

-->


<!--- The default skin class for the anchor button on a Spark ComboBox component.  

    @see spark.components.ComboBox        
    @see spark.skins.spark.ComboBoxSkin
    
    @langversion 3.0
    @playerversion Flash 10
    @playerversion AIR 1.5
    @productversion Flex 4
-->
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"
             xmlns:fb="http://ns.adobe.com/flashbuilder/2009" minWidth="20" minHeight="23">
    
    <fx:Metadata>
        <![CDATA[ 
        /** 
        * @copy spark.skins.spark.ApplicationSkin#hostComponent
        */
        [HostComponent("spark.components.Button")]
        ]]>
    </fx:Metadata> 
    
    <!-- states -->
    <s:states>
        <s:State name="up" />
        <s:State name="over" />
        <s:State name="down" />
        <s:State name="disabled" />
    </s:states>
    
	<!-- skin -->
	<mx:Image left="0" top="0" right="0" bottom="0" maintainAspectRatio="false"
			  source.up= "@Embed(source='/assets/flex_skins.swf', symbol='ComboBoxArrow_editableUpSkin')"	
			  source.over= "@Embed(source='/assets/flex_skins.swf', symbol='ComboBoxArrow_editableOverSkin')"
			  source.down= "@Embed(source='/assets/flex_skins.swf', symbol='ComboBoxArrow_editableDownSkin')"
			  source.disabled= "@Embed(source='/assets/flex_skins.swf', symbol='ComboBoxArrow_editableDisabledSkin')"
			  />
</s:Skin>
