| 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 #ifndef CHROMEOS_IME_COMPONENT_EXTENSION_IME_MANAGER_H_ | 5 #ifndef CHROMEOS_IME_COMPONENT_EXTENSION_IME_MANAGER_H_ |
| 6 #define CHROMEOS_IME_COMPONENT_EXTENSION_IME_MANAGER_H_ | 6 #define CHROMEOS_IME_COMPONENT_EXTENSION_IME_MANAGER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| 11 #include "base/files/file_path.h" | 11 #include "base/files/file_path.h" |
| 12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 13 #include "base/observer_list.h" | 13 #include "base/observer_list.h" |
| 14 #include "chromeos/chromeos_export.h" | 14 #include "chromeos/chromeos_export.h" |
| 15 #include "chromeos/ime/input_method_descriptor.h" | 15 #include "chromeos/ime/input_method_descriptor.h" |
| 16 | 16 |
| 17 class Profile; |
| 18 |
| 17 namespace chromeos { | 19 namespace chromeos { |
| 18 | 20 |
| 19 // Represents an engine in component extension IME. | 21 // Represents an engine in component extension IME. |
| 20 struct CHROMEOS_EXPORT ComponentExtensionEngine { | 22 struct CHROMEOS_EXPORT ComponentExtensionEngine { |
| 21 ComponentExtensionEngine(); | 23 ComponentExtensionEngine(); |
| 22 ~ComponentExtensionEngine(); | 24 ~ComponentExtensionEngine(); |
| 23 std::string engine_id; // The engine id. | 25 std::string engine_id; // The engine id. |
| 24 std::string display_name; // The display name. | 26 std::string display_name; // The display name. |
| 25 std::vector<std::string> language_codes; // The engine's language(ex. "en"). | 27 std::vector<std::string> language_codes; // The engine's language(ex. "en"). |
| 26 std::string description; // The engine description. | 28 std::string description; // The engine description. |
| (...skipping 18 matching lines...) Expand all Loading... |
| 45 class CHROMEOS_EXPORT ComponentExtensionIMEManagerDelegate { | 47 class CHROMEOS_EXPORT ComponentExtensionIMEManagerDelegate { |
| 46 public: | 48 public: |
| 47 ComponentExtensionIMEManagerDelegate(); | 49 ComponentExtensionIMEManagerDelegate(); |
| 48 virtual ~ComponentExtensionIMEManagerDelegate(); | 50 virtual ~ComponentExtensionIMEManagerDelegate(); |
| 49 | 51 |
| 50 // Lists installed component extension IMEs. | 52 // Lists installed component extension IMEs. |
| 51 virtual std::vector<ComponentExtensionIME> ListIME() = 0; | 53 virtual std::vector<ComponentExtensionIME> ListIME() = 0; |
| 52 | 54 |
| 53 // Loads component extension IME associated with |extension_id|. | 55 // Loads component extension IME associated with |extension_id|. |
| 54 // Returns false if it fails, otherwise returns true. | 56 // Returns false if it fails, otherwise returns true. |
| 55 virtual bool Load(const std::string& extension_id, | 57 virtual bool Load(Profile* profile, |
| 58 const std::string& extension_id, |
| 56 const std::string& manifest, | 59 const std::string& manifest, |
| 57 const base::FilePath& path) = 0; | 60 const base::FilePath& path) = 0; |
| 58 | 61 |
| 59 // Unloads component extension IME associated with |extension_id|. | 62 // Unloads component extension IME associated with |extension_id|. |
| 60 virtual void Unload(const std::string& extension_id, | 63 virtual void Unload(Profile* profile, |
| 64 const std::string& extension_id, |
| 61 const base::FilePath& path) = 0; | 65 const base::FilePath& path) = 0; |
| 62 }; | 66 }; |
| 63 | 67 |
| 64 // This class manages component extension input method. | 68 // This class manages component extension input method. |
| 65 class CHROMEOS_EXPORT ComponentExtensionIMEManager { | 69 class CHROMEOS_EXPORT ComponentExtensionIMEManager { |
| 66 public: | 70 public: |
| 67 ComponentExtensionIMEManager(); | 71 ComponentExtensionIMEManager(); |
| 68 virtual ~ComponentExtensionIMEManager(); | 72 virtual ~ComponentExtensionIMEManager(); |
| 69 | 73 |
| 70 // Initializes component extension manager. This function create internal | 74 // Initializes component extension manager. This function create internal |
| 71 // mapping between input method id and engine components. This function must | 75 // mapping between input method id and engine components. This function must |
| 72 // be called before using any other function. | 76 // be called before using any other function. |
| 73 void Initialize(scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate); | 77 void Initialize(scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate); |
| 74 | 78 |
| 75 // Loads |input_method_id| component extension IME. This function returns true | 79 // Loads |input_method_id| component extension IME. This function returns true |
| 76 // on success. This function is safe to call multiple times. Returns false if | 80 // on success. This function is safe to call multiple times. Returns false if |
| 77 // already corresponding component extension is loaded. | 81 // already corresponding component extension is loaded. |
| 78 bool LoadComponentExtensionIME(const std::string& input_method_id); | 82 bool LoadComponentExtensionIME(Profile* profile, |
| 83 const std::string& input_method_id); |
| 79 | 84 |
| 80 // Unloads |input_method_id| component extension IME. This function returns | 85 // Unloads |input_method_id| component extension IME. This function returns |
| 81 // true on success. This function is safe to call multiple times. Returns | 86 // true on success. This function is safe to call multiple times. Returns |
| 82 // false if already corresponding component extension is unloaded. | 87 // false if already corresponding component extension is unloaded. |
| 83 bool UnloadComponentExtensionIME(const std::string& input_method_id); | 88 bool UnloadComponentExtensionIME(Profile* profile, |
| 89 const std::string& input_method_id); |
| 84 | 90 |
| 85 // Returns true if |input_method_id| is whitelisted component extension input | 91 // Returns true if |input_method_id| is whitelisted component extension input |
| 86 // method. | 92 // method. |
| 87 bool IsWhitelisted(const std::string& input_method_id); | 93 bool IsWhitelisted(const std::string& input_method_id); |
| 88 | 94 |
| 89 // Returns true if |extension_id| is whitelisted component extension. | 95 // Returns true if |extension_id| is whitelisted component extension. |
| 90 bool IsWhitelistedExtension(const std::string& extension_id); | 96 bool IsWhitelistedExtension(const std::string& extension_id); |
| 91 | 97 |
| 92 // Returns all IME as InputMethodDescriptors. | 98 // Returns all IME as InputMethodDescriptors. |
| 93 input_method::InputMethodDescriptors GetAllIMEAsInputMethodDescriptor(); | 99 input_method::InputMethodDescriptors GetAllIMEAsInputMethodDescriptor(); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 115 std::set<std::string> input_method_id_set_; | 121 std::set<std::string> input_method_id_set_; |
| 116 | 122 |
| 117 std::set<std::string> login_layout_set_; | 123 std::set<std::string> login_layout_set_; |
| 118 | 124 |
| 119 DISALLOW_COPY_AND_ASSIGN(ComponentExtensionIMEManager); | 125 DISALLOW_COPY_AND_ASSIGN(ComponentExtensionIMEManager); |
| 120 }; | 126 }; |
| 121 | 127 |
| 122 } // namespace chromeos | 128 } // namespace chromeos |
| 123 | 129 |
| 124 #endif // CHROMEOS_IME_COMPONENT_EXTENSION_IME_MANAGER_H_ | 130 #endif // CHROMEOS_IME_COMPONENT_EXTENSION_IME_MANAGER_H_ |
| OLD | NEW |