summaryrefslogtreecommitdiffstats
path: root/ui/events/gestures
diff options
context:
space:
mode:
authorlanwei <lanwei@chromium.org>2014-10-27 10:58:42 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-27 17:58:59 +0000
commitdb8214afd49f75000a2bad0f16e0756bfcf54315 (patch)
treecd83a6a67df51ac9b35c5b699b309d3e1ac5d7f5 /ui/events/gestures
parente0420359b53ecc20f1475bf64eb7c96d05ed9c23 (diff)
downloadchromium_src-db8214afd49f75000a2bad0f16e0756bfcf54315.zip
chromium_src-db8214afd49f75000a2bad0f16e0756bfcf54315.tar.gz
chromium_src-db8214afd49f75000a2bad0f16e0756bfcf54315.tar.bz2
Adopt ui::GestureConfiguration on Android
Making GestureConfiguration as an interface to serve all the platforms, so that Aura and Android push to and pull from the same data source, GestureConfiguration, where gesture configuring parameters are. BUG=339203 Review URL: https://codereview.chromium.org/613373004 Cr-Commit-Position: refs/heads/master@{#301393}
Diffstat (limited to 'ui/events/gestures')
-rw-r--r--ui/events/gestures/gesture_configuration.cc41
-rw-r--r--ui/events/gestures/gesture_configuration.h196
-rw-r--r--ui/events/gestures/gesture_provider_aura.cc12
-rw-r--r--ui/events/gestures/gesture_recognizer_impl.cc5
-rw-r--r--ui/events/gestures/motion_event_aura.cc8
5 files changed, 15 insertions, 247 deletions
diff --git a/ui/events/gestures/gesture_configuration.cc b/ui/events/gestures/gesture_configuration.cc
deleted file mode 100644
index 78f6b57..0000000
--- a/ui/events/gestures/gesture_configuration.cc
+++ /dev/null
@@ -1,41 +0,0 @@
-// 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/gestures/gesture_configuration.h"
-
-namespace ui {
-
-float GestureConfiguration::default_radius_ = 25;
-int GestureConfiguration::fling_max_cancel_to_down_time_in_ms_ = 400;
-int GestureConfiguration::fling_max_tap_gap_time_in_ms_ = 200;
-float GestureConfiguration::fling_velocity_cap_ = 17000.0f;
-int GestureConfiguration::tab_scrub_activation_delay_in_ms_ = 200;
-int GestureConfiguration::long_press_time_in_ms_ = 1000;
-int GestureConfiguration::semi_long_press_time_in_ms_ = 400;
-float GestureConfiguration::max_distance_for_two_finger_tap_in_pixels_ = 300;
-int GestureConfiguration::max_time_between_double_click_in_ms_ = 700;
-float GestureConfiguration::max_separation_for_gesture_touches_in_pixels_ = 150;
-float GestureConfiguration::max_swipe_deviation_angle_ = 20;
-int GestureConfiguration::max_touch_down_duration_for_click_in_ms_ = 800;
-float GestureConfiguration::max_touch_move_in_pixels_for_click_ = 15;
-float GestureConfiguration::max_distance_between_taps_for_double_tap_ = 20;
-float GestureConfiguration::min_distance_for_pinch_scroll_in_pixels_ = 20;
-float GestureConfiguration::min_pinch_update_distance_in_pixels_ = 5;
-float GestureConfiguration::min_scroll_velocity_ = 30.0f;
-float GestureConfiguration::min_swipe_speed_ = 20;
-
-// If this is too small, we currently can get single finger pinch zoom. See
-// crbug.com/357237 for details.
-float GestureConfiguration::min_scaling_span_in_pixels_ = 125;
-int GestureConfiguration::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)
-int GestureConfiguration::scroll_debounce_interval_in_ms_ = 30;
-#else
-int GestureConfiguration::scroll_debounce_interval_in_ms_ = 0;
-#endif
-
-} // namespace ui
diff --git a/ui/events/gestures/gesture_configuration.h b/ui/events/gestures/gesture_configuration.h
deleted file mode 100644
index c72208ef..0000000
--- a/ui/events/gestures/gesture_configuration.h
+++ /dev/null
@@ -1,196 +0,0 @@
-// 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.
-
-#ifndef UI_EVENTS_GESTURES_GESTURE_CONFIGURATION_H_
-#define UI_EVENTS_GESTURES_GESTURE_CONFIGURATION_H_
-
-#include "base/basictypes.h"
-#include "ui/events/events_base_export.h"
-
-namespace ui {
-
-// TODO: Expand this design to support multiple OS configuration
-// approaches (windows, chrome, others). This would turn into an
-// abstract base class.
-
-class EVENTS_BASE_EXPORT GestureConfiguration {
- public:
- // Ordered alphabetically ignoring underscores, to align with the
- // associated list of prefs in gesture_prefs_aura.cc.
- static float default_radius() {
- return default_radius_;
- }
- static void set_default_radius(float radius) {
- default_radius_ = radius;
- }
- static int fling_max_cancel_to_down_time_in_ms() {
- return fling_max_cancel_to_down_time_in_ms_;
- }
- static void set_fling_max_cancel_to_down_time_in_ms(int val) {
- fling_max_cancel_to_down_time_in_ms_ = val;
- }
- static int fling_max_tap_gap_time_in_ms() {
- return fling_max_tap_gap_time_in_ms_;
- }
- static void set_fling_max_tap_gap_time_in_ms(int val) {
- fling_max_tap_gap_time_in_ms_ = val;
- }
- static int long_press_time_in_ms() {
- return long_press_time_in_ms_;
- }
- static int semi_long_press_time_in_ms() {
- return semi_long_press_time_in_ms_;
- }
- static float max_distance_for_two_finger_tap_in_pixels() {
- return max_distance_for_two_finger_tap_in_pixels_;
- }
- static void set_max_distance_for_two_finger_tap_in_pixels(float val) {
- max_distance_for_two_finger_tap_in_pixels_ = val;
- }
- static void set_long_press_time_in_ms(int val) {
- long_press_time_in_ms_ = val;
- }
- static void set_semi_long_press_time_in_ms(int val) {
- semi_long_press_time_in_ms_ = val;
- }
- static int max_time_between_double_click_in_ms() {
- return max_time_between_double_click_in_ms_;
- }
- static void set_max_time_between_double_click_in_ms(int val) {
- max_time_between_double_click_in_ms_ = val;
- }
- static float max_separation_for_gesture_touches_in_pixels() {
- return max_separation_for_gesture_touches_in_pixels_;
- }
- static void set_max_separation_for_gesture_touches_in_pixels(float val) {
- max_separation_for_gesture_touches_in_pixels_ = val;
- }
- static float max_swipe_deviation_angle() {
- return max_swipe_deviation_angle_;
- }
- static void set_max_swipe_deviation_angle(float val) {
- max_swipe_deviation_angle_ = val;
- }
- static int max_touch_down_duration_for_click_in_ms() {
- return max_touch_down_duration_for_click_in_ms_;
- }
- static void set_max_touch_down_duration_for_click_in_ms(int val) {
- max_touch_down_duration_for_click_in_ms_ = val;
- }
- static float max_touch_move_in_pixels_for_click() {
- return max_touch_move_in_pixels_for_click_;
- }
- static void set_max_touch_move_in_pixels_for_click(float val) {
- max_touch_move_in_pixels_for_click_ = val;
- }
- static float max_distance_between_taps_for_double_tap() {
- return max_distance_between_taps_for_double_tap_;
- }
- static void set_max_distance_between_taps_for_double_tap(float val) {
- max_distance_between_taps_for_double_tap_ = val;
- }
- static float min_distance_for_pinch_scroll_in_pixels() {
- return min_distance_for_pinch_scroll_in_pixels_;
- }
- static void set_min_distance_for_pinch_scroll_in_pixels(float val) {
- min_distance_for_pinch_scroll_in_pixels_ = val;
- }
- static float min_pinch_update_distance_in_pixels() {
- return min_pinch_update_distance_in_pixels_;
- }
- static void set_min_pinch_update_distance_in_pixels(float val) {
- min_pinch_update_distance_in_pixels_ = val;
- }
- static float min_scroll_velocity() {
- return min_scroll_velocity_;
- }
- static void set_min_scroll_velocity(float val) {
- min_scroll_velocity_ = val;
- }
- static float min_swipe_speed() {
- return min_swipe_speed_;
- }
- static void set_min_swipe_speed(float val) {
- min_swipe_speed_ = val;
- }
- static float min_scaling_span_in_pixels() {
- return min_scaling_span_in_pixels_;
- };
- static void set_min_scaling_span_in_pixels(float val) {
- min_scaling_span_in_pixels_ = val;
- }
- static int show_press_delay_in_ms() {
- return show_press_delay_in_ms_;
- }
- static int set_show_press_delay_in_ms(int val) {
- return show_press_delay_in_ms_ = val;
- }
- static int scroll_debounce_interval_in_ms() {
- return scroll_debounce_interval_in_ms_;
- }
- static int set_scroll_debounce_interval_in_ms(int val) {
- return scroll_debounce_interval_in_ms_ = val;
- }
- static float fling_velocity_cap() {
- return fling_velocity_cap_;
- }
- static void set_fling_velocity_cap(float val) {
- fling_velocity_cap_ = val;
- }
- // TODO(davemoore): Move into chrome/browser/ui.
- static int tab_scrub_activation_delay_in_ms() {
- return tab_scrub_activation_delay_in_ms_;
- }
- static void set_tab_scrub_activation_delay_in_ms(int val) {
- tab_scrub_activation_delay_in_ms_ = val;
- }
-
- private:
- // These are listed in alphabetical order ignoring underscores, to
- // align with the associated list of preferences in
- // gesture_prefs_aura.cc. These two lists should be kept in sync.
-
- // The default touch radius length used when the only information given
- // by the device is the touch center.
- static float default_radius_;
-
- // The maximum allowed distance between two fingers for a two finger tap. If
- // the distance between two fingers is greater than this value, we will not
- // recognize a two finger tap.
- static float max_distance_for_two_finger_tap_in_pixels_;
-
- // Maximum time between a GestureFlingCancel and a mousedown such that the
- // mousedown is considered associated with the cancel event.
- static int fling_max_cancel_to_down_time_in_ms_;
-
- // Maxium time between a mousedown/mouseup pair that is considered to be a
- // suppressable tap.
- static int fling_max_tap_gap_time_in_ms_;
-
- static int long_press_time_in_ms_;
- static int semi_long_press_time_in_ms_;
- static int max_time_between_double_click_in_ms_;
- static float max_separation_for_gesture_touches_in_pixels_;
- static float max_swipe_deviation_angle_;
- static int max_touch_down_duration_for_click_in_ms_;
- static float max_touch_move_in_pixels_for_click_;
- static float max_distance_between_taps_for_double_tap_;
- static float min_distance_for_pinch_scroll_in_pixels_;
- // Only used with --compensate-for-unstable-pinch-zoom.
- static float min_pinch_update_distance_in_pixels_;
- static float min_scroll_velocity_;
- static float min_swipe_speed_;
- static float min_scaling_span_in_pixels_;
- static int show_press_delay_in_ms_;
- static int scroll_debounce_interval_in_ms_;
- static float fling_velocity_cap_;
- // TODO(davemoore): Move into chrome/browser/ui.
- static int tab_scrub_activation_delay_in_ms_;
-
- DISALLOW_COPY_AND_ASSIGN(GestureConfiguration);
-};
-
-} // namespace ui
-
-#endif // UI_EVENTS_GESTURES_GESTURE_CONFIGURATION_H_
diff --git a/ui/events/gestures/gesture_provider_aura.cc b/ui/events/gestures/gesture_provider_aura.cc
index d3ef218..86d78ec 100644
--- a/ui/events/gestures/gesture_provider_aura.cc
+++ b/ui/events/gestures/gesture_provider_aura.cc
@@ -7,15 +7,15 @@
#include "base/auto_reset.h"
#include "base/logging.h"
#include "ui/events/event.h"
-#include "ui/events/gesture_detection/gesture_config_helper.h"
+#include "ui/events/gesture_detection/gesture_configuration.h"
#include "ui/events/gesture_detection/gesture_event_data.h"
-#include "ui/events/gestures/gesture_configuration.h"
+#include "ui/events/gesture_detection/gesture_provider_config_helper.h"
namespace ui {
GestureProviderAura::GestureProviderAura(GestureProviderAuraClient* client)
: client_(client),
- filtered_gesture_provider_(ui::DefaultGestureProviderConfig(), this),
+ filtered_gesture_provider_(DefaultGestureProviderConfig(), this),
handling_event_(false) {
filtered_gesture_provider_.SetDoubleTapSupportForPlatformEnabled(false);
}
@@ -122,12 +122,14 @@ bool GestureProviderAura::IsConsideredDoubleTap(
const GestureEventData& current_tap) const {
if (current_tap.time - previous_tap.time >
base::TimeDelta::FromMilliseconds(
- ui::GestureConfiguration::max_time_between_double_click_in_ms())) {
+ GestureConfiguration::GetInstance()
+ ->max_time_between_double_click_in_ms())) {
return false;
}
float double_tap_slop_square =
- GestureConfiguration::max_distance_between_taps_for_double_tap();
+ GestureConfiguration::GetInstance()
+ ->max_distance_between_taps_for_double_tap();
double_tap_slop_square *= double_tap_slop_square;
const float delta_x = previous_tap.x - current_tap.x;
const float delta_y = previous_tap.y - current_tap.y;
diff --git a/ui/events/gestures/gesture_recognizer_impl.cc b/ui/events/gestures/gesture_recognizer_impl.cc
index 9f6eb3e..ae5f89e 100644
--- a/ui/events/gestures/gesture_recognizer_impl.cc
+++ b/ui/events/gestures/gesture_recognizer_impl.cc
@@ -15,7 +15,7 @@
#include "ui/events/event_constants.h"
#include "ui/events/event_switches.h"
#include "ui/events/event_utils.h"
-#include "ui/events/gestures/gesture_configuration.h"
+#include "ui/events/gesture_detection/gesture_configuration.h"
#include "ui/events/gestures/gesture_types.h"
namespace ui {
@@ -92,7 +92,8 @@ GestureConsumer* GestureRecognizerImpl::GetTargetForGestureEvent(
GestureConsumer* GestureRecognizerImpl::GetTargetForLocation(
const gfx::PointF& location, int source_device_id) {
const float max_distance =
- GestureConfiguration::max_separation_for_gesture_touches_in_pixels();
+ GestureConfiguration::GetInstance()
+ ->max_separation_for_gesture_touches_in_pixels();
gfx::PointF closest_point;
int closest_touch_id = 0;
diff --git a/ui/events/gestures/motion_event_aura.cc b/ui/events/gestures/motion_event_aura.cc
index 867d47a..62262d8 100644
--- a/ui/events/gestures/motion_event_aura.cc
+++ b/ui/events/gestures/motion_event_aura.cc
@@ -10,7 +10,7 @@
#include <cmath>
#include "base/logging.h"
-#include "ui/events/gestures/gesture_configuration.h"
+#include "ui/events/gesture_detection/gesture_configuration.h"
namespace ui {
@@ -70,8 +70,10 @@ MotionEventAura::PointData MotionEventAura::GetPointDataFromTouchEvent(
}
if (!point_data.touch_major) {
- point_data.touch_major = 2.f * GestureConfiguration::default_radius();
- point_data.touch_minor = 2.f * GestureConfiguration::default_radius();
+ point_data.touch_major =
+ 2.f * GestureConfiguration::GetInstance()->default_radius();
+ point_data.touch_minor =
+ 2.f * GestureConfiguration::GetInstance()->default_radius();
point_data.orientation = 0;
}