diff options
author | tengs@chromium.org <tengs@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-22 08:53:38 +0000 |
---|---|---|
committer | tengs@chromium.org <tengs@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-22 08:53:38 +0000 |
commit | 3c5ec44b33620ded8837935f0d60fbb9e1ace40c (patch) | |
tree | 701f93bef70b4f8dd4d2db4e93b3dd13a26a7488 /ash | |
parent | 3c448301fa795630a3a79f8cb10fd2f922c70843 (diff) | |
download | chromium_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.cc | 3 | ||||
-rw-r--r-- | ash/ash_switches.h | 1 | ||||
-rw-r--r-- | ash/autoclick/autoclick_controller.cc | 26 | ||||
-rw-r--r-- | ash/autoclick/autoclick_controller.h | 18 | ||||
-rw-r--r-- | ash/autoclick/autoclick_unittest.cc | 2 |
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); |