1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // MSVC++ requires this to be set before any other includes to get M_PI.
6 #define _USE_MATH_DEFINES
8 #include "content/browser/renderer_host/input/web_input_event_util.h"
12 #include "base/strings/string_util.h"
13 #include "content/common/input/web_touch_event_traits.h"
14 #include "ui/events/blink/blink_event_util.h"
15 #include "ui/events/event_constants.h"
16 #include "ui/events/gesture_detection/gesture_event_data.h"
17 #include "ui/events/gesture_detection/motion_event.h"
18 #include "ui/events/keycodes/dom/keycode_converter.h"
19 #include "ui/gfx/geometry/safe_integer_conversions.h"
21 using blink::WebGestureEvent
;
22 using blink::WebInputEvent
;
23 using blink::WebTouchEvent
;
24 using blink::WebTouchPoint
;
25 using ui::MotionEvent
;
29 int WebEventModifiersToEventFlags(int modifiers
) {
32 if (modifiers
& blink::WebInputEvent::ShiftKey
)
33 flags
|= ui::EF_SHIFT_DOWN
;
34 if (modifiers
& blink::WebInputEvent::ControlKey
)
35 flags
|= ui::EF_CONTROL_DOWN
;
36 if (modifiers
& blink::WebInputEvent::AltKey
)
37 flags
|= ui::EF_ALT_DOWN
;
38 if (modifiers
& blink::WebInputEvent::MetaKey
)
39 flags
|= ui::EF_COMMAND_DOWN
;
41 if (modifiers
& blink::WebInputEvent::LeftButtonDown
)
42 flags
|= ui::EF_LEFT_MOUSE_BUTTON
;
43 if (modifiers
& blink::WebInputEvent::MiddleButtonDown
)
44 flags
|= ui::EF_MIDDLE_MOUSE_BUTTON
;
45 if (modifiers
& blink::WebInputEvent::RightButtonDown
)
46 flags
|= ui::EF_RIGHT_MOUSE_BUTTON
;
47 if (modifiers
& blink::WebInputEvent::CapsLockOn
)
48 flags
|= ui::EF_CAPS_LOCK_DOWN
;
49 if (modifiers
& blink::WebInputEvent::IsAutoRepeat
)
50 flags
|= ui::EF_IS_REPEAT
;
55 blink::WebInputEvent::Modifiers
DomCodeToWebInputEventModifiers(
57 switch (ui::KeycodeConverter::DomCodeToLocation(code
)) {
58 case ui::DomKeyLocation::LEFT
:
59 return blink::WebInputEvent::IsLeft
;
60 case ui::DomKeyLocation::RIGHT
:
61 return blink::WebInputEvent::IsRight
;
62 case ui::DomKeyLocation::NUMPAD
:
63 return blink::WebInputEvent::IsKeyPad
;
64 case ui::DomKeyLocation::STANDARD
:
67 return static_cast<blink::WebInputEvent::Modifiers
>(0);
70 } // namespace content