Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / ui / events / gesture_detection / gesture_config_helper_aura.cc
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
15 namespace ui {
16 namespace {
17
18 GestureDetector::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 =
34       GestureConfiguration::fling_velocity_cap();
35   config.swipe_enabled = true;
36   config.minimum_swipe_velocity = GestureConfiguration::min_swipe_speed();
37   config.maximum_swipe_deviation_angle =
38       atan2(1.f, GestureConfiguration::max_swipe_deviation_ratio()) * 180.0f /
39       static_cast<float>(M_PI);
40
41   return config;
42 }
43
44 ScaleGestureDetector::Config DefaultScaleGestureDetectorConfig() {
45   ScaleGestureDetector::Config config;
46
47   config.gesture_detector_config = DefaultGestureDetectorConfig();
48   config.min_scaling_touch_major = GestureConfiguration::default_radius() * 2;
49   config.min_scaling_span = GestureConfiguration::min_scaling_span_in_pixels();
50   return config;
51 }
52
53 }  // namespace
54
55 GestureProvider::Config DefaultGestureProviderConfig() {
56   GestureProvider::Config config;
57   config.display = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay();
58   config.gesture_detector_config = DefaultGestureDetectorConfig();
59   config.scale_gesture_detector_config = DefaultScaleGestureDetectorConfig();
60   config.gesture_begin_end_types_enabled = true;
61   return config;
62 }
63
64 }  // namespace ui