| <?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. |
| |
| @see spark.skins.spark.TitleWindowCloseButtonSkin |
| @see spark.components.TitleWindow |
| |
| @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" 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> |
| |
| <fx:Script fb:purpose="styling"> |
| <![CDATA[ |
| import mx.core.FlexVersion; |
| |
| import flatspark.utils.ColorUtils; |
| |
| /* Define the skin elements that should not be colorized. |
| For panel, border and title background are skinned, but the content area, background, border, and title text are not. */ |
| static private const exclusions:Array = ["background", "titleDisplay", "contentGroup", "border"]; |
| |
| /* exclusions before Flex 4.5 for backwards-compatibility purposes */ |
| static private const exclusions_4_0:Array = ["background", "titleDisplay", "contentGroup"]; |
| |
| /** |
| * @private |
| */ |
| override public function get colorizeExclusions():Array |
| { |
| // Since border is styleable via borderColor, no need to allow chromeColor to affect |
| // the border. This is wrapped in a compatibility flag since this change was added |
| // in Flex 4.5 |
| if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_5) |
| { |
| return exclusions_4_0; |
| } |
| |
| return exclusions; |
| } |
| |
| /** |
| * @private |
| */ |
| override protected function initializationComplete():void |
| { |
| useChromeColor = true; |
| super.initializationComplete(); |
| } |
| |
| /** |
| * @private |
| */ |
| override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void |
| { |
| var withControls:Boolean = |
| (currentState == "disabledWithControlBar" || |
| currentState == "normalWithControlBar" || |
| currentState == "inactiveWithControlBar"); |
| |
| setPartCornerRadii(topMaskRect, withControls); |
| setPartCornerRadii(background, withControls); |
| if (bottomMaskRect != null) |
| { |
| setPartCornerRadii(bottomMaskRect, withControls); |
| } |
| |
| super.updateDisplayList(unscaledWidth, unscaledHeight); |
| } |
| |
| /** |
| * @private |
| */ |
| private function setPartCornerRadii(target:Rect, includeBottom:Boolean):void |
| { |
| target.topLeftRadiusX = cornerRadius; |
| target.topRightRadiusX = cornerRadius; |
| target.bottomLeftRadiusX = includeBottom ? cornerRadius : 0; |
| target.bottomRightRadiusX = includeBottom ? cornerRadius : 0; |
| } |
| |
| private var cornerRadius:Number=4; |
| ]]> |
| </fx:Script> |
| |
| <s:states> |
| <s:State name="normal" /> |
| <s:State name="inactive" stateGroups="inactiveGroup" /> |
| <s:State name="disabled" /> |
| <s:State name="normalWithControlBar" stateGroups="withControls" /> |
| <s:State name="inactiveWithControlBar" stateGroups="withControls, inactiveGroup" /> |
| <s:State name="disabledWithControlBar" stateGroups="withControls" /> |
| </s:states> |
| |
| <!--- drop shadow can't be hittable so all other graphics go in this group --> |
| <s:Group left="0" right="0" top="0" bottom="0"> |
| |
| <!--- 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"> |
| <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"> |
| <s:fill> |
| <s:SolidColor alpha="0"/> |
| </s:fill> |
| </s:Rect> |
| </s:Group> |
| |
| |
| <!-- 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"> |
| <s:fill> |
| <!--- Defines the TitleWindowSkin class's background fill. The default color is 0xFFFFFF. --> |
| <s:SolidColor id="backgroundFill" color="{ColorUtils.Clouds}"/> |
| </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}" height="56"> |
| |
| <!--- layer 0: title bar fill @private --> |
| <s:Rect id="tbFill" left="0" right="0" top="0" bottom="1"> |
| <s:fill> |
| <s:SolidColor color="{ColorUtils.PeterRiver}"/> |
| </s:fill> |
| </s:Rect> |
| |
| <!--- layer 1: title bar highlight @private --> |
| <s:Rect id="tbHilite" left="0" right="0" top="0" bottom="0"> |
| <s:fill> |
| <s:SolidColor color="{ColorUtils.PeterRiver}"/> |
| </s:fill> |
| </s:Rect> |
| |
| <!--- layer 2: title bar divider @private --> |
| <s:Rect id="tbDiv" left="0" right="0" height="1" bottom="0"> |
| <s:fill> |
| <s:SolidColor color="{ColorUtils.BelizeHole}"/> |
| </s:fill> |
| |
| <s:filters> |
| <s:DropShadowFilter distance="1" angle="90" color="{ColorUtils.Silver}"/> |
| </s:filters> |
| </s:Rect> |
| |
| <!-- layer 3: text --> |
| <!--- @copy spark.components.Panel#titleDisplay --> |
| <s:Label id="titleDisplay" maxDisplayedLines="1" fontFamily="Lato" fontSize="21" fontStyle="normal" color="#FFFFFF" |
| left="15" right="36" top="1" bottom="0" minHeight="56" height="56" |
| verticalAlign="middle" fontWeight="bold" /> |
| |
| <!-- layer 4: moveArea --> |
| <!--- @copy spark.components.TitleWindow#moveArea --> |
| <s:Group id="moveArea" left="0" right="0" top="0" bottom="0" /> |
| |
| <!--- @copy spark.components.TitleWindow#closeButton --> |
| <s:Button id="closeButton" skinClass="flatspark.skins.TitleWindowCloseButtonSkin" |
| right="15" top="15" /> |
| </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 |
| --> |
| <!--- @copy spark.components.SkinnableContainer#contentGroup --> |
| <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}" height="65"> |
| |
| <!-- layer 0: control bar divider line --> |
| <s:Rect left="0" right="0" top="0" height="1"> |
| <s:fill> |
| <s:SolidColor color="{ColorUtils.Silver}" /> |
| </s:fill> |
| </s:Rect> |
| |
| <!-- layer 1: control bar highlight --> |
| <s:Rect left="0" right="0" top="1" bottom="0"> |
| <s:fill> |
| <s:SolidColor color="0xFFFFFF" /> |
| </s:fill> |
| </s:Rect> |
| |
| <!-- layer 2: control bar fill --> |
| <s:Rect left="1" right="1" top="2" bottom="1"> |
| <s:fill> |
| <s:SolidColor color="0xFFFFFF" /> |
| </s:fill> |
| </s:Rect> |
| </s:Group> |
| |
| <!--- @copy spark.components.Panel#controlBarGroup --> |
| <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:Group> |
| </s:SparkSkin> |