<?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 a Spark ViewMenu in a mobile application.  

@see spark.components.ViewMenu

@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" alpha.disabled="0.5">
	
	
    
    <fx:Metadata>
        <![CDATA[ 
        /** 
        * @copy spark.skins.spark.ApplicationSkin#hostComponent
        */
        [HostComponent("spark.components.ViewMenu")]
        ]]>
    </fx:Metadata> 
    
	<fx:Script>
		<![CDATA[
			import spark.effects.easing.Power;
		]]>
	</fx:Script>
	
    <s:states>
        <s:State name="normal"                          stateGroups="openedGroup"/>
        <s:State name="closed"                          stateGroups="closedGroup"/>
        <s:State name="disabled"                        stateGroups="openedGroup"/>
        <s:State name="normalAndLandscape"              stateGroups="openedGroup, landscapeGroup"/>
        <s:State name="closedAndLandscape"              stateGroups="closedGroup, landscapeGroup"/>
        <s:State name="disabledAndLandscape"            stateGroups="openedGroup, landscapeGroup" />
    </s:states>
    
    <s:transitions>
        <s:Transition fromState="closed" toState="normal" autoReverse="true">
            <s:Parallel>
                <s:Fade target="{chromeGroup}" duration="150" easer="{new Power(0.5, 3)}" /> 
                <s:Move target="{chromeGroup}" duration="150" disableLayout="true"  easer="{new Power(0, 5)}"/>
            </s:Parallel>
        </s:Transition>
        
        <s:Transition fromState="closedAndLandscape" toState="normalAndLandscape" autoReverse="true">
            <s:Parallel>
                <s:Fade target="{chromeGroup}" duration="150" easer="{new Power(0.5, 3)}" /> 
                <s:Move target="{chromeGroup}" duration="150" disableLayout="true"  easer="{new Power(0, 5)}"/>
            </s:Parallel>
        </s:Transition>

        <s:Transition fromState="normal" toState="closed" autoReverse="true">
            <s:Parallel>
                <s:Fade target="{chromeGroup}" duration="100"/> 
                <s:Move target="{chromeGroup}" duration="100" disableLayout="true"/>
            </s:Parallel>
        </s:Transition>

        <s:Transition fromState="normalAndLandscape" toState="closedAndLandscape" autoReverse="true">
            <s:Parallel>
                <s:Fade target="{chromeGroup}" duration="100"/> 
                <s:Move target="{chromeGroup}" duration="100" disableLayout="true"/>
            </s:Parallel>
        </s:Transition>
    </s:transitions>

    <!-- The ViewMenu and its skin are sized to the application.
         The menu chrome is a separate group that is anchored to the bottom of the skin. -->

    <s:Group id="chromeGroup"
             left="0"
             right="0"
             top.closedGroup="{hostComponent.height - chromeGroup.height / 2}"
             bottom.openedGroup="0" 
             visible.closedGroup="false">
        
        <!-- Divider line -->
        <s:Rect left="0" right="0" top="0" height="0" >
			<s:filters>
				<s:DropShadowFilter color="0x000000" blurX="100" blurY="100"/>
			</s:filters>
            <s:stroke>
                <s:SolidColorStroke id="dividerStroke" weight="0" color="#FFFFFF"/>   
            </s:stroke>
        </s:Rect> 
        
        <!-- Background -->
		<!-- was 1 from the top, I made less -->
        <s:Rect left="0" right="0" top="1" bottom="0" id="background" radiusX="10" >
			<s:filters>
				<s:DropShadowFilter color="0x000000" blurY="20" blurX="20"/>
			</s:filters>
			<s:fill> 
				<s:SolidColor color="0xFFFFFF"/>
			</s:fill>
        </s:Rect>
        
       
        <!--- @copy spark.components.SkinnableContainer#contentGroup -->
        <s:Group id="contentGroup" left="0" right="0" top="3" bottom="2" minWidth="0" minHeight="0">
            <s:layout>
                <s:ViewMenuLayout horizontalGap="2" verticalGap="2" id="contentGroupLayout"
                                  requestedMaxColumnCount="3" requestedMaxColumnCount.landscapeGroup="6"/>
            </s:layout>
        </s:Group>    
    </s:Group>
</s:SparkSkin>
