Add getModifierState to MouseEvent
[WebKit-https.git] / Source / WebCore / dom / KeyboardEvent.idl
1 /*
2  * Copyright (C) 2006 Apple Inc.
3  * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public License
16  * along with this library; see the file COPYING.LIB.  If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  */
20
21 [
22     Constructor(DOMString type, optional KeyboardEventInit eventInitDict),
23 ] interface KeyboardEvent : UIEvent {
24
25     const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
26     const unsigned long DOM_KEY_LOCATION_LEFT = 0x01;
27     const unsigned long DOM_KEY_LOCATION_RIGHT = 0x02;
28     const unsigned long DOM_KEY_LOCATION_NUMPAD = 0x03;
29
30     [Conditional=KEYBOARD_KEY_ATTRIBUTE] readonly attribute DOMString key;
31     [Conditional=KEYBOARD_CODE_ATTRIBUTE] readonly attribute DOMString code;
32     readonly attribute unsigned long location;
33
34     readonly attribute boolean ctrlKey;
35     readonly attribute boolean shiftKey;
36     readonly attribute boolean altKey;
37     readonly attribute boolean metaKey;
38
39     readonly attribute boolean repeat;
40     readonly attribute boolean isComposing;
41
42     boolean getModifierState(DOMString keyArg);
43
44     // Everything below is legacy.
45     readonly attribute DOMString keyIdentifier;
46     [ImplementedAs=location] readonly attribute unsigned long keyLocation;
47     readonly attribute boolean altGraphKey;
48     readonly attribute unsigned long charCode;
49     readonly attribute unsigned long keyCode;
50     readonly attribute unsigned long which;
51
52     // FIXME: this does not match the version in the DOM spec.
53     // FIXME: Using "undefined" as default parameter value is wrong.
54     void initKeyboardEvent(optional DOMString type = "undefined", optional boolean canBubble = false, optional boolean cancelable = false,
55         optional WindowProxy? view = null, optional DOMString keyIdentifier = "undefined", optional unsigned long location = 0,
56         optional boolean ctrlKey = false, optional boolean altKey = false, optional boolean shiftKey = false, optional boolean metaKey = false, optional boolean altGraphKey = false);
57 };
58
59 dictionary KeyboardEventInit : EventModifierInit {
60     DOMString key = "";
61     DOMString code = "";
62     unsigned long location = 0;
63     boolean repeat = false;
64     boolean isComposing = false;
65
66     // This members are not in the specification but are needed to initialize the corresponding legacy
67     // attributes we still support on KeyboardEvent for backward compatibility.
68     DOMString keyIdentifier = "";
69     unsigned long keyLocation;
70     unsigned long charCode = 0;
71     unsigned long keyCode = 0;
72     unsigned long which = 0;
73 };