| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "gen/sky/core/EventNames.h" |
| #include "gen/sky/core/EventTypeNames.h" |
| #include "sky/engine/core/dom/Element.h" |
| #include "sky/engine/core/events/GestureEvent.h" |
| #include "sky/engine/wtf/text/AtomicString.h" |
| |
| namespace blink { |
| |
| static AtomicString stringForType(WebInputEvent::Type type) |
| { |
| if (type == WebInputEvent::GestureScrollBegin) |
| return EventTypeNames::gesturescrollstart; |
| if (type == WebInputEvent::GestureScrollEnd) |
| return EventTypeNames::gesturescrollend; |
| if (type == WebInputEvent::GestureScrollUpdate) |
| return EventTypeNames::gesturescrollupdate; |
| if (type == WebInputEvent::GestureScrollUpdateWithoutPropagation) |
| return EventTypeNames::gesturescrollupdate; |
| if (type == WebInputEvent::GestureFlingStart) |
| return EventTypeNames::gestureflingstart; |
| if (type == WebInputEvent::GestureFlingCancel) |
| return EventTypeNames::gestureflingcancel; |
| if (type == WebInputEvent::GestureShowPress) |
| return EventTypeNames::gestureshowpress; |
| if (type == WebInputEvent::GestureTap) |
| return EventTypeNames::gesturetap; |
| if (type == WebInputEvent::GestureTapUnconfirmed) |
| return EventTypeNames::gesturetapunconfirmed; |
| if (type == WebInputEvent::GestureTapDown) |
| return EventTypeNames::gesturetapdown; |
| if (type == WebInputEvent::GestureTapCancel) |
| return EventTypeNames::gesturetapcancel; |
| if (type == WebInputEvent::GestureDoubleTap) |
| return EventTypeNames::gesturedoubletap; |
| if (type == WebInputEvent::GestureTwoFingerTap) |
| return EventTypeNames::gesturetwofingertap; |
| if (type == WebInputEvent::GestureLongPress) |
| return EventTypeNames::gesturelongpress; |
| if (type == WebInputEvent::GestureLongTap) |
| return EventTypeNames::gesturelongtap; |
| if (type == WebInputEvent::GesturePinchBegin) |
| return EventTypeNames::gesturepinchstart; |
| if (type == WebInputEvent::GesturePinchEnd) |
| return EventTypeNames::gesturepinchend; |
| if (type == WebInputEvent::GesturePinchUpdate) |
| return EventTypeNames::gesturepinchupdate; |
| ASSERT_NOT_REACHED(); |
| return AtomicString(); |
| } |
| |
| GestureEvent::~GestureEvent() |
| { |
| } |
| |
| const AtomicString& GestureEvent::interfaceName() const |
| { |
| return EventNames::GestureEvent; |
| } |
| |
| GestureEvent::GestureEvent() |
| : GestureEvent(AtomicString(), GestureEventInit()) |
| { |
| } |
| |
| GestureEvent::GestureEvent(const WebGestureEvent& event) |
| : Event(stringForType(event.type), true, true) |
| , m_primaryPointer(event.primaryPointer) |
| , m_x(event.x) |
| , m_y(event.y) |
| , m_dx(0) |
| , m_dy(0) |
| , m_velocityX(0) |
| , m_velocityY(0) |
| { |
| m_timeStamp = event.timeStampMS; |
| |
| if (event.type == WebInputEvent::GestureFlingStart) { |
| m_velocityX = event.data.flingStart.velocityX; |
| m_velocityY = event.data.flingStart.velocityY; |
| } else if (event.type == WebInputEvent::GestureScrollUpdate |
| || event.type == WebInputEvent::GestureScrollUpdateWithoutPropagation) { |
| m_dx = event.data.scrollUpdate.deltaX; |
| m_dy = event.data.scrollUpdate.deltaY; |
| m_velocityX = event.data.scrollUpdate.velocityX; |
| m_velocityY = event.data.scrollUpdate.velocityY; |
| } |
| } |
| |
| GestureEvent::GestureEvent(const AtomicString& type, const GestureEventInit& initializer) |
| : Event(type, initializer) |
| , m_primaryPointer(initializer.primaryPointer) |
| , m_x(initializer.x) |
| , m_y(initializer.y) |
| , m_dx(initializer.dx) |
| , m_dy(initializer.dy) |
| , m_velocityX(initializer.velocityX) |
| , m_velocityY(initializer.velocityY) |
| { |
| } |
| |
| } // namespace blink |