diff options
Diffstat (limited to 'chromium/content/renderer/input/input_handler_wrapper.cc')
-rw-r--r-- | chromium/content/renderer/input/input_handler_wrapper.cc | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/chromium/content/renderer/input/input_handler_wrapper.cc b/chromium/content/renderer/input/input_handler_wrapper.cc new file mode 100644 index 00000000000..14e23ebf3ad --- /dev/null +++ b/chromium/content/renderer/input/input_handler_wrapper.cc @@ -0,0 +1,58 @@ +// 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. + +#include "content/renderer/input/input_handler_wrapper.h" + +#include "base/message_loop/message_loop_proxy.h" +#include "content/renderer/input/input_event_filter.h" +#include "content/renderer/input/input_handler_manager.h" +#include "third_party/WebKit/public/platform/Platform.h" + +namespace content { + +InputHandlerWrapper::InputHandlerWrapper( + InputHandlerManager* input_handler_manager, + int routing_id, + const scoped_refptr<base::MessageLoopProxy>& main_loop, + const base::WeakPtr<cc::InputHandler>& input_handler, + const base::WeakPtr<RenderViewImpl>& render_view_impl) + : input_handler_manager_(input_handler_manager), + routing_id_(routing_id), + input_handler_proxy_(input_handler.get()), + main_loop_(main_loop), + render_view_impl_(render_view_impl) { + DCHECK(input_handler); + input_handler_proxy_.SetClient(this); +} + +InputHandlerWrapper::~InputHandlerWrapper() { + input_handler_proxy_.SetClient(NULL); +} + +void InputHandlerWrapper::TransferActiveWheelFlingAnimation( + const blink::WebActiveWheelFlingParameters& params) { + main_loop_->PostTask( + FROM_HERE, + base::Bind(&RenderViewImpl::TransferActiveWheelFlingAnimation, + render_view_impl_, + params)); +} + +void InputHandlerWrapper::WillShutdown() { + input_handler_manager_->RemoveInputHandler(routing_id_); +} + +blink::WebGestureCurve* InputHandlerWrapper::CreateFlingAnimationCurve( + int deviceSource, + const blink::WebFloatPoint& velocity, + const blink::WebSize& cumulative_scroll) { + return blink::Platform::current()->createFlingAnimationCurve( + deviceSource, velocity, cumulative_scroll); +} + +void InputHandlerWrapper::DidOverscroll(const cc::DidOverscrollParams& params) { + input_handler_manager_->DidOverscroll(routing_id_, params); +} + +} // namespace content |