1 // Copyright (c) 2012 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 #ifndef CONTENT_BROWSER_RENDERER_HOST_UI_EVENTS_HELPER_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_UI_EVENTS_HELPER_H_ 7 8 #include "base/memory/scoped_vector.h" 9 #include "content/common/content_export.h" 10 #include "content/port/browser/event_with_latency_info.h" 11 12 namespace blink { 13 class WebGestureEvent; 14 class WebTouchEvent; 15 class WebTouchPoint; 16 } 17 18 namespace ui { 19 class GestureEvent; 20 class TouchEvent; 21 } 22 23 namespace content { 24 25 enum TouchEventCoordinateSystem { 26 SCREEN_COORDINATES, 27 LOCAL_COORDINATES 28 }; 29 30 // Creates a list of ui::TouchEvents out of a single WebTouchEvent. 31 // A WebTouchEvent can contain information about a number of WebTouchPoints, 32 // whereas a ui::TouchEvent contains information about a single touch-point. So 33 // it is possible to create more than one ui::TouchEvents out of a single 34 // WebTouchEvent. All the ui::TouchEvent in the list will carry the same 35 // LatencyInfo the WebTouchEvent carries. 36 CONTENT_EXPORT bool MakeUITouchEventsFromWebTouchEvents( 37 const TouchEventWithLatencyInfo& touch, 38 ScopedVector<ui::TouchEvent>* list, 39 TouchEventCoordinateSystem coordinate_system); 40 41 // Creates a WebGestureEvent from a ui::GestureEvent. Note that it does not 42 // populate the event coordinates (i.e. |x|, |y|, |globalX|, and |globalY|). So 43 // the caller must populate these fields. 44 blink::WebGestureEvent MakeWebGestureEventFromUIEvent( 45 const ui::GestureEvent& event); 46 47 int EventFlagsToWebEventModifiers(int flags); 48 49 // Updates the WebTouchEvent based on the TouchEvent. It returns the updated 50 // WebTouchPoint contained in the WebTouchEvent, or NULL if no point was 51 // updated. 52 blink::WebTouchPoint* UpdateWebTouchEventFromUIEvent( 53 const ui::TouchEvent& event, 54 blink::WebTouchEvent* web_event); 55 } 56 57 #endif // CONTENT_BROWSER_RENDERER_HOST_UI_EVENTS_HELPER_H_ 58