<?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:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" 
		 xmlns:handlers="com.flexcapacitor.handlers.*" 
		 xmlns:debugging="com.flexcapacitor.effects.debugging.*" 
		 xmlns:core="com.flexcapacitor.effects.core.*" 
		 xmlns:filters="com.flexcapacitor.filters.*"
		 
		 minWidth="22" minHeight="22"
		 >
	
	
	<fx:Declarations>
		<handlers:EventHandler eventName="click" 
							   target="{redrawButton}">
			<core:ToggleEffects >
				<core:effects>
					<s:Sequence>
						<core:SetAction target="{fill}" property="filters"
										value="{selectFiltersOn}"/>
						<debugging:ShowRedrawRegions />
					</s:Sequence>
					<s:Sequence>
						<debugging:HideRedrawRegions />
						<core:SetAction target="{fill}" property="filters"
										value="{selectFiltersOff}"/>
					</s:Sequence>
				</core:effects>
			</core:ToggleEffects>
		</handlers:EventHandler>
		
			<fx:Array id="selectFiltersOn">
				<s:DropShadowFilter distance="1" blurX="2" blurY="2" strength=".8" inner="true" knockout="false"/>
			</fx:Array>
			<fx:Array id="selectFiltersOff">
				<filters:BlackAndWhiteFilter />
			</fx:Array>
	</fx:Declarations>
	
	<s:Group id="redrawButton" 
			 width="20" height="20"
			 minHeight="16" minWidth="16" 
			 left="4">
		<s:Rect id="fill" width="100%" height="100%" filters="{selectFiltersOff}" verticalCenter="0">
			<s:fill>
				<s:SolidColor color="#ff0000"/>
			</s:fill>
		</s:Rect>
		<s:Rect id="stroke" top="2" left="2" right="2" bottom="2">
			<s:stroke>
				<s:SolidColorStroke color="#FFFFFF" />
			</s:stroke>
		</s:Rect>
	</s:Group>
</s:Group>
