From 81a5661f60738efa7dbbee0a72f2c1e15f6690f9 Mon Sep 17 00:00:00 2001 From: jam Date: Wed, 22 Apr 2015 13:38:16 -0700 Subject: Move html_viewer from mojo/services to components. BUG=479353 TBR=jochen for DEPS Review URL: https://codereview.chromium.org/1099303002 Cr-Commit-Position: refs/heads/master@{#326369} --- components/html_viewer/touch_handler.h | 62 ++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 components/html_viewer/touch_handler.h (limited to 'components/html_viewer/touch_handler.h') diff --git a/components/html_viewer/touch_handler.h b/components/html_viewer/touch_handler.h new file mode 100644 index 0000000..460a3d5 --- /dev/null +++ b/components/html_viewer/touch_handler.h @@ -0,0 +1,62 @@ +// Copyright 2015 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 COMPONENTS_HTML_VIEWER_TOUCH_HANDLER_H_ +#define COMPONENTS_HTML_VIEWER_TOUCH_HANDLER_H_ + +#include "base/basictypes.h" +#include "ui/events/gesture_detection/filtered_gesture_provider.h" + +namespace blink { +class WebView; +} + +namespace mojo { +class Event; +} + +namespace ui { +class MotionEventGeneric; +} + +namespace html_viewer { + +// TouchHandler is responsible for converting touch events into gesture events. +// It does this by converting mojo::Events into a MotionEventGeneric and using +// FilteredGestureProvider. +class TouchHandler : public ui::GestureProviderClient { + public: + explicit TouchHandler(blink::WebView* web_view); + ~TouchHandler() override; + + void OnTouchEvent(const mojo::Event& event); + + // ui::GestureProviderClient implementation. + void OnGestureEvent(const ui::GestureEventData& gesture) override; + + private: + // Updates |current_motion_event_| from |event|. Returns true on success. + bool UpdateMotionEvent(const mojo::Event& event); + + // Sends |current_motion_event_| to the GestureProvider and WebView. + void SendMotionEventToGestureProvider(); + + // Does post processing after sending |current_motion_event_| to the + // GestureProvider. + void PostProcessMotionEvent(const mojo::Event& event); + + blink::WebView* web_view_; + + ui::FilteredGestureProvider gesture_provider_; + + // As touch events are received they are converted to this event. If null no + // touch events are in progress. + scoped_ptr current_motion_event_; + + DISALLOW_COPY_AND_ASSIGN(TouchHandler); +}; + +} // namespace html_viewer + +#endif // COMPONENTS_HTML_VIEWER_TOUCH_HANDLER_H_ -- cgit v1.1