| <?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" mouseEnabled="false" minWidth="131" minHeight="127"> |
| |
| <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"]; |
| |
| /** |
| * @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 = ["bgFill"]; |
| |
| /** |
| * @inheritDoc |
| */ |
| override public function get contentItems():Array {return contentFill}; |
| |
| override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void |
| { |
| if (getStyle("borderVisible") == true) |
| { |
| border.visible = true; |
| background.left = background.top = background.right = background.bottom = 1; |
| contents.left = contents.top = contents.right = contents.bottom = 1; |
| } |
| else |
| { |
| border.visible = false; |
| background.left = background.top = background.right = background.bottom = 0; |
| contents.left = contents.top = contents.right = contents.bottom = 0; |
| } |
| |
| dropShadow.visible = getStyle("dropShadowVisible"); |
| |
| var cr:Number = getStyle("cornerRadius"); |
| |
| if (cornerRadius != cr) |
| cornerRadius = cr; |
| |
| super.updateDisplayList(unscaledWidth, unscaledHeight); |
| } |
| |
| [Bindable] |
| public var cornerRadius:Number; |
| </fx:Script> |
| |
| <s:states> |
| <s:State name="normal" /> |
| <s:State name="disabled" /> |
| <s:State name="normalWithControlBar" stateGroups="withControls" /> |
| <s:State name="disabledWithControlBar" stateGroups="withControls" /> |
| </s:states> |
| |
| <!-- drop shadow can't be hittable so it stays sibling of other graphics --> |
| <s:RectangularDropShadow id="dropShadow" blurX="20" blurY="20" alpha="0.32" distance="11" |
| angle="90" color="#000000" left="0" top="0" right="0" bottom="0" |
| tlRadius="{cornerRadius}" trRadius="{cornerRadius}" |
| blRadius="0" blRadius.withControls="{cornerRadius}" |
| brRadius="0" brRadius.withControls="{cornerRadius}" /> |
| |
| <!-- drop shadow can't be hittable so all other graphics go in this group --> |
| <s:Group left="0" right="0" top="0" bottom="0"> |
| |
| <!-- layer 1: border --> |
| <s:Rect id="border" left="0" right="0" top="0" bottom="0" |
| topLeftRadiusX="{cornerRadius}" topRightRadiusX="{cornerRadius}" |
| bottomLeftRadiusX.withControls="{cornerRadius}" |
| bottomRightRadiusX.withControls="{cornerRadius}" > |
| <s:stroke> |
| <s:SolidColorStroke color="{getStyle('borderColor')}" alpha="{getStyle('borderAlpha')}" weight="1" /> |
| </s:stroke> |
| </s:Rect> |
| |
| <!-- layer 2: background fill --> |
| <!--- Defines the appearance of the PanelSkin class's background. --> |
| <s:Rect id="background" left="1" top="1" right="1" bottom="1" |
| topLeftRadiusX="{cornerRadius}" topRightRadiusX="{cornerRadius}" |
| bottomLeftRadiusX.withControls="{cornerRadius}" |
| bottomRightRadiusX.withControls="{cornerRadius}"> |
| <s:fill> |
| <!--- Defines the PanelSkin class's background fill. The default color is 0xFFFFFF. --> |
| <s:SolidColor color="0xFFFFFF" id="bgFill" /> |
| </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" id="contents"> |
| <s:layout> |
| <s:VerticalLayout gap="0" horizontalAlign="justify" /> |
| </s:layout> |
| |
| <s:Group id="topGroup" > |
| |
| <!-- layer 0: title bar fill --> |
| <s:Rect id="tbFill" left="0" right="0" top="0" bottom="1" |
| topLeftRadiusX="{cornerRadius}" topRightRadiusX="{cornerRadius}"> |
| <s:fill> |
| <s:LinearGradient rotation="90"> |
| <s:GradientEntry color="0xE2E2E2" /> |
| <s:GradientEntry color="0xD9D9D9" /> |
| </s:LinearGradient> |
| </s:fill> |
| </s:Rect> |
| |
| <!-- layer 1: title bar highlight --> |
| <s:Rect id="tbHilite" left="0" right="0" top="0" bottom="0" |
| topLeftRadiusX="{cornerRadius}" topRightRadiusX="{cornerRadius}"> |
| <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. --> |
| <s:Label id="titleDisplay" maxDisplayedLines="1" |
| left="9" right="3" top="1" bottom="0" minHeight="30" |
| verticalAlign="middle" fontWeight="bold"> |
| </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:Scroller width="100%" height="100%"> |
| <s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0"> |
| </s:Group> |
| </s:Scroller> |
| |
| |
| <s:Group id="bottomGroup" minWidth="0" minHeight="0" |
| includeIn="normalWithControlBar, disabledWithControlBar" > |
| |
| <!-- layer 0: control bar divider line --> |
| <s:Rect left="0" right="0" top="0" height="1" alpha="0.22"> |
| <s:fill> |
| <s:SolidColor color="0x000000" /> |
| </s:fill> |
| </s:Rect> |
| |
| <!-- layer 1: control bar highlight --> |
| <s:Rect left="0" right="0" top="1" bottom="0" |
| bottomLeftRadiusX="{cornerRadius}" bottomRightRadiusX="{cornerRadius}"> |
| <s:stroke> |
| <s:LinearGradientStroke rotation="90" weight="1"> |
| <s:GradientEntry color="0xE5E5E5" /> |
| <s:GradientEntry color="0xD8D8D8" /> |
| </s:LinearGradientStroke> |
| </s:stroke> |
| </s:Rect> |
| |
| <!-- layer 2: control bar fill --> |
| <s:Rect left="1" right="1" top="2" bottom="1" |
| bottomLeftRadiusX="{cornerRadius}" bottomRightRadiusX="{cornerRadius}"> |
| <s:fill> |
| <s:LinearGradient rotation="90"> |
| <s:GradientEntry color="0xDADADA" /> |
| <s:GradientEntry color="0xC5C5C5" /> |
| </s:LinearGradient> |
| </s:fill> |
| </s:Rect> |
| |
| <!-- layer 3: control bar --> |
| <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> |