OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/options/language_config_view.h" | 5 #include "chrome/browser/chromeos/options/language_config_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "app/l10n_util.h" | 11 #include "app/l10n_util.h" |
12 #include "base/utf_string_conversions.h" | 12 #include "base/utf_string_conversions.h" |
13 #include "chrome/browser/browser_process.h" | 13 #include "chrome/browser/browser_process.h" |
| 14 #include "chrome/browser/chromeos/cros/cros_library.h" |
14 #include "chrome/browser/chromeos/cros/language_library.h" | 15 #include "chrome/browser/chromeos/cros/language_library.h" |
15 #include "chrome/browser/chromeos/options/language_hangul_config_view.h" | 16 #include "chrome/browser/chromeos/options/language_hangul_config_view.h" |
16 #include "chrome/browser/language_combobox_model.h" | 17 #include "chrome/browser/language_combobox_model.h" |
17 #include "gfx/font.h" | 18 #include "gfx/font.h" |
18 #include "grit/generated_resources.h" | 19 #include "grit/generated_resources.h" |
19 #include "grit/locale_settings.h" | 20 #include "grit/locale_settings.h" |
20 #include "views/controls/combobox/combobox.h" | 21 #include "views/controls/combobox/combobox.h" |
21 #include "views/controls/label.h" | 22 #include "views/controls/label.h" |
22 #include "views/fill_layout.h" | 23 #include "views/fill_layout.h" |
23 #include "views/grid_layout.h" | 24 #include "views/grid_layout.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 language_combobox_->SetSelectedItem(selected_index_); | 82 language_combobox_->SetSelectedItem(selected_index_); |
82 language_combobox_->set_listener(this); | 83 language_combobox_->set_listener(this); |
83 SetLayoutManager(new views::FillLayout); | 84 SetLayoutManager(new views::FillLayout); |
84 AddChildView(language_combobox_); | 85 AddChildView(language_combobox_); |
85 } | 86 } |
86 | 87 |
87 // Creates the language combobox model from the supported languages. | 88 // Creates the language combobox model from the supported languages. |
88 LanguageComboboxModel* CreateLanguageComboboxModel() { | 89 LanguageComboboxModel* CreateLanguageComboboxModel() { |
89 // GetSupportedLanguages() never return NULL. | 90 // GetSupportedLanguages() never return NULL. |
90 scoped_ptr<InputLanguageList> supported_language_list( | 91 scoped_ptr<InputLanguageList> supported_language_list( |
91 LanguageLibrary::Get()->GetSupportedLanguages()); | 92 CrosLibrary::Get()->GetLanguageLibrary()->GetSupportedLanguages()); |
92 | 93 |
93 std::set<std::string> language_set; | 94 std::set<std::string> language_set; |
94 for (size_t i = 0; i < supported_language_list->size(); ++i) { | 95 for (size_t i = 0; i < supported_language_list->size(); ++i) { |
95 const InputLanguage& language = supported_language_list->at(i); | 96 const InputLanguage& language = supported_language_list->at(i); |
96 language_set.insert(language.language_code); | 97 language_set.insert(language.language_code); |
97 } | 98 } |
98 const std::vector<std::string> language_codes(language_set.begin(), | 99 const std::vector<std::string> language_codes(language_set.begin(), |
99 language_set.end()); | 100 language_set.end()); |
100 // LanguageComboboxModel sorts languages by their display names. | 101 // LanguageComboboxModel sorts languages by their display names. |
101 return new LanguageComboboxModel(NULL, language_codes); | 102 return new LanguageComboboxModel(NULL, language_codes); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 | 203 |
203 // Add the title label. | 204 // Add the title label. |
204 layout->StartRow(0, kTitleColumnSetId); | 205 layout->StartRow(0, kTitleColumnSetId); |
205 layout->AddView(title_label); | 206 layout->AddView(title_label); |
206 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); | 207 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); |
207 | 208 |
208 // Add input method names and configuration buttons. | 209 // Add input method names and configuration buttons. |
209 // TODO(satorux): Implement ways to activate/deactivate individual input | 210 // TODO(satorux): Implement ways to activate/deactivate individual input |
210 // methods. For instance a language can have multiple input methods. | 211 // methods. For instance a language can have multiple input methods. |
211 scoped_ptr<InputLanguageList> supported_language_list( | 212 scoped_ptr<InputLanguageList> supported_language_list( |
212 LanguageLibrary::Get()->GetSupportedLanguages()); | 213 CrosLibrary::Get()->GetLanguageLibrary()->GetSupportedLanguages()); |
213 | 214 |
214 for (size_t i = 0; i < supported_language_list->size(); ++i) { | 215 for (size_t i = 0; i < supported_language_list->size(); ++i) { |
215 const InputLanguage& language = supported_language_list->at(i); | 216 const InputLanguage& language = supported_language_list->at(i); |
216 if (language.language_code == language_code) { | 217 if (language.language_code == language_code) { |
217 layout->StartRow(0, kDoubleColumnSetId); | 218 layout->StartRow(0, kDoubleColumnSetId); |
218 layout->AddView(new views::Label(UTF8ToWide(language.display_name))); | 219 layout->AddView(new views::Label(UTF8ToWide(language.display_name))); |
219 // TODO(satorux): For now, we special case the hangul input | 220 // TODO(satorux): For now, we special case the hangul input |
220 // method. We'll generalize this. | 221 // method. We'll generalize this. |
221 if (language_code == "ko") { | 222 if (language_code == "ko") { |
222 hangul_configure_button_ = new views::NativeButton( | 223 hangul_configure_button_ = new views::NativeButton( |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 root_layout->AddView(right_container_); | 309 root_layout->AddView(right_container_); |
309 | 310 |
310 // Select the first row in the language table. | 311 // Select the first row in the language table. |
311 // There should be at least one language in the table. | 312 // There should be at least one language in the table. |
312 CHECK(!preferred_language_codes_.empty()); | 313 CHECK(!preferred_language_codes_.empty()); |
313 preferred_language_table_->SelectRow(0); | 314 preferred_language_table_->SelectRow(0); |
314 } | 315 } |
315 | 316 |
316 void LanguageConfigView::InitPreferredLanguageCodes() { | 317 void LanguageConfigView::InitPreferredLanguageCodes() { |
317 scoped_ptr<InputLanguageList> active_language_list( | 318 scoped_ptr<InputLanguageList> active_language_list( |
318 LanguageLibrary::Get()->GetActiveLanguages()); | 319 CrosLibrary::Get()->GetLanguageLibrary()->GetActiveLanguages()); |
319 | 320 |
320 for (size_t i = 0; i < active_language_list->size(); ++i) { | 321 for (size_t i = 0; i < active_language_list->size(); ++i) { |
321 const InputLanguage& language = active_language_list->at(i); | 322 const InputLanguage& language = active_language_list->at(i); |
322 // Add the language if any input language is activated. | 323 // Add the language if any input language is activated. |
323 if (std::find(preferred_language_codes_.begin(), | 324 if (std::find(preferred_language_codes_.begin(), |
324 preferred_language_codes_.end(), | 325 preferred_language_codes_.end(), |
325 language.language_code) == | 326 language.language_code) == |
326 preferred_language_codes_.end()) { | 327 preferred_language_codes_.end()) { |
327 preferred_language_codes_.push_back(language.language_code); | 328 preferred_language_codes_.push_back(language.language_code); |
328 } | 329 } |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 preferred_language_codes_.end(), | 389 preferred_language_codes_.end(), |
389 language_code) == preferred_language_codes_.end()) { | 390 language_code) == preferred_language_codes_.end()) { |
390 // Append the language to the list of language codes. | 391 // Append the language to the list of language codes. |
391 preferred_language_codes_.push_back(language_code); | 392 preferred_language_codes_.push_back(language_code); |
392 // Update the language table accordingly. | 393 // Update the language table accordingly. |
393 preferred_language_table_->OnItemsAdded(RowCount() - 1, 1); | 394 preferred_language_table_->OnItemsAdded(RowCount() - 1, 1); |
394 preferred_language_table_->SelectRow(RowCount() - 1); | 395 preferred_language_table_->SelectRow(RowCount() - 1); |
395 | 396 |
396 // Activate the first input language associated with the language. | 397 // Activate the first input language associated with the language. |
397 scoped_ptr<InputLanguageList> supported_language_list( | 398 scoped_ptr<InputLanguageList> supported_language_list( |
398 LanguageLibrary::Get()->GetSupportedLanguages()); | 399 CrosLibrary::Get()->GetLanguageLibrary()->GetSupportedLanguages()); |
399 for (size_t i = 0; i < supported_language_list->size(); ++i) { | 400 for (size_t i = 0; i < supported_language_list->size(); ++i) { |
400 const InputLanguage& language = supported_language_list->at(i); | 401 const InputLanguage& language = supported_language_list->at(i); |
401 if (language.language_code == language_code) { | 402 if (language.language_code == language_code) { |
402 LanguageLibrary::Get()->ActivateLanguage(language.category, | 403 CrosLibrary::Get()->GetLanguageLibrary()->ActivateLanguage( |
403 language.id); | 404 language.category, language.id); |
404 break; | 405 break; |
405 } | 406 } |
406 } | 407 } |
407 } | 408 } |
408 } | 409 } |
409 | 410 |
410 void LanguageConfigView::DeactivateInputLanguagesFor( | 411 void LanguageConfigView::DeactivateInputLanguagesFor( |
411 const std::string& language_code) { | 412 const std::string& language_code) { |
412 scoped_ptr<InputLanguageList> active_language_list( | 413 scoped_ptr<InputLanguageList> active_language_list( |
413 LanguageLibrary::Get()->GetActiveLanguages()); | 414 CrosLibrary::Get()->GetLanguageLibrary()->GetActiveLanguages()); |
414 | 415 |
415 for (size_t i = 0; i < active_language_list->size(); ++i) { | 416 for (size_t i = 0; i < active_language_list->size(); ++i) { |
416 const InputLanguage& language = active_language_list->at(i); | 417 const InputLanguage& language = active_language_list->at(i); |
417 if (language.language_code == language_code) { | 418 if (language.language_code == language_code) { |
418 LanguageLibrary::Get()->DeactivateLanguage(language.category, | 419 CrosLibrary::Get()->GetLanguageLibrary()->DeactivateLanguage( |
419 language.id); | 420 language.category, language.id); |
420 } | 421 } |
421 } | 422 } |
422 // Switch back to the US English. | 423 // Switch back to the US English. |
423 LanguageLibrary::Get()->ChangeLanguage( | 424 CrosLibrary::Get()->GetLanguageLibrary()->ChangeLanguage( |
424 chromeos::LANGUAGE_CATEGORY_XKB, "USA"); | 425 chromeos::LANGUAGE_CATEGORY_XKB, "USA"); |
425 } | 426 } |
426 | 427 |
427 } // namespace chromeos | 428 } // namespace chromeos |
OLD | NEW |