• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef UI_EVENTS_GESTURES_GESTURE_CONFIGURATION_H_
6 #define UI_EVENTS_GESTURES_GESTURE_CONFIGURATION_H_
7 
8 #include "base/basictypes.h"
9 #include "ui/events/events_base_export.h"
10 
11 namespace ui {
12 
13 // TODO: Expand this design to support multiple OS configuration
14 // approaches (windows, chrome, others).  This would turn into an
15 // abstract base class.
16 
17 class EVENTS_BASE_EXPORT GestureConfiguration {
18  public:
19   // Ordered alphabetically ignoring underscores, to align with the
20   // associated list of prefs in gesture_prefs_aura.cc.
default_radius()21   static int default_radius() {
22     return default_radius_;
23   }
set_default_radius(int radius)24   static void set_default_radius(int radius) { default_radius_ = radius; }
fling_max_cancel_to_down_time_in_ms()25   static int fling_max_cancel_to_down_time_in_ms() {
26     return fling_max_cancel_to_down_time_in_ms_;
27   }
set_fling_max_cancel_to_down_time_in_ms(int val)28   static void set_fling_max_cancel_to_down_time_in_ms(int val) {
29     fling_max_cancel_to_down_time_in_ms_ = val;
30   }
fling_max_tap_gap_time_in_ms()31   static int fling_max_tap_gap_time_in_ms() {
32     return fling_max_tap_gap_time_in_ms_;
33   }
set_fling_max_tap_gap_time_in_ms(int val)34   static void set_fling_max_tap_gap_time_in_ms(int val) {
35     fling_max_tap_gap_time_in_ms_ = val;
36   }
long_press_time_in_seconds()37   static double long_press_time_in_seconds() {
38     return long_press_time_in_seconds_;
39   }
semi_long_press_time_in_seconds()40   static double semi_long_press_time_in_seconds() {
41     return semi_long_press_time_in_seconds_;
42   }
max_distance_for_two_finger_tap_in_pixels()43   static double max_distance_for_two_finger_tap_in_pixels() {
44     return max_distance_for_two_finger_tap_in_pixels_;
45   }
set_max_distance_for_two_finger_tap_in_pixels(double val)46   static void set_max_distance_for_two_finger_tap_in_pixels(double val) {
47     max_distance_for_two_finger_tap_in_pixels_ = val;
48   }
set_long_press_time_in_seconds(double val)49   static void set_long_press_time_in_seconds(double val) {
50     long_press_time_in_seconds_ = val;
51   }
set_semi_long_press_time_in_seconds(double val)52   static void set_semi_long_press_time_in_seconds(double val) {
53     semi_long_press_time_in_seconds_ = val;
54   }
max_seconds_between_double_click()55   static double max_seconds_between_double_click() {
56     return max_seconds_between_double_click_;
57   }
set_max_seconds_between_double_click(double val)58   static void set_max_seconds_between_double_click(double val) {
59     max_seconds_between_double_click_ = val;
60   }
max_separation_for_gesture_touches_in_pixels()61   static int max_separation_for_gesture_touches_in_pixels() {
62     return max_separation_for_gesture_touches_in_pixels_;
63   }
set_max_separation_for_gesture_touches_in_pixels(int val)64   static void set_max_separation_for_gesture_touches_in_pixels(int val) {
65     max_separation_for_gesture_touches_in_pixels_ = val;
66   }
max_swipe_deviation_angle()67   static float max_swipe_deviation_angle() {
68     return max_swipe_deviation_angle_;
69   }
set_max_swipe_deviation_angle(float val)70   static void set_max_swipe_deviation_angle(float val) {
71     max_swipe_deviation_angle_ = val;
72   }
max_touch_down_duration_in_seconds_for_click()73   static double max_touch_down_duration_in_seconds_for_click() {
74     return max_touch_down_duration_in_seconds_for_click_;
75   }
set_max_touch_down_duration_in_seconds_for_click(double val)76   static void set_max_touch_down_duration_in_seconds_for_click(double val) {
77     max_touch_down_duration_in_seconds_for_click_ = val;
78   }
max_touch_move_in_pixels_for_click()79   static double max_touch_move_in_pixels_for_click() {
80     return max_touch_move_in_pixels_for_click_;
81   }
set_max_touch_move_in_pixels_for_click(double val)82   static void set_max_touch_move_in_pixels_for_click(double val) {
83     max_touch_move_in_pixels_for_click_ = val;
84   }
max_distance_between_taps_for_double_tap()85   static double max_distance_between_taps_for_double_tap() {
86     return max_distance_between_taps_for_double_tap_;
87   }
set_max_distance_between_taps_for_double_tap(double val)88   static void set_max_distance_between_taps_for_double_tap(double val) {
89     max_distance_between_taps_for_double_tap_ = val;
90   }
min_distance_for_pinch_scroll_in_pixels()91   static double min_distance_for_pinch_scroll_in_pixels() {
92     return min_distance_for_pinch_scroll_in_pixels_;
93   }
set_min_distance_for_pinch_scroll_in_pixels(double val)94   static void set_min_distance_for_pinch_scroll_in_pixels(double val) {
95     min_distance_for_pinch_scroll_in_pixels_ = val;
96   }
min_pinch_update_distance_in_pixels()97   static double min_pinch_update_distance_in_pixels() {
98     return min_pinch_update_distance_in_pixels_;
99   }
set_min_pinch_update_distance_in_pixels(double val)100   static void set_min_pinch_update_distance_in_pixels(double val) {
101     min_pinch_update_distance_in_pixels_ = val;
102   }
min_scroll_velocity()103   static float min_scroll_velocity() {
104     return min_scroll_velocity_;
105   }
set_min_scroll_velocity(float val)106   static void set_min_scroll_velocity(float val) {
107     min_scroll_velocity_ = val;
108   }
min_swipe_speed()109   static double min_swipe_speed() {
110     return min_swipe_speed_;
111   }
set_min_swipe_speed(double val)112   static void set_min_swipe_speed(double val) {
113     min_swipe_speed_ = val;
114   }
min_scaling_span_in_pixels()115   static int min_scaling_span_in_pixels() {
116     return min_scaling_span_in_pixels_;
117   };
set_min_scaling_span_in_pixels(int val)118   static void set_min_scaling_span_in_pixels(int val) {
119     min_scaling_span_in_pixels_ = val;
120   }
show_press_delay_in_ms()121   static int show_press_delay_in_ms() {
122     return show_press_delay_in_ms_;
123   }
set_show_press_delay_in_ms(int val)124   static int set_show_press_delay_in_ms(int val) {
125     return show_press_delay_in_ms_ = val;
126   }
scroll_debounce_interval_in_ms()127   static int scroll_debounce_interval_in_ms() {
128     return scroll_debounce_interval_in_ms_;
129   }
set_scroll_debounce_interval_in_ms(int val)130   static int set_scroll_debounce_interval_in_ms(int val) {
131     return scroll_debounce_interval_in_ms_ = val;
132   }
fling_velocity_cap()133   static float fling_velocity_cap() {
134     return fling_velocity_cap_;
135   }
set_fling_velocity_cap(float val)136   static void set_fling_velocity_cap(float val) {
137     fling_velocity_cap_ = val;
138   }
139   // TODO(davemoore): Move into chrome/browser/ui.
tab_scrub_activation_delay_in_ms()140   static int tab_scrub_activation_delay_in_ms() {
141     return tab_scrub_activation_delay_in_ms_;
142   }
set_tab_scrub_activation_delay_in_ms(int val)143   static void set_tab_scrub_activation_delay_in_ms(int val) {
144     tab_scrub_activation_delay_in_ms_ = val;
145   }
146 
147  private:
148   // These are listed in alphabetical order ignoring underscores, to
149   // align with the associated list of preferences in
150   // gesture_prefs_aura.cc. These two lists should be kept in sync.
151 
152   // The default touch radius length used when the only information given
153   // by the device is the touch center.
154   static int default_radius_;
155 
156   // The maximum allowed distance between two fingers for a two finger tap. If
157   // the distance between two fingers is greater than this value, we will not
158   // recognize a two finger tap.
159   static double max_distance_for_two_finger_tap_in_pixels_;
160 
161   // Maximum time between a GestureFlingCancel and a mousedown such that the
162   // mousedown is considered associated with the cancel event.
163   static int fling_max_cancel_to_down_time_in_ms_;
164 
165   // Maxium time between a mousedown/mouseup pair that is considered to be a
166   // suppressable tap.
167   static int fling_max_tap_gap_time_in_ms_;
168 
169   static double long_press_time_in_seconds_;
170   static double semi_long_press_time_in_seconds_;
171   static double max_seconds_between_double_click_;
172   static double max_separation_for_gesture_touches_in_pixels_;
173   static float max_swipe_deviation_angle_;
174   static double max_touch_down_duration_in_seconds_for_click_;
175   static double max_touch_move_in_pixels_for_click_;
176   static double max_distance_between_taps_for_double_tap_;
177   static double min_distance_for_pinch_scroll_in_pixels_;
178   // Only used with --compensate-for-unstable-pinch-zoom.
179   static double min_pinch_update_distance_in_pixels_;
180   static float min_scroll_velocity_;
181   static double min_swipe_speed_;
182   static int min_scaling_span_in_pixels_;
183   static int show_press_delay_in_ms_;
184   static int scroll_debounce_interval_in_ms_;
185   static float fling_velocity_cap_;
186   // TODO(davemoore): Move into chrome/browser/ui.
187   static int tab_scrub_activation_delay_in_ms_;
188 
189   DISALLOW_COPY_AND_ASSIGN(GestureConfiguration);
190 };
191 
192 }  // namespace ui
193 
194 #endif  // UI_EVENTS_GESTURES_GESTURE_CONFIGURATION_H_
195