package openfl.ui {
	
	
	/**
	 * @externs
	 * The Keyboard class is used to build an interface that can be controlled by
	 * a user with a standard keyboard. You can use the methods and properties of
	 * the Keyboard class without using a constructor. The properties of the
	 * Keyboard class are constants representing the keys that are most commonly
	 * used to control games.
	 */
	final public class Keyboard {
		
		// TODO: Add additional Flash values
		
		
		/**
		 * Constant associated with the key code value for the 0 key(48).
		 */
		public static const NUMBER_0:uint = 48;
		
		/**
		 * Constant associated with the key code value for the 1 key(49).
		 */
		public static const NUMBER_1:uint = 49;
		
		/**
		 * Constant associated with the key code value for the 2 key(50).
		 */
		public static const NUMBER_2:uint = 50;
		
		/**
		 * Constant associated with the key code value for the 3 key(51).
		 */
		public static const NUMBER_3:uint = 51;
		
		/**
		 * Constant associated with the key code value for the 4 key(52).
		 */
		public static const NUMBER_4:uint = 52;
		
		/**
		 * Constant associated with the key code value for the 5 key(53).
		 */
		public static const NUMBER_5:uint = 53;
		
		/**
		 * Constant associated with the key code value for the 6 key(54).
		 */
		public static const NUMBER_6:uint = 54;
		
		/**
		 * Constant associated with the key code value for the 7 key(55).
		 */
		public static const NUMBER_7:uint = 55;
		
		/**
		 * Constant associated with the key code value for the 8 key(56).
		 */
		public static const NUMBER_8:uint = 56; 
		
		/**
		 * Constant associated with the key code value for the 9 key(57).
		 */
		public static const NUMBER_9:uint = 57;
		
		/**
		 * Constant associated with the key code value for the A key(65).
		 */
		public static const A:uint = 65;
		
		/**
		 * Constant associated with the key code value for the B key(66).
		 */
		public static const B:uint = 66;
		
		/**
		 * Constant associated with the key code value for the C key(67).
		 */
		public static const C:uint = 67;
		
		/**
		 * Constant associated with the key code value for the D key(68).
		 */
		public static const D:uint = 68;
		
		/**
		 * Constant associated with the key code value for the E key(69).
		 */
		public static const E:uint = 69;
		
		/**
		 * Constant associated with the key code value for the F key(70).
		 */
		public static const F:uint = 70;
		
		/**
		 * Constant associated with the key code value for the G key(71).
		 */
		public static const G:uint = 71;
		
		/**
		 * Constant associated with the key code value for the H key(72).
		 */
		public static const H:uint = 72;
		
		/**
		 * Constant associated with the key code value for the I key(73).
		 */
		public static const I:uint = 73;
		
		/**
		 * Constant associated with the key code value for the J key(74).
		 */
		public static const J:uint = 74;
		
		/**
		 * Constant associated with the key code value for the K key(75).
		 */
		public static const K:uint = 75;
		
		/**
		 * Constant associated with the key code value for the L key(76).
		 */
		public static const L:uint = 76;
		
		/**
		 * Constant associated with the key code value for the M key(77).
		 */
		public static const M:uint = 77;
		
		/**
		 * Constant associated with the key code value for the N key(78).
		 */
		public static const N:uint = 78;
		
		/**
		 * Constant associated with the key code value for the O key(79).
		 */
		public static const O:uint = 79;
		
		/**
		 * Constant associated with the key code value for the P key(80).
		 */
		public static const P:uint = 80;
		
		/**
		 * Constant associated with the key code value for the Q key(81).
		 */
		public static const Q:uint = 81;
		
		/**
		 * Constant associated with the key code value for the R key(82).
		 */
		public static const R:uint = 82;
		
		/**
		 * Constant associated with the key code value for the S key(83).
		 */
		public static const S:uint = 83;
		
		/**
		 * Constant associated with the key code value for the T key(84).
		 */
		public static const T:uint = 84;
		
		/**
		 * Constant associated with the key code value for the U key(85).
		 */
		public static const U:uint = 85;
		
		/**
		 * Constant associated with the key code value for the V key(85).
		 */
		public static const V:uint = 86;
		
		/**
		 * Constant associated with the key code value for the W key(87).
		 */
		public static const W:uint = 87;
		
		/**
		 * Constant associated with the key code value for the X key(88).
		 */
		public static const X:uint = 88;
		
		/**
		 * Constant associated with the key code value for the Y key(89).
		 */
		public static const Y:uint = 89;
		
		/**
		 * Constant associated with the key code value for the Z key(90).
		 */
		public static const Z:uint = 90;
		
		/**
		 * Constant associated with the key code value for the number 0 key on the
		 * number pad(96).
		 */
		public static const NUMPAD_0:uint = 96;
		
		/**
		 * Constant associated with the key code value for the number 1 key on the
		 * number pad(97).
		 */
		public static const NUMPAD_1:uint = 97;
		
		/**
		 * Constant associated with the key code value for the number 2 key on the
		 * number pad(98).
		 */
		public static const NUMPAD_2:uint = 98;
		
		/**
		 * Constant associated with the key code value for the number 3 key on the
		 * number pad(99).
		 */
		public static const NUMPAD_3:uint = 99;
		
		/**
		 * Constant associated with the key code value for the number 4 key on the
		 * number pad(100).
		 */
		public static const NUMPAD_4:uint = 100;
		
		/**
		 * Constant associated with the key code value for the number 5 key on the
		 * number pad(101).
		 */
		public static const NUMPAD_5:uint = 101;
		
		/**
		 * Constant associated with the key code value for the number 6 key on the
		 * number pad(102).
		 */
		public static const NUMPAD_6:uint = 102;
		
		/**
		 * Constant associated with the key code value for the number 7 key on the
		 * number pad(103).
		 */
		public static const NUMPAD_7:uint = 103;
		
		/**
		 * Constant associated with the key code value for the number 8 key on the
		 * number pad(104).
		 */
		public static const NUMPAD_8:uint = 104;
		
		/**
		 * Constant associated with the key code value for the number 9 key on the
		 * number pad(105).
		 */
		public static const NUMPAD_9:uint = 105;
		
		/**
		 * Constant associated with the key code value for the multiplication key on
		 * the number pad(106).
		 */
		public static const NUMPAD_MULTIPLY:uint = 106;
		
		/**
		 * Constant associated with the key code value for the addition key on the
		 * number pad(107).
		 */
		public static const NUMPAD_ADD:uint = 107;
		
		/**
		 * Constant associated with the key code value for the Enter key on the
		 * number pad(108).
		 */
		public static const NUMPAD_ENTER:uint = 108;
		
		/**
		 * Constant associated with the key code value for the subtraction key on the
		 * number pad(109).
		 */
		public static const NUMPAD_SUBTRACT:uint = 109;
		
		/**
		 * Constant associated with the key code value for the decimal key on the
		 * number pad(110).
		 */
		public static const NUMPAD_DECIMAL:uint = 110;
		
		/**
		 * Constant associated with the key code value for the division key on the
		 * number pad(111).
		 */
		public static const NUMPAD_DIVIDE:uint = 111;
		
		/**
		 * Constant associated with the key code value for the F1 key(112).
		 */
		public static const F1:uint = 112;
		
		/**
		 * Constant associated with the key code value for the F2 key(113).
		 */
		public static const F2:uint = 113;
		
		/**
		 * Constant associated with the key code value for the F3 key(114).
		 */
		public static const F3:uint = 114;
		
		/**
		 * Constant associated with the key code value for the F4 key(115).
		 */
		public static const F4:uint = 115;
		
		/**
		 * Constant associated with the key code value for the F5 key(116).
		 */
		public static const F5:uint = 116;
		
		/**
		 * Constant associated with the key code value for the F6 key(117).
		 */
		public static const F6:uint = 117;
		
		/**
		 * Constant associated with the key code value for the F7 key(118).
		 */
		public static const F7:uint = 118;
		
		/**
		 * Constant associated with the key code value for the F8 key(119).
		 */
		public static const F8:uint = 119;
		
		/**
		 * Constant associated with the key code value for the F9 key(120).
		 */
		public static const F9:uint = 120;
		
		/**
		 * Constant associated with the key code value for the F10 key(121).
		 */
		public static const F10:uint = 121; //  F10 is used by browser.
		
		/**
		 * Constant associated with the key code value for the F11 key(122).
		 */
		public static const F11:uint = 122;
		
		/**
		 * Constant associated with the key code value for the F12 key(123).
		 */
		public static const F12:uint = 123;
		
		/**
		 * Constant associated with the key code value for the F13 key(124).
		 */
		public static const F13:uint = 124;
		
		/**
		 * Constant associated with the key code value for the F14 key(125).
		 */
		public static const F14:uint = 125;
		
		/**
		 * Constant associated with the key code value for the F15 key(126).
		 */
		public static const F15:uint = 126;
		
		/**
		 * Constant associated with the key code value for the Backspace key(8).
		 */
		public static const BACKSPACE:uint = 8;
		
		/**
		 * Constant associated with the key code value for the Tab key(9).
		 */
		public static const TAB:uint = 9;
		
		/**
		 * Constant associated with the key code value for the Alternate(Option) key
		 * (18).
		 */
		public static const ALTERNATE:uint = 18;
		
		/**
		 * Constant associated with the key code value for the Enter key(13).
		 */
		public static const ENTER:uint = 13;
		
		/**
		 * Constant associated with the Mac command key(15). This constant is
		 * currently only used for setting menu key equivalents.
		 */
		public static const COMMAND:uint = 15;
		
		/**
		 * Constant associated with the key code value for the Shift key(16).
		 */
		public static const SHIFT:uint = 16;
		
		/**
		 * Constant associated with the key code value for the Control key(17).
		 */
		public static const CONTROL:uint = 17;
		
		public static const BREAK:uint = 19;
		
		/**
		 * Constant associated with the key code value for the Caps Lock key(20).
		 */
		public static const CAPS_LOCK:uint = 20;
		
		/**
		 * Constant associated with the pseudo-key code for the the number pad(21).
		 * Use to set numpad modifier on key equivalents
		 */
		public static const NUMPAD:uint = 21;
		
		/**
		 * Constant associated with the key code value for the Escape key(27).
		 */
		public static const ESCAPE:uint = 27;
		
		/**
		 * Constant associated with the key code value for the Spacebar(32).
		 */
		public static const SPACE:uint = 32;
		
		/**
		 * Constant associated with the key code value for the Page Up key(33).
		 */
		public static const PAGE_UP:uint = 33;
		
		/**
		 * Constant associated with the key code value for the Page Down key(34).
		 */
		public static const PAGE_DOWN:uint = 34;
		
		/**
		 * Constant associated with the key code value for the End key(35).
		 */
		public static const END:uint = 35;
		
		/**
		 * Constant associated with the key code value for the Home key(36).
		 */
		public static const HOME:uint = 36;
		
		/**
		 * Constant associated with the key code value for the Left Arrow key(37).
		 */
		public static const LEFT:uint = 37;
		
		/**
		 * Constant associated with the key code value for the Right Arrow key(39).
		 */
		public static const RIGHT:uint = 39;
		
		/**
		 * Constant associated with the key code value for the Up Arrow key(38).
		 */
		public static const UP:uint = 38;
		
		/**
		 * Constant associated with the key code value for the Down Arrow key(40).
		 */
		public static const DOWN:uint = 40;
		
		/**
		 * Constant associated with the key code value for the Insert key(45).
		 */
		public static const INSERT:uint = 45;
		
		/**
		 * Constant associated with the key code value for the Delete key(46).
		 */
		public static const DELETE:uint = 46;
		
		public static const NUMLOCK:uint = 144;
		
		/**
		 * Constant associated with the key code value for the ; key(186).
		 */
		public static const SEMICOLON:uint = 186;
		
		/**
		 * Constant associated with the key code value for the:uint = key(187).
		 */
		public static const EQUAL:uint = 187;
		
		/**
		 * Constant associated with the key code value for the , key(188).
		 */
		public static const COMMA:uint = 188;
		
		/**
		 * Constant associated with the key code value for the - key(189).
		 */
		public static const MINUS:uint = 189;
		
		/**
		 * Constant associated with the key code value for the . key(190).
		 */
		public static const PERIOD:uint = 190;
		
		/**
		 * Constant associated with the key code value for the / key(191).
		 */
		public static const SLASH:uint = 191;
		
		/**
		 * Constant associated with the key code value for the ` key(192).
		 */
		public static const BACKQUOTE:uint = 192;
		
		/**
		 * Constant associated with the key code value for the [ key(219).
		 */
		public static const LEFTBRACKET:uint = 219;
		
		/**
		 * Constant associated with the key code value for the \ key(220).
		 */
		public static const BACKSLASH:uint = 220;
		
		/**
		 * Constant associated with the key code value for the ] key(221).
		 */
		public static const RIGHTBRACKET:uint = 221;
		
		/**
		 * Constant associated with the key code value for the ' key(222).
		 */
		public static const QUOTE:uint = 222;
		
		// #if air
		// public static const NEXT:uint = 0x0100000E;
		// public static const BACK:uint = 0x01000016;
		// public static const SEARCH:uint = 0x0100001F;
		// public static const MENU:uint = 0x01000012;
		// #end
		
		/**
		 * Specifies whether the Caps Lock key is activated(`true`) or
		 * not(`false`).
		 */
		public static function get capsLock ():Boolean { return false; }
		
		/**
		 * Specifies whether the Num Lock key is activated(`true`) or not
		 * (`false`).
		 */
		public static function get numLock ():Boolean { return false; }
		
		
		/**
		 * Specifies whether the last key pressed is accessible by other SWF files.
		 * By default, security restrictions prevent code from a SWF file in one
		 * domain from accessing a keystroke generated from a SWF file in another
		 * domain.
		 * 
		 * @return The value `true` if the last key pressed can be
		 *         accessed. If access is not permitted, this method returns
		 *         `false`.
		 */
		public static function isAccessible ():Boolean { return false; }
		
		
	}
	
	
}