Home | History | Annotate | Download | only in ime
      1 // Copyright 2014 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 ASH_IME_INPUT_METHOD_MENU_ITEM_H_
      6 #define ASH_IME_INPUT_METHOD_MENU_ITEM_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 #include "ash/ash_export.h"
     11 
     12 namespace ash {
     13 namespace ime {
     14 
     15 // A structure which represents a property for an input method engine.
     16 struct ASH_EXPORT InputMethodMenuItem {
     17   InputMethodMenuItem(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   InputMethodMenuItem();
     23   ~InputMethodMenuItem();
     24 
     25   bool operator==(const InputMethodMenuItem& other) const;
     26   bool operator!=(const InputMethodMenuItem& 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<InputMethodMenuItem> InputMethodMenuItemList;
     40 
     41 }  // namespace ime
     42 }  // namespace ash
     43 
     44 #endif  // ASH_IME_INPUT_METHOD_MENU_ITEM_H_
     45