OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) | 2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) |
3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) | 3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) |
4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv
ed. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv
ed. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 24 matching lines...) Expand all Loading... |
35 | 35 |
36 struct KeyboardEventInit : public UIEventInit { | 36 struct KeyboardEventInit : public UIEventInit { |
37 KeyboardEventInit(); | 37 KeyboardEventInit(); |
38 | 38 |
39 String keyIdentifier; | 39 String keyIdentifier; |
40 unsigned location; | 40 unsigned location; |
41 bool ctrlKey; | 41 bool ctrlKey; |
42 bool altKey; | 42 bool altKey; |
43 bool shiftKey; | 43 bool shiftKey; |
44 bool metaKey; | 44 bool metaKey; |
| 45 bool repeat; |
45 }; | 46 }; |
46 | 47 |
47 class KeyboardEvent : public UIEventWithKeyState { | 48 class KeyboardEvent : public UIEventWithKeyState { |
48 public: | 49 public: |
49 enum KeyLocationCode { | 50 enum KeyLocationCode { |
50 DOM_KEY_LOCATION_STANDARD = 0x00, | 51 DOM_KEY_LOCATION_STANDARD = 0x00, |
51 DOM_KEY_LOCATION_LEFT = 0x01, | 52 DOM_KEY_LOCATION_LEFT = 0x01, |
52 DOM_KEY_LOCATION_RIGHT = 0x02, | 53 DOM_KEY_LOCATION_RIGHT = 0x02, |
53 DOM_KEY_LOCATION_NUMPAD = 0x03 | 54 DOM_KEY_LOCATION_NUMPAD = 0x03 |
54 }; | 55 }; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 unsigned location() const { return m_location; } | 87 unsigned location() const { return m_location; } |
87 | 88 |
88 bool getModifierState(const String& keyIdentifier) const; | 89 bool getModifierState(const String& keyIdentifier) const; |
89 | 90 |
90 bool altGraphKey() const { return m_altGraphKey; } | 91 bool altGraphKey() const { return m_altGraphKey; } |
91 | 92 |
92 const PlatformKeyboardEvent* keyEvent() const { return m_keyEvent.get(); } | 93 const PlatformKeyboardEvent* keyEvent() const { return m_keyEvent.get(); } |
93 | 94 |
94 int keyCode() const; // key code for keydown and keyup, character for keypre
ss | 95 int keyCode() const; // key code for keydown and keyup, character for keypre
ss |
95 int charCode() const; // character code for keypress, 0 for keydown and keyu
p | 96 int charCode() const; // character code for keypress, 0 for keydown and keyu
p |
| 97 bool repeat() const { return m_isAutoRepeat; } |
96 | 98 |
97 virtual const AtomicString& interfaceName() const; | 99 virtual const AtomicString& interfaceName() const; |
98 virtual bool isKeyboardEvent() const; | 100 virtual bool isKeyboardEvent() const; |
99 virtual int which() const; | 101 virtual int which() const; |
100 | 102 |
101 private: | 103 private: |
102 KeyboardEvent(); | 104 KeyboardEvent(); |
103 KeyboardEvent(const PlatformKeyboardEvent&, AbstractView*); | 105 KeyboardEvent(const PlatformKeyboardEvent&, AbstractView*); |
104 KeyboardEvent(const AtomicString&, const KeyboardEventInit&); | 106 KeyboardEvent(const AtomicString&, const KeyboardEventInit&); |
105 KeyboardEvent(const AtomicString& type, bool canBubble, bool cancelable, Abs
tractView*, | 107 KeyboardEvent(const AtomicString& type, bool canBubble, bool cancelable, Abs
tractView*, |
106 const String& keyIdentifier, unsigned location, | 108 const String& keyIdentifier, unsigned location, |
107 bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool altGraphKey
); | 109 bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool altGraphKey
); |
108 | 110 |
109 OwnPtr<PlatformKeyboardEvent> m_keyEvent; | 111 OwnPtr<PlatformKeyboardEvent> m_keyEvent; |
110 String m_keyIdentifier; | 112 String m_keyIdentifier; |
111 unsigned m_location; | 113 unsigned m_location; |
112 bool m_altGraphKey : 1; | 114 bool m_altGraphKey : 1; |
| 115 bool m_isAutoRepeat : 1; |
113 }; | 116 }; |
114 | 117 |
115 KeyboardEvent* findKeyboardEvent(Event*); | 118 KeyboardEvent* findKeyboardEvent(Event*); |
116 | 119 |
117 class KeyboardEventDispatchMediator : public EventDispatchMediator { | 120 class KeyboardEventDispatchMediator : public EventDispatchMediator { |
118 public: | 121 public: |
119 static PassRefPtr<KeyboardEventDispatchMediator> create(PassRefPtr<KeyboardE
vent>); | 122 static PassRefPtr<KeyboardEventDispatchMediator> create(PassRefPtr<KeyboardE
vent>); |
120 private: | 123 private: |
121 explicit KeyboardEventDispatchMediator(PassRefPtr<KeyboardEvent>); | 124 explicit KeyboardEventDispatchMediator(PassRefPtr<KeyboardEvent>); |
122 virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE; | 125 virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE; |
123 }; | 126 }; |
124 | 127 |
125 inline KeyboardEvent* toKeyboardEvent(Event* event) | 128 inline KeyboardEvent* toKeyboardEvent(Event* event) |
126 { | 129 { |
127 ASSERT_WITH_SECURITY_IMPLICATION(!event || event->isKeyboardEvent()); | 130 ASSERT_WITH_SECURITY_IMPLICATION(!event || event->isKeyboardEvent()); |
128 return static_cast<KeyboardEvent*>(event); | 131 return static_cast<KeyboardEvent*>(event); |
129 } | 132 } |
130 | 133 |
131 } // namespace WebCore | 134 } // namespace WebCore |
132 | 135 |
133 #endif // KeyboardEvent_h | 136 #endif // KeyboardEvent_h |
OLD | NEW |