| // Copyright 2014 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_GESTURE_DETECTION_GESTURE_LISTENERS_H_ |
| #define UI_EVENTS_GESTURE_DETECTION_GESTURE_LISTENERS_H_ |
| |
| #include "ui/events/gesture_detection/gesture_detection_export.h" |
| |
| namespace ui { |
| |
| class MotionEvent; |
| |
| // Client through which |GestureDetector| signals gesture detection. |
| class GESTURE_DETECTION_EXPORT GestureListener { |
| public: |
| virtual ~GestureListener() {} |
| virtual bool OnDown(const MotionEvent& e) = 0; |
| virtual void OnShowPress(const MotionEvent& e) = 0; |
| virtual bool OnSingleTapUp(const MotionEvent& e, int tap_count) = 0; |
| virtual void OnLongPress(const MotionEvent& e) = 0; |
| virtual bool OnScroll(const MotionEvent& e1, |
| const MotionEvent& e2, |
| const MotionEvent& secondary_pointer_down, |
| float distance_x, |
| float distance_y) = 0; |
| virtual bool OnFling(const MotionEvent& e1, |
| const MotionEvent& e2, |
| float velocity_x, |
| float velocity_y) = 0; |
| // Added for Chromium (Aura). |
| virtual bool OnSwipe(const MotionEvent& e1, |
| const MotionEvent& e2, |
| float velocity_x, |
| float velocity_y) = 0; |
| virtual bool OnTwoFingerTap(const MotionEvent& e1, const MotionEvent& e2) = 0; |
| }; |
| |
| // Client through which |GestureDetector| signals double-tap detection. |
| class GESTURE_DETECTION_EXPORT DoubleTapListener { |
| public: |
| virtual ~DoubleTapListener() {} |
| virtual bool OnSingleTapConfirmed(const MotionEvent& e) = 0; |
| virtual bool OnDoubleTap(const MotionEvent& e) = 0; |
| virtual bool OnDoubleTapEvent(const MotionEvent& e) = 0; |
| }; |
| |
| // A convenience class to extend when you only want to listen for a subset |
| // of all the gestures. This implements all methods in the |
| // |GestureListener| and |DoubleTapListener| but does |
| // nothing and returns false for all applicable methods. |
| class GESTURE_DETECTION_EXPORT SimpleGestureListener |
| : public GestureListener, |
| public DoubleTapListener { |
| public: |
| // GestureListener implementation. |
| bool OnDown(const MotionEvent& e) override; |
| void OnShowPress(const MotionEvent& e) override; |
| bool OnSingleTapUp(const MotionEvent& e, int tap_count) override; |
| void OnLongPress(const MotionEvent& e) override; |
| bool OnScroll(const MotionEvent& e1, |
| const MotionEvent& e2, |
| const MotionEvent& secondary_pointer_down, |
| float distance_x, |
| float distance_y) override; |
| bool OnFling(const MotionEvent& e1, |
| const MotionEvent& e2, |
| float velocity_x, |
| float velocity_y) override; |
| bool OnSwipe(const MotionEvent& e1, |
| const MotionEvent& e2, |
| float velocity_x, |
| float velocity_y) override; |
| bool OnTwoFingerTap(const MotionEvent& e1, const MotionEvent& e2) override; |
| |
| // DoubleTapListener implementation. |
| bool OnSingleTapConfirmed(const MotionEvent& e) override; |
| bool OnDoubleTap(const MotionEvent& e) override; |
| bool OnDoubleTapEvent(const MotionEvent& e) override; |
| }; |
| |
| } // namespace ui |
| |
| #endif // UI_EVENTS_GESTURE_DETECTION_GESTURE_LISTENERS_H_ |