| Index: chrome/browser/chromeos/options/system_page_view.cc
|
| diff --git a/chrome/browser/chromeos/options/system_page_view.cc b/chrome/browser/chromeos/options/system_page_view.cc
|
| deleted file mode 100644
|
| index a77f422b81967a9130ebbd27eae4cb3a49d62143..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/options/system_page_view.cc
|
| +++ /dev/null
|
| @@ -1,402 +0,0 @@
|
| -// Copyright (c) 2011 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/options/system_page_view.h"
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/stl_util-inl.h"
|
| -#include "base/string16.h"
|
| -#include "base/string_util.h"
|
| -#include "base/stringprintf.h"
|
| -#include "base/utf_string_conversions.h"
|
| -#include "chrome/browser/chromeos/cros/cros_library.h"
|
| -#include "chrome/browser/chromeos/cros/keyboard_library.h"
|
| -#include "chrome/browser/chromeos/cros/system_library.h"
|
| -#include "chrome/browser/chromeos/language_preferences.h"
|
| -#include "chrome/browser/chromeos/options/options_window_view.h"
|
| -#include "chrome/browser/prefs/pref_member.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/common/pref_names.h"
|
| -#include "grit/generated_resources.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -#include "ui/base/models/combobox_model.h"
|
| -#include "unicode/timezone.h"
|
| -#include "views/controls/button/checkbox.h"
|
| -#include "views/controls/button/native_button.h"
|
| -#include "views/controls/combobox/combobox.h"
|
| -#include "views/controls/slider/slider.h"
|
| -#include "views/layout/layout_constants.h"
|
| -#include "views/window/window.h"
|
| -
|
| -namespace chromeos {
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -// DateTimeSection
|
| -
|
| -// Date/Time section for datetime settings
|
| -class DateTimeSection : public SettingsPageSection,
|
| - public views::Combobox::Listener,
|
| - public SystemLibrary::Observer {
|
| - public:
|
| - explicit DateTimeSection(Profile* profile);
|
| - virtual ~DateTimeSection();
|
| -
|
| - // Overridden from views::Combobox::Listener:
|
| - virtual void ItemChanged(views::Combobox* sender,
|
| - int prev_index,
|
| - int new_index);
|
| -
|
| - // Overridden from SystemLibrary::Observer:
|
| - virtual void TimezoneChanged(const icu::TimeZone& timezone);
|
| -
|
| - protected:
|
| - // SettingsPageSection overrides:
|
| - virtual void InitContents(GridLayout* layout);
|
| -
|
| - private:
|
| - // The combobox model for the list of timezones.
|
| - class TimezoneComboboxModel : public ui::ComboboxModel {
|
| - public:
|
| - TimezoneComboboxModel() {
|
| - // TODO(chocobo): For now, add all the GMT timezones.
|
| - // We may eventually want to use icu::TimeZone::createEnumeration()
|
| - // to list all the timezones and pick the ones we want to show.
|
| - // NOTE: This currently does not handle daylight savings properly
|
| - // b/c this is just a manually selected list of timezones that
|
| - // happen to span the GMT-11 to GMT+12 Today. When daylight savings
|
| - // kick in, this list might have more than one timezone in the same
|
| - // GMT bucket.
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Pacific/Samoa")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("US/Hawaii")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("US/Alaska")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("US/Pacific")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("US/Mountain")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("US/Central")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("US/Eastern")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("America/Santiago")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("America/Sao_Paulo")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Atlantic/South_Georgia")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Atlantic/Cape_Verde")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Europe/London")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Europe/Rome")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Europe/Helsinki")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Europe/Moscow")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Asia/Dubai")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Asia/Karachi")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Asia/Dhaka")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Asia/Bangkok")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Asia/Hong_Kong")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Asia/Tokyo")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Australia/Sydney")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Asia/Magadan")));
|
| - timezones_.push_back(icu::TimeZone::createTimeZone(
|
| - icu::UnicodeString::fromUTF8("Pacific/Auckland")));
|
| - }
|
| -
|
| - virtual ~TimezoneComboboxModel() {
|
| - STLDeleteElements(&timezones_);
|
| - }
|
| -
|
| - virtual int GetItemCount() {
|
| - return static_cast<int>(timezones_.size());
|
| - }
|
| -
|
| - virtual string16 GetItemAt(int index) {
|
| - icu::UnicodeString name;
|
| - timezones_[index]->getDisplayName(name);
|
| - std::wstring output;
|
| - UTF16ToWide(name.getBuffer(), name.length(), &output);
|
| - int hour_offset = timezones_[index]->getRawOffset() / 3600000;
|
| - return WideToUTF16Hack(
|
| - base::StringPrintf(hour_offset == 0 ? L"(GMT) " : (hour_offset > 0 ?
|
| - L"(GMT+%d) " : L"(GMT%d) "), hour_offset) + output);
|
| - }
|
| -
|
| - virtual icu::TimeZone* GetTimeZoneAt(int index) {
|
| - return timezones_[index];
|
| - }
|
| -
|
| - private:
|
| - std::vector<icu::TimeZone*> timezones_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TimezoneComboboxModel);
|
| - };
|
| -
|
| - // TimeZone combobox model.
|
| - views::Combobox* timezone_combobox_;
|
| -
|
| - // Controls for this section:
|
| - TimezoneComboboxModel timezone_combobox_model_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DateTimeSection);
|
| -};
|
| -
|
| -DateTimeSection::DateTimeSection(Profile* profile)
|
| - : SettingsPageSection(profile, IDS_OPTIONS_SETTINGS_SECTION_TITLE_DATETIME),
|
| - timezone_combobox_(NULL) {
|
| - CrosLibrary::Get()->GetSystemLibrary()->AddObserver(this);
|
| -}
|
| -
|
| -DateTimeSection::~DateTimeSection() {
|
| - CrosLibrary::Get()->GetSystemLibrary()->RemoveObserver(this);
|
| -}
|
| -
|
| -void DateTimeSection::ItemChanged(views::Combobox* sender,
|
| - int prev_index,
|
| - int new_index) {
|
| - if (new_index == prev_index)
|
| - return;
|
| -
|
| - CrosLibrary::Get()->GetSystemLibrary()->SetTimezone(
|
| - timezone_combobox_model_.GetTimeZoneAt(new_index));
|
| -}
|
| -
|
| -void DateTimeSection::TimezoneChanged(const icu::TimeZone& timezone) {
|
| - for (int i = 0; i < timezone_combobox_model_.GetItemCount(); i++) {
|
| - if (*timezone_combobox_model_.GetTimeZoneAt(i) == timezone) {
|
| - timezone_combobox_->SetSelectedItem(i);
|
| - return;
|
| - }
|
| - }
|
| -}
|
| -
|
| -void DateTimeSection::InitContents(GridLayout* layout) {
|
| - timezone_combobox_ = new views::Combobox(&timezone_combobox_model_);
|
| - timezone_combobox_->set_listener(this);
|
| -
|
| - layout->StartRow(0, double_column_view_set_id());
|
| - layout->AddView(new views::Label(UTF16ToWide(
|
| - l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_TIMEZONE_DESCRIPTION))));
|
| - layout->AddView(timezone_combobox_);
|
| - layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
|
| -
|
| - TimezoneChanged(CrosLibrary::Get()->GetSystemLibrary()->GetTimezone());
|
| -}
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -// TouchpadSection
|
| -
|
| -class TouchpadSection : public SettingsPageSection,
|
| - public views::ButtonListener,
|
| - public views::SliderListener {
|
| - public:
|
| - explicit TouchpadSection(Profile* profile);
|
| - virtual ~TouchpadSection() {}
|
| -
|
| - // 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:
|
| - // SettingsPageSection overrides:
|
| - virtual void InitContents(GridLayout* layout);
|
| - virtual void NotifyPrefChanged(const std::string* pref_name);
|
| -
|
| - private:
|
| - // The View that contains the contents of the section.
|
| - views::View* contents_;
|
| -
|
| - // Controls for this section:
|
| - views::Checkbox* enable_tap_to_click_checkbox_;
|
| - views::Slider* sensitivity_slider_;
|
| -
|
| - // Preferences for this section:
|
| - BooleanPrefMember tap_to_click_enabled_;
|
| - IntegerPrefMember sensitivity_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TouchpadSection);
|
| -};
|
| -
|
| -TouchpadSection::TouchpadSection(Profile* profile)
|
| - : SettingsPageSection(profile, IDS_OPTIONS_SETTINGS_SECTION_TITLE_TOUCHPAD),
|
| - enable_tap_to_click_checkbox_(NULL),
|
| - sensitivity_slider_(NULL) {
|
| -}
|
| -
|
| -void TouchpadSection::ButtonPressed(
|
| - views::Button* sender, const views::Event& event) {
|
| - if (sender == enable_tap_to_click_checkbox_) {
|
| - bool enabled = enable_tap_to_click_checkbox_->checked();
|
| - UserMetricsRecordAction(enabled ?
|
| - UserMetricsAction("Options_TapToClickCheckbox_Enable") :
|
| - UserMetricsAction("Options_TapToClickCheckbox_Disable"),
|
| - profile()->GetPrefs());
|
| - tap_to_click_enabled_.SetValue(enabled);
|
| - }
|
| -}
|
| -
|
| -void TouchpadSection::SliderValueChanged(views::Slider* sender) {
|
| - if (sender == sensitivity_slider_) {
|
| - double value = sensitivity_slider_->value();
|
| - UserMetricsRecordAction(
|
| - UserMetricsAction("Options_SensitivitySlider_Changed"),
|
| - profile()->GetPrefs());
|
| - sensitivity_.SetValue(value);
|
| - }
|
| -}
|
| -
|
| -void TouchpadSection::InitContents(GridLayout* layout) {
|
| - enable_tap_to_click_checkbox_ =
|
| - new views::Checkbox(UTF16ToWide(l10n_util::GetStringUTF16(
|
| - IDS_OPTIONS_SETTINGS_TAP_TO_CLICK_ENABLED_DESCRIPTION)));
|
| - enable_tap_to_click_checkbox_->set_listener(this);
|
| - enable_tap_to_click_checkbox_->SetMultiLine(true);
|
| - // 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),
|
| - this);
|
| -
|
| - layout->StartRow(0, double_column_view_set_id());
|
| - layout->AddView(new views::Label(UTF16ToWide(l10n_util::GetStringUTF16(
|
| - IDS_OPTIONS_SETTINGS_SENSITIVITY_DESCRIPTION))));
|
| - layout->AddView(sensitivity_slider_);
|
| - layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
|
| - layout->StartRow(0, single_column_view_set_id());
|
| - layout->AddView(enable_tap_to_click_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);
|
| - sensitivity_.Init(prefs::kTouchpadSensitivity,
|
| - profile()->GetPrefs(), this);
|
| -}
|
| -
|
| -void TouchpadSection::NotifyPrefChanged(const std::string* pref_name) {
|
| - if (!pref_name || *pref_name == prefs::kTapToClickEnabled) {
|
| - bool enabled = tap_to_click_enabled_.GetValue();
|
| - enable_tap_to_click_checkbox_->SetChecked(enabled);
|
| - }
|
| - if (!pref_name || *pref_name == prefs::kTouchpadSensitivity) {
|
| - double value = sensitivity_.GetValue();
|
| - sensitivity_slider_->SetValue(value);
|
| - }
|
| -}
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// AccessibilitySection
|
| -
|
| -// Checkbox for specifying if accessibility should be enabled for this profile
|
| -class AccessibilitySection : public SettingsPageSection,
|
| - public views::ButtonListener {
|
| - public:
|
| - explicit AccessibilitySection(Profile* profile);
|
| - virtual ~AccessibilitySection() {}
|
| -
|
| - protected:
|
| - // Overridden from views::ButtonListener:
|
| - virtual void ButtonPressed(views::Button* sender,
|
| - const views::Event& event);
|
| -
|
| - // Overridden from SettingsPageSection:
|
| - virtual void InitContents(GridLayout* layout);
|
| - virtual void NotifyPrefChanged(const std::string* pref_name);
|
| -
|
| - private:
|
| - // The View that contains the contents of the section.
|
| - views::View* contents_;
|
| -
|
| - // Controls for this section:
|
| - views::Checkbox* accessibility_checkbox_;
|
| -
|
| - // Preferences for this section:
|
| - BooleanPrefMember accessibility_enabled_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(AccessibilitySection);
|
| -};
|
| -
|
| -AccessibilitySection::AccessibilitySection(Profile* profile)
|
| - : SettingsPageSection(profile,
|
| - IDS_OPTIONS_SETTINGS_SECTION_TITLE_ACCESSIBILITY),
|
| - accessibility_checkbox_(NULL) {
|
| -}
|
| -
|
| -void AccessibilitySection::InitContents(GridLayout* layout) {
|
| - accessibility_checkbox_ =
|
| - new views::Checkbox(UTF16ToWide(l10n_util::GetStringUTF16(
|
| - IDS_OPTIONS_SETTINGS_ACCESSIBILITY_DESCRIPTION)));
|
| - accessibility_checkbox_->set_listener(this);
|
| - accessibility_checkbox_->SetMultiLine(true);
|
| -
|
| - layout->StartRow(0, double_column_view_set_id());
|
| - layout->AddView(accessibility_checkbox_);
|
| - layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing);
|
| -
|
| - // Init member prefs so we can update the controls if prefs change.
|
| - accessibility_enabled_.Init(prefs::kAccessibilityEnabled,
|
| - profile()->GetPrefs(), this);
|
| -}
|
| -
|
| -void AccessibilitySection::ButtonPressed(
|
| - views::Button* sender, const views::Event& event) {
|
| - if (sender == accessibility_checkbox_) {
|
| - bool enabled = accessibility_checkbox_->checked();
|
| - // Set the accessibility enabled value in profile/prefs
|
| - accessibility_enabled_.SetValue(enabled);
|
| - }
|
| -}
|
| -
|
| -void AccessibilitySection::NotifyPrefChanged(const std::string* pref_name) {
|
| - if (!pref_name || *pref_name == prefs::kAccessibilityEnabled) {
|
| - bool enabled = accessibility_enabled_.GetValue();
|
| - accessibility_checkbox_->SetChecked(enabled);
|
| - }
|
| -}
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -// SystemPageView
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -// SystemPageView, SettingsPageView implementation:
|
| -
|
| -void SystemPageView::InitControlLayout() {
|
| - GridLayout* layout = GridLayout::CreatePanel(this);
|
| - SetLayoutManager(layout);
|
| -
|
| - int single_column_view_set_id = 0;
|
| - ColumnSet* column_set = layout->AddColumnSet(single_column_view_set_id);
|
| - column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
|
| - GridLayout::USE_PREF, 0, 0);
|
| -
|
| - layout->StartRow(0, single_column_view_set_id);
|
| - layout->AddView(new DateTimeSection(profile()));
|
| - layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
|
| - layout->StartRow(0, single_column_view_set_id);
|
| - layout->AddView(new TouchpadSection(profile()));
|
| - layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
|
| - layout->StartRow(0, single_column_view_set_id);
|
| - layout->AddView(new AccessibilitySection(profile()));
|
| - layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
|
| -}
|
| -
|
| -} // namespace chromeos
|
|
|