<?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 Spark VSlider component. The thumb and track skins are defined by the
VSliderThumbSkin and VSliderTrackSkin classes, respectively. -->
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
	  minWidth="11" minHeight="100"
	  alpha.disabled="0.5">

    <fx:Metadata>
    <![CDATA[ 
	/** 
	 * @copy spark.skins.default.ApplicationSkin#hostComponent
	 */
    	[HostComponent("spark.components.VSlider")]
    ]]>
    </fx:Metadata> 
    
    
    <s:states>
    	<s:State name="normal" />
    	<s:State name="disabled" />
    </s:states>
    
    <fx:Declarations>
	<!--- Defines the appearance of the the Slider's DataTip. To customize the DataTip's appearance, create a custom VSliderSkin class. -->
        <fx:Component id="dataTip">
			<s:DataRenderer minHeight="24" minWidth="40" x="20">
				<s:Rect top="2" left="0" right="0" bottom="0" radiusX="6">
					<s:fill>
						<s:SolidColor color="0x000000" alpha=".25"/>
					</s:fill>
				</s:Rect>
				
				<s:Rect top="0" left="0" right="0" bottom="2" radiusX="6">
					<s:fill>
						<s:SolidColor color="0xC9CEEE" alpha="1"/>
					</s:fill>
				</s:Rect>
				
				<s:Label id="labelDisplay" text="{data}"
						 horizontalCenter="0" verticalCenter="1"
						 left="5" right="5" top="1" bottom="5"
						 textAlign="center" verticalAlign="middle"
						 fontWeight="normal" color="0x000000" fontSize="11">
				</s:Label>
			</s:DataRenderer>
		</fx:Component>
    </fx:Declarations>
    
    <!--- Defines the skin class for the VSliderSkin's track. The default skin class is VSliderTrackSkin. -->
    <!-- using a graphical skin, need to increase constraints right and left so track does not scale to the bounding height of the thumb -->
    <s:Button id="track" left="4" right="4" top="0" bottom="0" 
              skinClass="arcade.skins.VSliderTrackSkin"/>
    <!--- Defines the skin class for the VSliderSkin's thumb. The default skin class is VSliderThumbSkin. -->
    <s:Button id="thumb" left="0" right="0" width="11" height="11" 
               skinClass="arcade.skins.VSliderThumbSkin"/>

</s:Skin>
