Move StartsWith[ASCII] to base namespace.
[chromium-blink-merge.git] / components / html_viewer / ui_setup_android.cc
blob5fbbc72c5edad09051824ef060786a140221b15f
1 // Copyright 2015 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.
5 #include "components/html_viewer/ui_setup_android.h"
7 #include "base/memory/singleton.h"
8 #include "ui/events/gesture_detection/gesture_configuration.h"
9 #include "ui/gfx/geometry/size_conversions.h"
10 #include "ui/gfx/screen.h"
12 namespace html_viewer {
13 namespace {
15 class ScreenMandoline : public gfx::Screen {
16 public:
17 ScreenMandoline(const gfx::Size& screen_size_in_pixels,
18 float device_pixel_ratio)
19 : screen_size_in_pixels_(screen_size_in_pixels),
20 device_pixel_ratio_(device_pixel_ratio) {}
22 gfx::Point GetCursorScreenPoint() override { return gfx::Point(); }
24 gfx::NativeWindow GetWindowUnderCursor() override {
25 NOTIMPLEMENTED();
26 return NULL;
29 gfx::NativeWindow GetWindowAtScreenPoint(const gfx::Point& point) override {
30 NOTIMPLEMENTED();
31 return NULL;
34 gfx::Display GetPrimaryDisplay() const override {
35 const gfx::Rect bounds_in_pixels(gfx::Point(), screen_size_in_pixels_);
36 const gfx::Rect bounds_in_dip(gfx::ToCeiledSize(
37 gfx::ScaleSize(bounds_in_pixels.size(), 1.0f / device_pixel_ratio_)));
38 gfx::Display display(0, bounds_in_dip);
39 display.set_device_scale_factor(device_pixel_ratio_);
40 return display;
43 gfx::Display GetDisplayNearestWindow(gfx::NativeView view) const override {
44 return GetPrimaryDisplay();
47 gfx::Display GetDisplayNearestPoint(const gfx::Point& point) const override {
48 return GetPrimaryDisplay();
51 int GetNumDisplays() const override { return 1; }
53 std::vector<gfx::Display> GetAllDisplays() const override {
54 return std::vector<gfx::Display>(1, GetPrimaryDisplay());
57 gfx::Display GetDisplayMatching(const gfx::Rect& match_rect) const override {
58 return GetPrimaryDisplay();
61 void AddObserver(gfx::DisplayObserver* observer) override {
62 // no display change on Android.
65 void RemoveObserver(gfx::DisplayObserver* observer) override {
66 // no display change on Android.
69 private:
70 const gfx::Size screen_size_in_pixels_;
71 const float device_pixel_ratio_;
73 DISALLOW_COPY_AND_ASSIGN(ScreenMandoline);
76 } // namespace
78 // TODO(sky): this needs to come from system.
79 class GestureConfigurationMandoline : public ui::GestureConfiguration {
80 public:
81 GestureConfigurationMandoline() : GestureConfiguration() {
82 set_double_tap_enabled(false);
83 set_double_tap_timeout_in_ms(semi_long_press_time_in_ms());
84 set_gesture_begin_end_types_enabled(true);
85 set_min_gesture_bounds_length(default_radius());
86 set_min_pinch_update_span_delta(0);
87 set_min_scaling_touch_major(default_radius() * 2);
88 set_velocity_tracker_strategy(
89 ui::VelocityTracker::Strategy::LSQ2_RESTRICTED);
90 set_span_slop(max_touch_move_in_pixels_for_click() * 2);
91 set_swipe_enabled(true);
92 set_two_finger_tap_enabled(true);
95 ~GestureConfigurationMandoline() override {}
97 private:
98 DISALLOW_COPY_AND_ASSIGN(GestureConfigurationMandoline);
101 UISetup::UISetup(const gfx::Size& screen_size_in_pixels,
102 float device_pixel_ratio)
103 : screen_(new ScreenMandoline(screen_size_in_pixels, device_pixel_ratio)),
104 gesture_configuration_(new GestureConfigurationMandoline) {
105 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE,
106 screen_.get());
107 ui::GestureConfiguration::SetInstance(gesture_configuration_.get());
110 UISetup::~UISetup() {
111 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, nullptr);
112 ui::GestureConfiguration::SetInstance(nullptr);
115 } // namespace html_viewer