| Index: blimp/client/input/blimp_input_handler_wrapper.h
|
| diff --git a/blimp/client/input/blimp_input_handler_wrapper.h b/blimp/client/input/blimp_input_handler_wrapper.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7bb55d876cd192aafa238b5963593f067b57837d
|
| --- /dev/null
|
| +++ b/blimp/client/input/blimp_input_handler_wrapper.h
|
| @@ -0,0 +1,67 @@
|
| +// Copyright 2011 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 BLIMP_CLIENT_INPUT_BLIMP_INPUT_HANDLER_WRAPPER_H_
|
| +#define BLIMP_CLIENT_INPUT_BLIMP_INPUT_HANDLER_WRAPPER_H_
|
| +
|
| +#include "base/macros.h"
|
| +#include "base/single_thread_task_runner.h"
|
| +#include "base/threading/thread_checker.h"
|
| +#include "ui/events/blink/input_handler_proxy.h"
|
| +#include "ui/events/blink/input_handler_proxy_client.h"
|
| +
|
| +namespace blimp {
|
| +class BlimpInputManager;
|
| +
|
| +// The BlimpInputHandlerWrapper isolates all input handling processing done on
|
| +// the compositor thread from the BlimpInputManager. It takes web input events
|
| +// from the BlimpInputManager and sends them to the ui::InputHandlerProxy.
|
| +// The class is created and lives on the compositor thread.
|
| +class BlimpInputHandlerWrapper : public ui::InputHandlerProxyClient {
|
| + public:
|
| + BlimpInputHandlerWrapper(
|
| + scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
|
| + const base::WeakPtr<BlimpInputManager> input_manager_weak_ptr,
|
| + cc::InputHandler* input_handler);
|
| +
|
| + ~BlimpInputHandlerWrapper() override;
|
| +
|
| + // Called by the BlimpInputManager to process a web input event. This will
|
| + // call BlimpInputManager::HandleWebInputEvent with the result on the main
|
| + // thread.
|
| + void HandleWebInputEvent(const blink::WebInputEvent& input_event);
|
| +
|
| + private:
|
| + // InputHandlerProxyClient implementation.
|
| + void WillShutdown() override;
|
| + void TransferActiveWheelFlingAnimation(
|
| + const blink::WebActiveWheelFlingParameters& params) override;
|
| + blink::WebGestureCurve* CreateFlingAnimationCurve(
|
| + blink::WebGestureDevice device_source,
|
| + const blink::WebFloatPoint& velocity,
|
| + const blink::WebSize& cumulative_scroll) override;
|
| + void DidOverscroll(const gfx::Vector2dF& accumulated_overscroll,
|
| + const gfx::Vector2dF& latest_overscroll_delta,
|
| + const gfx::Vector2dF& current_fling_velocity,
|
| + const gfx::PointF& causal_event_viewport_point) override;
|
| + void DidStopFlinging() override;
|
| + void DidAnimateForInput() override;
|
| +
|
| + base::ThreadChecker compositor_thread_checker_;
|
| +
|
| + scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
|
| +
|
| + // Used to queue calls to the BlimpInputManager to be run on the main
|
| + // thread. This ensures that any tasks queued are abandoned after the
|
| + // BlimpInputManager is destroyed.
|
| + base::WeakPtr<BlimpInputManager> input_manager_weak_ptr_;
|
| +
|
| + scoped_ptr<ui::InputHandlerProxy> input_handler_proxy_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(BlimpInputHandlerWrapper);
|
| +};
|
| +
|
| +} // namespace blimp
|
| +
|
| +#endif // BLIMP_CLIENT_INPUT_BLIMP_INPUT_HANDLER_WRAPPER_H_
|
|
|