diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-08 17:27:46 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-08 17:27:46 +0000 |
commit | b4e05f2c9d52f1f5ebce1d50cdbcdfeb7e4ab8a1 (patch) | |
tree | acde0b212fd31ffb97d6b1d753ecdc9e639d8e3d /chrome/browser/chromeos | |
parent | 5acca2efddcf230cc01cce9e5e1f179a1504e1aa (diff) | |
download | chromium_src-b4e05f2c9d52f1f5ebce1d50cdbcdfeb7e4ab8a1.zip chromium_src-b4e05f2c9d52f1f5ebce1d50cdbcdfeb7e4ab8a1.tar.gz chromium_src-b4e05f2c9d52f1f5ebce1d50cdbcdfeb7e4ab8a1.tar.bz2 |
Use new touchpad api
BUG=chromium-os:4727,chromium-os:2863
TEST=Confirm that the UI only shows 2 settings (tap-to-click and sensitivity)
Confirm that the settings work on both x86-generic and x86-dogfood builds.
Review URL: http://codereview.chromium.org/3315016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58842 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r-- | chrome/browser/chromeos/cros/cros_library.cc | 16 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/cros_library.h | 14 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/cros_mock.cc | 36 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/cros_mock.h | 12 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/mock_synaptics_library.h | 25 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/mock_touchpad_library.h | 25 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/synaptics_library.cc | 65 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/synaptics_library.h | 37 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/touchpad_library.cc | 56 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/touchpad_library.h | 30 | ||||
-rw-r--r-- | chrome/browser/chromeos/dom_ui/system_options_handler.cc | 5 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/login_browsertest.cc | 6 | ||||
-rw-r--r-- | chrome/browser/chromeos/options/system_page_view.cc | 55 | ||||
-rw-r--r-- | chrome/browser/chromeos/preferences.cc | 26 |
14 files changed, 161 insertions, 247 deletions
diff --git a/chrome/browser/chromeos/cros/cros_library.cc b/chrome/browser/chromeos/cros/cros_library.cc index acee452..8b783f6 100644 --- a/chrome/browser/chromeos/cros/cros_library.cc +++ b/chrome/browser/chromeos/cros/cros_library.cc @@ -15,9 +15,9 @@ #include "chrome/browser/chromeos/cros/power_library.h" #include "chrome/browser/chromeos/cros/screen_lock_library.h" #include "chrome/browser/chromeos/cros/speech_synthesis_library.h" -#include "chrome/browser/chromeos/cros/synaptics_library.h" #include "chrome/browser/chromeos/cros/syslogs_library.h" #include "chrome/browser/chromeos/cros/system_library.h" +#include "chrome/browser/chromeos/cros/touchpad_library.h" #include "chrome/browser/chromeos/cros/update_library.h" namespace chromeos { @@ -80,10 +80,6 @@ SpeechSynthesisLibrary* CrosLibrary::GetSpeechSynthesisLibrary() { return speech_synthesis_lib_.GetDefaultImpl(use_stub_impl_); } -SynapticsLibrary* CrosLibrary::GetSynapticsLibrary() { - return synaptics_lib_.GetDefaultImpl(use_stub_impl_); -} - SyslogsLibrary* CrosLibrary::GetSyslogsLibrary() { return syslogs_lib_.GetDefaultImpl(use_stub_impl_); } @@ -92,6 +88,10 @@ SystemLibrary* CrosLibrary::GetSystemLibrary() { return system_lib_.GetDefaultImpl(use_stub_impl_); } +TouchpadLibrary* CrosLibrary::GetTouchpadLibrary() { + return touchpad_lib_.GetDefaultImpl(use_stub_impl_); +} + UpdateLibrary* CrosLibrary::GetUpdateLibrary() { return update_lib_.GetDefaultImpl(use_stub_impl_); } @@ -184,9 +184,9 @@ void CrosLibrary::TestApi::SetSpeechSynthesisLibrary( library_->speech_synthesis_lib_.SetImpl(library, own); } -void CrosLibrary::TestApi::SetSynapticsLibrary( - SynapticsLibrary* library, bool own) { - library_->synaptics_lib_.SetImpl(library, own); +void CrosLibrary::TestApi::SetTouchpadLibrary( + TouchpadLibrary* library, bool own) { + library_->touchpad_lib_.SetImpl(library, own); } void CrosLibrary::TestApi::SetSyslogsLibrary( diff --git a/chrome/browser/chromeos/cros/cros_library.h b/chrome/browser/chromeos/cros/cros_library.h index 7b32930..d73b223 100644 --- a/chrome/browser/chromeos/cros/cros_library.h +++ b/chrome/browser/chromeos/cros/cros_library.h @@ -23,9 +23,9 @@ class NetworkLibrary; class PowerLibrary; class ScreenLockLibrary; class SpeechSynthesisLibrary; -class SynapticsLibrary; class SyslogsLibrary; class SystemLibrary; +class TouchpadLibrary; class UpdateLibrary; // This class handles access to sub-parts of ChromeOS library. it provides @@ -65,12 +65,12 @@ class CrosLibrary { void SetScreenLockLibrary(ScreenLockLibrary* library, bool own); // Setter for SpeechSynthesisLibrary. void SetSpeechSynthesisLibrary(SpeechSynthesisLibrary* library, bool own); - // Setter for SynapticsLibrary. - void SetSynapticsLibrary(SynapticsLibrary* library, bool own); // Setter for SyslogsLibrary. void SetSyslogsLibrary(SyslogsLibrary* library, bool own); // Setter for SystemLibrary. void SetSystemLibrary(SystemLibrary* library, bool own); + // Setter for TouchpadLibrary. + void SetTouchpadLibrary(TouchpadLibrary* library, bool own); // Setter for UpdateLibrary. void SetUpdateLibrary(UpdateLibrary* library, bool own); @@ -113,15 +113,15 @@ class CrosLibrary { // This gets the singleton SpeechSynthesisLibrary. SpeechSynthesisLibrary* GetSpeechSynthesisLibrary(); - // This gets the singleton SynapticsLibrary. - SynapticsLibrary* GetSynapticsLibrary(); - // This gets the singleton SyslogsLibrary. SyslogsLibrary* GetSyslogsLibrary(); // This gets the singleton SystemLibrary. SystemLibrary* GetSystemLibrary(); + // This gets the singleton TouchpadLibrary. + TouchpadLibrary* GetTouchpadLibrary(); + // This gets the singleton UpdateLibrary. UpdateLibrary* GetUpdateLibrary(); @@ -192,9 +192,9 @@ class CrosLibrary { Library<PowerLibrary> power_lib_; Library<ScreenLockLibrary> screen_lock_lib_; Library<SpeechSynthesisLibrary> speech_synthesis_lib_; - Library<SynapticsLibrary> synaptics_lib_; Library<SyslogsLibrary> syslogs_lib_; Library<SystemLibrary> system_lib_; + Library<TouchpadLibrary> touchpad_lib_; Library<UpdateLibrary> update_lib_; // Stub implementations of the libraries should be used. diff --git a/chrome/browser/chromeos/cros/cros_mock.cc b/chrome/browser/chromeos/cros/cros_mock.cc index 74e3048..3f8400b 100644 --- a/chrome/browser/chromeos/cros/cros_mock.cc +++ b/chrome/browser/chromeos/cros/cros_mock.cc @@ -17,8 +17,8 @@ #include "chrome/browser/chromeos/cros/mock_power_library.h" #include "chrome/browser/chromeos/cros/mock_screen_lock_library.h" #include "chrome/browser/chromeos/cros/mock_speech_synthesis_library.h" -#include "chrome/browser/chromeos/cros/mock_synaptics_library.h" #include "chrome/browser/chromeos/cros/mock_system_library.h" +#include "chrome/browser/chromeos/cros/mock_touchpad_library.h" #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/chromeos/login/wizard_screen.h" #include "chrome/test/in_process_browser_test.h" @@ -44,8 +44,8 @@ CrosMock::CrosMock() mock_power_library_(NULL), mock_screen_lock_library_(NULL), mock_speech_synthesis_library_(NULL), - mock_synaptics_library_(NULL), - mock_system_library_(NULL) {} + mock_system_library_(NULL), + mock_touchpad_library_(NULL) {} CrosMock::~CrosMock() { } @@ -59,7 +59,7 @@ void CrosMock::InitStatusAreaMocks() { InitMockInputMethodLibrary(); InitMockNetworkLibrary(); InitMockPowerLibrary(); - InitMockSynapticsLibrary(); + InitMockTouchpadLibrary(); InitMockSystemLibrary(); } @@ -130,12 +130,12 @@ void CrosMock::InitMockSpeechSynthesisLibrary() { test_api()->SetSpeechSynthesisLibrary(mock_speech_synthesis_library_, true); } -void CrosMock::InitMockSynapticsLibrary() { +void CrosMock::InitMockTouchpadLibrary() { InitMockLibraryLoader(); - if (mock_synaptics_library_) + if (mock_touchpad_library_) return; - mock_synaptics_library_ = new StrictMock<MockSynapticsLibrary>(); - test_api()->SetSynapticsLibrary(mock_synaptics_library_, true); + mock_touchpad_library_ = new StrictMock<MockTouchpadLibrary>(); + test_api()->SetTouchpadLibrary(mock_touchpad_library_, true); } void CrosMock::InitMockSystemLibrary() { @@ -175,20 +175,20 @@ MockSpeechSynthesisLibrary* CrosMock::mock_speech_synthesis_library() { return mock_speech_synthesis_library_; } -MockSynapticsLibrary* CrosMock::mock_synaptics_library() { - return mock_synaptics_library_; -} - MockSystemLibrary* CrosMock::mock_system_library() { return mock_system_library_; } +MockTouchpadLibrary* CrosMock::mock_touchpad_library() { + return mock_touchpad_library_; +} + void CrosMock::SetStatusAreaMocksExpectations() { SetKeyboardLibraryStatusAreaExpectations(); SetInputMethodLibraryStatusAreaExpectations(); SetNetworkLibraryStatusAreaExpectations(); SetPowerLibraryStatusAreaExpectations(); - SetSynapticsLibraryExpectations(); + SetTouchpadLibraryExpectations(); SetSystemLibraryStatusAreaExpectations(); } @@ -363,10 +363,10 @@ void CrosMock::SetSystemLibraryStatusAreaExpectations() { .RetiresOnSaturation(); } -void CrosMock::SetSynapticsLibraryExpectations() { - EXPECT_CALL(*mock_synaptics_library_, SetBoolParameter(_, _)) +void CrosMock::SetTouchpadLibraryExpectations() { + EXPECT_CALL(*mock_touchpad_library_, SetSensitivity(_)) .Times(AnyNumber()); - EXPECT_CALL(*mock_synaptics_library_, SetRangeParameter(_, _)) + EXPECT_CALL(*mock_touchpad_library_, SetTapToClick(_)) .Times(AnyNumber()); } @@ -395,10 +395,10 @@ void CrosMock::TearDownMocks() { test_api()->SetScreenLockLibrary(NULL, false); if (mock_speech_synthesis_library_) test_api()->SetSpeechSynthesisLibrary(NULL, false); - if (mock_synaptics_library_) - test_api()->SetSynapticsLibrary(NULL, false); if (mock_system_library_) test_api()->SetSystemLibrary(NULL, false); + if (mock_touchpad_library_) + test_api()->SetTouchpadLibrary(NULL, false); } } // namespace chromeos diff --git a/chrome/browser/chromeos/cros/cros_mock.h b/chrome/browser/chromeos/cros/cros_mock.h index 279de70..5770140 100644 --- a/chrome/browser/chromeos/cros/cros_mock.h +++ b/chrome/browser/chromeos/cros/cros_mock.h @@ -19,8 +19,8 @@ class MockNetworkLibrary; class MockPowerLibrary; class MockScreenLockLibrary; class MockSpeechSynthesisLibrary; -class MockSynapticsLibrary; class MockSystemLibrary; +class MockTouchpadLibrary; // Class for initializing mocks for some parts of CrosLibrary. Once you mock // part of CrosLibrary it will be considered as successfully loaded and @@ -33,7 +33,7 @@ class CrosMock { virtual ~CrosMock(); // This method sets up basic mocks that are used by status area items: - // LibraryLoader, Language, Network, Power, Synaptics libraries. + // LibraryLoader, Language, Network, Power, Touchpad libraries. // Add a call to this method at the beginning of your // SetUpInProcessBrowserTestFixture. void InitStatusAreaMocks(); @@ -50,7 +50,7 @@ class CrosMock { void InitMockPowerLibrary(); void InitMockScreenLockLibrary(); void InitMockSpeechSynthesisLibrary(); - void InitMockSynapticsLibrary(); + void InitMockTouchpadLibrary(); void InitMockSystemLibrary(); // Get mocks. @@ -61,8 +61,8 @@ class CrosMock { MockPowerLibrary* mock_power_library(); MockScreenLockLibrary* mock_screen_lock_library(); MockSpeechSynthesisLibrary* mock_speech_synthesis_library(); - MockSynapticsLibrary* mock_synaptics_library(); MockSystemLibrary* mock_system_library(); + MockTouchpadLibrary* mock_touchpad_library(); // This method sets up corresponding expectations for basic mocks that // are used by status area items. @@ -79,8 +79,8 @@ class CrosMock { void SetPowerLibraryStatusAreaExpectations(); void SetSpeechSynthesisLibraryExpectations(); void SetSystemLibraryStatusAreaExpectations(); - void SetSynapticsLibraryExpectations(); void SetSystemLibraryExpectations(); + void SetTouchpadLibraryExpectations(); void TearDownMocks(); @@ -97,8 +97,8 @@ class CrosMock { MockPowerLibrary* mock_power_library_; MockScreenLockLibrary* mock_screen_lock_library_; MockSpeechSynthesisLibrary* mock_speech_synthesis_library_; - MockSynapticsLibrary* mock_synaptics_library_; MockSystemLibrary* mock_system_library_; + MockTouchpadLibrary* mock_touchpad_library_; ImePropertyList ime_properties_; DISALLOW_COPY_AND_ASSIGN(CrosMock); diff --git a/chrome/browser/chromeos/cros/mock_synaptics_library.h b/chrome/browser/chromeos/cros/mock_synaptics_library.h deleted file mode 100644 index ba4e571..0000000 --- a/chrome/browser/chromeos/cros/mock_synaptics_library.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_CHROMEOS_CROS_MOCK_SYNAPTICS_LIBRARY_H_ -#define CHROME_BROWSER_CHROMEOS_CROS_MOCK_SYNAPTICS_LIBRARY_H_ -#pragma once - -#include "chrome/browser/chromeos/cros/synaptics_library.h" -#include "testing/gmock/include/gmock/gmock.h" - -namespace chromeos { - -class MockSynapticsLibrary : public SynapticsLibrary { - public: - MockSynapticsLibrary() {} - virtual ~MockSynapticsLibrary() {} - MOCK_METHOD2(SetBoolParameter, void(SynapticsParameter, bool)); - MOCK_METHOD2(SetRangeParameter, void(SynapticsParameter, int)); -}; - -} // namespace chromeos - -#endif // CHROME_BROWSER_CHROMEOS_CROS_MOCK_SYNAPTICS_LIBRARY_H_ - diff --git a/chrome/browser/chromeos/cros/mock_touchpad_library.h b/chrome/browser/chromeos/cros/mock_touchpad_library.h new file mode 100644 index 0000000..8758784 --- /dev/null +++ b/chrome/browser/chromeos/cros/mock_touchpad_library.h @@ -0,0 +1,25 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_CROS_MOCK_TOUCHPAD_LIBRARY_H_ +#define CHROME_BROWSER_CHROMEOS_CROS_MOCK_TOUCHPAD_LIBRARY_H_ +#pragma once + +#include "chrome/browser/chromeos/cros/touchpad_library.h" +#include "testing/gmock/include/gmock/gmock.h" + +namespace chromeos { + +class MockTouchpadLibrary : public TouchpadLibrary { + public: + MockTouchpadLibrary() {} + virtual ~MockTouchpadLibrary() {} + MOCK_METHOD1(SetSensitivity, void(int)); + MOCK_METHOD1(SetTapToClick, void(bool)); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_CROS_MOCK_TOUCHPAD_LIBRARY_H_ + diff --git a/chrome/browser/chromeos/cros/synaptics_library.cc b/chrome/browser/chromeos/cros/synaptics_library.cc deleted file mode 100644 index 25353ba..0000000 --- a/chrome/browser/chromeos/cros/synaptics_library.cc +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/chromeos/cros/synaptics_library.h" - -#include "base/message_loop.h" -#include "chrome/browser/chrome_thread.h" -#include "chrome/browser/chromeos/cros/cros_library.h" - -namespace chromeos { - -class SynapticsLibraryImpl : public SynapticsLibrary { - public: - SynapticsLibraryImpl() {} - virtual ~SynapticsLibraryImpl() {} - - void SetBoolParameter(SynapticsParameter param, bool value) { - SetParameter(param, value ? 1 : 0); - } - - void SetRangeParameter(SynapticsParameter param, int value) { - if (value < 1) - value = 1; - if (value > 10) - value = 10; - SetParameter(param, value); - } - - private: - // This helper methods calls into the libcros library to set the parameter. - // This call is run on the FILE thread. - void SetParameter(SynapticsParameter param, int value) { - if (CrosLibrary::Get()->EnsureLoaded()) { - // This calls SetSynapticsParameter in the cros library which is - // potentially time consuming. So we run this on the FILE thread. - ChromeThread::PostTask( - ChromeThread::FILE, FROM_HERE, - NewRunnableFunction(&SetSynapticsParameter, param, value)); - } - } - - DISALLOW_COPY_AND_ASSIGN(SynapticsLibraryImpl); -}; - -class SynapticsLibraryStubImpl : public SynapticsLibrary { - public: - SynapticsLibraryStubImpl() {} - virtual ~SynapticsLibraryStubImpl() {} - void SetBoolParameter(SynapticsParameter param, bool value) {} - void SetRangeParameter(SynapticsParameter param, int value) {} - - private: - DISALLOW_COPY_AND_ASSIGN(SynapticsLibraryStubImpl); -}; - -// static -SynapticsLibrary* SynapticsLibrary::GetImpl(bool stub) { - if (stub) - return new SynapticsLibraryStubImpl(); - else - return new SynapticsLibraryImpl(); -} - -} // namespace chromeos diff --git a/chrome/browser/chromeos/cros/synaptics_library.h b/chrome/browser/chromeos/cros/synaptics_library.h deleted file mode 100644 index 20203be..0000000 --- a/chrome/browser/chromeos/cros/synaptics_library.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_CHROMEOS_CROS_SYNAPTICS_LIBRARY_H_ -#define CHROME_BROWSER_CHROMEOS_CROS_SYNAPTICS_LIBRARY_H_ -#pragma once - -#include "base/singleton.h" -#include "cros/chromeos_synaptics.h" - -namespace chromeos { - -// This interface defines interaction with the ChromeOS synaptics library APIs. -// Users can get an instance of this library class like this: -// chromeos::CrosLibrary::Get()->GetSynapticsLibrary() -// For a list of SynapticsPrameters, see chromeos_synaptics.h -// in third_party/cros or /usr/include/cros -class SynapticsLibrary { - public: - virtual ~SynapticsLibrary() {} - // Sets a boolean parameter. The actual call will be run on the FILE thread. - virtual void SetBoolParameter(SynapticsParameter param, bool value) = 0; - - // Sets a range parameter. The actual call will be run on the FILE thread. - // Value should be between 1 and 10 inclusive. - virtual void SetRangeParameter(SynapticsParameter param, int value) = 0; - - // Factory function, creates a new instance and returns ownership. - // For normal usage, access the singleton via CrosLibrary::Get(). - static SynapticsLibrary* GetImpl(bool stub); -}; - - -} // namespace chromeos - -#endif // CHROME_BROWSER_CHROMEOS_CROS_SYNAPTICS_LIBRARY_H_ diff --git a/chrome/browser/chromeos/cros/touchpad_library.cc b/chrome/browser/chromeos/cros/touchpad_library.cc new file mode 100644 index 0000000..62294ea --- /dev/null +++ b/chrome/browser/chromeos/cros/touchpad_library.cc @@ -0,0 +1,56 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/cros/touchpad_library.h" + +#include "base/message_loop.h" +#include "chrome/browser/chrome_thread.h" +#include "chrome/browser/chromeos/cros/cros_library.h" + +namespace chromeos { + +class TouchpadLibraryImpl : public TouchpadLibrary { + public: + TouchpadLibraryImpl() {} + virtual ~TouchpadLibraryImpl() {} + + void SetSensitivity(int value) { + if (CrosLibrary::Get()->EnsureLoaded()) { + ChromeThread::PostTask( + ChromeThread::FILE, FROM_HERE, + NewRunnableFunction(&SetTouchpadSensitivity, value)); + } + } + + void SetTapToClick(bool enabled) { + if (CrosLibrary::Get()->EnsureLoaded()) { + ChromeThread::PostTask( + ChromeThread::FILE, FROM_HERE, + NewRunnableFunction(&SetTouchpadTapToClick, enabled)); + } + } + + DISALLOW_COPY_AND_ASSIGN(TouchpadLibraryImpl); +}; + +class TouchpadLibraryStubImpl : public TouchpadLibrary { + public: + TouchpadLibraryStubImpl() {} + virtual ~TouchpadLibraryStubImpl() {} + void SetSensitivity(int value) {} + void SetTapToClick(bool enabled) {} + + private: + DISALLOW_COPY_AND_ASSIGN(TouchpadLibraryStubImpl); +}; + +// static +TouchpadLibrary* TouchpadLibrary::GetImpl(bool stub) { + if (stub) + return new TouchpadLibraryStubImpl(); + else + return new TouchpadLibraryImpl(); +} + +} // namespace chromeos diff --git a/chrome/browser/chromeos/cros/touchpad_library.h b/chrome/browser/chromeos/cros/touchpad_library.h new file mode 100644 index 0000000..ab5ea39 --- /dev/null +++ b/chrome/browser/chromeos/cros/touchpad_library.h @@ -0,0 +1,30 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_CROS_TOUCHPAD_LIBRARY_H_ +#define CHROME_BROWSER_CHROMEOS_CROS_TOUCHPAD_LIBRARY_H_ +#pragma once + +#include "cros/chromeos_touchpad.h" + +namespace chromeos { + +// This interface defines interaction with the ChromeOS synaptics library APIs. +// Users can get an instance of this library class like this: +// chromeos::CrosLibrary::Get()->GetTouchpadLibrary() +class TouchpadLibrary { + public: + virtual ~TouchpadLibrary() {} + virtual void SetSensitivity(int value) = 0; + virtual void SetTapToClick(bool enabled) = 0; + + // Factory function, creates a new instance and returns ownership. + // For normal usage, access the singleton via CrosLibrary::Get(). + static TouchpadLibrary* GetImpl(bool stub); +}; + + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_CROS_TOUCHPAD_LIBRARY_H_ diff --git a/chrome/browser/chromeos/dom_ui/system_options_handler.cc b/chrome/browser/chromeos/dom_ui/system_options_handler.cc index fd16921..d47c82c 100644 --- a/chrome/browser/chromeos/dom_ui/system_options_handler.cc +++ b/chrome/browser/chromeos/dom_ui/system_options_handler.cc @@ -45,13 +45,8 @@ void SystemOptionsHandler::GetLocalizedValues( localized_strings->SetString("enable_tap_to_click", l10n_util::GetStringUTF16( IDS_OPTIONS_SETTINGS_TAP_TO_CLICK_ENABLED_DESCRIPTION)); - localized_strings->SetString("enable_vert_edge_scroll", - l10n_util::GetStringUTF16( - IDS_OPTIONS_SETTINGS_VERT_EDGE_SCROLL_ENABLED_DESCRIPTION)); localized_strings->SetString("sensitivity", l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_SENSITIVITY_DESCRIPTION)); - localized_strings->SetString("speed_factor", - l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_SPEED_FACTOR_DESCRIPTION)); localized_strings->SetString("language", l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_SECTION_TITLE_LANGUAGE)); diff --git a/chrome/browser/chromeos/login/login_browsertest.cc b/chrome/browser/chromeos/login/login_browsertest.cc index 003261f..613d049 100644 --- a/chrome/browser/chromeos/login/login_browsertest.cc +++ b/chrome/browser/chromeos/login/login_browsertest.cc @@ -14,8 +14,8 @@ #include "chrome/browser/chromeos/cros/mock_network_library.h" #include "chrome/browser/chromeos/cros/mock_power_library.h" #include "chrome/browser/chromeos/cros/mock_screen_lock_library.h" -#include "chrome/browser/chromeos/cros/mock_synaptics_library.h" #include "chrome/browser/chromeos/cros/mock_system_library.h" +#include "chrome/browser/chromeos/cros/mock_touchpad_library.h" #include "chrome/common/chrome_switches.h" #include "chrome/test/in_process_browser_test.h" #include "chrome/test/ui_test_utils.h" @@ -53,7 +53,7 @@ class LoginTestBase : public InProcessBrowserTest { EXPECT_CALL(mock_power_library_, battery_time_to_full()) .WillRepeatedly((Return(base::TimeDelta::FromMinutes(24)))); - testApi_->SetSynapticsLibrary(&mock_synaptics_library_, false); + testApi_->SetTouchpadLibrary(&mock_touchpad_library_, false); testApi_->SetCryptohomeLibrary(&mock_cryptohome_library_, false); testApi_->SetScreenLockLibrary(&mock_screen_lock_library_, false); testApi_->SetSystemLibrary(&mock_system_library_, false); @@ -67,7 +67,7 @@ class LoginTestBase : public InProcessBrowserTest { NiceMock<MockNetworkLibrary> mock_network_library_; NiceMock<MockPowerLibrary> mock_power_library_; NiceMock<MockScreenLockLibrary> mock_screen_lock_library_; - NiceMock<MockSynapticsLibrary> mock_synaptics_library_; + NiceMock<MockTouchpadLibrary> mock_touchpad_library_; NiceMock<MockSystemLibrary> mock_system_library_; ImePropertyList ime_properties_; chromeos::CrosLibrary::TestApi* testApi_; diff --git a/chrome/browser/chromeos/options/system_page_view.cc b/chrome/browser/chromeos/options/system_page_view.cc index 805debe..81707ad 100644 --- a/chrome/browser/chromeos/options/system_page_view.cc +++ b/chrome/browser/chromeos/options/system_page_view.cc @@ -227,14 +227,10 @@ class TouchpadSection : public SettingsPageSection, // Controls for this section: views::Checkbox* enable_tap_to_click_checkbox_; - views::Checkbox* enable_vert_edge_scroll_checkbox_; - views::Slider* speed_factor_slider_; views::Slider* sensitivity_slider_; // Preferences for this section: BooleanPrefMember tap_to_click_enabled_; - BooleanPrefMember vert_edge_scroll_enabled_; - IntegerPrefMember speed_factor_; IntegerPrefMember sensitivity_; DISALLOW_COPY_AND_ASSIGN(TouchpadSection); @@ -243,8 +239,6 @@ class TouchpadSection : public SettingsPageSection, TouchpadSection::TouchpadSection(Profile* profile) : SettingsPageSection(profile, IDS_OPTIONS_SETTINGS_SECTION_TITLE_TOUCHPAD), enable_tap_to_click_checkbox_(NULL), - enable_vert_edge_scroll_checkbox_(NULL), - speed_factor_slider_(NULL), sensitivity_slider_(NULL) { } @@ -257,24 +251,11 @@ void TouchpadSection::ButtonPressed( UserMetricsAction("Options_TapToClickCheckbox_Disable"), profile()->GetPrefs()); tap_to_click_enabled_.SetValue(enabled); - } else if (sender == enable_vert_edge_scroll_checkbox_) { - bool enabled = enable_vert_edge_scroll_checkbox_->checked(); - UserMetricsRecordAction(enabled ? - UserMetricsAction("Options_VertEdgeScrollCheckbox_Enable") : - UserMetricsAction("Options_VertEdgeScrollCheckbox_Disable"), - profile()->GetPrefs()); - vert_edge_scroll_enabled_.SetValue(enabled); } } void TouchpadSection::SliderValueChanged(views::Slider* sender) { - if (sender == speed_factor_slider_) { - double value = speed_factor_slider_->value(); - UserMetricsRecordAction( - UserMetricsAction("Options_SpeedFactorSlider_Changed"), - profile()->GetPrefs()); - speed_factor_.SetValue(value); - } else if (sender == sensitivity_slider_) { + if (sender == sensitivity_slider_) { double value = sensitivity_slider_->value(); UserMetricsRecordAction( UserMetricsAction("Options_SensitivitySlider_Changed"), @@ -288,18 +269,8 @@ void TouchpadSection::InitContents(GridLayout* layout) { IDS_OPTIONS_SETTINGS_TAP_TO_CLICK_ENABLED_DESCRIPTION)); enable_tap_to_click_checkbox_->set_listener(this); enable_tap_to_click_checkbox_->SetMultiLine(true); - enable_vert_edge_scroll_checkbox_ = new views::Checkbox(l10n_util::GetString( - IDS_OPTIONS_SETTINGS_VERT_EDGE_SCROLL_ENABLED_DESCRIPTION)); - enable_vert_edge_scroll_checkbox_->set_listener(this); - enable_vert_edge_scroll_checkbox_->SetMultiLine(true); - // Create speed factor slider with values between 1 and 10 step 1 - speed_factor_slider_ = new views::Slider(1, 10, 1, - static_cast<views::Slider::StyleFlags>( - views::Slider::STYLE_DRAW_VALUE | - views::Slider::STYLE_UPDATE_ON_RELEASE), - this); - // Create sensitivity slider with values between 1 and 10 step 1 - sensitivity_slider_ = new views::Slider(1, 10, 1, + // Create sensitivity slider with values between 1 and 5 step 1 + sensitivity_slider_ = new views::Slider(1, 5, 1, static_cast<views::Slider::StyleFlags>( views::Slider::STYLE_DRAW_VALUE | views::Slider::STYLE_UPDATE_ON_RELEASE), @@ -310,25 +281,13 @@ void TouchpadSection::InitContents(GridLayout* layout) { l10n_util::GetString(IDS_OPTIONS_SETTINGS_SENSITIVITY_DESCRIPTION))); layout->AddView(sensitivity_slider_); layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); - layout->StartRow(0, double_column_view_set_id()); - layout->AddView(new views::Label( - l10n_util::GetString(IDS_OPTIONS_SETTINGS_SPEED_FACTOR_DESCRIPTION))); - layout->AddView(speed_factor_slider_); - layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); layout->StartRow(0, single_column_view_set_id()); layout->AddView(enable_tap_to_click_checkbox_); - layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); - layout->StartRow(0, single_column_view_set_id()); - layout->AddView(enable_vert_edge_scroll_checkbox_); layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); // Init member prefs so we can update the controls if prefs change. tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, profile()->GetPrefs(), this); - vert_edge_scroll_enabled_.Init(prefs::kVertEdgeScrollEnabled, - profile()->GetPrefs(), this); - speed_factor_.Init(prefs::kTouchpadSpeedFactor, - profile()->GetPrefs(), this); sensitivity_.Init(prefs::kTouchpadSensitivity, profile()->GetPrefs(), this); } @@ -338,14 +297,6 @@ void TouchpadSection::NotifyPrefChanged(const std::string* pref_name) { bool enabled = tap_to_click_enabled_.GetValue(); enable_tap_to_click_checkbox_->SetChecked(enabled); } - if (!pref_name || *pref_name == prefs::kVertEdgeScrollEnabled) { - bool enabled = vert_edge_scroll_enabled_.GetValue(); - enable_vert_edge_scroll_checkbox_->SetChecked(enabled); - } - if (!pref_name || *pref_name == prefs::kTouchpadSpeedFactor) { - double value = speed_factor_.GetValue(); - speed_factor_slider_->SetValue(value); - } if (!pref_name || *pref_name == prefs::kTouchpadSensitivity) { double value = sensitivity_.GetValue(); sensitivity_slider_->SetValue(value); diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc index 4f2dff1..9f90e2a 100644 --- a/chrome/browser/chromeos/preferences.cc +++ b/chrome/browser/chromeos/preferences.cc @@ -10,7 +10,7 @@ #include "chrome/browser/chromeos/cros/cros_library.h" #include "chrome/browser/chromeos/cros/keyboard_library.h" #include "chrome/browser/chromeos/cros/input_method_library.h" -#include "chrome/browser/chromeos/cros/synaptics_library.h" +#include "chrome/browser/chromeos/cros/touchpad_library.h" #include "chrome/browser/chromeos/input_method/input_method_util.h" #include "chrome/browser/prefs/pref_member.h" #include "chrome/browser/prefs/pref_service.h" @@ -27,9 +27,7 @@ void Preferences::RegisterUserPrefs(PrefService* prefs) { prefs->RegisterBooleanPref(prefs::kTapToClickEnabled, false); prefs->RegisterBooleanPref(prefs::kLabsMediaplayerEnabled, false); prefs->RegisterBooleanPref(prefs::kLabsAdvancedFilesystemEnabled, false); - prefs->RegisterBooleanPref(prefs::kVertEdgeScrollEnabled, false); - prefs->RegisterIntegerPref(prefs::kTouchpadSpeedFactor, 9); - prefs->RegisterIntegerPref(prefs::kTouchpadSensitivity, 5); + prefs->RegisterIntegerPref(prefs::kTouchpadSensitivity, 3); prefs->RegisterStringPref(prefs::kLanguageCurrentInputMethod, ""); prefs->RegisterStringPref(prefs::kLanguagePreviousInputMethod, ""); prefs->RegisterStringPref(prefs::kLanguageHotkeyNextEngineInMenu, @@ -107,8 +105,6 @@ void Preferences::RegisterUserPrefs(PrefService* prefs) { void Preferences::Init(PrefService* prefs) { tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, this); accessibility_enabled_.Init(prefs::kAccessibilityEnabled, prefs, this); - vert_edge_scroll_enabled_.Init(prefs::kVertEdgeScrollEnabled, prefs, this); - speed_factor_.Init(prefs::kTouchpadSpeedFactor, prefs, this); sensitivity_.Init(prefs::kTouchpadSensitivity, prefs, this); language_hotkey_next_engine_in_menu_.Init( prefs::kLanguageHotkeyNextEngineInMenu, prefs, this); @@ -182,24 +178,12 @@ void Preferences::Observe(NotificationType type, void Preferences::NotifyPrefChanged(const std::string* pref_name) { if (!pref_name || *pref_name == prefs::kTapToClickEnabled) { - CrosLibrary::Get()->GetSynapticsLibrary()->SetBoolParameter( - PARAM_BOOL_TAP_TO_CLICK, + CrosLibrary::Get()->GetTouchpadLibrary()->SetTapToClick( tap_to_click_enabled_.GetValue()); } - if (!pref_name || *pref_name == prefs::kVertEdgeScrollEnabled) { - CrosLibrary::Get()->GetSynapticsLibrary()->SetBoolParameter( - PARAM_BOOL_VERTICAL_EDGE_SCROLLING, - vert_edge_scroll_enabled_.GetValue()); - } - if (!pref_name || *pref_name == prefs::kTouchpadSpeedFactor) { - CrosLibrary::Get()->GetSynapticsLibrary()->SetRangeParameter( - PARAM_RANGE_SPEED_SENSITIVITY, - speed_factor_.GetValue()); - } if (!pref_name || *pref_name == prefs::kTouchpadSensitivity) { - CrosLibrary::Get()->GetSynapticsLibrary()->SetRangeParameter( - PARAM_RANGE_TOUCH_SENSITIVITY, - sensitivity_.GetValue()); + CrosLibrary::Get()->GetTouchpadLibrary()->SetSensitivity( + sensitivity_.GetValue()); } // We don't handle prefs::kLanguageCurrentInputMethod and PreviousInputMethod |