Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: ash/common/system/chromeos/palette/palette_utils.cc

Issue 2644713002: cros: Use runtime stylus detection for ash palette. (Closed)
Patch Set: Fix test Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/common/system/chromeos/palette/palette_utils.h" 5 #include "ash/common/system/chromeos/palette/palette_utils.h"
6 6
7 #include "ash/common/ash_switches.h" 7 #include "ash/common/ash_switches.h"
8 #include "ash/common/shelf/wm_shelf.h" 8 #include "ash/common/shelf/wm_shelf.h"
9 #include "ash/common/system/chromeos/palette/palette_tray.h" 9 #include "ash/common/system/chromeos/palette/palette_tray.h"
10 #include "ash/common/system/status_area_widget.h" 10 #include "ash/common/system/status_area_widget.h"
11 #include "ash/common/wm_shell.h" 11 #include "ash/common/wm_shell.h"
12 #include "ash/common/wm_window.h" 12 #include "ash/common/wm_window.h"
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "ui/events/devices/input_device_manager.h"
15 #include "ui/events/devices/touchscreen_device.h"
14 #include "ui/gfx/geometry/point.h" 16 #include "ui/gfx/geometry/point.h"
15 17
16 namespace ash { 18 namespace ash {
19 namespace palette_utils {
17 20
18 bool IsPaletteFeatureEnabled() { 21 bool HasStylusInput() {
19 return base::CommandLine::ForCurrentProcess()->HasSwitch( 22 // Allow the user to force-enable by passing a switch.
20 switches::kAshEnablePalette); 23 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
24 switches::kAshForceEnablePalette)) {
25 return true;
26 }
27
28 for (const ui::TouchscreenDevice& device :
29 ui::InputDeviceManager::GetInstance()->GetTouchscreenDevices()) {
30 if (device.is_stylus &&
31 device.type == ui::InputDeviceType::INPUT_DEVICE_INTERNAL) {
32 return true;
33 }
34 }
35
36 return false;
21 } 37 }
22 38
23 bool IsPaletteEnabledOnEveryDisplay() { 39 bool IsPaletteEnabledOnEveryDisplay() {
24 return base::CommandLine::ForCurrentProcess()->HasSwitch( 40 return base::CommandLine::ForCurrentProcess()->HasSwitch(
25 switches::kAshEnablePaletteOnAllDisplays); 41 switches::kAshEnablePaletteOnAllDisplays);
26 } 42 }
27 43
28 bool PaletteContainsPointInScreen(const gfx::Point& point) { 44 bool PaletteContainsPointInScreen(const gfx::Point& point) {
29 for (WmWindow* window : WmShell::Get()->GetAllRootWindows()) { 45 for (WmWindow* window : WmShell::Get()->GetAllRootWindows()) {
30 PaletteTray* palette_tray = 46 PaletteTray* palette_tray =
31 WmShelf::ForWindow(window)->GetStatusAreaWidget()->palette_tray(); 47 WmShelf::ForWindow(window)->GetStatusAreaWidget()->palette_tray();
32 if (palette_tray && palette_tray->ContainsPointInScreen(point)) 48 if (palette_tray && palette_tray->ContainsPointInScreen(point))
33 return true; 49 return true;
34 } 50 }
35 51
36 return false; 52 return false;
37 } 53 }
38 54
55 } // namespace palette_utils
39 } // namespace ash 56 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/system/chromeos/palette/palette_utils.h ('k') | ash/common/system/status_area_widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698