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 16namespace chromeos { 17namespace input_method { 18 19class InputMethodDescriptor; 20typedef 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. 24class 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