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

@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"
		alpha.disabled="0.5" >
	
	<fx:Metadata>
		<![CDATA[ 
		/** 
		* A strongly typed property that references the component to which this skin is applied.
		*/
		[HostComponent("spark.components.Application")]
		]]>
	</fx:Metadata> 
	
	<s:states>
		<s:State name="normal" />
		<s:State name="disabled" />
		<s:State name="normalWithControlBar" />
		<s:State name="disabledWithControlBar" />
	</s:states>
	
	<!-- fill -->
	<!--- 
	A rectangle with a solid color fill that forms the background of the application.
	The color of the fill is set to the Application's backgroundColor property.
	-->
	<s:Rect id="backgroundRect" left="0" right="0" top="0" bottom="0"  >
		<s:fill>
			<s:SolidColor color="0xFFFFFF" alpha="0" />
		</s:fill>
	</s:Rect>
	
	<s:Group left="0" right="0" top="0" bottom="0">
		<s:layout>
			<s:VerticalLayout gap="0" horizontalAlign="justify" />
		</s:layout>
		
		<!--- 
		Application Control Bar
		-->
		<s:Group id="topGroup" minWidth="0" minHeight="0"
				 includeIn="normalWithControlBar, disabledWithControlBar">
			
			<!-- layer 0: control bar background -->
			<s:Rect left="0" right="0" bottom="0" top="1" >
				<s:fill>
					<!-- ADDED CUSTOM GRADIENT FILL ON THE CONTROL BAR FOR SAMPLE -->
						<s:LinearGradient rotation="90">
							<s:entries>
								<s:GradientEntry color="0x000000" ratio="0.00" alpha="0.8"/>
								<s:GradientEntry color="0xCCCCCC" ratio="0.5" alpha="0.8"/>
							</s:entries>
						</s:LinearGradient>	
				</s:fill>
			</s:Rect>
			
			<!-- layer 1: control bar divider line -->
			<s:Rect left="0" right="0" bottom="0" height="1" >
				<s:fill>
					<s:SolidColor color="0xD1E0F2" />
				</s:fill>
			</s:Rect>
			
			<!-- layer 2: control bar -->
			<!-- Modified the group constraints to set the content 5 pixels from the right for this sample -->
			<s:Group id="controlBarGroup" right="5">
				<s:layout>
					<s:HorizontalLayout paddingLeft="10" paddingRight="10" paddingTop="7" paddingBottom="7" gap="10" />
				</s:layout>
			</s:Group>
		</s:Group>
		
		<!--- 
		@copy spark.components.SkinnableContainer#contentGroup
		-->
		<s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0" />
		
	</s:Group>
	
</s:Skin>
