| 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 |