1// Copyright 2013 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/base/touch/touch_enabled.h"
6#include "base/command_line.h"
7#include "base/logging.h"
8#include "ui/base/touch/touch_device.h"
9#include "ui/base/ui_base_switches.h"
10#include "ui/events/event_switches.h"
11
12namespace ui {
13
14bool AreTouchEventsEnabled() {
15  const CommandLine& command_line = *CommandLine::ForCurrentProcess();
16  const std::string touch_enabled_switch =
17      command_line.HasSwitch(switches::kTouchEvents) ?
18      command_line.GetSwitchValueASCII(switches::kTouchEvents) :
19      switches::kTouchEventsAuto;
20
21  if (touch_enabled_switch.empty() ||
22      touch_enabled_switch == switches::kTouchEventsEnabled)
23    return true;
24  if (touch_enabled_switch == switches::kTouchEventsAuto)
25    return IsTouchDevicePresent();
26  if (touch_enabled_switch != switches::kTouchEventsDisabled)
27    LOG(ERROR) << "Invalid --touch-events option: " << touch_enabled_switch;
28  return false;
29}
30
31}  // namespace ui
32