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"
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
,
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
);
26 case ui::ET_GESTURE_SCROLL_BEGIN
:
27 data_
.scroll_begin
.x_hint
= delta_x
;
28 data_
.scroll_begin
.y_hint
= delta_y
;
31 case ui::ET_GESTURE_SCROLL_UPDATE
:
32 data_
.scroll_update
.x
= delta_x
;
33 data_
.scroll_update
.y
= delta_y
;
36 case ui::ET_SCROLL_FLING_START
:
37 data_
.fling_velocity
.x
= delta_x
;
38 data_
.fling_velocity
.y
= delta_y
;
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
;
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;
54 NOTREACHED() << "Invalid event type for constructor: " << type
;
58 GestureEventDetails::GestureEventDetails(ui::EventType type
,
59 const GestureEventDetails
& other
)
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
);
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
)
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
;
85 GestureEventDetails::Details::Details() {
86 memset(this, 0, sizeof(Details
));