Home | History | Annotate | Download | only in renderer_host
      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 WebKit {
     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 WebKit::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 WebKit::WebTouchPoint* UpdateWebTouchEventFromUIEvent(
     53     const ui::TouchEvent& event,
     54     WebKit::WebTouchEvent* web_event);
     55 }
     56 
     57 #endif  // CONTENT_BROWSER_RENDERER_HOST_UI_EVENTS_HELPER_H_
     58