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

Side by Side Diff: chrome/browser/chromeos/cros/input_method_library.cc

Issue 6176007: Revert "Use libcros to convert input method ID to keyboard overlay ID." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 11 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/cros/input_method_library.h" 5 #include "chrome/browser/chromeos/cros/input_method_library.h"
6 6
7 #include <glib.h> 7 #include <glib.h>
8 #include <signal.h> 8 #include <signal.h>
9 9
10 #include "unicode/uloc.h" 10 #include "unicode/uloc.h"
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 return previous_input_method_; 184 return previous_input_method_;
185 } 185 }
186 virtual const InputMethodDescriptor& current_input_method() const { 186 virtual const InputMethodDescriptor& current_input_method() const {
187 return current_input_method_; 187 return current_input_method_;
188 } 188 }
189 189
190 virtual const ImePropertyList& current_ime_properties() const { 190 virtual const ImePropertyList& current_ime_properties() const {
191 return current_ime_properties_; 191 return current_ime_properties_;
192 } 192 }
193 193
194 virtual std::string GetKeyboardOverlayId(const std::string& input_method_id) {
195 if (EnsureLoadedAndStarted()) {
196 return chromeos::GetKeyboardOverlayId(input_method_id);
197 }
198 return "";
199 }
200
201 private: 194 private:
202 // Starts input method processes based on the |defer_ime_startup_| flag and 195 // Starts input method processes based on the |defer_ime_startup_| flag and
203 // input method configuration being updated. |section| is a section name of 196 // input method configuration being updated. |section| is a section name of
204 // the input method configuration (e.g. "general", "general/hotkey"). 197 // the input method configuration (e.g. "general", "general/hotkey").
205 // |config_name| is a name of the configuration (e.g. "preload_engines", 198 // |config_name| is a name of the configuration (e.g. "preload_engines",
206 // "previous_engine"). |value| is the configuration value to be set. 199 // "previous_engine"). |value| is the configuration value to be set.
207 void MaybeStartInputMethodProcesses(const std::string& section, 200 void MaybeStartInputMethodProcesses(const std::string& section,
208 const std::string& config_name, 201 const std::string& config_name,
209 const ImeConfigValue& value) { 202 const ImeConfigValue& value) {
210 if (section == language_prefs::kGeneralSectionName && 203 if (section == language_prefs::kGeneralSectionName &&
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 671
679 DISALLOW_COPY_AND_ASSIGN(InputMethodLibraryImpl); 672 DISALLOW_COPY_AND_ASSIGN(InputMethodLibraryImpl);
680 }; 673 };
681 674
682 InputMethodLibraryImpl::Observer::~Observer() {} 675 InputMethodLibraryImpl::Observer::~Observer() {}
683 676
684 class InputMethodLibraryStubImpl : public InputMethodLibrary { 677 class InputMethodLibraryStubImpl : public InputMethodLibrary {
685 public: 678 public:
686 InputMethodLibraryStubImpl() 679 InputMethodLibraryStubImpl()
687 : previous_input_method_("", "", "", ""), 680 : previous_input_method_("", "", "", ""),
688 current_input_method_("", "", "", ""), 681 current_input_method_("", "", "", "") {
689 keyboard_overlay_map_(
690 CreateRealisticKeyboardOverlayMap()) {
691 } 682 }
692 683
693 ~InputMethodLibraryStubImpl() {} 684 ~InputMethodLibraryStubImpl() {}
694 void AddObserver(Observer* observer) {} 685 void AddObserver(Observer* observer) {}
695 void RemoveObserver(Observer* observer) {} 686 void RemoveObserver(Observer* observer) {}
696 687
697 InputMethodDescriptors* GetActiveInputMethods() { 688 InputMethodDescriptors* GetActiveInputMethods() {
698 return CreateRealisticInputMethodDescriptors(); 689 return CreateRealisticInputMethodDescriptors();
699 } 690 }
700 691
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 729
739 virtual const ImePropertyList& current_ime_properties() const { 730 virtual const ImePropertyList& current_ime_properties() const {
740 return current_ime_properties_; 731 return current_ime_properties_;
741 } 732 }
742 733
743 virtual void StartInputMethodProcesses() {} 734 virtual void StartInputMethodProcesses() {}
744 virtual void StopInputMethodProcesses() {} 735 virtual void StopInputMethodProcesses() {}
745 virtual void SetDeferImeStartup(bool defer) {} 736 virtual void SetDeferImeStartup(bool defer) {}
746 virtual void SetEnableAutoImeShutdown(bool enable) {} 737 virtual void SetEnableAutoImeShutdown(bool enable) {}
747 738
748 virtual std::string GetKeyboardOverlayId(const std::string& input_method_id) {
749 KeyboardOverlayMap::const_iterator iter =
750 keyboard_overlay_map_->find(input_method_id);
751 return (iter != keyboard_overlay_map_->end()) ?
752 iter->second : "";
753 }
754
755 private: 739 private:
756 typedef std::map<std::string, std::string> KeyboardOverlayMap;
757
758 // Creates realistic input method descriptors that can be used for 740 // Creates realistic input method descriptors that can be used for
759 // testing Chrome OS version of chrome on regular Linux desktops. 741 // testing Chrome OS version of chrome on regular Linux desktops.
760 InputMethodDescriptors* CreateRealisticInputMethodDescriptors() { 742 InputMethodDescriptors* CreateRealisticInputMethodDescriptors() {
761 InputMethodDescriptors* descriptions = new InputMethodDescriptors; 743 InputMethodDescriptors* descriptions = new InputMethodDescriptors;
762 // The list is created from output of gen_engines.py in libcros. 744 // The list is created from output of gen_engines.py in libcros.
763 descriptions->push_back(InputMethodDescriptor( 745 descriptions->push_back(InputMethodDescriptor(
764 "chewing", "Chewing", "us", "zh_TW")); 746 "chewing", "Chewing", "us", "zh_TW"));
765 descriptions->push_back(InputMethodDescriptor( 747 descriptions->push_back(InputMethodDescriptor(
766 "hangul", "Korean", "us", "ko")); 748 "hangul", "Korean", "us", "ko"));
767 descriptions->push_back(InputMethodDescriptor( 749 descriptions->push_back(InputMethodDescriptor(
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 descriptions->push_back(InputMethodDescriptor( 858 descriptions->push_back(InputMethodDescriptor(
877 "xkb:tr::tur", "Turkey", "tr", "tur")); 859 "xkb:tr::tur", "Turkey", "tr", "tur"));
878 descriptions->push_back(InputMethodDescriptor( 860 descriptions->push_back(InputMethodDescriptor(
879 "xkb:ua::ukr", "Ukraine", "ua", "ukr")); 861 "xkb:ua::ukr", "Ukraine", "ua", "ukr"));
880 descriptions->push_back(InputMethodDescriptor( 862 descriptions->push_back(InputMethodDescriptor(
881 "xkb:gb:extd:eng", "United Kingdom - Extended - Winkeys", "gb(extd)", 863 "xkb:gb:extd:eng", "United Kingdom - Extended - Winkeys", "gb(extd)",
882 "eng")); 864 "eng"));
883 return descriptions; 865 return descriptions;
884 } 866 }
885 867
886 std::map<std::string, std::string>* CreateRealisticKeyboardOverlayMap() {
887 KeyboardOverlayMap* keyboard_overlay_map =
888 new KeyboardOverlayMap;
889 (*keyboard_overlay_map)["xkb:nl::nld"] = "nl";
890 (*keyboard_overlay_map)["xkb:be::nld"] = "nl";
891 (*keyboard_overlay_map)["xkb:fr::fra"] = "fr";
892 (*keyboard_overlay_map)["xkb:be::fra"] = "fr";
893 (*keyboard_overlay_map)["xkb:ca::fra"] = "fr_CA";
894 (*keyboard_overlay_map)["xkb:ch:fr:fra"] = "fr";
895 (*keyboard_overlay_map)["xkb:de::ger"] = "de";
896 (*keyboard_overlay_map)["xkb:be::ger"] = "de";
897 (*keyboard_overlay_map)["xkb:ch::ger"] = "de";
898 (*keyboard_overlay_map)["mozc"] = "en_US";
899 (*keyboard_overlay_map)["mozc-jp"] = "ja";
900 (*keyboard_overlay_map)["mozc-dv"] = "en_US_dvorak";
901 (*keyboard_overlay_map)["xkb:jp::jpn"] = "ja";
902 (*keyboard_overlay_map)["xkb:ru::rus"] = "ru";
903 (*keyboard_overlay_map)["xkb:ru:phonetic:rus"] = "ru";
904 (*keyboard_overlay_map)["m17n:th:kesmanee"] = "th";
905 (*keyboard_overlay_map)["m17n:th:pattachote"] = "th";
906 (*keyboard_overlay_map)["m17n:th:tis820"] = "th";
907 (*keyboard_overlay_map)["chewing"] = "zh_TW";
908 (*keyboard_overlay_map)["m17n:zh:cangjie"] = "zh_TW";
909 (*keyboard_overlay_map)["m17n:zh:quick"] = "zh_TW";
910 (*keyboard_overlay_map)["m17n:vi:tcvn"] = "vi";
911 (*keyboard_overlay_map)["m17n:vi:telex"] = "vi";
912 (*keyboard_overlay_map)["m17n:vi:viqr"] = "vi";
913 (*keyboard_overlay_map)["m17n:vi:vni"] = "vi";
914 (*keyboard_overlay_map)["xkb:us::eng"] = "en_US";
915 (*keyboard_overlay_map)["xkb:us:intl:eng"] = "en_US";
916 (*keyboard_overlay_map)["xkb:us:altgr-intl:eng"] = "en_US";
917 (*keyboard_overlay_map)["xkb:us:dvorak:eng"] =
918 "en_US_dvorak";
919 (*keyboard_overlay_map)["xkb:us:colemak:eng"] =
920 "en_US";
921 (*keyboard_overlay_map)["hangul"] = "ko";
922 (*keyboard_overlay_map)["pinyin"] = "zh_CN";
923 (*keyboard_overlay_map)["m17n:ar:kbd"] = "ar";
924 (*keyboard_overlay_map)["m17n:hi:itrans"] = "hi";
925 (*keyboard_overlay_map)["m17n:fa:isiri"] = "ar";
926 (*keyboard_overlay_map)["xkb:br::por"] = "pt_BR";
927 (*keyboard_overlay_map)["xkb:bg::bul"] = "bg";
928 (*keyboard_overlay_map)["xkb:bg:phonetic:bul"] = "bg";
929 (*keyboard_overlay_map)["xkb:ca:eng:eng"] = "ca";
930 (*keyboard_overlay_map)["xkb:cz::cze"] = "cs";
931 (*keyboard_overlay_map)["xkb:ee::est"] = "et";
932 (*keyboard_overlay_map)["xkb:es::spa"] = "es";
933 (*keyboard_overlay_map)["xkb:es:cat:cat"] = "ca";
934 (*keyboard_overlay_map)["xkb:dk::dan"] = "da";
935 (*keyboard_overlay_map)["xkb:gr::gre"] = "el";
936 (*keyboard_overlay_map)["xkb:il::heb"] = "iw";
937 (*keyboard_overlay_map)["xkb:kr:kr104:kor"] = "ko";
938 (*keyboard_overlay_map)["xkb:latam::spa"] = "es_419";
939 (*keyboard_overlay_map)["xkb:lt::lit"] = "lt";
940 (*keyboard_overlay_map)["xkb:lv:apostrophe:lav"] = "lv";
941 (*keyboard_overlay_map)["xkb:hr::scr"] = "hr";
942 (*keyboard_overlay_map)["xkb:gb:extd:eng"] = "en_GB";
943 (*keyboard_overlay_map)["xkb:fi::fin"] = "fi";
944 (*keyboard_overlay_map)["xkb:hu::hun"] = "hu";
945 (*keyboard_overlay_map)["xkb:it::ita"] = "it";
946 (*keyboard_overlay_map)["xkb:no::nob"] = "no";
947 (*keyboard_overlay_map)["xkb:pl::pol"] = "pl";
948 (*keyboard_overlay_map)["xkb:pt::por"] = "pt_PT";
949 (*keyboard_overlay_map)["xkb:ro::rum"] = "ro";
950 (*keyboard_overlay_map)["xkb:se::swe"] = "sv";
951 (*keyboard_overlay_map)["xkb:sk::slo"] = "sk";
952 (*keyboard_overlay_map)["xkb:si::slv"] = "sl";
953 (*keyboard_overlay_map)["xkb:rs::srp"] = "sr";
954 (*keyboard_overlay_map)["xkb:tr::tur"] = "tr";
955 (*keyboard_overlay_map)["xkb:ua::ukr"] = "uk";
956 return keyboard_overlay_map;
957 }
958
959 InputMethodDescriptor previous_input_method_; 868 InputMethodDescriptor previous_input_method_;
960 InputMethodDescriptor current_input_method_; 869 InputMethodDescriptor current_input_method_;
961 ImePropertyList current_ime_properties_; 870 ImePropertyList current_ime_properties_;
962 scoped_ptr<KeyboardOverlayMap> keyboard_overlay_map_;
963 871
964 DISALLOW_COPY_AND_ASSIGN(InputMethodLibraryStubImpl); 872 DISALLOW_COPY_AND_ASSIGN(InputMethodLibraryStubImpl);
965 }; 873 };
966 874
967 // static 875 // static
968 InputMethodLibrary* InputMethodLibrary::GetImpl(bool stub) { 876 InputMethodLibrary* InputMethodLibrary::GetImpl(bool stub) {
969 if (stub) 877 if (stub)
970 return new InputMethodLibraryStubImpl(); 878 return new InputMethodLibraryStubImpl();
971 else 879 else
972 return new InputMethodLibraryImpl(); 880 return new InputMethodLibraryImpl();
973 } 881 }
974 882
975 } // namespace chromeos 883 } // namespace chromeos
976 884
977 // Allows InvokeLater without adding refcounting. This class is a Singleton and 885 // Allows InvokeLater without adding refcounting. This class is a Singleton and
978 // won't be deleted until it's last InvokeLater is run. 886 // won't be deleted until it's last InvokeLater is run.
979 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::InputMethodLibraryImpl); 887 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::InputMethodLibraryImpl);
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/input_method_library.h ('k') | chrome/browser/chromeos/dom_ui/keyboard_overlay_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698