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

Side by Side Diff: chromeos/ime/component_extension_ime_manager.cc

Issue 13949015: Supporting multiple keyboard layouts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing comment Created 7 years, 8 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/logging.h" 5 #include "base/logging.h"
6 #include "base/string_util.h" 6 #include "base/string_util.h"
7 #include "chromeos/ime/component_extension_ime_manager.h" 7 #include "chromeos/ime/component_extension_ime_manager.h"
8 8
9 namespace chromeos { 9 namespace chromeos {
10 namespace { 10 namespace {
11 const char* kComponentExtensionIMEPrefix = "_comp_ime_"; 11 const char* kComponentExtensionIMEPrefix = "_comp_ime_";
12 } // namespace 12 } // namespace
13 13
14 ComponentExtensionEngine::ComponentExtensionEngine() {
15 }
16
17 ComponentExtensionEngine::~ComponentExtensionEngine() {
18 }
19
14 ComponentExtensionIME::ComponentExtensionIME() { 20 ComponentExtensionIME::ComponentExtensionIME() {
15 } 21 }
16 22
17 ComponentExtensionIME::~ComponentExtensionIME() { 23 ComponentExtensionIME::~ComponentExtensionIME() {
18 } 24 }
19 25
20 ComponentExtensionIMEManagerDelegate::ComponentExtensionIMEManagerDelegate() { 26 ComponentExtensionIMEManagerDelegate::ComponentExtensionIMEManagerDelegate() {
21 } 27 }
22 28
23 ComponentExtensionIMEManagerDelegate::~ComponentExtensionIMEManagerDelegate() { 29 ComponentExtensionIMEManagerDelegate::~ComponentExtensionIMEManagerDelegate() {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 for (size_t i = 0; i < component_extension_imes_.size(); ++i) { 92 for (size_t i = 0; i < component_extension_imes_.size(); ++i) {
87 if (component_extension_imes_[i].id == extension_id) 93 if (component_extension_imes_[i].id == extension_id)
88 return true; 94 return true;
89 } 95 }
90 return false; 96 return false;
91 } 97 }
92 98
93 std::string ComponentExtensionIMEManager::GetId( 99 std::string ComponentExtensionIMEManager::GetId(
94 const std::string& extension_id, 100 const std::string& extension_id,
95 const std::string& engine_id) { 101 const std::string& engine_id) {
96 IBusComponent::EngineDescription engine; 102 ComponentExtensionEngine engine;
97 const std::string& input_method_id = 103 const std::string& input_method_id =
98 GetComponentExtensionIMEId(extension_id, engine_id); 104 GetComponentExtensionIMEId(extension_id, engine_id);
99 if (!FindEngineEntry(input_method_id, NULL, &engine)) 105 if (!FindEngineEntry(input_method_id, NULL, &engine))
100 return ""; 106 return "";
101 return input_method_id; 107 return input_method_id;
102 } 108 }
103 109
104 std::string ComponentExtensionIMEManager::GetName( 110 std::string ComponentExtensionIMEManager::GetName(
105 const std::string& input_method_id) { 111 const std::string& input_method_id) {
106 IBusComponent::EngineDescription engine; 112 ComponentExtensionEngine engine;
107 if (!FindEngineEntry(input_method_id, NULL, &engine)) 113 if (!FindEngineEntry(input_method_id, NULL, &engine))
108 return ""; 114 return "";
109 return engine.display_name; 115 return engine.display_name;
110 } 116 }
111 117
112 std::string ComponentExtensionIMEManager::GetDescription( 118 std::string ComponentExtensionIMEManager::GetDescription(
113 const std::string& input_method_id) { 119 const std::string& input_method_id) {
114 IBusComponent::EngineDescription engine; 120 ComponentExtensionEngine engine;
115 if (!FindEngineEntry(input_method_id, NULL, &engine)) 121 if (!FindEngineEntry(input_method_id, NULL, &engine))
116 return ""; 122 return "";
117 return engine.description; 123 return engine.description;
118 } 124 }
119 125
120 std::vector<std::string> ComponentExtensionIMEManager::ListIMEByLanguage( 126 std::vector<std::string> ComponentExtensionIMEManager::ListIMEByLanguage(
121 const std::string& language) { 127 const std::string& language) {
122 std::vector<std::string> result; 128 std::vector<std::string> result;
123 for (size_t i = 0; i < component_extension_imes_.size(); ++i) { 129 for (size_t i = 0; i < component_extension_imes_.size(); ++i) {
124 for (size_t j = 0; j < component_extension_imes_[i].engines.size(); ++j) { 130 for (size_t j = 0; j < component_extension_imes_[i].engines.size(); ++j) {
(...skipping 11 matching lines...) Expand all
136 ComponentExtensionIMEManager::GetAllIMEAsInputMethodDescriptor() { 142 ComponentExtensionIMEManager::GetAllIMEAsInputMethodDescriptor() {
137 input_method::InputMethodDescriptors result; 143 input_method::InputMethodDescriptors result;
138 for (size_t i = 0; i < component_extension_imes_.size(); ++i) { 144 for (size_t i = 0; i < component_extension_imes_.size(); ++i) {
139 for (size_t j = 0; j < component_extension_imes_[i].engines.size(); ++j) { 145 for (size_t j = 0; j < component_extension_imes_[i].engines.size(); ++j) {
140 result.push_back( 146 result.push_back(
141 input_method::InputMethodDescriptor( 147 input_method::InputMethodDescriptor(
142 GetComponentExtensionIMEId( 148 GetComponentExtensionIMEId(
143 component_extension_imes_[i].id, 149 component_extension_imes_[i].id,
144 component_extension_imes_[i].engines[j].engine_id), 150 component_extension_imes_[i].engines[j].engine_id),
145 component_extension_imes_[i].engines[j].display_name, 151 component_extension_imes_[i].engines[j].display_name,
146 component_extension_imes_[i].engines[j].layout, 152 component_extension_imes_[i].engines[j].layouts,
147 component_extension_imes_[i].engines[j].language_code, 153 component_extension_imes_[i].engines[j].language_code,
148 component_extension_imes_[i].options_page_url)); 154 component_extension_imes_[i].options_page_url));
149 } 155 }
150 } 156 }
151 return result; 157 return result;
152 } 158 }
153 159
154 void ComponentExtensionIMEManager::AddObserver(Observer* observer) { 160 void ComponentExtensionIMEManager::AddObserver(Observer* observer) {
155 observers_.AddObserver(observer); 161 observers_.AddObserver(observer);
156 } 162 }
157 163
158 void ComponentExtensionIMEManager::RemoveObserver(Observer* observer) { 164 void ComponentExtensionIMEManager::RemoveObserver(Observer* observer) {
159 observers_.RemoveObserver(observer); 165 observers_.RemoveObserver(observer);
160 } 166 }
161 167
162 bool ComponentExtensionIMEManager::FindEngineEntry( 168 bool ComponentExtensionIMEManager::FindEngineEntry(
163 const std::string& input_method_id, 169 const std::string& input_method_id,
164 ComponentExtensionIME* out_extension, 170 ComponentExtensionIME* out_extension,
165 IBusComponent::EngineDescription* out_engine) { 171 ComponentExtensionEngine* out_engine) {
166 if (!IsComponentExtensionIMEId(input_method_id)) 172 if (!IsComponentExtensionIMEId(input_method_id))
167 return false; 173 return false;
168 for (size_t i = 0; i < component_extension_imes_.size(); ++i) { 174 for (size_t i = 0; i < component_extension_imes_.size(); ++i) {
169 const std::string extension_id = component_extension_imes_[i].id; 175 const std::string extension_id = component_extension_imes_[i].id;
170 const std::vector<IBusComponent::EngineDescription>& engines = 176 const std::vector<ComponentExtensionEngine>& engines =
171 component_extension_imes_[i].engines; 177 component_extension_imes_[i].engines;
172 178
173 for (size_t j = 0; j < engines.size(); ++j) { 179 for (size_t j = 0; j < engines.size(); ++j) {
174 const std::string trial_ime_id = GetComponentExtensionIMEId( 180 const std::string trial_ime_id = GetComponentExtensionIMEId(
175 extension_id, engines[j].engine_id); 181 extension_id, engines[j].engine_id);
176 if (trial_ime_id != input_method_id) 182 if (trial_ime_id != input_method_id)
177 continue; 183 continue;
178 184
179 if (out_extension) 185 if (out_extension)
180 *out_extension = component_extension_imes_[i]; 186 *out_extension = component_extension_imes_[i];
181 if (out_engine) 187 if (out_engine)
182 *out_engine = component_extension_imes_[i].engines[j]; 188 *out_engine = component_extension_imes_[i].engines[j];
183 return true; 189 return true;
184 } 190 }
185 } 191 }
186 return false; 192 return false;
187 } 193 }
188 194
189 } // namespace chromeos 195 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/ime/component_extension_ime_manager.h ('k') | chromeos/ime/component_extension_ime_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698