gesture_config_helper_aura.cc revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1// Copyright 2014 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// MSVC++ requires this to be set before any other includes to get M_PI. 6#define _USE_MATH_DEFINES 7 8#include "ui/events/gesture_detection/gesture_config_helper.h" 9 10#include <cmath> 11 12#include "ui/events/gestures/gesture_configuration.h" 13#include "ui/gfx/screen.h" 14 15namespace ui { 16namespace { 17 18GestureDetector::Config DefaultGestureDetectorConfig() { 19 GestureDetector::Config config; 20 21 config.longpress_timeout = base::TimeDelta::FromMilliseconds( 22 GestureConfiguration::long_press_time_in_seconds() * 1000.); 23 config.showpress_timeout = base::TimeDelta::FromMilliseconds( 24 GestureConfiguration::show_press_delay_in_ms()); 25 config.double_tap_timeout = base::TimeDelta::FromMilliseconds( 26 GestureConfiguration::semi_long_press_time_in_seconds() * 1000.); 27 config.touch_slop = 28 GestureConfiguration::max_touch_move_in_pixels_for_click(); 29 config.double_tap_slop = 30 GestureConfiguration::max_distance_between_taps_for_double_tap(); 31 config.minimum_fling_velocity = 32 GestureConfiguration::min_scroll_velocity(); 33 config.maximum_fling_velocity = GestureConfiguration::fling_velocity_cap(); 34 config.swipe_enabled = true; 35 config.minimum_swipe_velocity = GestureConfiguration::min_swipe_speed(); 36 config.maximum_swipe_deviation_angle = 37 atan2(1.f, GestureConfiguration::max_swipe_deviation_ratio()) * 180.0f / 38 static_cast<float>(M_PI); 39 config.two_finger_tap_enabled = true; 40 config.two_finger_tap_max_separation = 41 GestureConfiguration::max_distance_for_two_finger_tap_in_pixels(); 42 config.two_finger_tap_timeout = base::TimeDelta::FromMilliseconds( 43 GestureConfiguration::max_touch_down_duration_in_seconds_for_click() * 44 1000.); 45 46 return config; 47} 48 49ScaleGestureDetector::Config DefaultScaleGestureDetectorConfig() { 50 ScaleGestureDetector::Config config; 51 52 config.gesture_detector_config = DefaultGestureDetectorConfig(); 53 config.min_scaling_touch_major = GestureConfiguration::default_radius() * 2; 54 config.min_scaling_span = GestureConfiguration::min_scaling_span_in_pixels(); 55 config.min_pinch_update_span_delta = 56 GestureConfiguration::min_pinch_update_distance_in_pixels(); 57 return config; 58} 59 60} // namespace 61 62GestureProvider::Config DefaultGestureProviderConfig() { 63 GestureProvider::Config config; 64 config.display = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); 65 config.gesture_detector_config = DefaultGestureDetectorConfig(); 66 config.scale_gesture_detector_config = DefaultScaleGestureDetectorConfig(); 67 config.gesture_begin_end_types_enabled = true; 68 return config; 69} 70 71} // namespace ui 72