1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "ui/events/gesture_event_details.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui {
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9116680a4aac90f2aa7413d9095a592090648e557Ben MurdochGestureEventDetails::GestureEventDetails()
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    : type_(ET_UNKNOWN), touch_points_(0), oldest_touch_id_(-1) {
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciGestureEventDetails::GestureEventDetails(ui::EventType type)
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    : type_(type), touch_points_(1), oldest_touch_id_(-1) {
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  DCHECK_GE(type, ET_GESTURE_TYPE_START);
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  DCHECK_LE(type, ET_GESTURE_TYPE_END);
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GestureEventDetails::GestureEventDetails(ui::EventType type,
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                         float delta_x,
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                         float delta_y)
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    : type_(type), touch_points_(1), oldest_touch_id_(-1) {
23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  DCHECK_GE(type, ET_GESTURE_TYPE_START);
24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  DCHECK_LE(type, ET_GESTURE_TYPE_END);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  switch (type_) {
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    case ui::ET_GESTURE_SCROLL_BEGIN:
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      data.scroll_begin.x_hint = delta_x;
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      data.scroll_begin.y_hint = delta_y;
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      break;
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case ui::ET_GESTURE_SCROLL_UPDATE:
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.scroll_update.x = delta_x;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.scroll_update.y = delta_y;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      break;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case ui::ET_SCROLL_FLING_START:
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.fling_velocity.x = delta_x;
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.fling_velocity.y = delta_y;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      break;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case ui::ET_GESTURE_TWO_FINGER_TAP:
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.first_finger_enclosing_rectangle.width = delta_x;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.first_finger_enclosing_rectangle.height = delta_y;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      break;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    case ui::ET_GESTURE_SWIPE:
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.swipe.left = delta_x < 0;
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.swipe.right = delta_x > 0;
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.swipe.up = delta_y < 0;
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      data.swipe.down = delta_y > 0;
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      break;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:
541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      NOTREACHED() << "Invalid event type for constructor: " << type;
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochGestureEventDetails::Details::Details() {
59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  memset(this, 0, sizeof(Details));
60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}
61effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ui
63