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

@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" blendMode="normal" mouseEnabled="false"
			 minWidth="76" minHeight="76" alpha.disabled="0.5" alpha.disabledWithControlBar="0.5">
	
	<fx:Metadata>
		<![CDATA[ 
		/** 
		* @copy spark.skins.spark.ApplicationSkin#hostComponent
		*/
		[HostComponent("spark.components.TitleWindow")]
		]]>
	</fx:Metadata>      
	
	<s:states>
		<s:State name="normal" stateGroups="normalGroup"/>
		<s:State name="active" />
		<s:State name="inactive" />
		<s:State name="disabled" />
		<s:State name="normalWithControlBar" stateGroups="withControls, normalGroup"/>
		<s:State name="activeWithControlBar" stateGroups="withControls" />
		<s:State name="inactiveWithControlBar" />
		<s:State name="disabledWithControlBar" stateGroups="withControls" />
	</s:states>
	
	<!--- top group mask @private-->
	<s:Group left="1" top="1" right="1" bottom="1" id="topGroupMask">
		<!--- @private-->
		<s:Rect id="topMaskRect" left="0" top="0" right="0" bottom="0"
				topLeftRadiusX="10" topRightRadiusX="10" bottomLeftRadiusX="0" bottomRightRadiusX="0">
			<s:fill>
				<s:SolidColor alpha="0"/>
			</s:fill>
		</s:Rect>
	</s:Group>
	
	<!--- bottom group mask @private-->
	<s:Group left="1" top="1" right="1" bottom="1" id="bottomGroupMask" 
			 includeIn="withControls"
			 >
		<!--- @private-->
		<s:Rect id="bottomMaskRect" left="0" top="0" right="0" bottom="0"
				topLeftRadiusX="10" topRightRadiusX="10" bottomLeftRadiusX="0" bottomRightRadiusX="0">
			<s:fill>
				<s:SolidColor alpha="0"/>
			</s:fill>
		</s:Rect>
	</s:Group>
	
	<!--- layer 1: border @private -->
	<s:Rect id="border" left="0" right="0" top="0" bottom="0"
			topLeftRadiusX="10" topRightRadiusX="10" bottomLeftRadiusX="0" bottomRightRadiusX="0">
		<s:stroke>
			<!--- Defines the TitleWindowSkin class's border strole. The default value is 1. -->
			<s:SolidColorStroke color="#82826B" weight="1" />
		</s:stroke>
	</s:Rect>
	
	<!-- layer 2: background fill -->
	<!--- Defines the appearance of the TitleWindowSkin class's background. -->
	<s:Rect id="background" left="1" top="1" right="1" bottom="1"
			topLeftRadiusX="10" topRightRadiusX="10" bottomLeftRadiusX="0" bottomRightRadiusX="0">
		<s:fill>
			<!--- Defines the TitleWindowSkin class's background fill. The default color is 0xFFFFFF. -->
			<s:SolidColor id="backgroundFill" color="0xAAAA89"/>
		</s:fill>
	</s:Rect>
	
	<!-- layer 3: contents -->
	<!--- Contains the vertical stack of title bar content and control bar. -->
	<s:Group left="1" right="1" top="1" bottom="1" id="contents">
		<s:layout>
			<s:VerticalLayout gap="0" horizontalAlign="justify" />
		</s:layout>
		<!--- @private -->
		<s:Group id="topGroup" mask="{topGroupMask}">
			
			<!--- layer 0: title bar fill @private -->
			<s:Rect id="tbFill" left="0" right="0" top="0" bottom="1">
				<s:fill>
					<s:SolidColor color="#AAAA89"/>
				</s:fill>
			</s:Rect>
			<!-- layer 3: title bar image-->
			<mx:Image left="1" right="1" top="0" height="30"
			source= "@Embed(source='/assets/flex_skins.swf', symbol='Title_sparkGraphic_backgroundSkin')"	
			/>
			
			<!--- layer 2: title bar divider @private -->
			<s:Rect id="tbDiv" left="0" right="0" height="1" bottom="0">
				<s:fill>
					<s:SolidColor color="0x82826B" alpha="0.75" />
				</s:fill>
			</s:Rect>
			
			<!-- layer 3: text -->
			<!--- Defines the appearance of the TitleWindowSkin class's title bar. -->
			<s:Label id="titleDisplay" maxDisplayedLines="1"
					 left="9" right="24" top="1" bottom="0" minHeight="30"
					 verticalAlign="middle" fontWeight="bold" color="#4C2600">
			</s:Label>
			
			<!-- layer 4: moveArea -->
			<!--- Defines the area where the user can drag the TitleWindow. -->
			<s:Group id="moveArea" left="0" right="0" top="0" bottom="0" />
			
			<!--- Defines the appearance of the close button. -->
			<s:Button id="closeButton" skinClass="zen.skins.TitleWindowCloseButtonSkin"
					  width="15" height="15" right="2" top="7" />
		</s:Group>
		
		<!--
		Note: setting the minimum size to 0 here so that changes to the host component's
		size will not be thwarted by this skin part's minimum size.   This is a compromise,
		more about it here: http://bugs.adobe.com/jira/browse/SDK-21143
		-->
		<!---  The definition of the contentGroup skin part. -->
		<s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0">
		</s:Group>
		
		<!--- @private -->
		<s:Group id="bottomGroup" minWidth="0" minHeight="0" 
				 includeIn="withControls">  
			
			<s:Group left="0" right="0" top="0" bottom="0" mask="{bottomGroupMask}">
				
				<!-- layer 0: control bar divider line -->
				<s:Rect left="0" right="0" top="0" height="1" alpha="0.22">
					<s:fill>
						<s:SolidColor color="#82826B" />
					</s:fill>
				</s:Rect>
				<!-- layer 2: control bar fill -->
				<s:Rect left="1" right="1" top="2" bottom="1">
					<s:fill>
						<s:SolidColor color="#AAAA89"/>
					</s:fill>
				</s:Rect>
			</s:Group>
			
			<!--- layer 3: control bar @private-->
			<s:Group id="controlBarGroup" left="0" right="0" top="1" bottom="1" minWidth="0" minHeight="0">
				<s:layout>
					<s:HorizontalLayout paddingLeft="10" paddingRight="10" paddingTop="7" paddingBottom="7" gap="10" />
				</s:layout>
			</s:Group>
		</s:Group>
	</s:Group>
</s:Skin>