Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(911)

Unified Diff: ui/events/gesture_detection/gesture_configuration.cc

Issue 613373004: Adopt ui::GestureConfiguration on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698