package starling.events {
/**
 *  A KeyboardEvent is dispatched in response to user input through a keyboard.
 *  * 
 *  *  <p>This is Starling's version of the Flash KeyboardEvent class. It contains the same 
 *  *  properties as the Flash equivalent.</p> 
 *  * 
 *  *  <p>To be notified of keyboard events, add an event listener to any display object that
 *  *  is part of your display tree. Starling has no concept of a "Focus" like native Flash.</p>
 *  *  
 *  *  @see starling.display.Stage
 *  
 * @externs
 */
public class KeyboardEvent extends starling.events.Event {
	/**
	 *  Creates a new KeyboardEvent. 
	 */
	public function KeyboardEvent(type:String, charCode:int = undefined, keyCode:int = undefined, keyLocation:int = undefined, ctrlKey:Boolean = undefined, altKey:Boolean = undefined, shiftKey:Boolean = undefined) {
		super(undefined, undefined, undefined);
	}
	/**
	 *  Event type for a key that was released. 
	 */
	public static const KEY_UP:String = "keyUp";
	/**
	 *  Event type for a key that was pressed. 
	 */
	public static const KEY_DOWN:String = "keyDown";
	/**
	 *  Cancels the keyboard event's default behavior. This will be forwarded to the native
	 *      * flash KeyboardEvent. 
	 */
	public function preventDefault():void {}
	/**
	 *  Checks whether the preventDefault() method has been called on the event. 
	 */
	public function isDefaultPrevented():Boolean { return false; }
	/**
	 *  Contains the character code of the key. 
	 */
	public function get charCode():int { return 0; }
	/**
	 *  The key code of the key. 
	 */
	public function get keyCode():int { return 0; }
	/**
	 *  Indicates the location of the key on the keyboard. This is useful for differentiating 
	 *      * keys that appear more than once on a keyboard. @see Keylocation 
	 */
	public function get keyLocation():int { return 0; }
	/**
	 *  Indicates whether the Alt key is active on Windows or Linux; 
	 *      * indicates whether the Option key is active on Mac OS. 
	 */
	public function get altKey():Boolean { return false; }
	/**
	 *  Indicates whether the Ctrl key is active on Windows or Linux; 
	 *      * indicates whether either the Ctrl or the Command key is active on Mac OS. 
	 */
	public function get ctrlKey():Boolean { return false; }
	/**
	 *  Indicates whether the Shift key modifier is active (true) or inactive (false). 
	 */
	public function get shiftKey():Boolean { return false; }
}
}
