Bug 1842773 - Part 5: Add ArrayBuffer.prototype.{maxByteLength,resizable} getters...
[gecko.git] / dom / webidl / KeyEvent.webidl
blob16c417c9e3b8757dd6ba7732cb3c7f1d76b8c240
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4  * You can obtain one at http://mozilla.org/MPL/2.0/.
5  */
7 // http://www.w3.org/TR/1999/WD-DOM-Level-2-19990923/events.html#Events-KeyEvent
8 [Exposed=Window]
9 interface KeyEvent
11   // It's all mixed in.
13 KeyEvent includes KeyEventMixin;
15 interface mixin KeyEventMixin {
16   const unsigned long DOM_VK_CANCEL         = 0x03;
17   const unsigned long DOM_VK_HELP           = 0x06;
18   const unsigned long DOM_VK_BACK_SPACE     = 0x08;
19   const unsigned long DOM_VK_TAB            = 0x09;
20   const unsigned long DOM_VK_CLEAR          = 0x0C;
21   const unsigned long DOM_VK_RETURN         = 0x0D;
22   // DOM_VK_ENTER has been never used for representing native key events.
23   // Therefore, it's removed for preventing developers being confused.
24   // const unsigned long DOM_VK_ENTER          = 0x0E;
25   const unsigned long DOM_VK_SHIFT          = 0x10;
26   const unsigned long DOM_VK_CONTROL        = 0x11;
27   const unsigned long DOM_VK_ALT            = 0x12;
28   const unsigned long DOM_VK_PAUSE          = 0x13;
29   const unsigned long DOM_VK_CAPS_LOCK      = 0x14;
30   const unsigned long DOM_VK_KANA           = 0x15;
31   const unsigned long DOM_VK_HANGUL         = 0x15;
32   const unsigned long DOM_VK_EISU           = 0x16; // Japanese Mac keyboard only
33   const unsigned long DOM_VK_JUNJA          = 0x17;
34   const unsigned long DOM_VK_FINAL          = 0x18;
35   const unsigned long DOM_VK_HANJA          = 0x19;
36   const unsigned long DOM_VK_KANJI          = 0x19;
37   const unsigned long DOM_VK_ESCAPE         = 0x1B;
38   const unsigned long DOM_VK_CONVERT        = 0x1C;
39   const unsigned long DOM_VK_NONCONVERT     = 0x1D;
40   const unsigned long DOM_VK_ACCEPT         = 0x1E;
41   const unsigned long DOM_VK_MODECHANGE     = 0x1F;
42   const unsigned long DOM_VK_SPACE          = 0x20;
43   const unsigned long DOM_VK_PAGE_UP        = 0x21;
44   const unsigned long DOM_VK_PAGE_DOWN      = 0x22;
45   const unsigned long DOM_VK_END            = 0x23;
46   const unsigned long DOM_VK_HOME           = 0x24;
47   const unsigned long DOM_VK_LEFT           = 0x25;
48   const unsigned long DOM_VK_UP             = 0x26;
49   const unsigned long DOM_VK_RIGHT          = 0x27;
50   const unsigned long DOM_VK_DOWN           = 0x28;
51   const unsigned long DOM_VK_SELECT         = 0x29;
52   const unsigned long DOM_VK_PRINT          = 0x2A;
53   const unsigned long DOM_VK_EXECUTE        = 0x2B;
54   const unsigned long DOM_VK_PRINTSCREEN    = 0x2C;
55   const unsigned long DOM_VK_INSERT         = 0x2D;
56   const unsigned long DOM_VK_DELETE         = 0x2E;
58   // DOM_VK_0 - DOM_VK_9 match their ascii values
59   const unsigned long DOM_VK_0              = 0x30;
60   const unsigned long DOM_VK_1              = 0x31;
61   const unsigned long DOM_VK_2              = 0x32;
62   const unsigned long DOM_VK_3              = 0x33;
63   const unsigned long DOM_VK_4              = 0x34;
64   const unsigned long DOM_VK_5              = 0x35;
65   const unsigned long DOM_VK_6              = 0x36;
66   const unsigned long DOM_VK_7              = 0x37;
67   const unsigned long DOM_VK_8              = 0x38;
68   const unsigned long DOM_VK_9              = 0x39;
70   const unsigned long DOM_VK_COLON          = 0x3A;
71   const unsigned long DOM_VK_SEMICOLON      = 0x3B;
72   const unsigned long DOM_VK_LESS_THAN      = 0x3C;
73   const unsigned long DOM_VK_EQUALS         = 0x3D;
74   const unsigned long DOM_VK_GREATER_THAN   = 0x3E;
75   const unsigned long DOM_VK_QUESTION_MARK  = 0x3F;
76   const unsigned long DOM_VK_AT             = 0x40;
78   // DOM_VK_A - DOM_VK_Z match their ascii values
79   const unsigned long DOM_VK_A              = 0x41;
80   const unsigned long DOM_VK_B              = 0x42;
81   const unsigned long DOM_VK_C              = 0x43;
82   const unsigned long DOM_VK_D              = 0x44;
83   const unsigned long DOM_VK_E              = 0x45;
84   const unsigned long DOM_VK_F              = 0x46;
85   const unsigned long DOM_VK_G              = 0x47;
86   const unsigned long DOM_VK_H              = 0x48;
87   const unsigned long DOM_VK_I              = 0x49;
88   const unsigned long DOM_VK_J              = 0x4A;
89   const unsigned long DOM_VK_K              = 0x4B;
90   const unsigned long DOM_VK_L              = 0x4C;
91   const unsigned long DOM_VK_M              = 0x4D;
92   const unsigned long DOM_VK_N              = 0x4E;
93   const unsigned long DOM_VK_O              = 0x4F;
94   const unsigned long DOM_VK_P              = 0x50;
95   const unsigned long DOM_VK_Q              = 0x51;
96   const unsigned long DOM_VK_R              = 0x52;
97   const unsigned long DOM_VK_S              = 0x53;
98   const unsigned long DOM_VK_T              = 0x54;
99   const unsigned long DOM_VK_U              = 0x55;
100   const unsigned long DOM_VK_V              = 0x56;
101   const unsigned long DOM_VK_W              = 0x57;
102   const unsigned long DOM_VK_X              = 0x58;
103   const unsigned long DOM_VK_Y              = 0x59;
104   const unsigned long DOM_VK_Z              = 0x5A;
106   const unsigned long DOM_VK_WIN            = 0x5B;
107   const unsigned long DOM_VK_CONTEXT_MENU   = 0x5D;
108   const unsigned long DOM_VK_SLEEP          = 0x5F;
110   // Numpad keys
111   const unsigned long DOM_VK_NUMPAD0        = 0x60;
112   const unsigned long DOM_VK_NUMPAD1        = 0x61;
113   const unsigned long DOM_VK_NUMPAD2        = 0x62;
114   const unsigned long DOM_VK_NUMPAD3        = 0x63;
115   const unsigned long DOM_VK_NUMPAD4        = 0x64;
116   const unsigned long DOM_VK_NUMPAD5        = 0x65;
117   const unsigned long DOM_VK_NUMPAD6        = 0x66;
118   const unsigned long DOM_VK_NUMPAD7        = 0x67;
119   const unsigned long DOM_VK_NUMPAD8        = 0x68;
120   const unsigned long DOM_VK_NUMPAD9        = 0x69;
121   const unsigned long DOM_VK_MULTIPLY       = 0x6A;
122   const unsigned long DOM_VK_ADD            = 0x6B;
123   const unsigned long DOM_VK_SEPARATOR      = 0x6C;
124   const unsigned long DOM_VK_SUBTRACT       = 0x6D;
125   const unsigned long DOM_VK_DECIMAL        = 0x6E;
126   const unsigned long DOM_VK_DIVIDE         = 0x6F;
128   const unsigned long DOM_VK_F1             = 0x70;
129   const unsigned long DOM_VK_F2             = 0x71;
130   const unsigned long DOM_VK_F3             = 0x72;
131   const unsigned long DOM_VK_F4             = 0x73;
132   const unsigned long DOM_VK_F5             = 0x74;
133   const unsigned long DOM_VK_F6             = 0x75;
134   const unsigned long DOM_VK_F7             = 0x76;
135   const unsigned long DOM_VK_F8             = 0x77;
136   const unsigned long DOM_VK_F9             = 0x78;
137   const unsigned long DOM_VK_F10            = 0x79;
138   const unsigned long DOM_VK_F11            = 0x7A;
139   const unsigned long DOM_VK_F12            = 0x7B;
140   const unsigned long DOM_VK_F13            = 0x7C;
141   const unsigned long DOM_VK_F14            = 0x7D;
142   const unsigned long DOM_VK_F15            = 0x7E;
143   const unsigned long DOM_VK_F16            = 0x7F;
144   const unsigned long DOM_VK_F17            = 0x80;
145   const unsigned long DOM_VK_F18            = 0x81;
146   const unsigned long DOM_VK_F19            = 0x82;
147   const unsigned long DOM_VK_F20            = 0x83;
148   const unsigned long DOM_VK_F21            = 0x84;
149   const unsigned long DOM_VK_F22            = 0x85;
150   const unsigned long DOM_VK_F23            = 0x86;
151   const unsigned long DOM_VK_F24            = 0x87;
153   const unsigned long DOM_VK_NUM_LOCK       = 0x90;
154   const unsigned long DOM_VK_SCROLL_LOCK    = 0x91;
156   // OEM specific virtual keyCode of Windows should pass through DOM keyCode
157   // for compatibility with the other web browsers on Windows.
158   const unsigned long DOM_VK_WIN_OEM_FJ_JISHO   = 0x92;
159   const unsigned long DOM_VK_WIN_OEM_FJ_MASSHOU = 0x93;
160   const unsigned long DOM_VK_WIN_OEM_FJ_TOUROKU = 0x94;
161   const unsigned long DOM_VK_WIN_OEM_FJ_LOYA    = 0x95;
162   const unsigned long DOM_VK_WIN_OEM_FJ_ROYA    = 0x96;
164   const unsigned long DOM_VK_CIRCUMFLEX     = 0xA0;
165   const unsigned long DOM_VK_EXCLAMATION    = 0xA1;
166   const unsigned long DOM_VK_DOUBLE_QUOTE   = 0xA2;
167   const unsigned long DOM_VK_HASH           = 0xA3;
168   const unsigned long DOM_VK_DOLLAR         = 0xA4;
169   const unsigned long DOM_VK_PERCENT        = 0xA5;
170   const unsigned long DOM_VK_AMPERSAND      = 0xA6;
171   const unsigned long DOM_VK_UNDERSCORE     = 0xA7;
172   const unsigned long DOM_VK_OPEN_PAREN     = 0xA8;
173   const unsigned long DOM_VK_CLOSE_PAREN    = 0xA9;
174   const unsigned long DOM_VK_ASTERISK       = 0xAA;
175   const unsigned long DOM_VK_PLUS           = 0xAB;
176   const unsigned long DOM_VK_PIPE           = 0xAC;
177   const unsigned long DOM_VK_HYPHEN_MINUS   = 0xAD;
179   const unsigned long DOM_VK_OPEN_CURLY_BRACKET  = 0xAE;
180   const unsigned long DOM_VK_CLOSE_CURLY_BRACKET = 0xAF;
182   const unsigned long DOM_VK_TILDE          = 0xB0;
184   const unsigned long DOM_VK_VOLUME_MUTE    = 0xB5;
185   const unsigned long DOM_VK_VOLUME_DOWN    = 0xB6;
186   const unsigned long DOM_VK_VOLUME_UP      = 0xB7;
188   const unsigned long DOM_VK_COMMA          = 0xBC;
189   const unsigned long DOM_VK_PERIOD         = 0xBE;
190   const unsigned long DOM_VK_SLASH          = 0xBF;
191   const unsigned long DOM_VK_BACK_QUOTE     = 0xC0;
192   const unsigned long DOM_VK_OPEN_BRACKET   = 0xDB; // square bracket
193   const unsigned long DOM_VK_BACK_SLASH     = 0xDC;
194   const unsigned long DOM_VK_CLOSE_BRACKET  = 0xDD; // square bracket
195   const unsigned long DOM_VK_QUOTE          = 0xDE; // Apostrophe
197   const unsigned long DOM_VK_META           = 0xE0;
198   const unsigned long DOM_VK_ALTGR          = 0xE1;
200   // OEM specific virtual keyCode of Windows should pass through DOM keyCode
201   // for compatibility with the other web browsers on Windows.
202   const unsigned long DOM_VK_WIN_ICO_HELP    = 0xE3;
203   const unsigned long DOM_VK_WIN_ICO_00      = 0xE4;
205   // IME processed key.
206   const unsigned long DOM_VK_PROCESSKEY      = 0xE5;
208   // OEM specific virtual keyCode of Windows should pass through DOM keyCode
209   // for compatibility with the other web browsers on Windows.
210   const unsigned long DOM_VK_WIN_ICO_CLEAR   = 0xE6;
211   const unsigned long DOM_VK_WIN_OEM_RESET   = 0xE9;
212   const unsigned long DOM_VK_WIN_OEM_JUMP    = 0xEA;
213   const unsigned long DOM_VK_WIN_OEM_PA1     = 0xEB;
214   const unsigned long DOM_VK_WIN_OEM_PA2     = 0xEC;
215   const unsigned long DOM_VK_WIN_OEM_PA3     = 0xED;
216   const unsigned long DOM_VK_WIN_OEM_WSCTRL  = 0xEE;
217   const unsigned long DOM_VK_WIN_OEM_CUSEL   = 0xEF;
218   const unsigned long DOM_VK_WIN_OEM_ATTN    = 0xF0;
219   const unsigned long DOM_VK_WIN_OEM_FINISH  = 0xF1;
220   const unsigned long DOM_VK_WIN_OEM_COPY    = 0xF2;
221   const unsigned long DOM_VK_WIN_OEM_AUTO    = 0xF3;
222   const unsigned long DOM_VK_WIN_OEM_ENLW    = 0xF4;
223   const unsigned long DOM_VK_WIN_OEM_BACKTAB = 0xF5;
225   // Following keys are not used on most keyboards.  However, for compatibility
226   // with other browsers on Windows, we should define them.
227   const unsigned long DOM_VK_ATTN           = 0xF6;
228   const unsigned long DOM_VK_CRSEL          = 0xF7;
229   const unsigned long DOM_VK_EXSEL          = 0xF8;
230   const unsigned long DOM_VK_EREOF          = 0xF9;
231   const unsigned long DOM_VK_PLAY           = 0xFA;
232   const unsigned long DOM_VK_ZOOM           = 0xFB;
233   const unsigned long DOM_VK_PA1            = 0xFD;
235   // OEM specific virtual keyCode of Windows should pass through DOM keyCode
236   // for compatibility with the other web browsers on Windows.
237   const unsigned long DOM_VK_WIN_OEM_CLEAR  = 0xFE;
239   [BinaryName="initKeyEventJS", Func="KeyboardEvent::IsInitKeyEventAvailable"]
240   undefined initKeyEvent(DOMString type,
241                          optional boolean canBubble = false,
242                          optional boolean cancelable = false,
243                          optional Window? view = null,
244                          optional boolean ctrlKey = false,
245                          optional boolean altKey = false,
246                          optional boolean shiftKey = false,
247                          optional boolean metaKey = false,
248                          optional unsigned long keyCode = 0,
249                          optional unsigned long charCode = 0);