| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |