| // Copyright 2017 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 UI_EVENTS_ANDROID_GESTURE_EVENT_ANDROID_H_ |
| #define UI_EVENTS_ANDROID_GESTURE_EVENT_ANDROID_H_ |
| |
| #include "base/macros.h" |
| #include "ui/events/events_export.h" |
| #include "ui/gfx/geometry/point_f.h" |
| |
| namespace ui { |
| |
| // Event class used to carry the info that match the blink::WebGestureEvent. |
| // This was devised because we can't use the blink type in ViewAndroid tree |
| // since hit testing requires templated things to modify these events. |
| // All coordinates are in DIPs. |
| class EVENTS_EXPORT GestureEventAndroid { |
| public: |
| GestureEventAndroid(int type, |
| const gfx::PointF& location, |
| const gfx::PointF& screen_location, |
| long time_ms, |
| float scale, |
| float delta_x, |
| float delta_y, |
| float velocity_x, |
| float velocity_y, |
| bool target_viewport, |
| bool synthetic_scroll, |
| bool prevent_boosting); |
| |
| ~GestureEventAndroid(); |
| |
| int type() const { return type_; } |
| const gfx::PointF& location() const { return location_; } |
| const gfx::PointF& screen_location() const { return screen_location_; } |
| long time() const { return time_ms_; } |
| float scale() const { return scale_; } |
| float delta_x() const { return delta_x_; } |
| float delta_y() const { return delta_y_; } |
| float velocity_x() const { return velocity_x_; } |
| float velocity_y() const { return velocity_y_; } |
| bool target_viewport() const { return target_viewport_; } |
| bool synthetic_scroll() const { return synthetic_scroll_; } |
| bool prevent_boosting() const { return prevent_boosting_; } |
| |
| // Creates a new GestureEventAndroid instance different from |this| only by |
| // its location. |
| std::unique_ptr<GestureEventAndroid> CreateFor( |
| const gfx::PointF& new_location) const; |
| |
| private: |
| int type_; |
| gfx::PointF location_; |
| gfx::PointF screen_location_; |
| long time_ms_; |
| |
| float scale_; |
| float delta_x_; |
| float delta_y_; |
| float velocity_x_; |
| float velocity_y_; |
| bool target_viewport_; |
| bool synthetic_scroll_; |
| |
| // Used by fling cancel. If true, this gesture will never attempt to boost an |
| // existing fling. It will immediately cancel an existing fling. |
| bool prevent_boosting_; |
| |
| DISALLOW_COPY_AND_ASSIGN(GestureEventAndroid); |
| }; |
| |
| } // namespace ui |
| |
| #endif // UI_EVENTS_ANDROID_GESTURE_EVENT_ANDROID_H_ |