You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jm...@apache.org on 2014/08/10 13:20:37 UTC

[2/6] Added more spark examples

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/CustomSkinnableContainerSkin.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/CustomSkinnableContainerSkin.mxml b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/CustomSkinnableContainerSkin.mxml
new file mode 100644
index 0000000..421f82a
--- /dev/null
+++ b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/CustomSkinnableContainerSkin.mxml
@@ -0,0 +1,55 @@
+<?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.
+
+-->
+
+<s:Skin 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[ 
+		[HostComponent("spark.components.SkinnableContainer")]
+		]]>
+	</fx:Metadata> 
+	
+	<s:states>
+		<s:State name="normal" />
+		<s:State name="disabled" />
+	</s:states>
+	
+	<s:Rect left="0" right="0" top="0" bottom="0" radiusX="5" radiusY="5">
+		<s:stroke>
+			<s:LinearGradientStroke weight="2"/>
+		</s:stroke>
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:entries>
+					<s:GradientEntry color="0xCCCCCC"/>
+					<s:GradientEntry color="0x323232" alpha=".8" />
+				</s:entries>
+			</s:LinearGradient>	
+		</s:fill>
+	</s:Rect>
+	
+	<s:Group id="contentGroup" left="0" right="0" top="0" bottom="0" minWidth="0" minHeight="0">
+		<s:layout>
+			<s:BasicLayout/>
+		</s:layout>
+	</s:Group>
+	
+</s:Skin>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/FancyButtonSkin.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/FancyButtonSkin.mxml b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/FancyButtonSkin.mxml
new file mode 100644
index 0000000..f961641
--- /dev/null
+++ b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/FancyButtonSkin.mxml
@@ -0,0 +1,271 @@
+<?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.
+
+-->
+<!--
+@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" 
+			 minWidth="21" minHeight="21"
+			 alpha.disabled="0.5">
+	
+	<!-- host component -->
+	<fx:Metadata>
+		<![CDATA[ 
+		/** 
+		* @copy spark.skins.spark.ApplicationSkin#hostComponent
+		*/
+		[HostComponent("spark.components.Button")]
+		]]>
+	</fx:Metadata>
+	
+	<fx:Script>
+		<![CDATA[         
+			/* Define the skin elements that should not be colorized. 
+			
+			For button, the graphics are colorized but the label is not. */
+			
+			static private const exclusions:Array = ["labelDisplay"];
+			
+			
+			
+			/** 
+			 
+			 * @copy spark.skins.SparkSkin#colorizeExclusions
+			 
+			 */     
+			
+			override public function get colorizeExclusions():Array {return exclusions;}
+			
+		]]>        
+		
+	</fx:Script>
+	
+	
+	
+	<!-- states -->
+	<s:states>
+		<s:State name="up" />
+		<s:State name="over" />
+		<s:State name="down" />
+		<s:State name="disabled" />
+	</s:states>
+	
+	
+	
+	<!-- layer 1: shadow -->
+	<s:Rect left="-1" right="-1" top="-1" bottom="-1" radiusX="2" radiusY="2">
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:GradientEntry color="0x000000" 
+								 color.down="0xFFFFFF"
+								 alpha="0.01"
+								 alpha.down="0" />
+				<s:GradientEntry color="0x000000" 
+								 color.down="0xFFFFFF" 
+								 alpha="0.07"
+								 alpha.down="0.5" />
+			</s:LinearGradient>
+		</s:fill>
+	</s:Rect>
+	
+	
+	
+	<!-- layer 2: fill -->
+	
+	<s:Rect left="1" right="1" top="1" bottom="1" radiusX="2" radiusY="2">
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:GradientEntry color="0xFFFFFF" 
+								 color.over="0xBBBDBD" 
+								 color.down="0xAAAAAA" 
+								 alpha="0.85" />
+				<s:GradientEntry color="0xD8D8D8" 
+								 color.over="0x9FA0A1" 
+								 color.down="0x929496" 
+								 alpha="0.85" />
+			</s:LinearGradient>
+		</s:fill>
+	</s:Rect>
+	
+	
+	<!-- layer 3: fill lowlight -->
+	
+	<s:Rect left="1" right="1" bottom="1" height="9" radiusX="2" radiusY="2">
+		
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:GradientEntry color="0x000000" alpha="0.0099" />
+				<s:GradientEntry color="0x000000" alpha="0.0627" />
+			</s:LinearGradient>
+		</s:fill>
+	</s:Rect>
+	
+	
+	
+	<!-- layer 4: fill highlight -->
+	
+	<s:Rect left="1" right="1" top="1" height="9" radiusX="2" radiusY="2">
+		<s:fill>
+			<s:SolidColor color="0xFFFFFF" 
+						  alpha="0.33" 
+						  alpha.over="0.22" 
+						  alpha.down="0.12" />
+		</s:fill>
+	</s:Rect>
+	
+	
+	
+	<!-- layer 5: highlight stroke (all states except down) -->
+	<s:Rect left="1" right="1" top="1" bottom="1" radiusX="2" radiusY="2" excludeFrom="down">
+		<s:stroke>
+			<s:LinearGradientStroke rotation="90" weight="1">
+				<s:GradientEntry color="0xFFFFFF" alpha.over="0.22" />
+				<s:GradientEntry color="0xD8D8D8" alpha.over="0.22" />
+			</s:LinearGradientStroke>
+		</s:stroke>
+	</s:Rect>
+	
+	
+	<!-- layer 6: highlight stroke (down state only) -->
+	
+	<s:Rect left="1" top="1" bottom="1" width="1" includeIn="down">
+		<s:fill>
+			<s:SolidColor color="0x000000" alpha="0.07" />
+		</s:fill>
+	</s:Rect>
+	
+	<s:Rect right="1" top="1" bottom="1" width="1" includeIn="down">
+		<s:fill>
+			<s:SolidColor color="0x000000" alpha="0.07" />
+		</s:fill>
+	</s:Rect>
+	
+	<s:Rect left="2" top="1" right="2" height="1" includeIn="down">
+		<s:fill>
+			<s:SolidColor color="0x000000" alpha="0.25" />
+		</s:fill>
+	</s:Rect>
+	
+	<s:Rect left="1" top="2" right="1" height="1" includeIn="down">
+		
+		<s:fill>
+			
+			<s:SolidColor color="0x000000" alpha="0.09" />
+			
+		</s:fill>
+		
+	</s:Rect>
+	
+	
+	
+	<!-- layer 7: border - put on top of the fill so it doesn't disappear when scale is less than 1 -->
+	
+	<s:Rect left="0" right="0" top="0" bottom="0" width="69" height="20" radiusX="2" radiusY="2">
+		
+		<s:stroke>
+			
+			<s:LinearGradientStroke rotation="90" weight="1">
+				
+				<s:GradientEntry color="0x000000" 
+								 
+								 alpha="0.5625"
+								 
+								 alpha.down="0.6375" />
+				
+				<s:GradientEntry color="0x000000" 
+								 
+								 alpha="0.75" 
+								 
+								 alpha.down="0.85" />
+				
+			</s:LinearGradientStroke>
+			
+		</s:stroke>
+		
+	</s:Rect>
+	
+	
+	
+	<!-- layer 8: text -->
+	
+	<!--- 
+	
+	@copy spark.components.supportClasses.ButtonBase#labelDisplay
+	
+	-->
+	<!--<s:Rect left="1" top="1" width="36" height="16" >
+		<s:fill>
+			<s:BitmapFill source="@Embed('assets/icon_remove.png')">
+			</s:BitmapFill>
+		</s:fill>
+	</s:Rect>-->
+	<!-- The divider between symbol and text -->
+	<!--<s:Line blendMode="overlay" verticalCenter="0" height="90%" left="27">
+		<s:stroke>
+			<s:SolidColorStroke color="#3d3d3d" weight=".25" />
+		</s:stroke>
+	</s:Line>
+	<s:Group id="textGroup" verticalCenter="1" left="33">
+		<s:filters>
+			<s:DropShadowFilter alpha="0.5" blurX="0" blurY="0" distance="1" />
+		</s:filters>  
+		<s:SimpleText id="labelDisplay"
+					  textAlign="center"
+					  verticalAlign="middle"
+					  maxDisplayedLines="1"
+					  horizontalCenter="0" verticalCenter="1"
+					  left="10" right="10" top="2" bottom="2">
+		</s:SimpleText>
+	</s:Group>-->
+	<!-- The divider between symbol and text -->
+	<s:Line blendMode="overlay" verticalCenter="0" height="90%" left="27">
+		<s:stroke>
+			<s:SolidColorStroke color="#3d3d3d" weight=".25" />
+		</s:stroke>
+	</s:Line>
+	
+	<!-- Label with a shadow applied to it. In a group for colorization exclusion -->
+	<s:Group id="textGroup" verticalCenter="1" left="33">
+		<s:filters>
+			<s:DropShadowFilter alpha="0.5" blurX="0" blurY="0" distance="1" />
+		</s:filters>    
+		<s:SimpleText id="labelDisplay"
+					  textAlign="center"
+					  verticalAlign="middle"
+					  lineBreak="toFit"
+					  right="10">
+		</s:SimpleText>
+	</s:Group>
+	
+	<!-- The group with the symbol with a shadow applied to. In a group for colorization exclusion -->
+	<s:Group id="symbol" verticalCenter="0" left="7" top="9" right="7" bottom="7">
+		<s:filters>
+			<s:DropShadowFilter id="dsfSymbol" blurX="0" blurY="0" distance="1"  strength="1" strength.down="0"/>
+		</s:filters>
+		<s:Path winding="nonZero" data="M12.6924 0L5.76855 6.92383 2.30762 3.46191 0 5.76855 3.46191 9.23145 5.76855 11.5391 8.07617 9.23145 15 2.30762 12.6924 0Z" >
+			<s:fill>
+				<s:SolidColor color="#ffffff"/>
+			</s:fill>
+		</s:Path>
+	</s:Group>
+
+</s:SparkSkin>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/GradientBackgroundAppSkin.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/GradientBackgroundAppSkin.mxml b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/GradientBackgroundAppSkin.mxml
new file mode 100644
index 0000000..faf0c68
--- /dev/null
+++ b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/GradientBackgroundAppSkin.mxml
@@ -0,0 +1,53 @@
+<?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.
+
+-->
+<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:mx="library://ns.adobe.com/flex/mx" 
+		xmlns:s="library://ns.adobe.com/flex/spark">
+	
+	<fx:Metadata>
+		[HostComponent("spark.components.Application")]
+	</fx:Metadata> 
+	
+	<s:states>
+		<s:State name="normal" />
+		<s:State name="disabled" />
+	</s:states>
+	
+	<!-- border -->
+	<s:Rect left="10" right="10" top="10" bottom="10" radiusX="9" radiusY="9">
+		<s:stroke>
+			<mx:SolidColorStroke color="0xCCCCCC" alpha=".5" weight="4"/>
+		</s:stroke>
+	</s:Rect>
+
+	<s:Rect id="backgroundRect" left="10" right="10" top="10" bottom="10" radiusX="9" radiusY="9">
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:entries>
+					<s:GradientEntry color="0x0000FF" ratio="0.00" alpha="0.8"/>
+					<s:GradientEntry color="0x336699" ratio="1.0" alpha="0.5"/>
+					<s:GradientEntry color="0xCCCCCC" ratio="0.5" alpha="0.8"/>
+				</s:entries>
+			</s:LinearGradient>	
+		</s:fill>
+	</s:Rect>
+	
+	<s:Group id="contentGroup" left="0" right="0" top="0" bottom="0" />
+</s:SparkSkin>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/IconTextButtonSkin.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/IconTextButtonSkin.mxml b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/IconTextButtonSkin.mxml
new file mode 100644
index 0000000..27d4a38
--- /dev/null
+++ b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/IconTextButtonSkin.mxml
@@ -0,0 +1,195 @@
+<?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.
+
+-->
+<!--
+@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" 
+			 minWidth="21" minHeight="21"
+			 alpha.disabled="0.5">
+	
+	<!-- host component -->
+	<fx:Metadata>
+		<![CDATA[ 
+		/** 
+		* @copy spark.skins.spark.ApplicationSkin#hostComponent
+		*/
+		[HostComponent("spark.components.Button")]
+		]]>
+	</fx:Metadata>
+	
+	<fx:Script>
+		<![CDATA[         
+			/* Define the skin elements that should not be colorized. 
+			For button, the graphics are colorized but the label is not. */
+			static private const exclusions:Array = ["labelDisplay"];
+			/** 
+			 * @copy spark.skins.SparkSkin#colorizeExclusions
+			 */     
+			override public function get colorizeExclusions():Array {return exclusions;}
+			
+		]]>        
+	</fx:Script>
+	
+	<!-- states -->
+	<s:states>
+		<s:State name="up" />
+		<s:State name="over" />
+		<s:State name="down" />
+		<s:State name="disabled" />
+	</s:states>
+	
+	<!-- layer 1: shadow -->
+	<s:Rect left="-1" right="-1" top="-1" bottom="-1" radiusX="7" radiusY="7">
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:GradientEntry color="0x000000" 
+								 color.down="0xFFFFFF"
+								 alpha="0.01"
+								 alpha.down="0" />
+				<s:GradientEntry color="0x000000" 
+								 color.down="0xFFFFFF" 
+								 alpha="0.07"
+								 alpha.down="0.5" />
+			</s:LinearGradient>
+		</s:fill>
+	</s:Rect>
+	
+	
+	<!-- layer 2: fill -->
+	<s:Rect left="1" right="1" top="1" bottom="1" radiusX="7" radiusY="7">
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:GradientEntry color="0xFFFFFF" 
+								 color.over="0xBBBDBD" 
+								 color.down="0xAAAAAA" 
+								 alpha="0.85" />
+				<s:GradientEntry color="0xD8D8D8" 
+								 color.over="0x9FA0A1" 
+								 color.down="0x929496" 
+								 alpha="0.85" />
+			</s:LinearGradient>
+		</s:fill>
+	</s:Rect>
+	
+	
+	<!-- layer 3: fill lowlight -->
+	<s:Rect left="1" right="1" bottom="1" height="9" radiusX="7" radiusY="7">
+		
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:GradientEntry color="0x000000" alpha="0.0099" />
+				<s:GradientEntry color="0x000000" alpha="0.0627" />
+			</s:LinearGradient>
+		</s:fill>
+	</s:Rect>
+	
+	<!-- layer 4: fill highlight -->
+	<s:Rect left="1" right="1" top="1" height="9" radiusX="7" radiusY="7">
+		<s:fill>
+			<s:SolidColor color="0xFFFFFF" 
+						  alpha="0.33" 
+						  alpha.over="0.22" 
+						  alpha.down="0.12" />
+		</s:fill>
+	</s:Rect>
+	
+	
+	<!-- layer 5: highlight stroke (all states except down) -->
+	<s:Rect left="1" right="1" top="1" bottom="1" radiusX="7" radiusY="7" excludeFrom="down">
+		<s:stroke>
+			<s:LinearGradientStroke rotation="90" weight="1">
+				<s:GradientEntry color="0xFFFFFF" alpha.over="0.22" />
+				<s:GradientEntry color="0xD8D8D8" alpha.over="0.22" />
+			</s:LinearGradientStroke>
+		</s:stroke>
+	</s:Rect>
+	
+	
+	<!-- layer 6: highlight stroke (down state only) -->
+	<s:Rect left="1" top="1" bottom="1" width="1" includeIn="down">
+		<s:fill>
+			<s:SolidColor color="0x000000" alpha="0.07" />
+		</s:fill>
+	</s:Rect>
+	
+	<s:Rect right="1" top="1" bottom="1" width="1" includeIn="down">
+		<s:fill>
+			<s:SolidColor color="0x000000" alpha="0.07" />
+		</s:fill>
+	</s:Rect>
+	
+	<s:Rect left="2" top="1" right="2" height="1" includeIn="down">
+		<s:fill>
+			<s:SolidColor color="0x000000" alpha="0.25" />
+		</s:fill>
+	</s:Rect>
+	
+	<s:Rect left="1" top="2" right="1" height="1" includeIn="down">
+		<s:fill>
+			<s:SolidColor color="0x000000" alpha="0.09" />
+		</s:fill>
+	</s:Rect>
+	
+	
+	<!-- layer 7: border - put on top of the fill so it doesn't disappear when scale is less than 1 -->
+	<s:Rect left="0" right="0" top="0" bottom="0" width="69" height="20" radiusX="7" radiusY="7">
+		<s:stroke>
+			<s:LinearGradientStroke rotation="90" weight="1">
+				<s:GradientEntry color="0x000000" 
+								 alpha="0.5625"
+								 alpha.down="0.6375" />
+				<s:GradientEntry color="0x000000" 
+								 alpha="0.75" 
+								 alpha.down="0.85" />
+			</s:LinearGradientStroke>
+		</s:stroke>
+	</s:Rect>
+	
+	<!-- icon/symbol layer -->
+	<s:Group id="symbol" left="7" top="7" right="3" bottom="3">
+		<s:filters>
+			<s:DropShadowFilter alpha="0.5" blurX="0" blurY="0" distance="1" />
+		</s:filters> 
+		<s:BitmapImage source="@Embed('../assets/icon_plus.png')"/>
+		
+	</s:Group>
+	
+	<!-- The divider between symbol and text -->
+	<s:Line blendMode="overlay" verticalCenter="0" height="90%" left="20">
+		<s:stroke>
+			<s:SolidColorStroke color="#3d3d3d" weight=".25" />
+		</s:stroke>
+	</s:Line>
+	
+	<!-- layer 8: text -->
+	<s:Group id="textGroup" verticalCenter="1" left="25">
+		<s:filters>
+			<s:DropShadowFilter alpha="0.5" blurX="0" blurY="0" distance="1" />
+		</s:filters>  
+		<s:Label id="labelDisplay" 
+			textAlign="center"
+			verticalAlign="middle"
+			maxDisplayedLines="1">
+		</s:Label>
+	</s:Group>
+</s:SparkSkin>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/MyPanelSkin.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/MyPanelSkin.mxml b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/MyPanelSkin.mxml
new file mode 100644
index 0000000..300af66
--- /dev/null
+++ b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/MyPanelSkin.mxml
@@ -0,0 +1,101 @@
+<?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 Panel container.  
+
+@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" alpha.disabled="0.5" blendMode="normal">
+	
+	<fx:Metadata>
+		<![CDATA[ 
+		/** 
+		* @copy spark.skins.spark.ApplicationSkin#hostComponent
+		*/
+		[HostComponent("spark.components.Panel")]
+		]]>
+	</fx:Metadata> 
+	
+	<fx:Script>
+		/* Define the skin elements that should not be colorized. 
+		For panel, border and title backround are skinned, but the content area and title text are not. */
+		static private const exclusions:Array = ["background", "titleDisplay", "contentGroup", "bgfill"];
+		
+		/** 
+		 * @copy spark.skins.SparkSkin#colorizeExclusions
+		 */     
+		override public function get colorizeExclusions():Array {return exclusions;}
+		
+		/* Define the content fill items that should be colored by the "contentBackgroundColor" style. */
+		static private const contentFill:Array = [];
+		
+		/**
+		 * @inheritDoc
+		 */
+		override public function get contentItems():Array {return contentFill};
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="normal" />
+		<s:State name="disabled" />
+	</s:states>
+	
+	<!-- background fill -->
+	<s:Rect left="0" right="0" bottom="0" top="0" >
+		<s:fill>
+			<s:LinearGradient rotation="90" >
+				<s:GradientEntry color="0xFFFFFF" />
+				<s:GradientEntry color="0x000000" />
+			</s:LinearGradient>
+		</s:fill>
+	</s:Rect>
+	
+	<!-- title bar fill -->
+	<s:Rect left="0" right="0" top="0" height="30">
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:GradientEntry color="0x000000" />
+				<s:GradientEntry color="0xC0C0C0" />
+			</s:LinearGradient>
+		</s:fill>
+	</s:Rect>
+	
+	
+	<!-- text layer -->
+	<!--- Defines the appearance of the PanelSkin class's title bar. -->
+	<s:SimpleText id="titleDisplay" lineBreak="explicit"
+				  right="4" top="2" height="30"
+				  verticalAlign="middle" fontWeight="bold" 
+				  color="0xE2E2E2">
+	</s:SimpleText>
+	
+	<!--
+	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
+	-->
+	<s:Group id="contentGroup" left="1" right="1" top="32" bottom="1" minWidth="0" minHeight="0">
+	</s:Group>
+	
+</s:SparkSkin>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/TDFPanelSkin.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/TDFPanelSkin.mxml b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/TDFPanelSkin.mxml
new file mode 100644
index 0000000..f9151dc
--- /dev/null
+++ b/TourDeFlex/TourDeFlex3/src/spark/skinning/skins/TDFPanelSkin.mxml
@@ -0,0 +1,171 @@
+<?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.
+
+-->
+
+
+<!--- Custom Spark Panel Skin created for Tour de Flex.  
+
+@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" alpha.disabled="0.5"
+			 blendMode.disabled="layer">
+	
+	<fx:Metadata>
+		<![CDATA[ 
+		/** 
+		* @copy spark.skins.spark.ApplicationSkin#hostComponent
+		*/
+		[HostComponent("spark.components.Panel")]
+		]]>
+	</fx:Metadata> 
+	
+	<fx:Script>
+		/* Define the skin elements that should not be colorized. 
+		For panel, border and title backround are skinned, but the content area and title text are not. */
+		static private const exclusions:Array = ["background", "titleDisplay", "contentGroup", "bgFill"];
+		
+		/** 
+		 * @copy spark.skins.SparkSkin#colorizeExclusions
+		 */     
+		override public function get colorizeExclusions():Array {return exclusions;}
+		
+		/* Define the content fill items that should be colored by the "contentBackgroundColor" style. */
+		static private const contentFill:Array = [];
+		
+		/**
+		 * @inheritDoc
+		 */
+		override public function get contentItems():Array {return contentFill};
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="normal" />
+		<s:State name="disabled" />
+		<s:State name="normalWithControlBar" />
+		<s:State name="disabledWithControlBar" />
+	</s:states>
+	
+	<!-- drop shadow -->
+	<s:RectangularDropShadow id="shadow" blurX="20" blurY="20" alpha="0.32" distance="11" 
+							 angle="90" color="#000000" left="0" top="0" right="0" bottom="0"/>
+	
+	<!-- layer 1: border -->
+	<s:Rect left="0" right="0" top="0" bottom="0">
+		<s:stroke>
+			<s:SolidColorStroke color="0" alpha="0.50" weight="1" />
+		</s:stroke>
+	</s:Rect>
+	
+	
+	<!-- layer 2: background fill -->
+	<!-- This layer was modified for Tour de Flex samples to have a gradient border at the bottom. -->
+	<s:Rect left="0" right="0" bottom="0" height="15">
+		<s:fill>
+			<s:LinearGradient rotation="90">
+				<s:GradientEntry color="0xE2E2E2" />
+				<s:GradientEntry color="0x000000" />
+			</s:LinearGradient>
+		</s:fill>
+	</s:Rect>
+	
+	<!-- layer 3: contents -->
+	<!--- contains the vertical stack of titlebar content and controlbar -->
+	<s:Group left="1" right="1" top="1" bottom="1" >
+		<s:layout>
+			<s:VerticalLayout gap="0" horizontalAlign="justify" />
+		</s:layout>
+		
+		<s:Group id="topGroup" >
+			<!-- layer 0: title bar fill -->
+			<!-- Note: We have custom skinned the title bar to be solid black for Tour de Flex -->
+			<s:Rect id="tbFill" left="0" right="0" top="0" bottom="1" >
+				<s:fill>
+					<s:SolidColor color="0x000000" />
+				</s:fill>
+			</s:Rect>
+			
+			<!-- layer 1: title bar highlight -->
+			<s:Rect id="tbHilite" left="0" right="0" top="0" bottom="0" >
+				<s:stroke>
+					<s:LinearGradientStroke rotation="90" weight="1">
+						<s:GradientEntry color="0xEAEAEA" />
+						<s:GradientEntry color="0xD9D9D9" />
+					</s:LinearGradientStroke>
+				</s:stroke>
+			</s:Rect>
+			
+			<!-- layer 2: title bar divider -->
+			<s:Rect id="tbDiv" left="0" right="0" height="1" bottom="0">
+				<s:fill>
+					<s:SolidColor color="0xC0C0C0" />
+				</s:fill>
+			</s:Rect>
+			
+			<!-- layer 3: text -->
+			<!--- Defines the appearance of the PanelSkin class's title bar. -->
+			<!-- Note: The title text display has been slightly modified for Tour de Flex. -->
+			<s:Label id="titleDisplay" lineBreak="explicit"
+						  left="9" top="1" bottom="0" minHeight="30"
+						  verticalAlign="middle" fontWeight="bold" color="#E2E2E2">
+			</s:Label>
+		</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
+		-->
+		<s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0">
+		</s:Group>
+		
+		<s:Group id="bottomGroup" minWidth="0" minHeight="0"
+				 includeIn="normalWithControlBar, disabledWithControlBar" >
+			
+			<!-- layer 0: control bar background -->
+			<!-- Note: We are skinning this to be the gradient in case we do specify control
+			bar content, but it will only display if there's a controlBarContent
+			property specified.-->
+			<s:Rect left="0" right="0" bottom="0" top="0" height="15">
+				<s:fill>
+					<s:LinearGradient rotation="90">
+						<s:GradientEntry color="0xE2E2E2" />
+						<s:GradientEntry color="0x000000" />
+					</s:LinearGradient>
+				</s:fill>
+			</s:Rect>
+			
+			<!-- layer 1: control bar divider line -->
+			<s:Rect left="0" right="0" top="0" height="1" >
+				<s:fill>
+					<s:SolidColor color="0xCDCDCD" />
+				</s:fill>
+			</s:Rect>
+			
+			<!-- layer 2: control bar -->
+			<s:Group id="controlBarGroup" left="0" right="0" top="1" bottom="0" minWidth="0" minHeight="0">
+				<s:layout>
+					<s:HorizontalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10" />
+				</s:layout>
+			</s:Group>
+		</s:Group>
+	</s:Group>
+</s:SparkSkin>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/tlf/TextLayoutEditorSample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/tlf/TextLayoutEditorSample.mxml b/TourDeFlex/TourDeFlex3/src/spark/tlf/TextLayoutEditorSample.mxml
index efe13ca..5ba3f7a 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/tlf/TextLayoutEditorSample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/tlf/TextLayoutEditorSample.mxml
@@ -21,7 +21,7 @@
 
 
 
