Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(370)

Unified Diff: chrome/browser/chromeos/cros/input_method_library.cc

Issue 5981001: Use libcros to convert input method ID to keyboard overlay ID. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/cros/input_method_library.cc
diff --git a/chrome/browser/chromeos/cros/input_method_library.cc b/chrome/browser/chromeos/cros/input_method_library.cc
index 9b5316f1da56f338474c57627fef23ab16421d1f..92af3c2aeb10fe03b09ea5e9594c0786c1992602 100644
--- a/chrome/browser/chromeos/cros/input_method_library.cc
+++ b/chrome/browser/chromeos/cros/input_method_library.cc
@@ -182,6 +182,13 @@ class InputMethodLibraryImpl : public InputMethodLibrary,
return current_ime_properties_;
}
+ virtual std::string GetKeyboardOverlayId(const std::string& input_method_id) {
+ if (EnsureLoadedAndStarted()) {
+ return chromeos::GetKeyboardOverlayId(input_method_id);
+ }
+ return "";
+ }
+
private:
// Starts or stops the input method processes based on the current state.
void MaybeStartOrStopInputMethodProcesses(
@@ -608,7 +615,9 @@ class InputMethodLibraryStubImpl : public InputMethodLibrary {
public:
InputMethodLibraryStubImpl()
: previous_input_method_("", "", "", ""),
- current_input_method_("", "", "", "") {
+ current_input_method_("", "", "", ""),
+ keyboard_overlay_map_(
+ CreateRealisticKeyboardOverlayMap()) {
}
~InputMethodLibraryStubImpl() {}
@@ -666,7 +675,16 @@ class InputMethodLibraryStubImpl : public InputMethodLibrary {
virtual void SetDeferImeStartup(bool defer) {}
virtual void SetEnableAutoImeShutdown(bool enable) {}
+ virtual std::string GetKeyboardOverlayId(const std::string& input_method_id) {
+ KeyboardOverlayMap::const_iterator iter =
+ keyboard_overlay_map_->find(input_method_id);
+ return (iter != keyboard_overlay_map_->end()) ?
+ iter->second : "";
+ }
+
private:
+ typedef std::map<std::string, std::string> KeyboardOverlayMap;
+
// Creates realistic input method descriptors that can be used for
// testing Chrome OS version of chrome on regular Linux desktops.
InputMethodDescriptors* CreateRealisticInputMethodDescriptors() {
@@ -795,9 +813,83 @@ class InputMethodLibraryStubImpl : public InputMethodLibrary {
return descriptions;
}
+ std::map<std::string, std::string>* CreateRealisticKeyboardOverlayMap() {
+ KeyboardOverlayMap* keyboard_overlay_map =
+ new KeyboardOverlayMap;
+ (*keyboard_overlay_map)["xkb:nl::nld"] = "nl";
+ (*keyboard_overlay_map)["xkb:be::nld"] = "nl";
+ (*keyboard_overlay_map)["xkb:fr::fra"] = "fr";
+ (*keyboard_overlay_map)["xkb:be::fra"] = "fr";
+ (*keyboard_overlay_map)["xkb:ca::fra"] = "fr_CA";
+ (*keyboard_overlay_map)["xkb:ch:fr:fra"] = "fr";
+ (*keyboard_overlay_map)["xkb:de::ger"] = "de";
+ (*keyboard_overlay_map)["xkb:be::ger"] = "de";
+ (*keyboard_overlay_map)["xkb:ch::ger"] = "de";
+ (*keyboard_overlay_map)["mozc"] = "en_US";
+ (*keyboard_overlay_map)["mozc-jp"] = "ja";
+ (*keyboard_overlay_map)["mozc-dv"] = "en_US_dvorak";
+ (*keyboard_overlay_map)["xkb:jp::jpn"] = "ja";
+ (*keyboard_overlay_map)["xkb:ru::rus"] = "ru";
+ (*keyboard_overlay_map)["xkb:ru:phonetic:rus"] = "ru";
+ (*keyboard_overlay_map)["m17n:th:kesmanee"] = "th";
+ (*keyboard_overlay_map)["m17n:th:pattachote"] = "th";
+ (*keyboard_overlay_map)["m17n:th:tis820"] = "th";
+ (*keyboard_overlay_map)["chewing"] = "zh_TW";
+ (*keyboard_overlay_map)["m17n:zh:cangjie"] = "zh_TW";
+ (*keyboard_overlay_map)["m17n:zh:quick"] = "zh_TW";
+ (*keyboard_overlay_map)["m17n:vi:tcvn"] = "vi";
+ (*keyboard_overlay_map)["m17n:vi:telex"] = "vi";
+ (*keyboard_overlay_map)["m17n:vi:viqr"] = "vi";
+ (*keyboard_overlay_map)["m17n:vi:vni"] = "vi";
+ (*keyboard_overlay_map)["xkb:us::eng"] = "en_US";
+ (*keyboard_overlay_map)["xkb:us:intl:eng"] = "en_US";
+ (*keyboard_overlay_map)["xkb:us:altgr-intl:eng"] = "en_US";
+ (*keyboard_overlay_map)["xkb:us:dvorak:eng"] =
+ "en_US_dvorak";
+ (*keyboard_overlay_map)["xkb:us:colemak:eng"] =
+ "en_US";
+ (*keyboard_overlay_map)["hangul"] = "ko";
+ (*keyboard_overlay_map)["pinyin"] = "zh_CN";
+ (*keyboard_overlay_map)["m17n:ar:kbd"] = "ar";
+ (*keyboard_overlay_map)["m17n:hi:itrans"] = "hi";
+ (*keyboard_overlay_map)["m17n:fa:isiri"] = "ar";
+ (*keyboard_overlay_map)["xkb:br::por"] = "pt_BR";
+ (*keyboard_overlay_map)["xkb:bg::bul"] = "bg";
+ (*keyboard_overlay_map)["xkb:bg:phonetic:bul"] = "bg";
+ (*keyboard_overlay_map)["xkb:ca:eng:eng"] = "ca";
+ (*keyboard_overlay_map)["xkb:cz::cze"] = "cs";
+ (*keyboard_overlay_map)["xkb:ee::est"] = "et";
+ (*keyboard_overlay_map)["xkb:es::spa"] = "es";
+ (*keyboard_overlay_map)["xkb:es:cat:cat"] = "ca";
+ (*keyboard_overlay_map)["xkb:dk::dan"] = "da";
+ (*keyboard_overlay_map)["xkb:gr::gre"] = "el";
+ (*keyboard_overlay_map)["xkb:il::heb"] = "iw";
+ (*keyboard_overlay_map)["xkb:kr:kr104:kor"] = "ko";
+ (*keyboard_overlay_map)["xkb:latam::spa"] = "es_419";
+ (*keyboard_overlay_map)["xkb:lt::lit"] = "lt";
+ (*keyboard_overlay_map)["xkb:lv:apostrophe:lav"] = "lv";
+ (*keyboard_overlay_map)["xkb:hr::scr"] = "hr";
+ (*keyboard_overlay_map)["xkb:gb:extd:eng"] = "en_GB";
+ (*keyboard_overlay_map)["xkb:fi::fin"] = "fi";
+ (*keyboard_overlay_map)["xkb:hu::hun"] = "hu";
+ (*keyboard_overlay_map)["xkb:it::ita"] = "it";
+ (*keyboard_overlay_map)["xkb:no::nob"] = "no";
+ (*keyboard_overlay_map)["xkb:pl::pol"] = "pl";
+ (*keyboard_overlay_map)["xkb:pt::por"] = "pt_PT";
+ (*keyboard_overlay_map)["xkb:ro::rum"] = "ro";
+ (*keyboard_overlay_map)["xkb:se::swe"] = "sv";
+ (*keyboard_overlay_map)["xkb:sk::slo"] = "sk";
+ (*keyboard_overlay_map)["xkb:si::slv"] = "sl";
+ (*keyboard_overlay_map)["xkb:rs::srp"] = "sr";
+ (*keyboard_overlay_map)["xkb:tr::tur"] = "tr";
+ (*keyboard_overlay_map)["xkb:ua::ukr"] = "uk";
+ return keyboard_overlay_map;
+ }
+
InputMethodDescriptor previous_input_method_;
InputMethodDescriptor current_input_method_;
ImePropertyList current_ime_properties_;
+ scoped_ptr<KeyboardOverlayMap> keyboard_overlay_map_;
DISALLOW_COPY_AND_ASSIGN(InputMethodLibraryStubImpl);
};

Powered by Google App Engine
This is Rietveld 408576698