1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_GESTURE_TARGET_BASE_H_ 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_GESTURE_TARGET_BASE_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/time/time.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "content/browser/renderer_host/input/synthetic_gesture_target.h" 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace ui { 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct LatencyInfo; 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace blink { 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class WebTouchEvent; 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class WebMouseEvent; 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class WebMouseWheelEvent; 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace content { 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class RenderWidgetHostImpl; 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class SyntheticGestureTargetBase : public SyntheticGestureTarget { 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) explicit SyntheticGestureTargetBase(RenderWidgetHostImpl* host); 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual ~SyntheticGestureTargetBase(); 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DispatchWebTouchEventToPlatform( 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebTouchEvent& web_touch, 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const ui::LatencyInfo& latency_info); 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DispatchWebMouseWheelEventToPlatform( 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebMouseWheelEvent& web_wheel, 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const ui::LatencyInfo& latency_info); 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DispatchWebMouseEventToPlatform( 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebMouseEvent& web_mouse, 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const ui::LatencyInfo& latency_info); 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // SyntheticGestureTarget: 435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void DispatchInputEventToPlatform( 445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const blink::WebInputEvent& event) OVERRIDE; 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void SetNeedsFlush() OVERRIDE; 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual SyntheticGestureParams::GestureSourceType 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) GetDefaultSyntheticGestureSourceType() const OVERRIDE; 50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual base::TimeDelta PointerAssumedStoppedTime() const OVERRIDE; 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual float GetTouchSlopInDips() const OVERRIDE; 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual float GetMinScalingSpanInDips() const OVERRIDE; 56a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) protected: 58a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) RenderWidgetHostImpl* render_widget_host() const { return host_; } 59f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private: 615c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu bool PointIsWithinContents(int x, int y) const; 625c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 63f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) RenderWidgetHostImpl* host_; 64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 65f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(SyntheticGestureTargetBase); 66f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 67f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 68f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace content 69f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 70f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_GESTURE_TARGET_BASE_H_ 71