- add sources.
[platform/framework/web/crosswalk.git] / src / chromeos / ime / input_method_property.h
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_