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_PROPERTY_H_ 6 #define CHROMEOS_IME_INPUT_METHOD_PROPERTY_H_ 7 8 #include <string> 9 #include <vector> 10 #include "chromeos/chromeos_export.h" 11 12 namespace chromeos { 13 namespace input_method { 14 15 // A structure which represents a property for an input method engine. 16 struct CHROMEOS_EXPORT InputMethodProperty { 17 InputMethodProperty(const std::string& in_key, 18 const std::string& in_label, 19 bool in_is_selection_item, 20 bool in_is_selection_item_checked); 21 22 InputMethodProperty(); 23 ~InputMethodProperty(); 24 25 bool operator==(const InputMethodProperty& other) const; 26 bool operator!=(const InputMethodProperty& other) const; 27 28 // Debug print function. 29 std::string ToString() const; 30 31 std::string key; // A key which identifies the property. Non-empty string. 32 // (e.g. "InputMode.HalfWidthKatakana") 33 std::string label; // A description of the property. Non-empty string. 34 // (e.g. "Switch to full punctuation mode", "Hiragana") 35 bool is_selection_item; // true if the property is a selection item. 36 bool is_selection_item_checked; // true if |is_selection_item| is true and 37 // the selection_item is selected. 38 }; 39 typedef std::vector<InputMethodProperty> InputMethodPropertyList; 40 41 } // namespace input_method 42 } // namespace chromeos 43 44 #endif // CHROMEOS_IME_INPUT_METHOD_PROPERTY_H_ 45