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() : type_(ET_UNKNOWN
) {}
11 GestureEventDetails::GestureEventDetails(ui::EventType type
,
16 DCHECK_GE(type
, ET_GESTURE_TYPE_START
);
17 DCHECK_LE(type
, ET_GESTURE_TYPE_END
);
19 case ui::ET_GESTURE_SCROLL_BEGIN
:
20 data
.scroll_begin
.x_hint
= delta_x
;
21 data
.scroll_begin
.y_hint
= delta_y
;
24 case ui::ET_GESTURE_SCROLL_UPDATE
:
25 data
.scroll_update
.x
= delta_x
;
26 data
.scroll_update
.y
= delta_y
;
29 case ui::ET_SCROLL_FLING_START
:
30 data
.fling_velocity
.x
= delta_x
;
31 data
.fling_velocity
.y
= delta_y
;
34 case ui::ET_GESTURE_TWO_FINGER_TAP
:
35 data
.first_finger_enclosing_rectangle
.width
= delta_x
;
36 data
.first_finger_enclosing_rectangle
.height
= delta_y
;
39 case ui::ET_GESTURE_PINCH_UPDATE
:
41 CHECK_EQ(0.f
, delta_y
) << "Unknown data in delta_y for pinch";
44 case ui::ET_GESTURE_SWIPE
:
45 data
.swipe
.left
= delta_x
< 0;
46 data
.swipe
.right
= delta_x
> 0;
47 data
.swipe
.up
= delta_y
< 0;
48 data
.swipe
.down
= delta_y
> 0;
51 case ui::ET_GESTURE_TAP
:
52 case ui::ET_GESTURE_DOUBLE_TAP
:
53 case ui::ET_GESTURE_TAP_UNCONFIRMED
:
54 data
.tap_count
= static_cast<int>(delta_x
);
55 CHECK_EQ(0.f
, delta_y
) << "Unknown data in delta_y for tap.";
59 if (delta_x
!= 0.f
|| delta_y
!= 0.f
) {
60 DLOG(WARNING
) << "A gesture event (" << type
<< ") had unknown data: ("
61 << delta_x
<< "," << delta_y
;
67 GestureEventDetails::Details::Details() {
68 memset(this, 0, sizeof(Details
));