Home | History | Annotate | Download | only in gestures
      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.
     21   static int default_radius() {
     22     return default_radius_;
     23   }
     24   static void set_default_radius(int radius) { default_radius_ = radius; }
     25   static int fling_max_cancel_to_down_time_in_ms() {
     26     return fling_max_cancel_to_down_time_in_ms_;
     27   }
     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   }
     31   static int fling_max_tap_gap_time_in_ms() {
     32     return fling_max_tap_gap_time_in_ms_;
     33   }
     34   static void set_fling_max_tap_gap_time_in_ms(int val) {
     35     fling_max_tap_gap_time_in_ms_ = val;
     36   }
     37   static double long_press_time_in_seconds() {
     38     return long_press_time_in_seconds_;
     39   }
     40   static double semi_long_press_time_in_seconds() {
     41     return semi_long_press_time_in_seconds_;
     42   }
     43   static double max_distance_for_two_finger_tap_in_pixels() {
     44     return max_distance_for_two_finger_tap_in_pixels_;
     45   }
     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   }
     49   static void set_long_press_time_in_seconds(double val) {
     50     long_press_time_in_seconds_ = val;
     51   }
     52   static void set_semi_long_press_time_in_seconds(double val) {
     53     semi_long_press_time_in_seconds_ = val;
     54   }
     55   static double max_seconds_between_double_click() {
     56     return max_seconds_between_double_click_;
     57   }
     58   static void set_max_seconds_between_double_click(double val) {
     59     max_seconds_between_double_click_ = val;
     60   }
     61   static int max_separation_for_gesture_touches_in_pixels() {
     62     return max_separation_for_gesture_touches_in_pixels_;
     63   }
     64   static void set_max_separation_for_gesture_touches_in_pixels(int val) {
     65     max_separation_for_gesture_touches_in_pixels_ = val;
     66   }
     67   static float max_swipe_deviation_angle() {
     68     return max_swipe_deviation_angle_;
     69   }
     70   static void set_max_swipe_deviation_angle(float val) {
     71     max_swipe_deviation_angle_ = val;
     72   }
     73   static double max_touch_down_duration_in_seconds_for_click() {
     74     return max_touch_down_duration_in_seconds_for_click_;
     75   }
     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   }
     79   static double max_touch_move_in_pixels_for_click() {
     80     return max_touch_move_in_pixels_for_click_;
     81   }
     82   static void set_max_touch_move_in_pixels_for_click(double val) {
     83     max_touch_move_in_pixels_for_click_ = val;
     84   }
     85   static double max_distance_between_taps_for_double_tap() {
     86     return max_distance_between_taps_for_double_tap_;
     87   }
     88   static void set_max_distance_between_taps_for_double_tap(double val) {
     89     max_distance_between_taps_for_double_tap_ = val;
     90   }
     91   static double min_distance_for_pinch_scroll_in_pixels() {
     92     return min_distance_for_pinch_scroll_in_pixels_;
     93   }
     94   static void set_min_distance_for_pinch_scroll_in_pixels(double val) {
     95     min_distance_for_pinch_scroll_in_pixels_ = val;
     96   }
     97   static double min_pinch_update_distance_in_pixels() {
     98     return min_pinch_update_distance_in_pixels_;
     99   }
    100   static void set_min_pinch_update_distance_in_pixels(double val) {
    101     min_pinch_update_distance_in_pixels_ = val;
    102   }
    103   static float min_scroll_velocity() {
    104     return min_scroll_velocity_;
    105   }
    106   static void set_min_scroll_velocity(float val) {
    107     min_scroll_velocity_ = val;
    108   }
    109   static double min_swipe_speed() {
    110     return min_swipe_speed_;
    111   }
    112   static void set_min_swipe_speed(double val) {
    113     min_swipe_speed_ = val;
    114   }
    115   static int min_scaling_span_in_pixels() {
    116     return min_scaling_span_in_pixels_;
    117   };
    118   static void set_min_scaling_span_in_pixels(int val) {
    119     min_scaling_span_in_pixels_ = val;
    120   }
    121   static int show_press_delay_in_ms() {
    122     return show_press_delay_in_ms_;
    123   }
    124   static int set_show_press_delay_in_ms(int val) {
    125     return show_press_delay_in_ms_ = val;
    126   }
    127   static int scroll_debounce_interval_in_ms() {
    128     return scroll_debounce_interval_in_ms_;
    129   }
    130   static int set_scroll_debounce_interval_in_ms(int val) {
    131     return scroll_debounce_interval_in_ms_ = val;
    132   }
    133   static float fling_velocity_cap() {
    134     return fling_velocity_cap_;
    135   }
    136   static void set_fling_velocity_cap(float val) {
    137     fling_velocity_cap_ = val;
    138   }
    139   // TODO(davemoore): Move into chrome/browser/ui.
    140   static int tab_scrub_activation_delay_in_ms() {
    141     return tab_scrub_activation_delay_in_ms_;
    142   }
    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