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 3 // found in the LICENSE file. 4 5 #ifndef CHROMEOS_IME_INPUT_METHOD_WHITELIST_H_ 6 #define CHROMEOS_IME_INPUT_METHOD_WHITELIST_H_ 7 8 #include <set> 9 #include <string> 10 #include <vector> 11 12 #include "base/basictypes.h" 13 #include "base/memory/scoped_ptr.h" 14 #include "chromeos/chromeos_export.h" 15 16 namespace chromeos { 17 namespace input_method { 18 19 class InputMethodDescriptor; 20 typedef std::vector<InputMethodDescriptor> InputMethodDescriptors; 21 22 // A class which has white listed input method list. The list is generated by 23 // gen_input_methods.py from input_methods.txt. 24 class CHROMEOS_EXPORT InputMethodWhitelist { 25 public: 26 InputMethodWhitelist(); 27 ~InputMethodWhitelist(); 28 29 // Returns true if |input_method_id| is whitelisted. 30 bool InputMethodIdIsWhitelisted(const std::string& input_method_id) const; 31 32 // Returns all input methods that are supported, including ones not active. 33 // This function never returns NULL. Note that input method extensions are not 34 // included in the result. 35 scoped_ptr<InputMethodDescriptors> GetSupportedInputMethods() const; 36 37 private: 38 std::set<std::string> supported_input_methods_; 39 40 DISALLOW_COPY_AND_ASSIGN(InputMethodWhitelist); 41 }; 42 43 } // namespace input_method 44 } // namespace chromeos 45 46 #endif // CHROMEOS_IME_INPUT_METHOD_WHITELIST_H_ 47