summaryrefslogtreecommitdiffstats
path: root/ash/ime/input_method_menu_item.h
blob: 1407d0a7d85c9d73faebe063bece82fc7bb6d887 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_IME_INPUT_METHOD_MENU_ITEM_H_
#define ASH_IME_INPUT_METHOD_MENU_ITEM_H_

#include <string>
#include <vector>
#include "ash/ash_export.h"

namespace ash {
namespace ime {

// A structure which represents a property for an input method engine.
struct ASH_EXPORT InputMethodMenuItem {
  InputMethodMenuItem(const std::string& in_key,
                      const std::string& in_label,
                      bool in_is_selection_item,
                      bool in_is_selection_item_checked);

  InputMethodMenuItem();
  ~InputMethodMenuItem();

  bool operator==(const InputMethodMenuItem& other) const;
  bool operator!=(const InputMethodMenuItem& other) const;

  // Debug print function.
  std::string ToString() const;

  std::string key;  // A key which identifies the property. Non-empty string.
                    // (e.g. "InputMode.HalfWidthKatakana")
  std::string label;  // A description of the property. Non-empty string.
                      // (e.g. "Switch to full punctuation mode", "Hiragana")
  bool is_selection_item;  // true if the property is a selection item.
  bool is_selection_item_checked;  // true if |is_selection_item| is true and
                                   // the selection_item is selected.
};
typedef std::vector<InputMethodMenuItem> InputMethodMenuItemList;

}  // namespace ime
}  // namespace ash

#endif  // ASH_IME_INPUT_METHOD_MENU_ITEM_H_