Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Side by Side Diff: content/browser/renderer_host/input/gesture_event_packet.cc

Issue 181833003: [Android] Out with the Android GR, in with the new unified C++ GR (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "content/browser/renderer_host/input/gesture_event_packet.h"
6
7 #include "base/logging.h"
8
9 using blink::WebGestureEvent;
10 using blink::WebInputEvent;
11 using blink::WebTouchEvent;
12 using blink::WebTouchPoint;
13
14 namespace content {
15 namespace {
16
17 GestureEventPacket::GestureSource ToGestureSource(const WebTouchEvent& event) {
18 if (!event.touchesLength)
19 return GestureEventPacket::INVALID;
20 switch (event.type) {
21 case WebInputEvent::TouchStart:
22 for (size_t i = 0; i < event.touchesLength; i++) {
23 if (event.touches[i].state != WebTouchPoint::StatePressed)
24 return GestureEventPacket::TOUCH_START;
25 }
26 return GestureEventPacket::TOUCH_SEQUENCE_START;
27 case WebInputEvent::TouchMove:
28 return GestureEventPacket::TOUCH_MOVE;
29 case WebInputEvent::TouchEnd:
30 case WebInputEvent::TouchCancel:
31 for (size_t i = 0; i < event.touchesLength; i++) {
32 if (event.touches[i].state != WebTouchPoint::StateReleased &&
33 event.touches[i].state != WebTouchPoint::StateCancelled) {
34 return GestureEventPacket::TOUCH_END;
35 }
36 }
37 return GestureEventPacket::TOUCH_SEQUENCE_END;
38 default:
39 return GestureEventPacket::INVALID;
40 }
41 }
42
43 } // namespace
44
45 GestureEventPacket::GestureEventPacket()
46 : gesture_count_(0),
47 gesture_source_(UNDEFINED) {}
48
49 GestureEventPacket::GestureEventPacket(GestureSource source)
50 : gesture_count_(0),
51 gesture_source_(source) {
52 DCHECK_NE(gesture_source_, UNDEFINED);
53 }
54
55 GestureEventPacket::GestureEventPacket(const GestureEventPacket& other)
56 : gesture_count_(other.gesture_count_),
57 gesture_source_(other.gesture_source_) {
58 std::copy(other.gestures_, other.gestures_ + other.gesture_count_, gestures_);
59 }
60
61 GestureEventPacket::~GestureEventPacket() {}
62
63 GestureEventPacket& GestureEventPacket::operator=(
64 const GestureEventPacket& other) {
65 gesture_count_ = other.gesture_count_;
66 gesture_source_ = other.gesture_source_;
67 std::copy(other.gestures_, other.gestures_ + other.gesture_count_, gestures_);
68 return *this;
69 }
70
71 void GestureEventPacket::Push(const blink::WebGestureEvent& gesture) {
72 DCHECK(WebInputEvent::isGestureEventType(gesture.type));
73 CHECK_LT(gesture_count_, static_cast<size_t>(kMaxGesturesPerTouch));
74 gestures_[gesture_count_++] = gesture;
75 }
76
77 GestureEventPacket GestureEventPacket::FromTouch(const WebTouchEvent& event) {
78 return GestureEventPacket(ToGestureSource(event));
79 }
80
81 GestureEventPacket GestureEventPacket::FromTouchTimeout(
82 const WebGestureEvent& event) {
83 GestureEventPacket packet(TOUCH_TIMEOUT);
84 packet.Push(event);
85 return packet;
86 }
87
88 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/input/gesture_event_packet.h ('k') | content/browser/renderer_host/input/motion_event_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698