Index: chrome/browser/chromeos/options/language_chewing_config_view.cc |
diff --git a/chrome/browser/chromeos/options/language_chewing_config_view.cc b/chrome/browser/chromeos/options/language_chewing_config_view.cc |
index 25c25a86225664a3baa96e25c842a5eddd551015..0941a62dee5053b145b1b4cd8f7cfec9713e8a7b 100644 |
--- a/chrome/browser/chromeos/options/language_chewing_config_view.cc |
+++ b/chrome/browser/chromeos/options/language_chewing_config_view.cc |
@@ -126,6 +126,11 @@ LanguageChewingConfigView::LanguageChewingConfigView(Profile* profile) |
new ChewingComboboxModel(&kChewingMultipleChoicePrefs[i]); |
current.combobox = NULL; |
} |
+ for (size_t i = 0; i < kNumChewingIntegerPrefs; ++i) { |
+ chewing_integer_prefs_[i].Init( |
+ kChewingIntegerPrefs[i].pref_name, profile->GetPrefs(), this); |
+ chewing_integer_sliders_[i] = NULL; |
+ } |
} |
LanguageChewingConfigView::~LanguageChewingConfigView() { |
@@ -154,6 +159,17 @@ void LanguageChewingConfigView::ItemChanged( |
} |
} |
+void LanguageChewingConfigView::SliderValueChanged(views::Slider* sender) { |
+ size_t pref_id; |
+ for (pref_id = 0; pref_id < kNumChewingIntegerPrefs; ++pref_id) { |
+ if (chewing_integer_sliders_[pref_id] == sender) |
+ break; |
+ } |
+ DCHECK(pref_id < kNumChewingIntegerPrefs); |
+ chewing_integer_prefs_[pref_id].SetValue(sender->value()); |
+} |
+ |
+ |
void LanguageChewingConfigView::Layout() { |
// Not sure why but this is needed to show contents in the dialog. |
contents_->SetBounds(0, 0, width(), height()); |
@@ -187,7 +203,7 @@ void LanguageChewingConfigView::InitControlLayout() { |
column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0, |
GridLayout::USE_PREF, 0, 0); |
column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing); |
- column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0, |
+ column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 0, |
GridLayout::USE_PREF, 0, 0); |
for (size_t i = 0; i < kNumChewingBooleanPrefs; ++i) { |
@@ -201,12 +217,29 @@ void LanguageChewingConfigView::InitControlLayout() { |
current.combobox = new ChewingCombobox(current.combobox_model); |
current.combobox->set_listener(this); |
} |
- NotifyPrefChanged(); |
+ for (size_t i = 0; i < kNumChewingIntegerPrefs; ++i) { |
+ chewing_integer_sliders_[i] = new views::Slider( |
+ kChewingIntegerPrefs[i].min_pref_value, |
+ kChewingIntegerPrefs[i].max_pref_value, |
+ 1, |
+ static_cast<views::Slider::StyleFlags>( |
+ views::Slider::STYLE_DRAW_VALUE | |
+ views::Slider::STYLE_UPDATE_ON_RELEASE), |
+ this); |
+ } |
for (size_t i = 0; i < kNumChewingBooleanPrefs; ++i) { |
layout->StartRow(0, kColumnSetId); |
layout->AddView(chewing_boolean_checkboxes_[i]); |
} |
+ for (size_t i = 0; i < kNumChewingIntegerPrefs; ++i) { |
+ layout->StartRow(0, kColumnSetId); |
+ layout->AddView(new views::Label( |
+ l10n_util::GetString(kChewingIntegerPrefs[i].message_id))); |
+ layout->AddView(chewing_integer_sliders_[i]); |
+ } |
+ NotifyPrefChanged(); |
+ |
// Show the comboboxes. |
for (size_t i = 0; i < kNumChewingMultipleChoicePrefs; ++i) { |
const ChewingPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i]; |
@@ -229,6 +262,10 @@ void LanguageChewingConfigView::NotifyPrefChanged() { |
const bool checked = chewing_boolean_prefs_[i].GetValue(); |
chewing_boolean_checkboxes_[i]->SetChecked(checked); |
} |
+ for (size_t i = 0; i < kNumChewingIntegerPrefs; ++i) { |
+ const int value = chewing_integer_prefs_[i].GetValue(); |
+ chewing_integer_sliders_[i]->SetValue(value); |
+ } |
for (size_t i = 0; i < kNumChewingMultipleChoicePrefs; ++i) { |
ChewingPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i]; |
const std::wstring value = current.multiple_choice_pref.GetValue(); |