summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/status/language_menu_button.cc
diff options
context:
space:
mode:
authorzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-23 23:44:24 +0000
committerzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-23 23:44:24 +0000
commit62c7ef3ebecbdf274c85b0bbd64be3187e39b32f (patch)
treed17ca2a8f18aab2b3f28974561ee8bd039b0745c /chrome/browser/chromeos/status/language_menu_button.cc
parent9e9e55c35954a06b68d5e62a27fa1ea60675d6f2 (diff)
downloadchromium_src-62c7ef3ebecbdf274c85b0bbd64be3187e39b32f.zip
chromium_src-62c7ef3ebecbdf274c85b0bbd64be3187e39b32f.tar.gz
chromium_src-62c7ef3ebecbdf274c85b0bbd64be3187e39b32f.tar.bz2
Mocks for all libcros elements. Added library registry object that provides access to all *Libray classes that used to be singletons. This registry adds an indirection layer that will let is replace the actual objects with mocks during test runs.
BUG=chromium-os:2026 TEST=none Review URL: http://codereview.chromium.org/1142005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42405 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/status/language_menu_button.cc')
-rw-r--r--chrome/browser/chromeos/status/language_menu_button.cc37
1 files changed, 21 insertions, 16 deletions
diff --git a/chrome/browser/chromeos/status/language_menu_button.cc b/chrome/browser/chromeos/status/language_menu_button.cc
index 2541bdd..b7d70f1 100644
--- a/chrome/browser/chromeos/status/language_menu_button.cc
+++ b/chrome/browser/chromeos/status/language_menu_button.cc
@@ -11,6 +11,7 @@
#include "base/time.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/status/language_menu_l10n_util.h"
#include "chrome/browser/chromeos/status/status_area_host.h"
#include "grit/generated_resources.h"
@@ -123,7 +124,8 @@ namespace chromeos {
LanguageMenuButton::LanguageMenuButton(StatusAreaHost* host)
: MenuButton(NULL, std::wstring(), this, false),
- language_list_(LanguageLibrary::Get()->GetActiveLanguages()),
+ language_list_(CrosLibrary::Get()->GetLanguageLibrary()->
+ GetActiveLanguages()),
model_(NULL),
// Be aware that the constructor of |language_menu_| calls GetItemCount()
// in this class. Therefore, GetItemCount() have to return 0 when
@@ -138,11 +140,11 @@ LanguageMenuButton::LanguageMenuButton(StatusAreaHost* host)
// Display the default XKB name (usually "US").
const std::wstring name = FormatInputLanguage(language_list_->at(0), false);
UpdateIcon(name);
- LanguageLibrary::Get()->AddObserver(this);
+ CrosLibrary::Get()->GetLanguageLibrary()->AddObserver(this);
}
LanguageMenuButton::~LanguageMenuButton() {
- LanguageLibrary::Get()->RemoveObserver(this);
+ CrosLibrary::Get()->GetLanguageLibrary()->RemoveObserver(this);
}
////////////////////////////////////////////////////////////////////////////////
@@ -169,12 +171,13 @@ bool LanguageMenuButton::IsItemCheckedAt(int index) const {
if (IndexIsInLanguageList(index)) {
const InputLanguage& language = language_list_->at(index);
- return language == LanguageLibrary::Get()->current_language();
+ return language == CrosLibrary::Get()->GetLanguageLibrary()->
+ current_language();
}
if (GetPropertyIndex(index, &index)) {
const ImePropertyList& property_list
- = LanguageLibrary::Get()->current_ime_properties();
+ = CrosLibrary::Get()->GetLanguageLibrary()->current_ime_properties();
return property_list.at(index).is_selection_item_checked;
}
@@ -191,7 +194,7 @@ int LanguageMenuButton::GetGroupIdAt(int index) const {
if (GetPropertyIndex(index, &index)) {
const ImePropertyList& property_list
- = LanguageLibrary::Get()->current_ime_properties();
+ = CrosLibrary::Get()->GetLanguageLibrary()->current_ime_properties();
return property_list.at(index).selection_item_id;
}
@@ -248,7 +251,7 @@ menus::MenuModel::ItemType LanguageMenuButton::GetTypeAt(int index) const {
if (GetPropertyIndex(index, &index)) {
const ImePropertyList& property_list
- = LanguageLibrary::Get()->current_ime_properties();
+ = CrosLibrary::Get()->GetLanguageLibrary()->current_ime_properties();
if (property_list.at(index).is_selection_item) {
return menus::MenuModel::TYPE_RADIO;
}
@@ -271,7 +274,7 @@ string16 LanguageMenuButton::GetLabelAt(int index) const {
name = FormatInputLanguage(language_list_->at(index), true);
} else if (GetPropertyIndex(index, &index)) {
const ImePropertyList& property_list
- = LanguageLibrary::Get()->current_ime_properties();
+ = CrosLibrary::Get()->GetLanguageLibrary()->current_ime_properties();
return LanguageMenuL10nUtil::GetStringUTF16(
property_list.at(index).label);
}
@@ -291,14 +294,15 @@ void LanguageMenuButton::ActivatedAt(int index) {
if (IndexIsInLanguageList(index)) {
// Inter-IME switching or IME-XKB switching.
const InputLanguage& language = language_list_->at(index);
- LanguageLibrary::Get()->ChangeLanguage(language.category, language.id);
+ CrosLibrary::Get()->GetLanguageLibrary()->ChangeLanguage(language.category,
+ language.id);
return;
}
if (GetPropertyIndex(index, &index)) {
// Intra-IME switching (e.g. Japanese-Hiragana to Japanese-Katakana).
const ImePropertyList& property_list
- = LanguageLibrary::Get()->current_ime_properties();
+ = CrosLibrary::Get()->GetLanguageLibrary()->current_ime_properties();
const std::string key = property_list.at(index).key;
if (property_list.at(index).is_selection_item) {
// Radio button is clicked.
@@ -306,16 +310,16 @@ void LanguageMenuButton::ActivatedAt(int index) {
// First, deactivate all other properties in the same radio group.
for (int i = 0; i < static_cast<int>(property_list.size()); ++i) {
if (i != index && id == property_list.at(i).selection_item_id) {
- LanguageLibrary::Get()->DeactivateImeProperty(
+ CrosLibrary::Get()->GetLanguageLibrary()->DeactivateImeProperty(
property_list.at(i).key);
}
}
// Then, activate the property clicked.
- LanguageLibrary::Get()->ActivateImeProperty(key);
+ CrosLibrary::Get()->GetLanguageLibrary()->ActivateImeProperty(key);
} else {
// Command button like "Switch to half punctuation mode" is clicked.
// We can always use "Deactivate" for command buttons.
- LanguageLibrary::Get()->DeactivateImeProperty(key);
+ CrosLibrary::Get()->GetLanguageLibrary()->DeactivateImeProperty(key);
}
return;
}
@@ -328,7 +332,8 @@ void LanguageMenuButton::ActivatedAt(int index) {
// LanguageMenuButton, views::ViewMenuDelegate implementation:
void LanguageMenuButton::RunMenu(views::View* source, const gfx::Point& pt) {
- language_list_.reset(LanguageLibrary::Get()->GetActiveLanguages());
+ language_list_.reset(CrosLibrary::Get()->GetLanguageLibrary()->
+ GetActiveLanguages());
RebuildModel();
language_menu_.Rebuild();
language_menu_.UpdateStates();
@@ -379,9 +384,9 @@ void LanguageMenuButton::RebuildModel() {
}
const ImePropertyList& property_list
- = LanguageLibrary::Get()->current_ime_properties();
+ = CrosLibrary::Get()->GetLanguageLibrary()->current_ime_properties();
const InputLanguage& current_language
- = LanguageLibrary::Get()->current_language();
+ = CrosLibrary::Get()->GetLanguageLibrary()->current_language();
if ((!property_list.empty()) &&
(current_language.category == chromeos::LANGUAGE_CATEGORY_IME)) {
if (need_separator)