PassRefPtrWillBeRawPtr<GestureEvent> GestureEvent::create(PassRefPtrWillBeRawPtr<AbstractView> view, const PlatformGestureEvent& event) { AtomicString eventType; float deltaX = 0; float deltaY = 0; float velocityX = 0; float velocityY = 0; bool inertial = false; GestureSource source = GestureSourceUninitialized; switch (event.source()) { case PlatformGestureSourceTouchpad: source = GestureSourceTouchpad; break; case PlatformGestureSourceTouchscreen: source = GestureSourceTouchscreen; break; default: ASSERT_NOT_REACHED(); } switch (event.type()) { case PlatformEvent::GestureScrollBegin: eventType = EventTypeNames::gesturescrollstart; break; case PlatformEvent::GestureScrollEnd: eventType = EventTypeNames::gesturescrollend; break; case PlatformEvent::GestureScrollUpdate: // Only deltaX/Y are used when converting this // back to a PlatformGestureEvent. eventType = EventTypeNames::gesturescrollupdate; deltaX = event.deltaX(); deltaY = event.deltaY(); inertial = event.inertial(); break; case PlatformEvent::GestureTap: eventType = EventTypeNames::gesturetap; break; case PlatformEvent::GestureTapUnconfirmed: eventType = EventTypeNames::gesturetapunconfirmed; break; case PlatformEvent::GestureTapDown: eventType = EventTypeNames::gesturetapdown; break; case PlatformEvent::GestureShowPress: eventType = EventTypeNames::gestureshowpress; break; case PlatformEvent::GestureLongPress: eventType = EventTypeNames::gesturelongpress; break; case PlatformEvent::GestureFlingStart: eventType = EventTypeNames::gestureflingstart; velocityX = event.velocityX(); velocityY = event.velocityY(); break; case PlatformEvent::GestureTwoFingerTap: case PlatformEvent::GesturePinchBegin: case PlatformEvent::GesturePinchEnd: case PlatformEvent::GesturePinchUpdate: case PlatformEvent::GestureTapDownCancel: default: return nullptr; } return adoptRefWillBeNoop(new GestureEvent(eventType, view, event.globalPosition().x(), event.globalPosition().y(), event.position().x(), event.position().y(), event.modifiers(), deltaX, deltaY, velocityX, velocityY, inertial, event.timestamp(), event.resendingPluginId(), source)); }