OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_ |
6 #define CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_ | 6 #define CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_ |
7 | 7 |
8 #include <stddef.h> // For size_t | |
9 | |
10 #include "components/user_prefs/pref_registry_syncable.h" | |
11 | |
12 class PrefRegistrySimple; | 8 class PrefRegistrySimple; |
13 | 9 |
14 // TODO(yusukes): Rename this file to input_method_preference.cc. Since | 10 // TODO(yusukes): Rename this file to input_method_preference.cc. Since |
15 // "language" usually means UI language, the current file name is confusing. | 11 // "language" usually means UI language, the current file name is confusing. |
16 // The namespace should also be changed to "namespace input_method {". | 12 // The namespace should also be changed to "namespace input_method {". |
17 | 13 |
18 // This file defines types and declare variables used in "Languages and | 14 // This file defines types and declare variables used in "Languages and |
19 // Input" settings in Chromium OS. | 15 // Input" settings in Chromium OS. |
20 namespace chromeos { | 16 namespace chromeos { |
21 namespace language_prefs { | 17 namespace language_prefs { |
22 | 18 |
23 // TODO(yusukes): Remove the "Language" prefix from all structs and variables. | |
24 // They're redundant (we already have the language_prefs namespace) and even | |
25 // confusing. | |
26 | |
27 // The struct is used for preferences consisting of multiple choices, like | |
28 // punctuation types used in Japanese input method. | |
29 template <typename DataType> | |
30 struct LanguageMultipleChoicePreference { | |
31 const char* pref_name; // Chrome preference name. | |
32 DataType default_pref_value; | |
33 const char* ibus_config_name; | |
34 // Currently we have 10 combobox items at most. | |
35 static const size_t kMaxItems = 11; | |
36 struct { | |
37 DataType ibus_config_value; | |
38 int item_message_id; // Resource grd ID for the combobox item. | |
39 } values_and_ids[kMaxItems]; | |
40 int label_message_id; // Resource grd ID for the label. | |
41 user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status; | |
42 }; | |
43 | |
44 // The struct is used for preferences of boolean values, like switches to | |
45 // enable or disable particular features. | |
46 struct LanguageBooleanPrefs { | |
47 const char* pref_name; // Chrome preference name. | |
48 bool default_pref_value; | |
49 const char* ibus_config_name; | |
50 int message_id; | |
51 user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status; | |
52 }; | |
53 | |
54 // The struct is used for preferences of integer range values, like the | |
55 // key repeat rate. | |
56 struct LanguageIntegerRangePreference { | |
57 const char* pref_name; // Chrome preference name. | |
58 int default_pref_value; | |
59 int min_pref_value; | |
60 int max_pref_value; | |
61 const char* ibus_config_name; | |
62 int message_id; | |
63 user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status; | |
64 }; | |
65 | |
66 // --------------------------------------------------------------------------- | 19 // --------------------------------------------------------------------------- |
67 // For ibus-daemon | 20 // For ibus-daemon |
Seigo Nonaka
2013/09/02 06:14:33
Please update like "For input method engine manage
Hiro Komatsu
2013/09/02 06:37:13
Done.
| |
68 // --------------------------------------------------------------------------- | 21 // --------------------------------------------------------------------------- |
69 extern const char kGeneralSectionName[]; | 22 extern const char kGeneralSectionName[]; |
70 extern const char kPreloadEnginesConfigName[]; | 23 extern const char kPreloadEnginesConfigName[]; |
71 | 24 |
72 // --------------------------------------------------------------------------- | 25 // --------------------------------------------------------------------------- |
73 // For Traditional Chinese input method (ibus-mozc-chewing) | |
74 // --------------------------------------------------------------------------- | |
75 extern const char kChewingSectionName[]; | |
76 | |
77 extern const LanguageBooleanPrefs kChewingBooleanPrefs[]; | |
78 // This is not ideal, but we should hard-code the number here as the value | |
79 // is referenced in other header files as array sizes. We have a | |
80 // COMPILE_ASSERT in .cc to ensure that the number is correct. | |
81 const size_t kNumChewingBooleanPrefs = 8 - 2; // -2 is for crosbug.com/14185 | |
82 | |
83 extern const LanguageIntegerRangePreference kChewingIntegerPrefs[]; | |
84 // See comments at kNumChewingBooleanPrefs for why we hard-code this here. | |
85 const size_t kNumChewingIntegerPrefs = 2; | |
86 const int kChewingMaxChiSymbolLenIndex = 0; | |
87 const int kChewingCandPerPageIndex = 1; | |
88 | |
89 extern const LanguageMultipleChoicePreference<const char*> | |
90 kChewingMultipleChoicePrefs[]; | |
91 // See comments at kNumChewingBooleanPrefs for why we hard-code this here. | |
92 const size_t kNumChewingMultipleChoicePrefs = 2; | |
93 | |
94 extern const LanguageMultipleChoicePreference<int> kChewingHsuSelKeyType; | |
95 | |
96 // --------------------------------------------------------------------------- | |
97 // For Korean input method (ibus-mozc-hangul) | |
98 // --------------------------------------------------------------------------- | |
99 extern const char kHangulSectionName[]; | |
100 extern const char kHangulKeyboardConfigName[]; | |
101 extern const char kHangulHanjaBindingKeysConfigName[]; | |
102 extern const char kHangulHanjaBindingKeys[]; | |
103 | |
104 struct HangulKeyboardNameIDPair { | |
105 int message_id; | |
106 const char* keyboard_id; | |
107 }; | |
108 | |
109 extern const HangulKeyboardNameIDPair kHangulKeyboardNameIDPairs[]; | |
110 // See comments at kNumChewingBooleanPrefs for why we hard-code this here. | |
111 const size_t kNumHangulKeyboardNameIDPairs = 5; | |
112 | |
113 // --------------------------------------------------------------------------- | |
114 // For Simplified Chinese input method (ibus-mozc-pinyin) | |
115 // --------------------------------------------------------------------------- | |
116 extern const char kPinyinSectionName[]; | |
117 | |
118 extern const LanguageBooleanPrefs kPinyinBooleanPrefs[]; | |
119 // See comments at kNumChewingBooleanPrefs for why we hard-code this here. | |
120 const size_t kNumPinyinBooleanPrefs = 11; | |
121 | |
122 extern const LanguageMultipleChoicePreference<int> kPinyinDoublePinyinSchema; | |
123 | |
124 struct PinyinIntegerPref { | |
125 const char* pref_name; // Chrome preference name. | |
126 int default_pref_value; | |
127 const char* ibus_config_name; | |
128 user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status; | |
129 // TODO(yusukes): Add message_id if needed. | |
130 }; | |
131 | |
132 extern const PinyinIntegerPref kPinyinIntegerPrefs[]; | |
133 const size_t kNumPinyinIntegerPrefs = 1; | |
134 | |
135 // --------------------------------------------------------------------------- | |
136 // For Japanese input method (ibus-mozc) | |
137 // --------------------------------------------------------------------------- | |
138 extern const char kMozcSectionName[]; | |
139 | |
140 extern const LanguageBooleanPrefs kMozcBooleanPrefs[]; | |
141 // See comments at kNumChewingBooleanPrefs for why we hard-code this here. | |
142 const size_t kNumMozcBooleanPrefs = 4; | |
143 | |
144 extern const LanguageMultipleChoicePreference<const char*> | |
145 kMozcMultipleChoicePrefs[]; | |
146 // See comments at kNumChewingBooleanPrefs for why we hard-code this here. | |
147 const size_t kNumMozcMultipleChoicePrefs = 8; | |
148 | |
149 extern const LanguageIntegerRangePreference kMozcIntegerPrefs[]; | |
150 // See comments at kNumChewingBooleanPrefs for why we hard-code this here. | |
151 const size_t kNumMozcIntegerPrefs = 1; | |
152 | |
153 // --------------------------------------------------------------------------- | |
154 // For keyboard stuff | 26 // For keyboard stuff |
155 // --------------------------------------------------------------------------- | 27 // --------------------------------------------------------------------------- |
156 // A delay between the first and the start of the rest. | 28 // A delay between the first and the start of the rest. |
157 extern const int kXkbAutoRepeatDelayInMs; | 29 extern const int kXkbAutoRepeatDelayInMs; |
158 // An interval between the repeated keys. | 30 // An interval between the repeated keys. |
159 extern const int kXkbAutoRepeatIntervalInMs; | 31 extern const int kXkbAutoRepeatIntervalInMs; |
160 | 32 |
161 // A string Chrome preference (Local State) of the preferred keyboard layout in | 33 // A string Chrome preference (Local State) of the preferred keyboard layout in |
162 // the login screen. | 34 // the login screen. |
163 extern const char kPreferredKeyboardLayout[]; | 35 extern const char kPreferredKeyboardLayout[]; |
164 | 36 |
165 // Registers non-user prefs for the default keyboard layout on the login screen. | 37 // Registers non-user prefs for the default keyboard layout on the login screen. |
166 void RegisterPrefs(PrefRegistrySimple* registry); | 38 void RegisterPrefs(PrefRegistrySimple* registry); |
167 | 39 |
168 } // language_prefs | 40 } // namespace language_prefs |
169 } // chromeos | 41 } // namespace chromeos |
170 | 42 |
171 #endif // CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_ | 43 #endif // CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_ |
OLD | NEW |