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.
5 #ifndef CHROMEOS_IME_INPUT_METHOD_DESCRIPTOR_H_
6 #define CHROMEOS_IME_INPUT_METHOD_DESCRIPTOR_H_
11 #include "base/basictypes.h"
12 #include "chromeos/chromeos_export.h"
16 namespace input_method
{
18 // A structure which represents an input method.
19 class CHROMEOS_EXPORT InputMethodDescriptor
{
21 InputMethodDescriptor();
22 InputMethodDescriptor(const std::string
& id
,
23 const std::string
& name
,
24 const std::string
& indicator
,
25 const std::vector
<std::string
>& keyboard_layouts
,
26 const std::vector
<std::string
>& language_codes
,
27 bool is_login_keyboard
,
28 const GURL
& options_page_url
,
29 const GURL
& input_view_url
);
30 ~InputMethodDescriptor();
33 const std::string
& id() const { return id_
; }
34 const std::string
& name() const { return name_
; }
35 const std::string
& indicator() const { return indicator_
; }
36 const std::vector
<std::string
>& language_codes() const {
37 return language_codes_
;
39 const GURL
& options_page_url() const { return options_page_url_
; }
40 const GURL
& input_view_url() const { return input_view_url_
; }
41 const std::vector
<std::string
>& keyboard_layouts() const {
42 return keyboard_layouts_
;
45 bool is_login_keyboard() const { return is_login_keyboard_
; }
47 // Returns preferred keyboard layout.
48 std::string
GetPreferredKeyboardLayout() const;
51 // An ID that identifies an input method engine (e.g., "t:latn-post",
52 // "pinyin", "hangul").
55 // A name used to specify the user-visible name of this input method. It is
56 // only used by extension IMEs, and should be blank for internal IMEs.
59 // A preferred physical keyboard layout for the input method (e.g., "us",
60 // "us(dvorak)", "jp"). Comma separated layout names do NOT appear.
61 std::vector
<std::string
> keyboard_layouts_
;
63 // Language code like "ko", "ja", "en-US", and "zh-CN".
64 std::vector
<std::string
> language_codes_
;
66 // A short indicator string that is displayed when the input method
67 // is selected, like "US".
68 std::string indicator_
;
70 // True if this input method can be used on login screen.
71 bool is_login_keyboard_
;
73 // Options page URL e.g.
74 // "chrome-extension://ceaajjmckiakobniehbjpdcidfpohlin/options.html".
75 // This field is valid only for input method extension.
76 GURL options_page_url_
;
78 // Input View URL e.g.
79 // "chrome-extension://ceaajjmckiakobniehbjpdcidfpohlin/my_input_view.html".
80 // This field is valid only for input method extension.
84 typedef std::vector
<InputMethodDescriptor
> InputMethodDescriptors
;
86 } // namespace input_method
87 } // namespace chromeos
89 #endif // CHROMEOS_IME_INPUT_METHOD_DESCRIPTOR_H_