-<s:Application xmlns="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:local="*" viewSourceURL="srcview/index.html">
+<s:Application xmlns="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:local="*">
 	<local:TextLayoutEditorCanvas width="100%" height="100%"/>
 	<Style source="/flashx/textLayout/ui/VellumGUIStyles.css"/>
 	<!--<Style source="VellumGUIStyles.css"/>-->

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/validators/CurrencyValidatorExample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/validators/CurrencyValidatorExample.mxml b/TourDeFlex/TourDeFlex3/src/spark/validators/CurrencyValidatorExample.mxml
index 8d13797..12145af 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/validators/CurrencyValidatorExample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/validators/CurrencyValidatorExample.mxml
@@ -20,8 +20,7 @@
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
 			   xmlns:s="library://ns.adobe.com/flex/spark" 
 			   xmlns:mx="library://ns.adobe.com/flex/mx" 
-			   skinClass="TDFGradientBackgroundSkin" 
-			   viewSourceURL="srcview/index.html">
+			   skinClass="TDFGradientBackgroundSkin">
 	
 	<fx:Script>
         import mx.controls.Alert;

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/validators/DateValidatorExample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/validators/DateValidatorExample.mxml b/TourDeFlex/TourDeFlex3/src/spark/validators/DateValidatorExample.mxml
index 6bce0e6..93724c5 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/validators/DateValidatorExample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/validators/DateValidatorExample.mxml
@@ -20,8 +20,7 @@
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
 			   xmlns:s="library://ns.adobe.com/flex/spark" 
 			   xmlns:mx="library://ns.adobe.com/flex/mx" 
-			   skinClass="TDFGradientBackgroundSkin" 
-			   viewSourceURL="srcview/index.html">
+			   skinClass="TDFGradientBackgroundSkin">
 	
 	<fx:Script>
 		<![CDATA[

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/validators/EmailValidatorExample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/validators/EmailValidatorExample.mxml b/TourDeFlex/TourDeFlex3/src/spark/validators/EmailValidatorExample.mxml
index a5adaa6..4314b35 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/validators/EmailValidatorExample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/validators/EmailValidatorExample.mxml
@@ -20,8 +20,7 @@
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
 			   xmlns:s="library://ns.adobe.com/flex/spark" 
 			   xmlns:mx="library://ns.adobe.com/flex/mx" 
-			   skinClass="TDFGradientBackgroundSkin" 
-			   viewSourceURL="srcview/index.html">
+			   skinClass="TDFGradientBackgroundSkin">
 	
 	<fx:Script>
 		<![CDATA[

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/validators/FormValidatorExample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/validators/FormValidatorExample.mxml b/TourDeFlex/TourDeFlex3/src/spark/validators/FormValidatorExample.mxml
index 3a149f9..8230ac4 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/validators/FormValidatorExample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/validators/FormValidatorExample.mxml
@@ -20,8 +20,7 @@
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
 			   xmlns:s="library://ns.adobe.com/flex/spark" 
 			   xmlns:mx="library://ns.adobe.com/flex/mx" 
-			   skinClass="TDFGradientBackgroundSkin" 
-			   viewSourceURL="srcview/index.html">
+			   skinClass="TDFGradientBackgroundSkin">
 	
 	<fx:Script>
         <![CDATA[

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/validators/NumberValidatorExample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/validators/NumberValidatorExample.mxml b/TourDeFlex/TourDeFlex3/src/spark/validators/NumberValidatorExample.mxml
index 76da726..07ae1ab 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/validators/NumberValidatorExample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/validators/NumberValidatorExample.mxml
@@ -20,8 +20,7 @@
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
 			   xmlns:s="library://ns.adobe.com/flex/spark" 
 			   xmlns:mx="library://ns.adobe.com/flex/mx" 
-			   skinClass="TDFGradientBackgroundSkin" 
-			   viewSourceURL="srcview/index.html">
+			   skinClass="TDFGradientBackgroundSkin">
 	
 	<fx:Script>
         <![CDATA[

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/validators/RegExpValidatorExample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/validators/RegExpValidatorExample.mxml b/TourDeFlex/TourDeFlex3/src/spark/validators/RegExpValidatorExample.mxml
index c704718..1ab3b13 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/validators/RegExpValidatorExample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/validators/RegExpValidatorExample.mxml
@@ -20,8 +20,7 @@
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
 			   xmlns:s="library://ns.adobe.com/flex/spark" 
 			   xmlns:mx="library://ns.adobe.com/flex/mx" 
-			   skinClass="TDFGradientBackgroundSkin" 
-			   viewSourceURL="srcview/index.html">
+			   skinClass="TDFGradientBackgroundSkin">
 	
 	<fx:Script>
 		<![CDATA[

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/validators/SocialSecurityValidatorExample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/validators/SocialSecurityValidatorExample.mxml b/TourDeFlex/TourDeFlex3/src/spark/validators/SocialSecurityValidatorExample.mxml
index 90995a1..3d5488e 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/validators/SocialSecurityValidatorExample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/validators/SocialSecurityValidatorExample.mxml
@@ -20,8 +20,7 @@
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
 			   xmlns:s="library://ns.adobe.com/flex/spark" 
 			   xmlns:mx="library://ns.adobe.com/flex/mx" 
-			   skinClass="TDFGradientBackgroundSkin" 
-			   viewSourceURL="srcview/index.html">
+			   skinClass="TDFGradientBackgroundSkin">
 	
 	<fx:Script>
 		<![CDATA[

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/validators/StringValidatorExample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/validators/StringValidatorExample.mxml b/TourDeFlex/TourDeFlex3/src/spark/validators/StringValidatorExample.mxml
index 7264296..41d478e 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/validators/StringValidatorExample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/validators/StringValidatorExample.mxml
@@ -20,8 +20,7 @@
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
 			   xmlns:s="library://ns.adobe.com/flex/spark" 
 			   xmlns:mx="library://ns.adobe.com/flex/mx" 
-			   skinClass="TDFGradientBackgroundSkin" 
-			   viewSourceURL="srcview/index.html">
+			   skinClass="TDFGradientBackgroundSkin">
 	
 	<fx:Script>
 		<![CDATA[

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d4e368dc/TourDeFlex/TourDeFlex3/src/spark/validators/ZipCodeValidatorExample.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex3/src/spark/validators/ZipCodeValidatorExample.mxml b/TourDeFlex/TourDeFlex3/src/spark/validators/ZipCodeValidatorExample.mxml
index 697be46..b1ac856 100644
--- a/TourDeFlex/TourDeFlex3/src/spark/validators/ZipCodeValidatorExample.mxml
+++ b/TourDeFlex/TourDeFlex3/src/spark/validators/ZipCodeValidatorExample.mxml
@@ -20,8 +20,7 @@
 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
 			   xmlns:s="library://ns.adobe.com/flex/spark" 
 			   xmlns:mx="library://ns.adobe.com/flex/mx" 
-			   skinClass="TDFGradientBackgroundSkin" 
-			   viewSourceURL="srcview/index.html">
+			   skinClass="TDFGradientBackgroundSkin">
 	
 	<fx:Script>
 		<![CDATA[