Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / ui / events / gesture_event_details.cc
blobe14fb17302ab12fd89050b62cd4a6e25c3f5423d
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.
5 #include "ui/events/gesture_event_details.h"
7 namespace ui {
9 GestureEventDetails::GestureEventDetails()
10 : type_(ET_UNKNOWN), touch_points_(0), oldest_touch_id_(-1) {
13 GestureEventDetails::GestureEventDetails(ui::EventType type)
14 : type_(type), touch_points_(1), oldest_touch_id_(-1) {
15 DCHECK_GE(type, ET_GESTURE_TYPE_START);
16 DCHECK_LE(type, ET_GESTURE_TYPE_END);
19 GestureEventDetails::GestureEventDetails(ui::EventType type,
20 float delta_x,
21 float delta_y)
22 : type_(type), touch_points_(1), oldest_touch_id_(-1) {
23 DCHECK_GE(type, ET_GESTURE_TYPE_START);
24 DCHECK_LE(type, ET_GESTURE_TYPE_END);
25 switch (type_) {
26 case ui::ET_GESTURE_SCROLL_BEGIN:
27 data_.scroll_begin.x_hint = delta_x;
28 data_.scroll_begin.y_hint = delta_y;
29 break;
31 case ui::ET_GESTURE_SCROLL_UPDATE:
32 data_.scroll_update.x = delta_x;
33 data_.scroll_update.y = delta_y;
34 break;
36 case ui::ET_SCROLL_FLING_START:
37 data_.fling_velocity.x = delta_x;
38 data_.fling_velocity.y = delta_y;
39 break;
41 case ui::ET_GESTURE_TWO_FINGER_TAP:
42 data_.first_finger_enclosing_rectangle.width = delta_x;
43 data_.first_finger_enclosing_rectangle.height = delta_y;
44 break;
46 case ui::ET_GESTURE_SWIPE:
47 data_.swipe.left = delta_x < 0;
48 data_.swipe.right = delta_x > 0;
49 data_.swipe.up = delta_y < 0;
50 data_.swipe.down = delta_y > 0;
51 break;
53 default:
54 NOTREACHED() << "Invalid event type for constructor: " << type;
58 GestureEventDetails::GestureEventDetails(ui::EventType type,
59 const GestureEventDetails& other)
60 : type_(type),
61 data_(other.data_),
62 touch_points_(other.touch_points_),
63 bounding_box_(other.bounding_box_),
64 oldest_touch_id_(other.oldest_touch_id_) {
65 DCHECK_GE(type, ET_GESTURE_TYPE_START);
66 DCHECK_LE(type, ET_GESTURE_TYPE_END);
67 switch (type) {
68 case ui::ET_GESTURE_SCROLL_BEGIN:
69 // Synthetic creation of SCROLL_BEGIN from PINCH_BEGIN is explicitly
70 // allowed as an exception.
71 if (other.type() == ui::ET_GESTURE_PINCH_BEGIN)
72 break;
73 case ui::ET_GESTURE_SCROLL_UPDATE:
74 case ui::ET_SCROLL_FLING_START:
75 case ui::ET_GESTURE_SWIPE:
76 case ui::ET_GESTURE_PINCH_UPDATE:
77 DCHECK_EQ(type, other.type()) << " - Invalid gesture conversion from "
78 << other.type() << " to " << type;
79 break;
80 default:
81 break;
85 GestureEventDetails::Details::Details() {
86 memset(this, 0, sizeof(Details));
89 } // namespace ui