Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / ui / events / gesture_detection / gesture_config_helper_android.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 #include "ui/events/gesture_detection/gesture_config_helper.h"
6
7 #include "ui/gfx/android/view_configuration.h"
8 #include "ui/gfx/screen.h"
9
10 using gfx::ViewConfiguration;
11
12 namespace ui {
13 namespace {
14 // TODO(jdduke): Adopt GestureConfiguration on Android, crbug/339203.
15
16 GestureDetector::Config DefaultGestureDetectorConfig(
17     const gfx::Display& display) {
18   GestureDetector::Config config;
19
20   config.longpress_timeout = base::TimeDelta::FromMilliseconds(
21       ViewConfiguration::GetLongPressTimeoutInMs());
22   config.showpress_timeout =
23       base::TimeDelta::FromMilliseconds(ViewConfiguration::GetTapTimeoutInMs());
24   config.double_tap_timeout = base::TimeDelta::FromMilliseconds(
25       ViewConfiguration::GetDoubleTapTimeoutInMs());
26
27   const float px_to_dp = 1.f / display.device_scale_factor();
28   config.touch_slop =
29       ViewConfiguration::GetTouchSlopInPixels() * px_to_dp;
30   config.double_tap_slop =
31       ViewConfiguration::GetDoubleTapSlopInPixels() * px_to_dp;
32   config.minimum_fling_velocity =
33       ViewConfiguration::GetMinimumFlingVelocityInPixelsPerSecond() * px_to_dp;
34   config.maximum_fling_velocity =
35       ViewConfiguration::GetMaximumFlingVelocityInPixelsPerSecond() * px_to_dp;
36
37   return config;
38 }
39
40 ScaleGestureDetector::Config DefaultScaleGestureDetectorConfig(
41     const gfx::Display& display) {
42   ScaleGestureDetector::Config config;
43
44   config.gesture_detector_config = DefaultGestureDetectorConfig(display);
45   config.quick_scale_enabled = true;
46
47   const float px_to_dp = 1.f / display.device_scale_factor();
48   config.min_scaling_touch_major =
49       ViewConfiguration::GetMinScalingTouchMajorInPixels() * px_to_dp;
50   config.min_scaling_span =
51       ViewConfiguration::GetMinScalingSpanInPixels() * px_to_dp;
52
53   return config;
54 }
55
56 }  // namespace
57
58 GestureProvider::Config DefaultGestureProviderConfig() {
59   GestureProvider::Config config;
60   config.display = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay();
61   config.gesture_detector_config = DefaultGestureDetectorConfig(config.display);
62   config.scale_gesture_detector_config =
63       DefaultScaleGestureDetectorConfig(config.display);
64   config.gesture_begin_end_types_enabled = false;
65   return config;
66 }
67
68 }  // namespace ui