| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef KeyboardEventManager_h | 5 #ifndef KeyboardEventManager_h |
| 6 #define KeyboardEventManager_h | 6 #define KeyboardEventManager_h |
| 7 | 7 |
| 8 #include "core/CoreExport.h" | 8 #include "core/CoreExport.h" |
| 9 #include "platform/PlatformEvent.h" | 9 #include "platform/PlatformEvent.h" |
| 10 #include "platform/heap/Handle.h" | 10 #include "platform/heap/Handle.h" |
| 11 #include "platform/heap/Visitor.h" | 11 #include "platform/heap/Visitor.h" |
| 12 #include "public/platform/WebFocusType.h" | 12 #include "public/platform/WebFocusType.h" |
| 13 #include "public/platform/WebInputEvent.h" |
| 13 #include "public/platform/WebInputEventResult.h" | 14 #include "public/platform/WebInputEventResult.h" |
| 14 #include "wtf/Allocator.h" | 15 #include "wtf/Allocator.h" |
| 15 | 16 |
| 16 namespace blink { | 17 namespace blink { |
| 17 | 18 |
| 18 class KeyboardEvent; | 19 class KeyboardEvent; |
| 19 class LocalFrame; | 20 class LocalFrame; |
| 20 class PlatformKeyboardEvent; | |
| 21 class ScrollManager; | 21 class ScrollManager; |
| 22 | 22 |
| 23 enum class OverrideCapsLockState { |
| 24 Default, |
| 25 On, |
| 26 Off |
| 27 }; |
| 28 |
| 23 class CORE_EXPORT KeyboardEventManager { | 29 class CORE_EXPORT KeyboardEventManager { |
| 24 WTF_MAKE_NONCOPYABLE(KeyboardEventManager); | 30 WTF_MAKE_NONCOPYABLE(KeyboardEventManager); |
| 25 DISALLOW_NEW(); | 31 DISALLOW_NEW(); |
| 26 public: | 32 public: |
| 33 static const int kAccessKeyModifiers = |
| 34 // TODO(crbug.com/618397): Add a settings to control this behavior. |
| 35 #if OS(MACOSX) |
| 36 WebInputEvent::ControlKey | WebInputEvent::AltKey; |
| 37 #else |
| 38 WebInputEvent::AltKey; |
| 39 #endif |
| 40 |
| 27 KeyboardEventManager(LocalFrame*, ScrollManager*); | 41 KeyboardEventManager(LocalFrame*, ScrollManager*); |
| 28 ~KeyboardEventManager(); | 42 ~KeyboardEventManager(); |
| 29 DECLARE_TRACE(); | 43 DECLARE_TRACE(); |
| 30 | 44 |
| 31 bool handleAccessKey(const PlatformKeyboardEvent&); | 45 bool handleAccessKey(const WebKeyboardEvent&); |
| 32 WebInputEventResult keyEvent(const PlatformKeyboardEvent&); | 46 WebInputEventResult keyEvent(const WebKeyboardEvent&); |
| 33 void defaultKeyboardEventHandler(KeyboardEvent*, Node*); | 47 void defaultKeyboardEventHandler(KeyboardEvent*, Node*); |
| 34 | 48 |
| 35 void capsLockStateMayHaveChanged(); | 49 void capsLockStateMayHaveChanged(); |
| 50 static WebInputEvent::Modifiers getCurrentModifierState(); |
| 51 static bool currentCapsLockState(); |
| 36 | 52 |
| 37 private: | 53 private: |
| 54 friend class Internals; |
| 55 // Allows overriding the current caps lock state for testing purposes. |
| 56 static void setCurrentCapsLockState(OverrideCapsLockState); |
| 38 | 57 |
| 39 void defaultSpaceEventHandler(KeyboardEvent*, Node*); | 58 void defaultSpaceEventHandler(KeyboardEvent*, Node*); |
| 40 void defaultBackspaceEventHandler(KeyboardEvent*); | 59 void defaultBackspaceEventHandler(KeyboardEvent*); |
| 41 void defaultTabEventHandler(KeyboardEvent*); | 60 void defaultTabEventHandler(KeyboardEvent*); |
| 42 void defaultEscapeEventHandler(KeyboardEvent*); | 61 void defaultEscapeEventHandler(KeyboardEvent*); |
| 43 void defaultArrowEventHandler(WebFocusType, KeyboardEvent*); | 62 void defaultArrowEventHandler(WebFocusType, KeyboardEvent*); |
| 44 | 63 |
| 45 const Member<LocalFrame> m_frame; | 64 const Member<LocalFrame> m_frame; |
| 46 | 65 |
| 47 ScrollManager* m_scrollManager; | 66 ScrollManager* m_scrollManager; |
| 48 }; | 67 }; |
| 49 | 68 |
| 50 } // namespace blink | 69 } // namespace blink |
| 51 | 70 |
| 52 #endif // KeyboardEventManager_h | 71 #endif // KeyboardEventManager_h |
| OLD | NEW |