<?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 thumb of a Spark HSlider component.  
        
      @langversion 3.0
      @playerversion Flash 10
      @playerversion AIR 1.5
      @productversion Flex 4
 -->
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:fb="http://ns.adobe.com/flashbuilder/2009">

    <fx:Metadata>
    <![CDATA[ 
    /** 
     * @copy spark.skins.spark.ApplicationSkin#hostComponent
     */
        [HostComponent("spark.components.Button")]
    ]]>
    </fx:Metadata> 
    
    
    <s:states>
        <s:State name="up" />
        <s:State name="over" />
        <s:State name="down" />
        <s:State name="disabled" />
    </s:states>

    <!-- drop shadow -->
    <s:Rect left="-2" top="-2" right="-2" bottom="-2" radiusX="8.5" radiusY="8.5">
        <s:stroke>
            <s:LinearGradientStroke rotation="90" weight="1">
                <s:GradientEntry color="0x000000" alpha="0" />
                <s:GradientEntry color="0x000000" alpha="0" />
                <s:GradientEntry color="0x000000" alpha="0.03"/>
            </s:LinearGradientStroke>
        </s:stroke>
    </s:Rect>
    <s:Rect left="-1" top="-1" right="-1" bottom="-1" radiusX="7.5" radiusY="7.5">
        <s:stroke>
            <s:LinearGradientStroke rotation="90" weight="1">
                <s:GradientEntry color="0x000000" alpha="0.011" />
                <s:GradientEntry color="0x000000" alpha="0.121" />
            </s:LinearGradientStroke>
        </s:stroke>
    </s:Rect>
    
    <!-- border -->
    <s:Rect left="0" right="0" top="0" bottom="0" radiusX="7" radiusY="7">
        <s:fill>
            <s:SolidColor color="0x4F4F4F"  />
        </s:fill>
    </s:Rect>

    <!-- fill -->
    <s:Rect left="0.5" right="0.5" top="0.5" bottom="0.5" radiusX="6" radiusY="6">
        <s:stroke>
            <s:LinearGradientStroke rotation="90" weight="1">
                <s:GradientEntry color="0x000000" alpha="0" />
                <s:GradientEntry color="0x000000" alpha="0.33" />
            </s:LinearGradientStroke>
        </s:stroke>
        <s:fill>
            <s:LinearGradient rotation="90">
                <s:GradientEntry color="0xFFFFFF" 
                               color.over="0xE5E5E5"
                               color.down="0x999999" />
                <s:GradientEntry color="0xD8D8D8" 
                               color.over="0x7D7D7D"
                               color.down="0x555555" />
            </s:LinearGradient>
        </s:fill>
    </s:Rect>

    <!-- highlight -->
    <s:Rect left="1" right="1" top="1" bottom="1" radiusX="6" radiusY="6">
        <s:fill>
            <s:LinearGradient rotation="90">
                <s:GradientEntry color="0xFFFFFF" alpha.over="0" alpha.down="0" />
                <s:GradientEntry color="0xFFFFFF" alpha="0" />
                <s:GradientEntry color="0xFFFFFF" alpha="0" />
            </s:LinearGradient>
        </s:fill>
    </s:Rect>
        <s:Rect left="4" top="1" right="4" height="1">
            <s:fill>
                <s:SolidColor color="0xFFFFFF" 
                            color.down="0x939393"
                            alpha.over="0.22" />
            </s:fill>
        </s:Rect>
</s:SparkSkin>
