summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authortengs@chromium.org <tengs@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-22 08:53:38 +0000
committertengs@chromium.org <tengs@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-22 08:53:38 +0000
commit3c5ec44b33620ded8837935f0d60fbb9e1ace40c (patch)
tree701f93bef70b4f8dd4d2db4e93b3dd13a26a7488 /ash
parent3c448301fa795630a3a79f8cb10fd2f922c70843 (diff)
downloadchromium_src-3c5ec44b33620ded8837935f0d60fbb9e1ace40c.zip
chromium_src-3c5ec44b33620ded8837935f0d60fbb9e1ace40c.tar.gz
chromium_src-3c5ec44b33620ded8837935f0d60fbb9e1ace40c.tar.bz2
Add autoclick to settings page under the accessibility section.
In the settings page, we have both a checkbox to enable/disable the feature and a dropdown menu to choose the delay. This feature is hidden behind a flag. BUG=272401 TEST=manual Review URL: https://codereview.chromium.org/27196006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230075 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/ash_switches.cc3
-rw-r--r--ash/ash_switches.h1
-rw-r--r--ash/autoclick/autoclick_controller.cc26
-rw-r--r--ash/autoclick/autoclick_controller.h18
-rw-r--r--ash/autoclick/autoclick_unittest.cc2
5 files changed, 28 insertions, 22 deletions
diff --git a/ash/ash_switches.cc b/ash/ash_switches.cc
index 70b1340..394e5a6 100644
--- a/ash/ash_switches.cc
+++ b/ash/ash_switches.cc
@@ -91,6 +91,9 @@ const char kAshEnableAdvancedGestures[] = "ash-enable-advanced-gestures";
const char kAshEnableAlternateFrameCaptionButtonStyle[] =
"ash-enable-alternate-caption-button";
+// Enables settings ui to control the autoclick accessibility feature.
+const char kAshEnableAutoclick[] = "ash-enable-autoclick";
+
// Always enable brightness control. Used by machines that don't report their
// main monitor as internal.
const char kAshEnableBrightnessControl[] = "ash-enable-brightness-control";
diff --git a/ash/ash_switches.h b/ash/ash_switches.h
index a979c9f..099b5b9 100644
--- a/ash/ash_switches.h
+++ b/ash/ash_switches.h
@@ -42,6 +42,7 @@ ASH_EXPORT extern const char kAshEnableAudioDeviceMenu[];
#endif
ASH_EXPORT extern const char kAshEnableAdvancedGestures[];
ASH_EXPORT extern const char kAshEnableAlternateFrameCaptionButtonStyle[];
+ASH_EXPORT extern const char kAshEnableAutoclick[];
ASH_EXPORT extern const char kAshEnableBrightnessControl[];
ASH_EXPORT extern const char kAshEnableDockedWindows[];
#if defined(OS_CHROMEOS)
diff --git a/ash/autoclick/autoclick_controller.cc b/ash/autoclick/autoclick_controller.cc
index c2804a7..848fea9 100644
--- a/ash/autoclick/autoclick_controller.cc
+++ b/ash/autoclick/autoclick_controller.cc
@@ -16,12 +16,8 @@
namespace ash {
-namespace {
-
-// The default wait time between last mouse movement and sending the autoclick.
-int kDefaultClickWaitTimeMs = 500;
-
-} // namespace
+// static.
+const int AutoclickController::kDefaultAutoclickDelayMs = 400;
class AutoclickControllerImpl : public AutoclickController,
public ui::EventHandler {
@@ -33,8 +29,8 @@ class AutoclickControllerImpl : public AutoclickController,
// AutoclickController overrides:
virtual void SetEnabled(bool enabled) OVERRIDE;
virtual bool IsEnabled() const OVERRIDE;
- virtual void SetClickWaitTime(int wait_time_ms) OVERRIDE;
- virtual int GetClickWaitTime() const OVERRIDE;
+ virtual void SetAutoclickDelay(int delay_ms) OVERRIDE;
+ virtual int GetAutoclickDelay() const OVERRIDE;
// ui::EventHandler overrides:
virtual void OnMouseEvent(ui::MouseEvent* event) OVERRIDE;
@@ -46,7 +42,7 @@ class AutoclickControllerImpl : public AutoclickController,
void DoAutoclick();
bool enabled_;
- int wait_time_ms_;
+ int delay_ms_;
int mouse_event_flags_;
scoped_ptr<base::Timer> autoclick_timer_;
@@ -56,7 +52,7 @@ class AutoclickControllerImpl : public AutoclickController,
AutoclickControllerImpl::AutoclickControllerImpl()
: enabled_(false),
- wait_time_ms_(kDefaultClickWaitTimeMs),
+ delay_ms_(kDefaultAutoclickDelayMs),
mouse_event_flags_(ui::EF_NONE) {
InitClickTimer();
}
@@ -81,19 +77,19 @@ bool AutoclickControllerImpl::IsEnabled() const {
return enabled_;
}
-void AutoclickControllerImpl::SetClickWaitTime(int wait_time_ms) {
- wait_time_ms_ = wait_time_ms;
+void AutoclickControllerImpl::SetAutoclickDelay(int delay_ms) {
+ delay_ms_ = delay_ms;
InitClickTimer();
}
-int AutoclickControllerImpl::GetClickWaitTime() const {
- return wait_time_ms_;
+int AutoclickControllerImpl::GetAutoclickDelay() const {
+ return delay_ms_;
}
void AutoclickControllerImpl::InitClickTimer() {
autoclick_timer_.reset(new base::Timer(
FROM_HERE,
- base::TimeDelta::FromMilliseconds(wait_time_ms_),
+ base::TimeDelta::FromMilliseconds(delay_ms_),
base::Bind(&AutoclickControllerImpl::DoAutoclick,
base::Unretained(this)),
false));
diff --git a/ash/autoclick/autoclick_controller.h b/ash/autoclick/autoclick_controller.h
index 481660f..46b9ef4 100644
--- a/ash/autoclick/autoclick_controller.h
+++ b/ash/autoclick/autoclick_controller.h
@@ -5,12 +5,14 @@
#ifndef ASH_AUTOCLICK_AUTOCLICK_CONTROLLER_H
#define ASH_AUTOCLICK_AUTOCLICK_CONTROLLER_H
+#include "ash/ash_export.h"
+
namespace ash {
// Controls the autoclick a11y feature in ash.
// If enabled, we will automatically send a click event a short time after
// the mouse had been at rest.
-class AutoclickController {
+class ASH_EXPORT AutoclickController {
public:
virtual ~AutoclickController() {}
@@ -20,15 +22,19 @@ class AutoclickController {
// Returns true if autoclicking is enabled.
virtual bool IsEnabled() const = 0;
- // Set the time to wait from when the mouse stops moving to when
- // the autoclick event is sent.
- virtual void SetClickWaitTime(int wait_time_ms) = 0;
+ // Set the time to wait in milliseconds from when the mouse stops moving
+ // to when the autoclick event is sent.
+ virtual void SetAutoclickDelay(int delay_ms) = 0;
- // Returns the wait time in milliseconds.
- virtual int GetClickWaitTime() const = 0;
+ // Returns the autoclick delay in milliseconds.
+ virtual int GetAutoclickDelay() const = 0;
static AutoclickController* CreateInstance();
+ // The default wait time between last mouse movement and sending
+ // the autoclick.
+ static const int kDefaultAutoclickDelayMs;
+
protected:
AutoclickController() {}
};
diff --git a/ash/autoclick/autoclick_unittest.cc b/ash/autoclick/autoclick_unittest.cc
index dd462f4..d756b58 100644
--- a/ash/autoclick/autoclick_unittest.cc
+++ b/ash/autoclick/autoclick_unittest.cc
@@ -63,7 +63,7 @@ class AutoclickTest : public test::AshTestBase {
virtual void SetUp() OVERRIDE {
test::AshTestBase::SetUp();
Shell::GetInstance()->AddPreTargetHandler(&mouse_event_capturer_);
- GetAutoclickController()->SetClickWaitTime(0);
+ GetAutoclickController()->SetAutoclickDelay(0);
// Move mouse to deterministic location at the start of each test.
GetEventGenerator().MoveMouseTo(10, 10);