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 "ui/events/gesture_detection/gesture_event_data.h"
6
7#include "base/logging.h"
8
9namespace ui {
10
11GestureEventData::GestureEventData(const GestureEventDetails& details,
12                                   int motion_event_id,
13                                   MotionEvent::ToolType primary_tool_type,
14                                   base::TimeTicks time,
15                                   float x,
16                                   float y,
17                                   float raw_x,
18                                   float raw_y,
19                                   size_t touch_point_count,
20                                   const gfx::RectF& bounding_box,
21                                   int flags)
22    : details(details),
23      motion_event_id(motion_event_id),
24      primary_tool_type(primary_tool_type),
25      time(time),
26      x(x),
27      y(y),
28      raw_x(raw_x),
29      raw_y(raw_y),
30      flags(flags) {
31  DCHECK_GE(motion_event_id, 0);
32  DCHECK_NE(0U, touch_point_count);
33  this->details.set_touch_points(static_cast<int>(touch_point_count));
34  this->details.set_bounding_box(bounding_box);
35}
36
37GestureEventData::GestureEventData(EventType type,
38                                   const GestureEventData& other)
39    : details(type),
40      motion_event_id(other.motion_event_id),
41      primary_tool_type(other.primary_tool_type),
42      time(other.time),
43      x(other.x),
44      y(other.y),
45      raw_x(other.raw_x),
46      raw_y(other.raw_y),
47      flags(other.flags) {
48  details.set_touch_points(other.details.touch_points());
49  details.set_bounding_box(other.details.bounding_box_f());
50}
51
52GestureEventData::GestureEventData()
53    : motion_event_id(0),
54      primary_tool_type(MotionEvent::TOOL_TYPE_UNKNOWN),
55      x(0),
56      y(0),
57      raw_x(0),
58      raw_y(0),
59      flags(EF_NONE) {
60}
61
62}  //  namespace ui
63