Index: chrome/browser/chromeos/options/language_mozc_config_view.cc |
diff --git a/chrome/browser/chromeos/options/language_mozc_config_view.cc b/chrome/browser/chromeos/options/language_mozc_config_view.cc |
deleted file mode 100644 |
index d86a62e94fba52a4084941fce31d9022d6adec60..0000000000000000000000000000000000000000 |
--- a/chrome/browser/chromeos/options/language_mozc_config_view.cc |
+++ /dev/null |
@@ -1,273 +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. |
- |
-#include "chrome/browser/chromeos/options/language_mozc_config_view.h" |
- |
-#include "app/l10n_util.h" |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/chromeos/cros/cros_library.h" |
-#include "chrome/browser/chromeos/options/language_config_util.h" |
-#include "chrome/browser/chromeos/preferences.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/common/notification_type.h" |
-#include "grit/generated_resources.h" |
-#include "grit/locale_settings.h" |
-#include "views/controls/button/checkbox.h" |
-#include "views/controls/button/native_button.h" |
-#include "views/grid_layout.h" |
-#include "views/standard_layout.h" |
-#include "views/window/window.h" |
- |
-namespace { |
-// The tags are used to identify buttons in ButtonPressed(). |
-enum ButtonTag { |
- // 0 to kNumMozcBooleanPrefs - 1 are reserved for the checkboxes for integer |
- // preferences. |
- kResetToDefaultsButton = chromeos::language_prefs::kNumMozcBooleanPrefs, |
-}; |
-} // namespace |
- |
-namespace chromeos { |
- |
-LanguageMozcConfigView::LanguageMozcConfigView(Profile* profile) |
- : OptionsPageView(profile), |
- contents_(NULL), |
- reset_to_defaults_button_(NULL) { |
- for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { |
- MozcPrefAndAssociatedCheckbox& current = prefs_and_checkboxes_[i]; |
- current.boolean_pref.Init( |
- language_prefs::kMozcBooleanPrefs[i].pref_name, profile->GetPrefs(), |
- this); |
- current.checkbox = NULL; |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { |
- MozcPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i]; |
- current.multiple_choice_pref.Init( |
- language_prefs::kMozcMultipleChoicePrefs[i].pref_name, |
- profile->GetPrefs(), this); |
- current.combobox_model = |
- new LanguageComboboxModel<const char*>( |
- &language_prefs::kMozcMultipleChoicePrefs[i]); |
- current.combobox = NULL; |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { |
- MozcPrefAndAssociatedSlider& current = prefs_and_sliders_[i]; |
- current.integer_pref.Init( |
- language_prefs::kMozcIntegerPrefs[i].pref_name, profile->GetPrefs(), |
- this); |
- current.slider = NULL; |
- } |
-} |
- |
-LanguageMozcConfigView::~LanguageMozcConfigView() { |
- for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { |
- delete prefs_and_comboboxes_[i].combobox_model; |
- } |
-} |
- |
-void LanguageMozcConfigView::ButtonPressed( |
- views::Button* sender, const views::Event& event) { |
- const int pref_id = sender->tag(); |
- if (pref_id == kResetToDefaultsButton) { |
- ResetToDefaults(); |
- return; |
- } |
- views::Checkbox* checkbox = static_cast<views::Checkbox*>(sender); |
- DCHECK(pref_id >= 0 && pref_id < static_cast<int>( |
- language_prefs::kNumMozcBooleanPrefs)); |
- prefs_and_checkboxes_[pref_id].boolean_pref.SetValue(checkbox->checked()); |
-} |
- |
-void LanguageMozcConfigView::ItemChanged( |
- views::Combobox* sender, int prev_index, int new_index) { |
- if (new_index < 0 || sender->model()->GetItemCount() <= new_index) { |
- LOG(ERROR) << "Invalid new_index: " << new_index; |
- return; |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { |
- MozcPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i]; |
- if (current.combobox == sender) { |
- const std::string config_value = |
- current.combobox_model->GetConfigValueAt(new_index); |
- VLOG(1) << "Changing Mozc pref to " << config_value; |
- // Update the Chrome pref. |
- current.multiple_choice_pref.SetValue(config_value); |
- break; |
- } |
- } |
-} |
- |
-void LanguageMozcConfigView::SliderValueChanged(views::Slider* sender) { |
- size_t pref_id; |
- for (pref_id = 0; pref_id < language_prefs::kNumMozcIntegerPrefs; |
- ++pref_id) { |
- if (prefs_and_sliders_[pref_id].slider == sender) |
- break; |
- } |
- DCHECK(pref_id < language_prefs::kNumMozcIntegerPrefs); |
- prefs_and_sliders_[pref_id].integer_pref.SetValue(sender->value()); |
-} |
- |
-void LanguageMozcConfigView::Layout() { |
- // Not sure why but this is needed to show contents in the dialog. |
- contents_->SetBounds(0, 0, width(), height()); |
-} |
- |
-int LanguageMozcConfigView::GetDialogButtons() const { |
- return MessageBoxFlags::DIALOGBUTTON_OK; |
-} |
- |
-std::wstring LanguageMozcConfigView::GetDialogButtonLabel( |
- MessageBoxFlags::DialogButton button) const { |
- if (button == MessageBoxFlags::DIALOGBUTTON_OK) { |
- return UTF16ToWide(l10n_util::GetStringUTF16(IDS_OK)); |
- } |
- return L""; |
-} |
- |
-std::wstring LanguageMozcConfigView::GetWindowTitle() const { |
- return UTF16ToWide(l10n_util::GetStringUTF16( |
- IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SETTINGS_TITLE)); |
-} |
- |
-gfx::Size LanguageMozcConfigView::GetPreferredSize() { |
- // TODO(satorux): Create our own localized content size once the UI is done. |
- gfx::Size preferred_size = views::Window::GetLocalizedContentsSize( |
- IDS_LANGUAGES_INPUT_DIALOG_WIDTH_CHARS, |
- IDS_LANGUAGES_INPUT_DIALOG_HEIGHT_LINES); |
- // TODO(mazda): Remove the manual adjustment. |
- // The padding is needed for accommodating all the controls in the dialog. |
- const int kHeightPadding = 80; |
- preferred_size.Enlarge(0, kHeightPadding); |
- return preferred_size; |
-} |
- |
-void LanguageMozcConfigView::InitControlLayout() { |
- using views::ColumnSet; |
- using views::GridLayout; |
- |
- contents_ = new views::View; |
- AddChildView(contents_); |
- |
- GridLayout* layout = new GridLayout(contents_); |
- layout->SetInsets(kPanelVertMargin, kPanelHorizMargin, |
- kPanelVertMargin, kPanelHorizMargin); |
- contents_->SetLayoutManager(layout); |
- |
- const int kColumnSetId = 0; |
- ColumnSet* column_set = layout->AddColumnSet(kColumnSetId); |
- column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0, |
- GridLayout::USE_PREF, 0, 0); |
- column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing); |
- column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1, |
- GridLayout::USE_PREF, 0, 0); |
- |
- for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { |
- MozcPrefAndAssociatedCheckbox& current = prefs_and_checkboxes_[i]; |
- current.checkbox = new views::Checkbox(UTF16ToWide( |
- l10n_util::GetStringUTF16( |
- language_prefs::kMozcBooleanPrefs[i].message_id))); |
- current.checkbox->set_listener(this); |
- current.checkbox->set_tag(i); |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { |
- MozcPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i]; |
- current.combobox = new LanguageCombobox(current.combobox_model); |
- current.combobox->set_listener(this); |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { |
- MozcPrefAndAssociatedSlider& current = prefs_and_sliders_[i]; |
- current.slider = new views::Slider( |
- language_prefs::kMozcIntegerPrefs[i].min_pref_value, |
- language_prefs::kMozcIntegerPrefs[i].max_pref_value, |
- 1, |
- static_cast<views::Slider::StyleFlags>( |
- views::Slider::STYLE_DRAW_VALUE | |
- views::Slider::STYLE_UPDATE_ON_RELEASE), |
- this); |
- } |
- NotifyPrefChanged(); // Sync the comboboxes with current Chrome prefs. |
- |
- reset_to_defaults_button_ = new views::NativeButton( |
- this, UTF16ToWide(l10n_util::GetStringUTF16( |
- IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_RESET_TO_DEFAULTS_BUTTON))); |
- reset_to_defaults_button_->set_tag(kResetToDefaultsButton); |
- layout->StartRow(0, kColumnSetId); |
- layout->AddView(reset_to_defaults_button_); |
- |
- // Show the checkboxes. |
- for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { |
- const MozcPrefAndAssociatedCheckbox& current = prefs_and_checkboxes_[i]; |
- layout->StartRow(0, kColumnSetId); |
- layout->AddView(current.checkbox, 3, 1); |
- } |
- // Show the comboboxes. |
- for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { |
- const MozcPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i]; |
- layout->StartRow(0, kColumnSetId); |
- layout->AddView(new views::Label(current.combobox_model->GetLabel())); |
- layout->AddView(current.combobox); |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { |
- const MozcPrefAndAssociatedSlider& current = prefs_and_sliders_[i]; |
- layout->StartRow(0, kColumnSetId); |
- layout->AddView(new views::Label( |
- UTF16ToWide(l10n_util::GetStringUTF16( |
- language_prefs::kMozcIntegerPrefs[i].message_id)))); |
- layout->AddView(current.slider); |
- } |
- NotifyPrefChanged(); // Sync the slider with current Chrome prefs. |
-} |
- |
-void LanguageMozcConfigView::Observe(NotificationType type, |
- const NotificationSource& source, |
- const NotificationDetails& details) { |
- if (type == NotificationType::PREF_CHANGED) { |
- NotifyPrefChanged(); |
- } |
-} |
- |
-void LanguageMozcConfigView::NotifyPrefChanged() { |
- // Update comboboxes. |
- // TODO(yusukes): We don't have to update all UI controls. |
- for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { |
- MozcPrefAndAssociatedCheckbox& current = prefs_and_checkboxes_[i]; |
- const bool checked = current.boolean_pref.GetValue(); |
- current.checkbox->SetChecked(checked); |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { |
- MozcPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i]; |
- const std::string value = current.multiple_choice_pref.GetValue(); |
- for (int i = 0; i < current.combobox_model->num_items(); ++i) { |
- if (current.combobox_model->GetConfigValueAt(i) == value) { |
- current.combobox->SetSelectedItem(i); |
- break; |
- } |
- } |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { |
- MozcPrefAndAssociatedSlider& current = prefs_and_sliders_[i]; |
- const int value = current.integer_pref.GetValue(); |
- current.slider->SetValue(value); |
- } |
-} |
- |
-void LanguageMozcConfigView::ResetToDefaults() { |
- for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) { |
- prefs_and_checkboxes_[i].boolean_pref.SetValue( |
- language_prefs::kMozcBooleanPrefs[i].default_pref_value); |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) { |
- prefs_and_comboboxes_[i].multiple_choice_pref.SetValue( |
- language_prefs::kMozcMultipleChoicePrefs[i].default_pref_value); |
- } |
- for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) { |
- prefs_and_sliders_[i].integer_pref.SetValue( |
- language_prefs::kMozcIntegerPrefs[i].default_pref_value); |
- } |
- // Reflect the preference changes to the controls. |
- NotifyPrefChanged(); |
-} |
- |
-} // namespace chromeos |