Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(727)

Side by Side Diff: chrome/browser/chromeos/settings_contents_view.cc

Issue 211002: Add touchpad speed factor setting to Chrome OS touchpad settings page... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | chrome/browser/chromeos/touchpad.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/settings_contents_view.h" 5 #include "chrome/browser/chromeos/settings_contents_view.h"
6 6
7 #include <map> 7 #include <map>
8 #include <vector> 8 #include <vector>
9 9
10 #include "app/combobox_model.h" 10 #include "app/combobox_model.h"
11 #include "app/l10n_util.h" 11 #include "app/l10n_util.h"
12 #include "app/resource_bundle.h" 12 #include "app/resource_bundle.h"
13 #include "base/basictypes.h" 13 #include "base/basictypes.h"
14 #include "base/string_util.h" 14 #include "base/string_util.h"
15 #include "chrome/common/pref_member.h" 15 #include "chrome/common/pref_member.h"
16 #include "chrome/common/pref_names.h" 16 #include "chrome/common/pref_names.h"
17 #include "grit/chromium_strings.h" 17 #include "grit/chromium_strings.h"
18 #include "grit/generated_resources.h" 18 #include "grit/generated_resources.h"
19 #include "grit/locale_settings.h" 19 #include "grit/locale_settings.h"
20 #include "views/background.h" 20 #include "views/background.h"
21 #include "views/controls/button/checkbox.h" 21 #include "views/controls/button/checkbox.h"
22 #include "views/controls/combobox/combobox.h" 22 #include "views/controls/combobox/combobox.h"
23 #include "views/controls/slider/slider.h"
23 #include "views/controls/textfield/textfield.h" 24 #include "views/controls/textfield/textfield.h"
24 #include "views/grid_layout.h" 25 #include "views/grid_layout.h"
25 #include "views/standard_layout.h" 26 #include "views/standard_layout.h"
26 #include "views/window/dialog_delegate.h" 27 #include "views/window/dialog_delegate.h"
27 #include "views/window/window.h" 28 #include "views/window/window.h"
28 29
29 using views::GridLayout; 30 using views::GridLayout;
30 using views::ColumnSet; 31 using views::ColumnSet;
31 32
32 namespace { 33 namespace {
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 348
348 layout->StartRow(0, single_column_view_set_id); 349 layout->StartRow(0, single_column_view_set_id);
349 layout->AddView(wifi_ssid_combobox_); 350 layout->AddView(wifi_ssid_combobox_);
350 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); 351 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
351 } 352 }
352 353
353 //////////////////////////////////////////////////////////////////////////////// 354 ////////////////////////////////////////////////////////////////////////////////
354 // TouchpadSection 355 // TouchpadSection
355 356
356 class TouchpadSection : public OptionsPageView, 357 class TouchpadSection : public OptionsPageView,
357 public views::ButtonListener { 358 public views::ButtonListener,
359 public views::SliderListener {
358 public: 360 public:
359 explicit TouchpadSection(Profile* profile); 361 explicit TouchpadSection(Profile* profile);
360 virtual ~TouchpadSection() {} 362 virtual ~TouchpadSection() {}
361 363
362 // Overridden from views::ButtonListener: 364 // Overridden from views::ButtonListener:
363 virtual void ButtonPressed(views::Button* sender, const views::Event& event); 365 virtual void ButtonPressed(views::Button* sender, const views::Event& event);
364 366
367 // Overridden from views::SliderListener:
368 virtual void SliderValueChanged(views::Slider* sender);
369
365 protected: 370 protected:
366 // OptionsPageView overrides: 371 // OptionsPageView overrides:
367 virtual void InitControlLayout(); 372 virtual void InitControlLayout();
368 virtual void InitContents(); 373 virtual void InitContents();
369 virtual void NotifyPrefChanged(const std::wstring* pref_name); 374 virtual void NotifyPrefChanged(const std::wstring* pref_name);
370 375
371 private: 376 private:
372 // The View that contains the contents of the section. 377 // The View that contains the contents of the section.
373 views::View* contents_; 378 views::View* contents_;
374 379
375 // Controls for this section: 380 // Controls for this section:
376 views::Checkbox* enable_tap_to_click_checkbox_; 381 views::Checkbox* enable_tap_to_click_checkbox_;
377 views::Checkbox* enable_vert_edge_scroll_checkbox_; 382 views::Checkbox* enable_vert_edge_scroll_checkbox_;
383 views::Slider* speed_factor_slider_;
378 384
379 // Preferences for this section: 385 // Preferences for this section:
380 BooleanPrefMember tap_to_click_enabled_; 386 BooleanPrefMember tap_to_click_enabled_;
381 BooleanPrefMember vert_edge_scroll_enabled_; 387 BooleanPrefMember vert_edge_scroll_enabled_;
388 RealPrefMember speed_factor_;
382 389
383 DISALLOW_COPY_AND_ASSIGN(TouchpadSection); 390 DISALLOW_COPY_AND_ASSIGN(TouchpadSection);
384 }; 391 };
385 392
386 TouchpadSection::TouchpadSection(Profile* profile) 393 TouchpadSection::TouchpadSection(Profile* profile)
387 : OptionsPageView(profile), 394 : OptionsPageView(profile),
388 contents_(NULL), 395 contents_(NULL),
389 enable_tap_to_click_checkbox_(NULL), 396 enable_tap_to_click_checkbox_(NULL),
390 enable_vert_edge_scroll_checkbox_(NULL) { 397 enable_vert_edge_scroll_checkbox_(NULL),
398 speed_factor_slider_(NULL) {
391 } 399 }
392 400
393 void TouchpadSection::ButtonPressed( 401 void TouchpadSection::ButtonPressed(
394 views::Button* sender, const views::Event& event) { 402 views::Button* sender, const views::Event& event) {
395 if (sender == enable_tap_to_click_checkbox_) { 403 if (sender == enable_tap_to_click_checkbox_) {
396 bool enabled = enable_tap_to_click_checkbox_->checked(); 404 bool enabled = enable_tap_to_click_checkbox_->checked();
397 UserMetricsRecordAction(enabled ? 405 UserMetricsRecordAction(enabled ?
398 L"Options_TapToClickCheckbox_Enable" : 406 L"Options_TapToClickCheckbox_Enable" :
399 L"Options_TapToClickCheckbox_Disable", 407 L"Options_TapToClickCheckbox_Disable",
400 profile()->GetPrefs()); 408 profile()->GetPrefs());
401 tap_to_click_enabled_.SetValue(enabled); 409 tap_to_click_enabled_.SetValue(enabled);
402 } else if (sender == enable_vert_edge_scroll_checkbox_) { 410 } else if (sender == enable_vert_edge_scroll_checkbox_) {
403 bool enabled = enable_vert_edge_scroll_checkbox_->checked(); 411 bool enabled = enable_vert_edge_scroll_checkbox_->checked();
404 UserMetricsRecordAction(enabled ? 412 UserMetricsRecordAction(enabled ?
405 L"Options_VertEdgeScrollCheckbox_Enable" : 413 L"Options_VertEdgeScrollCheckbox_Enable" :
406 L"Options_VertEdgeScrollCheckbox_Disable", 414 L"Options_VertEdgeScrollCheckbox_Disable",
407 profile()->GetPrefs()); 415 profile()->GetPrefs());
408 vert_edge_scroll_enabled_.SetValue(enabled); 416 vert_edge_scroll_enabled_.SetValue(enabled);
409 } 417 }
410 } 418 }
411 419
420 void TouchpadSection::SliderValueChanged(views::Slider* sender) {
421 if (sender == speed_factor_slider_) {
422 double value = speed_factor_slider_->value();
423 UserMetricsRecordAction(L"Options_SpeedFactorSlider_Changed",
424 profile()->GetPrefs());
425 speed_factor_.SetValue(value);
426 }
427 }
428
412 void TouchpadSection::InitControlLayout() { 429 void TouchpadSection::InitControlLayout() {
413 GridLayout* layout = new GridLayout(this); 430 GridLayout* layout = new GridLayout(this);
414 SetLayoutManager(layout); 431 SetLayoutManager(layout);
415 432
416 int single_column_layout_id = 0; 433 int single_column_layout_id = 0;
417 ColumnSet* column_set = layout->AddColumnSet(single_column_layout_id); 434 ColumnSet* column_set = layout->AddColumnSet(single_column_layout_id);
418 column_set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, 0, 435 column_set->AddColumn(GridLayout::LEADING, GridLayout::LEADING, 0,
419 GridLayout::USE_PREF, 0, 0); 436 GridLayout::USE_PREF, 0, 0);
420 int inset_column_layout_id = 1; 437 int inset_column_layout_id = 1;
421 column_set = layout->AddColumnSet(inset_column_layout_id); 438 column_set = layout->AddColumnSet(inset_column_layout_id);
(...skipping 21 matching lines...) Expand all
443 contents_->SetLayoutManager(layout); 460 contents_->SetLayoutManager(layout);
444 461
445 enable_tap_to_click_checkbox_ = new views::Checkbox(l10n_util::GetString( 462 enable_tap_to_click_checkbox_ = new views::Checkbox(l10n_util::GetString(
446 IDS_OPTIONS_SETTINGS_TAP_TO_CLICK_ENABLED_DESCRIPTION)); 463 IDS_OPTIONS_SETTINGS_TAP_TO_CLICK_ENABLED_DESCRIPTION));
447 enable_tap_to_click_checkbox_->set_listener(this); 464 enable_tap_to_click_checkbox_->set_listener(this);
448 enable_tap_to_click_checkbox_->SetMultiLine(true); 465 enable_tap_to_click_checkbox_->SetMultiLine(true);
449 enable_vert_edge_scroll_checkbox_ = new views::Checkbox(l10n_util::GetString( 466 enable_vert_edge_scroll_checkbox_ = new views::Checkbox(l10n_util::GetString(
450 IDS_OPTIONS_SETTINGS_VERT_EDGE_SCROLL_ENABLED_DESCRIPTION)); 467 IDS_OPTIONS_SETTINGS_VERT_EDGE_SCROLL_ENABLED_DESCRIPTION));
451 enable_vert_edge_scroll_checkbox_->set_listener(this); 468 enable_vert_edge_scroll_checkbox_->set_listener(this);
452 enable_vert_edge_scroll_checkbox_->SetMultiLine(true); 469 enable_vert_edge_scroll_checkbox_->SetMultiLine(true);
470 // Create speed factor slider with values between 0.1 and 1.0 step 0.1
471 speed_factor_slider_ = new views::Slider(0.1, 1.0, 0.1,
472 static_cast<views::Slider::StyleFlags>(
473 views::Slider::STYLE_DRAW_VALUE |
474 views::Slider::STYLE_ONE_DIGIT |
475 views::Slider::STYLE_UPDATE_ON_RELEASE),
476 this);
453 477
454 int single_column_view_set_id = 0; 478 int single_column_view_set_id = 0;
455 ColumnSet* column_set = layout->AddColumnSet(single_column_view_set_id); 479 ColumnSet* column_set = layout->AddColumnSet(single_column_view_set_id);
456 column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 1, 480 column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 1,
457 GridLayout::USE_PREF, 0, 0); 481 GridLayout::USE_PREF, 0, 0);
458 482
483 int double_column_view_set_id = 1;
484 column_set = layout->AddColumnSet(double_column_view_set_id);
485 column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 0,
486 GridLayout::USE_PREF, 0, 0);
487 column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing);
488 column_set->AddColumn(GridLayout::FILL, GridLayout::CENTER, 1,
489 GridLayout::USE_PREF, 0, 0);
490
491 layout->StartRow(0, double_column_view_set_id);
492 layout->AddView(new views::Label(
493 l10n_util::GetString(IDS_OPTIONS_SETTINGS_SPEED_FACTOR_DESCRIPTION)));
494 layout->AddView(speed_factor_slider_);
495 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
459 layout->StartRow(0, single_column_view_set_id); 496 layout->StartRow(0, single_column_view_set_id);
460 layout->AddView(enable_tap_to_click_checkbox_); 497 layout->AddView(enable_tap_to_click_checkbox_);
461 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); 498 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
462 layout->StartRow(0, single_column_view_set_id); 499 layout->StartRow(0, single_column_view_set_id);
463 layout->AddView(enable_vert_edge_scroll_checkbox_); 500 layout->AddView(enable_vert_edge_scroll_checkbox_);
464 layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); 501 layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing);
465 502
466 // Init member prefs so we can update the controls if prefs change. 503 // Init member prefs so we can update the controls if prefs change.
467 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, 504 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled,
468 profile()->GetPrefs(), this); 505 profile()->GetPrefs(), this);
469 vert_edge_scroll_enabled_.Init(prefs::kVertEdgeScrollEnabled, 506 vert_edge_scroll_enabled_.Init(prefs::kVertEdgeScrollEnabled,
470 profile()->GetPrefs(), this); 507 profile()->GetPrefs(), this);
508 speed_factor_.Init(prefs::kTouchpadSpeedFactor,
509 profile()->GetPrefs(), this);
471 } 510 }
472 511
473 void TouchpadSection::NotifyPrefChanged(const std::wstring* pref_name) { 512 void TouchpadSection::NotifyPrefChanged(const std::wstring* pref_name) {
474 if (!pref_name || *pref_name == prefs::kTapToClickEnabled) { 513 if (!pref_name || *pref_name == prefs::kTapToClickEnabled) {
475 bool enabled = tap_to_click_enabled_.GetValue(); 514 bool enabled = tap_to_click_enabled_.GetValue();
476 enable_tap_to_click_checkbox_->SetChecked(enabled); 515 enable_tap_to_click_checkbox_->SetChecked(enabled);
477 } 516 }
478 if (!pref_name || *pref_name == prefs::kVertEdgeScrollEnabled) { 517 if (!pref_name || *pref_name == prefs::kVertEdgeScrollEnabled) {
479 bool enabled = vert_edge_scroll_enabled_.GetValue(); 518 bool enabled = vert_edge_scroll_enabled_.GetValue();
480 enable_vert_edge_scroll_checkbox_->SetChecked(enabled); 519 enable_vert_edge_scroll_checkbox_->SetChecked(enabled);
481 } 520 }
521 if (!pref_name || *pref_name == prefs::kTouchpadSpeedFactor) {
522 double value = speed_factor_.GetValue();
523 speed_factor_slider_->SetValue(value);
524 }
482 } 525 }
483 526
484 } // namespace 527 } // namespace
485 528
486 //////////////////////////////////////////////////////////////////////////////// 529 ////////////////////////////////////////////////////////////////////////////////
487 // SettingsContentsView 530 // SettingsContentsView
488 531
489 //////////////////////////////////////////////////////////////////////////////// 532 ////////////////////////////////////////////////////////////////////////////////
490 // SettingsContentsView, OptionsPageView implementation: 533 // SettingsContentsView, OptionsPageView implementation:
491 534
492 void SettingsContentsView::InitControlLayout() { 535 void SettingsContentsView::InitControlLayout() {
493 GridLayout* layout = CreatePanelGridLayout(this); 536 GridLayout* layout = CreatePanelGridLayout(this);
494 SetLayoutManager(layout); 537 SetLayoutManager(layout);
495 538
496 int single_column_view_set_id = 0; 539 int single_column_view_set_id = 0;
497 ColumnSet* column_set = layout->AddColumnSet(single_column_view_set_id); 540 ColumnSet* column_set = layout->AddColumnSet(single_column_view_set_id);
498 column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1, 541 column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
499 GridLayout::USE_PREF, 0, 0); 542 GridLayout::USE_PREF, 0, 0);
500 543
501 layout->StartRow(0, single_column_view_set_id); 544 layout->StartRow(0, single_column_view_set_id);
502 layout->AddView(new NetworkSection(profile())); 545 layout->AddView(new NetworkSection(profile()));
503 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); 546 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
504 layout->StartRow(0, single_column_view_set_id); 547 layout->StartRow(0, single_column_view_set_id);
505 layout->AddView(new TouchpadSection(profile())); 548 layout->AddView(new TouchpadSection(profile()));
506 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); 549 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
507 } 550 }
OLDNEW
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | chrome/browser/chromeos/touchpad.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698