Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef UI_EVENTS_GESTURE_DETECTION_GESTURE_PROVIDER_H_ | 5 #ifndef UI_EVENTS_GESTURE_DETECTION_GESTURE_PROVIDER_H_ |
| 6 #define UI_EVENTS_GESTURE_DETECTION_GESTURE_PROVIDER_H_ | 6 #define UI_EVENTS_GESTURE_DETECTION_GESTURE_PROVIDER_H_ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "ui/events/gesture_detection/gesture_detection_export.h" | 10 #include "ui/events/gesture_detection/gesture_detection_export.h" |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 26 // event dispatch. | 26 // event dispatch. |
| 27 class GESTURE_DETECTION_EXPORT GestureProvider { | 27 class GESTURE_DETECTION_EXPORT GestureProvider { |
| 28 public: | 28 public: |
| 29 struct GESTURE_DETECTION_EXPORT Config { | 29 struct GESTURE_DETECTION_EXPORT Config { |
| 30 Config(); | 30 Config(); |
| 31 ~Config(); | 31 ~Config(); |
| 32 GestureDetector::Config gesture_detector_config; | 32 GestureDetector::Config gesture_detector_config; |
| 33 ScaleGestureDetector::Config scale_gesture_detector_config; | 33 ScaleGestureDetector::Config scale_gesture_detector_config; |
| 34 SnapScrollController::Config snap_scroll_controller_config; | 34 SnapScrollController::Config snap_scroll_controller_config; |
| 35 bool disable_click_delay; | 35 bool disable_click_delay; |
| 36 bool gesture_begin_end_types_enabled; | |
|
jdduke (slow)
2014/04/03 22:03:28
Maybe a short comment explaining what this does?
tdresser
2014/04/04 16:39:31
Done. Please double check, particularly the commen
| |
| 36 }; | 37 }; |
| 37 | 38 |
| 38 GestureProvider(const Config& config, GestureProviderClient* client); | 39 GestureProvider(const Config& config, GestureProviderClient* client); |
| 39 ~GestureProvider(); | 40 ~GestureProvider(); |
| 40 | 41 |
| 41 // Handle the incoming MotionEvent, returning false if the event could not | 42 // Handle the incoming MotionEvent, returning false if the event could not |
| 42 // be handled. | 43 // be handled. |
| 43 bool OnTouchEvent(const MotionEvent& event); | 44 bool OnTouchEvent(const MotionEvent& event); |
| 44 | 45 |
| 45 // Resets all gesture detectors; called on DidStartLoading(). | 46 // Resets all gesture detectors; called on DidStartLoading(). |
| 46 void ResetGestureDetectors(); | 47 void ResetGestureDetectors(); |
| 47 | 48 |
| 48 // Update whether multi-touch gestures are supported. | 49 // Update whether multi-touch gestures are supported. |
| 49 void SetMultiTouchSupportEnabled(bool enabled); | 50 void SetMultiTouchSupportEnabled(bool enabled); |
| 50 | 51 |
| 51 // Update whether double-tap gestures are supported. This allows | 52 // Update whether double-tap gestures are supported. This allows |
| 52 // double-tap gesture suppression independent of whether or not the page's | 53 // double-tap gesture suppression independent of whether or not the page's |
| 53 // viewport and scale would normally prevent double-tap. | 54 // viewport and scale would normally prevent double-tap. |
| 54 // Note: This should not be called while a double-tap gesture is in progress. | 55 // Note: This should not be called while a double-tap gesture is in progress. |
| 55 void SetDoubleTapSupportForPlatformEnabled(bool enabled); | 56 void SetDoubleTapSupportForPlatformEnabled(bool enabled); |
| 56 | 57 |
| 57 // Update whether double-tap gesture detection should be suppressed due to | 58 // Update whether double-tap gesture detection should be suppressed due to |
| 58 // the viewport or scale of the current page. Suppressing double-tap gesture | 59 // the viewport or scale of the current page. Suppressing double-tap gesture |
| 59 // detection allows for rapid and responsive single-tap gestures. | 60 // detection allows for rapid and responsive single-tap gestures. |
| 60 void SetDoubleTapSupportForPageEnabled(bool enabled); | 61 void SetDoubleTapSupportForPageEnabled(bool enabled); |
| 61 | 62 |
| 63 // Update whether GestureBegin and GestureEnd events are supported. | |
| 64 void SetBeginEndTypesEnabled(bool enabled); | |
| 65 | |
| 62 // Whether a scroll gesture is in-progress. | 66 // Whether a scroll gesture is in-progress. |
| 63 bool IsScrollInProgress() const; | 67 bool IsScrollInProgress() const; |
| 64 | 68 |
| 65 // Whether a pinch gesture is in-progress (i.e. a pinch update has been | 69 // Whether a pinch gesture is in-progress (i.e. a pinch update has been |
| 66 // forwarded and detection is still active). | 70 // forwarded and detection is still active). |
| 67 bool IsPinchInProgress() const; | 71 bool IsPinchInProgress() const; |
| 68 | 72 |
| 69 // Whether a double tap-gesture is in-progress. | 73 // Whether a double tap-gesture is in-progress. |
| 70 bool IsDoubleTapInProgress() const; | 74 bool IsDoubleTapInProgress() const; |
| 71 | 75 |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 86 void Fling(base::TimeTicks time, | 90 void Fling(base::TimeTicks time, |
| 87 float x, | 91 float x, |
| 88 float y, | 92 float y, |
| 89 float velocity_x, | 93 float velocity_x, |
| 90 float velocity_y); | 94 float velocity_y); |
| 91 void Send(const GestureEventData& gesture); | 95 void Send(const GestureEventData& gesture); |
| 92 void SendTapCancelIfNecessary(const MotionEvent& event); | 96 void SendTapCancelIfNecessary(const MotionEvent& event); |
| 93 bool SendLongTapIfNecessary(const MotionEvent& event); | 97 bool SendLongTapIfNecessary(const MotionEvent& event); |
| 94 void EndTouchScrollIfNecessary(base::TimeTicks time, | 98 void EndTouchScrollIfNecessary(base::TimeTicks time, |
| 95 bool send_scroll_end_event); | 99 bool send_scroll_end_event); |
| 100 void OnTouchEventHandlingBegin(const MotionEvent& event); | |
| 101 void OnTouchEventHandlingEnd(const MotionEvent& event, | |
| 102 bool handled, | |
| 103 bool was_touch_scrolling); | |
| 96 | 104 |
| 97 GestureProviderClient* const client_; | 105 GestureProviderClient* const client_; |
| 98 | 106 |
| 99 class GestureListenerImpl; | 107 class GestureListenerImpl; |
| 100 friend class GestureListenerImpl; | 108 friend class GestureListenerImpl; |
| 101 scoped_ptr<GestureListenerImpl> gesture_listener_; | 109 scoped_ptr<GestureListenerImpl> gesture_listener_; |
| 102 | 110 |
| 103 class ScaleGestureListenerImpl; | 111 class ScaleGestureListenerImpl; |
| 104 friend class ScaleGestureListenerImpl; | 112 friend class ScaleGestureListenerImpl; |
| 105 scoped_ptr<ScaleGestureListenerImpl> scale_gesture_listener_; | 113 scoped_ptr<ScaleGestureListenerImpl> scale_gesture_listener_; |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 117 | 125 |
| 118 // Whether the respective {SCROLL,PINCH}_BEGIN gestures have been terminated | 126 // Whether the respective {SCROLL,PINCH}_BEGIN gestures have been terminated |
| 119 // with a {SCROLL,PINCH}_END. | 127 // with a {SCROLL,PINCH}_END. |
| 120 bool touch_scroll_in_progress_; | 128 bool touch_scroll_in_progress_; |
| 121 bool pinch_in_progress_; | 129 bool pinch_in_progress_; |
| 122 | 130 |
| 123 // Keeps track of the current GESTURE_LONG_PRESS event. If a context menu is | 131 // Keeps track of the current GESTURE_LONG_PRESS event. If a context menu is |
| 124 // opened after a GESTURE_LONG_PRESS, this is used to insert a | 132 // opened after a GESTURE_LONG_PRESS, this is used to insert a |
| 125 // GESTURE_TAP_CANCEL for removing any ::active styling. | 133 // GESTURE_TAP_CANCEL for removing any ::active styling. |
| 126 base::TimeTicks current_longpress_time_; | 134 base::TimeTicks current_longpress_time_; |
| 135 | |
| 136 bool gesture_begin_end_types_enabled_; | |
| 127 }; | 137 }; |
| 128 | 138 |
| 129 } // namespace ui | 139 } // namespace ui |
| 130 | 140 |
| 131 #endif // UI_EVENTS_GESTURE_DETECTION_GESTURE_PROVIDER_H_ | 141 #endif // UI_EVENTS_GESTURE_DETECTION_GESTURE_PROVIDER_H_ |
| OLD | NEW |