OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "content/browser/renderer_host/input/gesture_event_packet.h" | 5 #include "content/browser/renderer_host/input/gesture_event_packet.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "ui/events/gesture_detection/motion_event.h" |
8 | 9 |
9 using blink::WebGestureEvent; | 10 using blink::WebGestureEvent; |
10 using blink::WebInputEvent; | 11 using blink::WebInputEvent; |
11 using blink::WebTouchEvent; | 12 using blink::WebTouchEvent; |
12 using blink::WebTouchPoint; | 13 using blink::WebTouchPoint; |
13 | 14 |
14 namespace content { | 15 namespace content { |
15 namespace { | 16 namespace { |
16 | 17 |
17 GestureEventPacket::GestureSource ToGestureSource(const WebTouchEvent& event) { | 18 GestureEventPacket::GestureSource ToGestureSource(const WebTouchEvent& event) { |
(...skipping 15 matching lines...) Expand all Loading... |
33 event.touches[i].state != WebTouchPoint::StateCancelled) { | 34 event.touches[i].state != WebTouchPoint::StateCancelled) { |
34 return GestureEventPacket::TOUCH_END; | 35 return GestureEventPacket::TOUCH_END; |
35 } | 36 } |
36 } | 37 } |
37 return GestureEventPacket::TOUCH_SEQUENCE_END; | 38 return GestureEventPacket::TOUCH_SEQUENCE_END; |
38 default: | 39 default: |
39 return GestureEventPacket::INVALID; | 40 return GestureEventPacket::INVALID; |
40 } | 41 } |
41 } | 42 } |
42 | 43 |
| 44 GestureEventPacket::GestureSource |
| 45 ToGestureSource(const ui::MotionEvent& event) { |
| 46 switch (event.GetAction()) { |
| 47 case ui::MotionEvent::ACTION_POINTER_DOWN: |
| 48 return GestureEventPacket::TOUCH_BEGIN; |
| 49 case ui::MotionEvent::ACTION_POINTER_UP: |
| 50 return GestureEventPacket::TOUCH_END; |
| 51 case ui::MotionEvent::ACTION_DOWN: |
| 52 return GestureEventPacket::TOUCH_SEQUENCE_BEGIN; |
| 53 case ui::MotionEvent::ACTION_UP: |
| 54 return GestureEventPacket::TOUCH_SEQUENCE_END; |
| 55 case ui::MotionEvent::ACTION_CANCEL: |
| 56 return GestureEventPacket::TOUCH_SEQUENCE_END; |
| 57 case ui::MotionEvent::ACTION_MOVE: |
| 58 return GestureEventPacket::TOUCH_MOVE; |
| 59 }; |
| 60 NOTREACHED() << "Invalid ui::MotionEvent action: " << event.GetAction(); |
| 61 return GestureEventPacket::INVALID; |
| 62 } |
| 63 |
43 } // namespace | 64 } // namespace |
44 | 65 |
45 GestureEventPacket::GestureEventPacket() | 66 GestureEventPacket::GestureEventPacket() |
46 : gesture_count_(0), | 67 : gesture_count_(0), |
47 gesture_source_(UNDEFINED) {} | 68 gesture_source_(UNDEFINED) {} |
48 | 69 |
49 GestureEventPacket::GestureEventPacket(GestureSource source) | 70 GestureEventPacket::GestureEventPacket(GestureSource source) |
50 : gesture_count_(0), | 71 : gesture_count_(0), |
51 gesture_source_(source) { | 72 gesture_source_(source) { |
52 DCHECK_NE(gesture_source_, UNDEFINED); | 73 DCHECK_NE(gesture_source_, UNDEFINED); |
(...skipping 18 matching lines...) Expand all Loading... |
71 void GestureEventPacket::Push(const blink::WebGestureEvent& gesture) { | 92 void GestureEventPacket::Push(const blink::WebGestureEvent& gesture) { |
72 DCHECK(WebInputEvent::isGestureEventType(gesture.type)); | 93 DCHECK(WebInputEvent::isGestureEventType(gesture.type)); |
73 CHECK_LT(gesture_count_, static_cast<size_t>(kMaxGesturesPerTouch)); | 94 CHECK_LT(gesture_count_, static_cast<size_t>(kMaxGesturesPerTouch)); |
74 gestures_[gesture_count_++] = gesture; | 95 gestures_[gesture_count_++] = gesture; |
75 } | 96 } |
76 | 97 |
77 GestureEventPacket GestureEventPacket::FromTouch(const WebTouchEvent& event) { | 98 GestureEventPacket GestureEventPacket::FromTouch(const WebTouchEvent& event) { |
78 return GestureEventPacket(ToGestureSource(event)); | 99 return GestureEventPacket(ToGestureSource(event)); |
79 } | 100 } |
80 | 101 |
| 102 GestureEventPacket GestureEventPacket::FromTouch(const ui::MotionEvent& event) { |
| 103 return GestureEventPacket(ToGestureSource(event)); |
| 104 } |
| 105 |
81 GestureEventPacket GestureEventPacket::FromTouchTimeout( | 106 GestureEventPacket GestureEventPacket::FromTouchTimeout( |
82 const WebGestureEvent& event) { | 107 const WebGestureEvent& event) { |
83 GestureEventPacket packet(TOUCH_TIMEOUT); | 108 GestureEventPacket packet(TOUCH_TIMEOUT); |
84 packet.Push(event); | 109 packet.Push(event); |
85 return packet; | 110 return packet; |
86 } | 111 } |
87 | 112 |
88 } // namespace content | 113 } // namespace content |
OLD | NEW |