// 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( int device_source, const blink::WebFloatPoint& velocity, const blink::WebSize& cumulative_scroll) = 0; virtual void DidOverscroll(const DidOverscrollParams& params) = 0; virtual void DidStopFlinging() = 0; protected: virtual ~InputHandlerProxyClient() {} }; } // namespace content #endif // CONTENT_RENDERER_INPUT_INPUT_HANDLER_PROXY_CLIENT_H_