<?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:Module xmlns:fx="http://ns.adobe.com/mxml/2009"  
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx">
	
	<fx:Script>
		<![CDATA[
			
			import mx.events.ItemClickEvent;	
			
			// Event handler function to print a message
			// describing the selected Button control.        
			private function clickHandler(event:ItemClickEvent):void {
				tgPanel.title = "ToggleButtonBar: " + event.label;
				myTA.text="Selected button index: " + String(event.index) + 
					"\n" + "Selected button label: " + event.label;
			}
		]]>
	</fx:Script>
	
	<fx:Declarations>
		
		<fx:Array id="dp">
			<fx:String>Flex</fx:String>
			<fx:String>Flex JS</fx:String>
			<fx:String>Falcon</fx:String>
			<fx:String>Falcon JX</fx:String>
		</fx:Array>
		
	</fx:Declarations>
	
	<s:Panel id="tgPanel" title="ToggleButtonBar: Flash" width="100%" height="100%">
		
		<s:layout>
			<s:VerticalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10"/>
		</s:layout>
		
		<mx:ToggleButtonBar horizontalGap="5" itemClick="clickHandler(event)" dataProvider="{dp}" />
		
		<s:Label width="100%" textAlign="center"
				 text="Select a button in the ToggleButtonBar control."/>
		
		<s:TextArea id="myTA" width="100%" height="100%" text="{'Selected button index: 0' + '\n' +'Selected button label: Flash'}"/>
		
	</s:Panel>
</s:Module>
