Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / renderer / input / input_handler_proxy_client.h
1 // Copyright 2013 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_RENDERER_INPUT_INPUT_HANDLER_PROXY_CLIENT_H_
6 #define CONTENT_RENDERER_INPUT_INPUT_HANDLER_PROXY_CLIENT_H_
7
8 namespace blink {
9 class WebGestureCurve;
10 struct WebActiveWheelFlingParameters;
11 struct WebFloatPoint;
12 struct WebSize;
13 }
14
15 namespace content {
16
17 struct DidOverscrollParams;
18
19 // All callbacks invoked from the compositor thread.
20 class InputHandlerProxyClient {
21  public:
22   // Called just before the InputHandlerProxy shuts down.
23   virtual void WillShutdown() = 0;
24
25   // Transfers an active wheel fling animation initiated by a previously
26   // handled input event out to the client.
27   virtual void TransferActiveWheelFlingAnimation(
28       const blink::WebActiveWheelFlingParameters& params) = 0;
29
30   // Creates a new fling animation curve instance for device |device_source|
31   // with |velocity| and already scrolled |cumulative_scroll| pixels.
32   virtual blink::WebGestureCurve* CreateFlingAnimationCurve(
33       blink::WebGestureDevice device_source,
34       const blink::WebFloatPoint& velocity,
35       const blink::WebSize& cumulative_scroll) = 0;
36
37   virtual void DidOverscroll(const DidOverscrollParams& params) = 0;
38
39   virtual void DidStopFlinging() = 0;
40
41   virtual void DidReceiveInputEvent() = 0;
42
43  protected:
44   virtual ~InputHandlerProxyClient() {}
45 };
46
47 }  // namespace content
48
49 #endif  // CONTENT_RENDERER_INPUT_INPUT_HANDLER_PROXY_CLIENT_H_