| Index: chrome/browser/chromeos/settings_contents_view.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/settings_contents_view.cc (revision 26427)
|
| +++ chrome/browser/chromeos/settings_contents_view.cc (working copy)
|
| @@ -20,6 +20,7 @@
|
| #include "views/background.h"
|
| #include "views/controls/button/checkbox.h"
|
| #include "views/controls/combobox/combobox.h"
|
| +#include "views/controls/slider/slider.h"
|
| #include "views/controls/textfield/textfield.h"
|
| #include "views/grid_layout.h"
|
| #include "views/standard_layout.h"
|
| @@ -354,7 +355,8 @@
|
| // TouchpadSection
|
|
|
| class TouchpadSection : public OptionsPageView,
|
| - public views::ButtonListener {
|
| + public views::ButtonListener,
|
| + public views::SliderListener {
|
| public:
|
| explicit TouchpadSection(Profile* profile);
|
| virtual ~TouchpadSection() {}
|
| @@ -362,6 +364,9 @@
|
| // Overridden from views::ButtonListener:
|
| virtual void ButtonPressed(views::Button* sender, const views::Event& event);
|
|
|
| + // Overridden from views::SliderListener:
|
| + virtual void SliderValueChanged(views::Slider* sender);
|
| +
|
| protected:
|
| // OptionsPageView overrides:
|
| virtual void InitControlLayout();
|
| @@ -375,10 +380,12 @@
|
| // Controls for this section:
|
| views::Checkbox* enable_tap_to_click_checkbox_;
|
| views::Checkbox* enable_vert_edge_scroll_checkbox_;
|
| + views::Slider* speed_factor_slider_;
|
|
|
| // Preferences for this section:
|
| BooleanPrefMember tap_to_click_enabled_;
|
| BooleanPrefMember vert_edge_scroll_enabled_;
|
| + RealPrefMember speed_factor_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(TouchpadSection);
|
| };
|
| @@ -387,7 +394,8 @@
|
| : OptionsPageView(profile),
|
| contents_(NULL),
|
| enable_tap_to_click_checkbox_(NULL),
|
| - enable_vert_edge_scroll_checkbox_(NULL) {
|
| + enable_vert_edge_scroll_checkbox_(NULL),
|
| + speed_factor_slider_(NULL) {
|
| }
|
|
|
| void TouchpadSection::ButtonPressed(
|
| @@ -409,6 +417,15 @@
|
| }
|
| }
|
|
|
| +void TouchpadSection::SliderValueChanged(views::Slider* sender) {
|
| + if (sender == speed_factor_slider_) {
|
| + double value = speed_factor_slider_->value();
|
| + UserMetricsRecordAction(L"Options_SpeedFactorSlider_Changed",
|
| + profile()->GetPrefs());
|
| + speed_factor_.SetValue(value);
|
| + }
|
| +}
|
| +
|
| void TouchpadSection::InitControlLayout() {
|
| GridLayout* layout = new GridLayout(this);
|
| SetLayoutManager(layout);
|
| @@ -450,12 +467,32 @@
|
| 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 0.1 and 1.0 step 0.1
|
| + speed_factor_slider_ = new views::Slider(0.1, 1.0, 0.1,
|
| + static_cast<views::Slider::StyleFlags>(
|
| + views::Slider::STYLE_DRAW_VALUE |
|
| + views::Slider::STYLE_ONE_DIGIT |
|
| + views::Slider::STYLE_UPDATE_ON_RELEASE),
|
| + this);
|
|
|
| int single_column_view_set_id = 0;
|
| ColumnSet* column_set = layout->AddColumnSet(single_column_view_set_id);
|
| column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 1,
|
| GridLayout::USE_PREF, 0, 0);
|
|
|
| + int double_column_view_set_id = 1;
|
| + column_set = layout->AddColumnSet(double_column_view_set_id);
|
| + column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 0,
|
| + GridLayout::USE_PREF, 0, 0);
|
| + column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing);
|
| + column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 1,
|
| + GridLayout::USE_PREF, 0, 0);
|
| +
|
| + 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);
|
| @@ -468,6 +505,8 @@
|
| profile()->GetPrefs(), this);
|
| vert_edge_scroll_enabled_.Init(prefs::kVertEdgeScrollEnabled,
|
| profile()->GetPrefs(), this);
|
| + speed_factor_.Init(prefs::kTouchpadSpeedFactor,
|
| + profile()->GetPrefs(), this);
|
| }
|
|
|
| void TouchpadSection::NotifyPrefChanged(const std::wstring* pref_name) {
|
| @@ -479,6 +518,10 @@
|
| 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);
|
| + }
|
| }
|
|
|
| } // namespace
|
|
|