Index: ui/events/gesture_detection/gesture_configuration.cc |
diff --git a/ui/events/gesture_detection/gesture_configuration.cc b/ui/events/gesture_detection/gesture_configuration.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..708620908b2b86700be5c25a9a23e9c24ab9e499 |
--- /dev/null |
+++ b/ui/events/gesture_detection/gesture_configuration.cc |
@@ -0,0 +1,154 @@ |
+// Copyright (c) 2013 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. |
+ |
+#include "ui/events/gesture_detection/gesture_configuration.h" |
+ |
+namespace ui { |
+ |
+GestureConfiguration::GestureConfiguration() |
+ : default_radius_(25), |
+ max_distance_for_two_finger_tap_in_pixels_(300), |
+ fling_max_cancel_to_down_time_in_ms_(400), |
+ fling_max_tap_gap_time_in_ms_(200), |
+ fling_velocity_cap_(17000.0f), |
+ tab_scrub_activation_delay_in_ms_(200), |
+ long_press_timeout_in_ms_(1000), |
+ semi_long_press_time_in_seconds_(0.4), |
+ max_seconds_between_double_click_(0.7), |
+ max_separation_for_gesture_touches_in_pixels_(150), |
+ max_swipe_deviation_angle_(20), |
+ max_touch_down_duration_in_seconds_for_click_(0.8), |
+ max_touch_move_in_pixels_for_click_(15), |
+ max_distance_between_taps_for_double_tap_(20), |
+ min_distance_for_pinch_scroll_in_pixels_(20), |
+ min_pinch_update_distance_in_pixels_(5), |
+ min_scroll_velocity_(30.0f), |
+ min_swipe_speed_(20), |
+ |
+ // If this is too small, we currently can get single finger pinch zoom. |
+ // See |
+ // crbug.com/357237 for details. |
+ min_scaling_span_in_pixels_(125), |
+ show_press_delay_in_ms_(150) { |
+// TODO(jdduke): Disable and remove entirely when issues with intermittent |
+// scroll end detection on the Pixel are resolved, crbug.com/353702. |
+#if defined(OS_CHROMEOS) |
+ scroll_debounce_interval_in_ms_ = 30; |
+#else |
+ scroll_debounce_interval_in_ms_ = 0; |
+#endif |
+} |
+ |
+GestureConfiguration::~GestureConfiguration() { |
+} |
+ |
+GestureDetector::Config GestureConfiguration::DefaultGestureDetectorConfig() { |
+ GestureDetector::Config config; |
+ config.longpress_timeout = |
+ base::TimeDelta::FromMilliseconds(long_press_timeout_in_ms()); |
+ config.showpress_timeout = |
+ base::TimeDelta::FromMilliseconds(show_press_delay_in_ms()); |
+ config.double_tap_timeout = |
+ base::TimeDelta::FromMilliseconds(double_tap_timeout_in_ms()); |
+ config.touch_slop = max_touch_move_in_pixels_for_click(); |
+ config.double_tap_slop = max_distance_between_taps_for_double_tap(); |
+ config.minimum_fling_velocity = min_scroll_velocity(); |
+ config.maximum_fling_velocity = fling_velocity_cap(); |
+ |
+ return config; |
+} |
+ |
+ScaleGestureDetector::Config |
+GestureConfiguration::DefaultScaleGestureDetectorConfig() { |
+ ScaleGestureDetector::Config config; |
+ config.span_slop = span_slop_in_pixels(); |
+ config.min_scaling_touch_major = min_scaling_touch_major_in_pixels(); |
+ config.min_scaling_span = min_scaling_span_in_pixels(); |
+ config.min_pinch_update_span_delta = min_pinch_update_distance_in_pixels(); |
+ return config; |
+} |
+ |
+int GestureConfiguration::default_radius() { |
+ return default_radius_; |
+} |
+int GestureConfiguration::fling_max_cancel_to_down_time_in_ms() { |
+ return fling_max_cancel_to_down_time_in_ms_; |
+} |
+int GestureConfiguration::fling_max_tap_gap_time_in_ms() { |
+ return fling_max_tap_gap_time_in_ms_; |
+} |
+int GestureConfiguration::long_press_timeout_in_ms() { |
+ return long_press_timeout_in_ms_; |
+} |
+double GestureConfiguration::semi_long_press_time_in_seconds() { |
+ return semi_long_press_time_in_seconds_; |
+} |
+double GestureConfiguration::max_distance_for_two_finger_tap_in_pixels() { |
+ return max_distance_for_two_finger_tap_in_pixels_; |
+} |
+double GestureConfiguration::max_seconds_between_double_click() { |
+ return max_seconds_between_double_click_; |
+} |
+int GestureConfiguration::max_separation_for_gesture_touches_in_pixels() { |
+ return max_separation_for_gesture_touches_in_pixels_; |
+} |
+float GestureConfiguration::max_swipe_deviation_angle() { |
+ return max_swipe_deviation_angle_; |
+} |
+double GestureConfiguration::max_touch_down_duration_in_seconds_for_click() { |
+ return max_touch_down_duration_in_seconds_for_click_; |
+} |
+double GestureConfiguration::max_touch_move_in_pixels_for_click() { |
+ return max_touch_move_in_pixels_for_click_; |
+} |
+double GestureConfiguration::max_distance_between_taps_for_double_tap() { |
+ return max_distance_between_taps_for_double_tap_; |
+} |
+double GestureConfiguration::min_distance_for_pinch_scroll_in_pixels() { |
+ return min_distance_for_pinch_scroll_in_pixels_; |
+} |
+double GestureConfiguration::min_pinch_update_distance_in_pixels() { |
+ return min_pinch_update_distance_in_pixels_; |
+} |
+float GestureConfiguration::min_scroll_velocity() { |
+ return min_scroll_velocity_; |
+} |
+double GestureConfiguration::min_swipe_speed() { |
+ return min_swipe_speed_; |
+} |
+int GestureConfiguration::min_scaling_span_in_pixels() { |
+ return min_scaling_span_in_pixels_; |
+} |
+ |
+int GestureConfiguration::show_press_delay_in_ms() { |
+ return show_press_delay_in_ms_; |
+} |
+int GestureConfiguration::scroll_debounce_interval_in_ms() { |
+ return scroll_debounce_interval_in_ms_; |
+} |
+float GestureConfiguration::fling_velocity_cap() { |
+ return fling_velocity_cap_; |
+} |
+// TODO(davemoore): Move into chrome/browser/ui. |
+int GestureConfiguration::tab_scrub_activation_delay_in_ms() { |
+ return tab_scrub_activation_delay_in_ms_; |
+} |
+ |
+int GestureConfiguration::double_tap_timeout_in_ms() { |
+ return double_tap_timeout_in_ms_; |
+} |
+ |
+int GestureConfiguration::min_scaling_touch_major_in_pixels() { |
+ return min_scaling_touch_major_in_pixels_; |
+} |
+ |
+int GestureConfiguration::touch_slop_in_pixels() { |
+ return touch_slop_in_pixels_; |
+} |
+ |
+int GestureConfiguration::span_slop_in_pixels() { |
+ return span_slop_in_pixels_; |
+} |
+ |
+} // namespace ui |