1 // Copyright 2020 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.
4 
5 #include "third_party/blink/public/common/input/web_input_event.h"
6 
7 namespace blink {
8 
GetScrollInputType() const9 base::Optional<ui::ScrollInputType> WebInputEvent::GetScrollInputType() const {
10   return base::nullopt;
11 }
12 
MergeDispatchTypes(DispatchType type_1,DispatchType type_2)13 WebInputEvent::DispatchType WebInputEvent::MergeDispatchTypes(
14     DispatchType type_1,
15     DispatchType type_2) {
16   static_assert(DispatchType::kBlocking < DispatchType::kEventNonBlocking,
17                 "Enum not ordered correctly");
18   static_assert(DispatchType::kEventNonBlocking <
19                     DispatchType::kListenersNonBlockingPassive,
20                 "Enum not ordered correctly");
21   static_assert(DispatchType::kListenersNonBlockingPassive <
22                     DispatchType::kListenersForcedNonBlockingDueToFling,
23                 "Enum not ordered correctly");
24   return std::min(type_1, type_2);
25 }
26 
GetTypeAsUiEventType() const27 ui::EventType WebInputEvent::GetTypeAsUiEventType() const {
28   switch (type_) {
29     case WebInputEvent::Type::kMouseDown:
30       return ui::EventType::ET_MOUSE_PRESSED;
31     case WebInputEvent::Type::kMouseUp:
32       return ui::EventType::ET_MOUSE_RELEASED;
33     case WebInputEvent::Type::kMouseMove:
34       return ui::EventType::ET_MOUSE_MOVED;
35     case WebInputEvent::Type::kMouseEnter:
36       return ui::EventType::ET_MOUSE_ENTERED;
37     case WebInputEvent::Type::kMouseLeave:
38       return ui::EventType::ET_MOUSE_EXITED;
39     case WebInputEvent::Type::kContextMenu:
40       return ui::EventType::ET_UNKNOWN;
41     case WebInputEvent::Type::kMouseWheel:
42       return ui::EventType::ET_MOUSEWHEEL;
43     case WebInputEvent::Type::kRawKeyDown:
44       return ui::EventType::ET_KEY_PRESSED;
45     case WebInputEvent::Type::kKeyDown:
46       return ui::EventType::ET_KEY_PRESSED;
47     case WebInputEvent::Type::kKeyUp:
48       return ui::EventType::ET_KEY_RELEASED;
49     case WebInputEvent::Type::kChar:
50       return ui::EventType::ET_KEY_PRESSED;
51     case WebInputEvent::Type::kGestureScrollBegin:
52       return ui::EventType::ET_GESTURE_SCROLL_BEGIN;
53     case WebInputEvent::Type::kGestureScrollEnd:
54       return ui::EventType::ET_GESTURE_SCROLL_END;
55     case WebInputEvent::Type::kGestureScrollUpdate:
56       return ui::EventType::ET_GESTURE_SCROLL_UPDATE;
57     case WebInputEvent::Type::kGestureFlingStart:
58       return ui::EventType::ET_SCROLL_FLING_START;
59     case WebInputEvent::Type::kGestureFlingCancel:
60       return ui::EventType::ET_SCROLL_FLING_CANCEL;
61     case WebInputEvent::Type::kGesturePinchBegin:
62       return ui::EventType::ET_GESTURE_PINCH_BEGIN;
63     case WebInputEvent::Type::kGesturePinchEnd:
64       return ui::EventType::ET_GESTURE_PINCH_END;
65     case WebInputEvent::Type::kGesturePinchUpdate:
66       return ui::EventType::ET_GESTURE_PINCH_UPDATE;
67     case WebInputEvent::Type::kGestureTapDown:
68       return ui::EventType::ET_GESTURE_TAP_DOWN;
69     case WebInputEvent::Type::kGestureShowPress:
70       return ui::EventType::ET_GESTURE_SHOW_PRESS;
71     case WebInputEvent::Type::kGestureTap:
72       return ui::EventType::ET_GESTURE_TAP;
73     case WebInputEvent::Type::kGestureTapCancel:
74       return ui::EventType::ET_GESTURE_TAP_CANCEL;
75     case WebInputEvent::Type::kGestureLongPress:
76       return ui::EventType::ET_GESTURE_LONG_PRESS;
77     case WebInputEvent::Type::kGestureLongTap:
78       return ui::EventType::ET_GESTURE_LONG_TAP;
79     case WebInputEvent::Type::kGestureTwoFingerTap:
80       return ui::EventType::ET_GESTURE_TWO_FINGER_TAP;
81     case WebInputEvent::Type::kGestureTapUnconfirmed:
82       return ui::EventType::ET_GESTURE_TAP_UNCONFIRMED;
83     case WebInputEvent::Type::kGestureDoubleTap:
84       return ui::EventType::ET_GESTURE_DOUBLE_TAP;
85     case WebInputEvent::Type::kTouchStart:
86       return ui::EventType::ET_TOUCH_PRESSED;
87     case WebInputEvent::Type::kTouchMove:
88       return ui::EventType::ET_TOUCH_MOVED;
89     case WebInputEvent::Type::kTouchEnd:
90       return ui::EventType::ET_TOUCH_RELEASED;
91     case WebInputEvent::Type::kTouchCancel:
92       return ui::EventType::ET_TOUCH_CANCELLED;
93     case WebInputEvent::Type::kTouchScrollStarted:
94     case WebInputEvent::Type::kPointerDown:
95       return ui::EventType::ET_TOUCH_PRESSED;
96     case WebInputEvent::Type::kPointerUp:
97       return ui::EventType::ET_TOUCH_RELEASED;
98     case WebInputEvent::Type::kPointerMove:
99       return ui::EventType::ET_TOUCH_MOVED;
100     case WebInputEvent::Type::kPointerCancel:
101       return ui::EventType::ET_TOUCH_CANCELLED;
102     default:
103       return ui::EventType::ET_UNKNOWN;
104   }
105 }
106 
107 }  // namespace blink
108