text: // Copyright 2013 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #ifndef CONTENT_RENDERER_INPUT_INPUT_HANDLER_PROXY_CLIENT_H_
  #define CONTENT_RENDERER_INPUT_INPUT_HANDLER_PROXY_CLIENT_H_
  
  namespace blink {
  class WebGestureCurve;
  struct WebActiveWheelFlingParameters;
  struct WebFloatPoint;
  struct WebSize;
  }
  
  namespace content {
  
  struct DidOverscrollParams;
  
  // All callbacks invoked from the compositor thread.
  class InputHandlerProxyClient {
   public:
    // Called just before the InputHandlerProxy shuts down.
    virtual void WillShutdown() = 0;
  
    // Transfers an active wheel fling animation initiated by a previously
    // handled input event out to the client.
    virtual void TransferActiveWheelFlingAnimation(
        const blink::WebActiveWheelFlingParameters& params) = 0;
  
    // Creates a new fling animation curve instance for device |device_source|
    // with |velocity| and already scrolled |cumulative_scroll| pixels.
    virtual blink::WebGestureCurve* CreateFlingAnimationCurve(
        blink::WebGestureDevice device_source,
        const blink::WebFloatPoint& velocity,
        const blink::WebSize& cumulative_scroll) = 0;
  
    virtual void DidOverscroll(const DidOverscrollParams& params) = 0;
  
    virtual void DidStopFlinging() = 0;
  
    virtual void DidReceiveInputEvent(
        const blink::WebInputEvent& web_input_event) = 0;
  
    virtual void DidAnimateForInput() = 0;
  
   protected:
    virtual ~InputHandlerProxyClient() {}
  };
  
  }  // namespace content
  
  #endif  // CONTENT_RENDERER_INPUT_INPUT_HANDLER_PROXY_CLIENT_H_
  