OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |