<?xml version="1.0" encoding="utf-8"?>
<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/halo" 
	minWidth="1024" minHeight="768" 
	creationComplete="init()"
	addedToStage="onAddedToStage()">
	
	<fx:Script>
		<![CDATA[
			import com.googolflex.gflib.managers.ShortcutManager;
			
			
			private function init() : void {
				ShortcutManager.addShortcut(89, onCtrlY, "ctrl");
				ShortcutManager.addShortcut(89, onAltY, "ctrlAlt");
				
				var f : Function = function():void { trace("Ctrl-U pressed."); }
				ShortcutManager.addShortcut(85, f, "ctrl");
				ShortcutManager.addShortcut(85, 
					function():void { trace("Ctrl-Alt-U pressed."); }, 
					"ctrlAlt");
			}
			
			
			private function onAddedToStage() : void {
				stage.addEventListener(KeyboardEvent.KEY_DOWN, globalShortcutHandler);
			}
			
			private function globalShortcutHandler(event : KeyboardEvent) : void {
				ShortcutManager.shortcutHandler(event);
			}
			
			
			private function onCtrlY() : void {
				trace("Control-Y pressed.");
			}
			
			private function onAltY() : void {
				trace("Ctrl-Alt-Y pressed.");
			}
			

			protected function addCommand(msg : String, pair : String):void {
				ShortcutManager.addShortcut( int(txtKeycode.text), 
				function():void { trace(msg); },
				pair );
			}

		]]>
	</fx:Script>
	
	<s:HGroup height="50">
		<s:SimpleText text="Enter a Valid Key Code:" paddingTop="5" />
		<s:TextInput id="txtKeycode" width="50" />
		
		<s:SimpleText text="Enter a message to be traced:" paddingTop="5" />
		<s:TextInput id="txtMsg" width="200" />
		
		<s:Button label="Add CTRL Handler" click="addCommand(txtMsg.text, 'ctrl')" />
		<s:Button label="Add CTRL-ALT Handler" click="addCommand(txtMsg.text, 'ctrlAlt')" />
		
	</s:HGroup>
</s:Application>

