summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsatorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-19 08:37:24 +0000
committersatorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-19 08:37:24 +0000
commit401d881f589a949d8b8cc35af85745a8b16015ae (patch)
tree4f77a20005fc7b65ccb2a331cc4119b59c056ba6
parentda4f8a1a589ef8737296d69049a4977bc1fc37a0 (diff)
downloadchromium_src-401d881f589a949d8b8cc35af85745a8b16015ae.zip
chromium_src-401d881f589a949d8b8cc35af85745a8b16015ae.tar.gz
chromium_src-401d881f589a949d8b8cc35af85745a8b16015ae.tar.bz2
Clean up chrome/browser/chromeos/language_preferences.h.
Get rid of includes from language_preferences.h. Move definitions of variables from .h to .cc file. Change affected files accordingly. Note that some files were depending on includes in language_preferences.h. For these files, add required includes so these files compile. BUG=chromium-os:5848 TEST=compiles. try bots. Review URL: http://codereview.chromium.org/3164027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56657 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/dom_ui/language_hangul_options_handler.cc2
-rw-r--r--chrome/browser/chromeos/language_preferences.cc405
-rw-r--r--chrome/browser/chromeos/language_preferences.h460
-rw-r--r--chrome/browser/chromeos/login/eula_view.cc1
-rw-r--r--chrome/browser/chromeos/login/existing_user_controller.cc1
-rw-r--r--chrome/browser/chromeos/login/login_screen.cc1
-rw-r--r--chrome/browser/chromeos/login/wizard_controller.cc1
-rw-r--r--chrome/browser/chromeos/options/language_config_model.cc1
-rw-r--r--chrome/browser/chromeos/options/language_hangul_config_view.cc2
-rw-r--r--chrome/browser/chromeos/status/language_menu_button.cc1
-rw-r--r--chrome/browser/chromeos/usb_mount_observer.cc1
-rw-r--r--chrome/chrome_browser.gypi2
12 files changed, 509 insertions, 369 deletions
diff --git a/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.cc b/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.cc
index 3d77d08..f645cf5 100644
--- a/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.cc
+++ b/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.cc
@@ -30,7 +30,7 @@ void LanguageHangulOptionsHandler::GetLocalizedValues(
ListValue* LanguageHangulOptionsHandler::GetKeyboardLayoutList() {
ListValue* keyboard_layout_list = new ListValue();
- for (size_t i = 0; i < arraysize(kHangulKeyboardNameIDPairs); ++i) {
+ for (size_t i = 0; i < kNumHangulKeyboardNameIDPairs; ++i) {
ListValue* option = new ListValue();
option->Append(Value::CreateStringValue(
kHangulKeyboardNameIDPairs[i].keyboard_id));
diff --git a/chrome/browser/chromeos/language_preferences.cc b/chrome/browser/chromeos/language_preferences.cc
new file mode 100644
index 0000000..8c45e8a
--- /dev/null
+++ b/chrome/browser/chromeos/language_preferences.cc
@@ -0,0 +1,405 @@
+// Copyright (c) 2010 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.
+
+#include "base/basictypes.h"
+#include "chrome/browser/chromeos/language_preferences.h"
+#include "chrome/common/pref_names.h"
+#include "grit/generated_resources.h"
+
+namespace chromeos {
+
+// ---------------------------------------------------------------------------
+// For ibus-daemon
+// ---------------------------------------------------------------------------
+const char kGeneralSectionName[] = "general";
+const char kHotKeySectionName[] = "general/hotkey";
+const char kPreloadEnginesConfigName[] = "preload_engines";
+const char kNextEngineInMenuConfigName[] = "next_engine_in_menu";
+const char kPreviousEngineConfigName[] = "previous_engine";
+// TODO(yusukes): Check if the "Kana/Eisu" key in the Japanese keyboard for
+// Chrome OS actually generates Zenkaku_Hankaku when the keyboard gets ready.
+// ibus-daemon accepts up to 5 next-engine hot-keys.
+const char kHotkeyNextEngineInMenu[] =
+ "Shift+Alt+Release+Shift_L,Shift+Alt+Release+Meta_L,Control+Shift+space,"
+ "Zenkaku_Hankaku";
+// TODO(suzhe): Add more key bindings?
+const char kHotkeyPreviousEngine[] = "Control+space";
+
+// ---------------------------------------------------------------------------
+// For Traditional Chinese input method (ibus-chewing)
+// ---------------------------------------------------------------------------
+const char kChewingSectionName[] = "engine/Chewing";
+
+// We have to sync the |ibus_config_name|s with those in
+// ibus-chewing/files/src/Config.cc.
+const LanguageBooleanPrefs kChewingBooleanPrefs[] = {
+ { prefs::kLanguageChewingAutoShiftCur, false, "autoShiftCur",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_AUTO_SHIFT_CUR},
+ { prefs::kLanguageChewingAddPhraseDirection, false, "addPhraseDirection",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ADD_PHRASE_DIRECTION},
+ { prefs::kLanguageChewingEasySymbolInput, true, "easySymbolInput",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_EASY_SYMBOL_INPUT},
+ { prefs::kLanguageChewingEscCleanAllBuf, false, "escCleanAllBuf",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ESC_CLEAN_ALL_BUF},
+ { prefs::kLanguageChewingForceLowercaseEnglish, false,
+ "forceLowercaseEnglish",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_FORCE_LOWER_CASE_ENGLISH},
+ { prefs::kLanguageChewingPlainZhuyin, false, "plainZhuyin",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PLAIN_ZHUYIN},
+ { prefs::kLanguageChewingPhraseChoiceRearward, true, "phraseChoiceRearward",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PHRASE_CHOICE_REARWARD},
+ { prefs::kLanguageChewingSpaceAsSelection, true, "spaceAsSelection",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_SPACE_AS_SELECTION},
+};
+COMPILE_ASSERT(kNumChewingBooleanPrefs == arraysize(kChewingBooleanPrefs),
+ TheSizeShouldMatch);
+
+const LanguageIntegerRangePreference kChewingIntegerPrefs[] = {
+ { prefs::kLanguageChewingMaxChiSymbolLen, 20, 8, 40, "maxChiSymbolLen",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_MAX_CHI_SYMBOL_LEN},
+ { prefs::kLanguageChewingCandPerPage, 10, 8, 10, "candPerPage",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_CAND_PER_PAGE},
+};
+COMPILE_ASSERT(kNumChewingIntegerPrefs == arraysize(kChewingIntegerPrefs),
+ TheSizeShouldMatch);
+
+const LanguageMultipleChoicePreference<const char*>
+ kChewingMultipleChoicePrefs[] = {
+ { prefs::kLanguageChewingKeyboardType,
+ "default",
+ "KBType",
+ {{ "default",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DEFAULT },
+ { "hsu", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_HSU },
+ { "ibm", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_IBM },
+ { "gin_yieh",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_GIN_YIEH },
+ { "eten", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_ETEN },
+ { "eten26", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_ETEN26 },
+ { "dvorak", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DVORAK },
+ { "dvorak_hsu",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DVORAK_HSU },
+ { "dachen_26",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DACHEN_26 },
+ { "hanyu", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_HANYU }},
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE,
+ },
+ { prefs::kLanguageChewingSelKeys,
+ "1234567890",
+ "selKeys",
+ {{ "1234567890",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_1234567890 },
+ { "asdfghjkl;",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFGHJKLS },
+ { "asdfzxcv89",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFZXCV89 },
+ { "asdfjkl789",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFJKL789 },
+ { "aoeu;qjkix",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUSQJKIX },
+ { "aoeuhtnsid",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUHTNSID },
+ { "aoeuidhtns",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUIDHTNS },
+ { "1234qweras",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_1234QWERAS }},
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS,
+ },
+};
+COMPILE_ASSERT(kNumChewingMultipleChoicePrefs ==
+ arraysize(kChewingMultipleChoicePrefs),
+ TheSizeShouldMatch);
+
+const LanguageMultipleChoicePreference<int> kChewingHsuSelKeyType = {
+ prefs::kLanguageChewingHsuSelKeyType,
+ 1,
+ "hsuSelKeyType",
+ {{ 1, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_1 },
+ { 2, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_2 }},
+ IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE,
+};
+
+// ---------------------------------------------------------------------------
+// For Korean input method (ibus-hangul)
+// ---------------------------------------------------------------------------
+const char kHangulSectionName[] = "engine/Hangul";
+const char kHangulKeyboardConfigName[] = "HangulKeyboard";
+const char kHangulHanjaKeysConfigName[] = "HanjaKeys";
+// We add Control+Alt+9 in addition to the two default keys since Hanja key
+// might not be available on the Chrome OS keyboard and F9 key is reserved by
+// the window manager.
+// TODO: Hanja keys are not configurable yet (and we're not sure if it should.)
+const char kHangulHanjaKeys[] = "F9,Hangul_Hanja,Control+Alt+9";
+
+const HangulKeyboardNameIDPair kHangulKeyboardNameIDPairs[] = {
+ // We have to sync the |keyboard_id|s with those in
+ // ibus-hangul/files/setup/main.py.
+ { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_2_SET, "2" },
+ { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_FINAL,
+ "3f" },
+ { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_390, "39" },
+ { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_NO_SHIFT,
+ "3s" },
+ // We don't support "Sebeolsik 2 set" keyboard.
+};
+COMPILE_ASSERT(kNumHangulKeyboardNameIDPairs ==
+ arraysize(kHangulKeyboardNameIDPairs),
+ TheSizeShouldMatch);
+
+// ---------------------------------------------------------------------------
+// For Simplified Chinese input method (ibus-pinyin)
+// ---------------------------------------------------------------------------
+const char kPinyinSectionName[] = "engine/Pinyin";
+
+// We have to sync the |ibus_config_name|s with those in
+// ibus-pinyin/files/src/Config.cc.
+const LanguageBooleanPrefs kPinyinBooleanPrefs[] = {
+ { prefs::kLanguagePinyinCorrectPinyin, true, "CorrectPinyin",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_CORRECT_PINYIN },
+ { prefs::kLanguagePinyinFuzzyPinyin, false, "FuzzyPinyin",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_FUZZY_PINYIN },
+ { prefs::kLanguagePinyinShiftSelectCandidate, false, "ShiftSelectCandidate",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_SHIFT_SELECT_PINYIN },
+ { prefs::kLanguagePinyinMinusEqualPage, true, "MinusEqualPage",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_MINUS_EQUAL_PAGE },
+ { prefs::kLanguagePinyinCommaPeriodPage, true, "CommaPeriodPage",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_COMMA_PERIOD_PAGE },
+ { prefs::kLanguagePinyinAutoCommit, false, "AutoCommit",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_AUTO_COMMIT },
+ { prefs::kLanguagePinyinDoublePinyin, false, "DoublePinyin",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_DOUBLE_PINYIN },
+ { prefs::kLanguagePinyinInitChinese, true, "InitChinese",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_CHINESE },
+ { prefs::kLanguagePinyinInitFull, false, "InitFull",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL },
+ { prefs::kLanguagePinyinInitFullPunct, true, "InitFullPunct",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL_PUNCT },
+ { prefs::kLanguagePinyinInitSimplifiedChinese, true, "InitSimplifiedChinese",
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_SIMPLIFIED_CHINESE },
+ // TODO(yusukes): Support PINYIN_{INCOMPLETE,CORRECT,FUZZY}_... prefs (32
+ // additional boolean prefs.)
+};
+COMPILE_ASSERT(kNumPinyinBooleanPrefs == arraysize(kPinyinBooleanPrefs),
+ TheSizeShouldMatch);
+// TODO(yusukes): Support HalfWidthPuncts and IncompletePinyin prefs if needed.
+
+const LanguageMultipleChoicePreference<int> kPinyinDoublePinyinSchema = {
+ prefs::kLanguagePinyinDoublePinyinSchema,
+ 0,
+ "DoublePinyinSchema",
+ {{ 0, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_MSPY},
+ { 1, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ZRM},
+ { 2, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ABC},
+ { 3, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ZGPY},
+ { 4, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_PYJJ}},
+ IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA,
+};
+
+const PinyinIntegerPref kPinyinIntegerPrefs[] = {
+ // TODO(yusukes): the type of lookup_table_page_size on ibus should be uint.
+ { prefs::kLanguagePinyinLookupTablePageSize, 5, "LookupTablePageSize" },
+};
+COMPILE_ASSERT(kNumPinyinIntegerPrefs == arraysize(kPinyinIntegerPrefs),
+ TheSizeShouldMatch);
+
+// ---------------------------------------------------------------------------
+// For Japanese input method (ibus-mozc)
+// ---------------------------------------------------------------------------
+const char kMozcSectionName[] = "engine/Mozc";
+
+#define IDS_MOZC(suffix) \
+ IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_##suffix
+
+const LanguageBooleanPrefs kMozcBooleanPrefs[] = {
+ { prefs::kLanguageMozcIncognitoMode,
+ false,
+ "incognito_mode",
+ IDS_MOZC(INCOGNITO_MODE)
+ },
+ { prefs::kLanguageMozcUseAutoImeTurnOff,
+ true,
+ "use_auto_ime_turn_off",
+ IDS_MOZC(USE_AUTO_IME_TURN_OFF)
+ },
+ { prefs::kLanguageMozcUseDateConversion,
+ true,
+ "use_date_conversion",
+ IDS_MOZC(USE_DATE_CONVERSION)
+ },
+ { prefs::kLanguageMozcUseSingleKanjiConversion,
+ true,
+ "use_single_kanji_conversion",
+ IDS_MOZC(USE_SINGLE_KANJI_CONVERSION)
+ },
+ { prefs::kLanguageMozcUseSymbolConversion,
+ true,
+ "use_symbol_conversion",
+ IDS_MOZC(USE_SYMBOL_CONVERSION)
+ },
+ { prefs::kLanguageMozcUseNumberConversion,
+ true,
+ "use_number_conversion",
+ IDS_MOZC(USE_NUMBER_CONVERSION)
+ },
+ { prefs::kLanguageMozcUseHistorySuggest,
+ true,
+ "use_history_suggest",
+ IDS_MOZC(USE_HISTORY_SUGGEST)
+ },
+ { prefs::kLanguageMozcUseDictionarySuggest,
+ true,
+ "use_dictionary_suggest",
+ IDS_MOZC(USE_DICTIONARY_SUGGEST)
+ },
+};
+COMPILE_ASSERT(kNumMozcBooleanPrefs == arraysize(kMozcBooleanPrefs),
+ TheSizeShouldMatch);
+
+extern const LanguageMultipleChoicePreference<const char*>
+ kMozcMultipleChoicePrefs[] = {
+ { prefs::kLanguageMozcPreeditMethod,
+ "ROMAN",
+ "preedit_method",
+ {{ "ROMAN", IDS_MOZC(PREEDIT_METHOD_ROMAN) },
+ { "KANA", IDS_MOZC(PREEDIT_METHOD_KANA) }},
+ IDS_MOZC(PREEDIT_METHOD),
+ },
+ { prefs::kLanguageMozcSessionKeymap,
+ "MSIME",
+ "session_keymap",
+ {{ "ATOK", IDS_MOZC(SESSION_KEYMAP_ATOK) },
+ { "MSIME", IDS_MOZC(SESSION_KEYMAP_MSIME) },
+ { "KOTOERI", IDS_MOZC(SESSION_KEYMAP_KOTOERI) }},
+ // TODO: Support "CUSTOM" keymap.
+ IDS_MOZC(SESSION_KEYMAP),
+ },
+ { prefs::kLanguageMozcPunctuationMethod,
+ "KUTEN_TOUTEN",
+ "punctuation_method",
+ {{ "KUTEN_TOUTEN",
+ IDS_MOZC(PUNCTUATION_METHOD_KUTEN_TOUTEN) },
+ { "COMMA_PERIOD",
+ IDS_MOZC(PUNCTUATION_METHOD_COMMA_PERIOD) },
+ { "KUTEN_PERIOD",
+ IDS_MOZC(PUNCTUATION_METHOD_KUTEN_PERIOD) },
+ { "COMMA_TOUTEN",
+ IDS_MOZC(PUNCTUATION_METHOD_COMMA_TOUTEN) }},
+ IDS_MOZC(PUNCTUATION_METHOD),
+ },
+ { prefs::kLanguageMozcSymbolMethod,
+ "CORNER_BRACKET_MIDDLE_DOT",
+ "symbol_method",
+ {{ "CORNER_BRACKET_MIDDLE_DOT",
+ IDS_MOZC(SYMBOL_METHOD_CORNER_BRACKET_MIDDLE_DOT) },
+ { "SQUARE_BRACKET_SLASH",
+ IDS_MOZC(SYMBOL_METHOD_SQUARE_BRACKET_SLASH) },
+ { "CORNER_BRACKET_SLASH",
+ IDS_MOZC(SYMBOL_METHOD_CORNER_BRACKET_SLASH) },
+ { "SQUARE_BRACKET_MIDDLE_DOT",
+ IDS_MOZC(SYMBOL_METHOD_SQUARE_BRACKET_MIDDLE_DOT) }},
+ IDS_MOZC(SYMBOL_METHOD),
+ },
+ { prefs::kLanguageMozcSpaceCharacterForm,
+ "FUNDAMENTAL_INPUT_MODE",
+ "space_character_form",
+ {{ "FUNDAMENTAL_INPUT_MODE",
+ IDS_MOZC(SPACE_CHARACTER_FORM_FUNDAMENTAL_INPUT_MODE) },
+ { "FUNDAMENTAL_FULL_WIDTH",
+ IDS_MOZC(SPACE_CHARACTER_FORM_FUNDAMENTAL_FULL_WIDTH) },
+ { "FUNDAMENTAL_HALF_WIDTH",
+ IDS_MOZC(SPACE_CHARACTER_FORM_FUNDAMENTAL_HALF_WIDTH) }},
+ IDS_MOZC(SPACE_CHARACTER_FORM),
+ },
+ { prefs::kLanguageMozcHistoryLearningLevel,
+ "DEFAULT_HISTORY",
+ "history_learning_level",
+ {{ "DEFAULT_HISTORY",
+ IDS_MOZC(HISTORY_LEARNING_LEVEL_DEFAULT_HISTORY) },
+ { "READ_ONLY",
+ IDS_MOZC(HISTORY_LEARNING_LEVEL_READ_ONLY) },
+ { "NO_HISTORY",
+ IDS_MOZC(HISTORY_LEARNING_LEVEL_NO_HISTORY) }},
+ IDS_MOZC(HISTORY_LEARNING_LEVEL),
+ },
+ // TODO(mazda): Uncomment this block once the candidate window in Chrome OS
+ // supports changing shortcut labels.
+ // { prefs::kLanguageMozcSelectionShortcut,
+ // "SHORTCUT_123456789",
+ // "selection_shortcut",
+ // {{ "NO_SHORTCUT",
+ // IDS_MOZC(SELECTION_SHORTCUT_NO_SHORTCUT) },
+ // { "SHORTCUT_123456789",
+ // IDS_MOZC(SELECTION_SHORTCUT_SHORTCUT_123456789) },
+ // { "SHORTCUT_ASDFGHJKL",
+ // IDS_MOZC(SELECTION_SHORTCUT_SHORTCUT_ASDFGHJKL) }},
+ // IDS_MOZC(SELECTION_SHORTCUT),
+ // },
+ { prefs::kLanguageMozcShiftKeyModeSwitch,
+ "ASCII_INPUT_MODE",
+ "shift_key_mode_switch",
+ {{ "OFF",
+ IDS_MOZC(SHIFT_KEY_MODE_SWITCH_OFF) },
+ { "ASCII_INPUT_MODE",
+ IDS_MOZC(SHIFT_KEY_MODE_SWITCH_ASCII_INPUT_MODE) },
+ { "KATAKANA_INPUT_MODE",
+ IDS_MOZC(SHIFT_KEY_MODE_SWITCH_KATAKANA_INPUT_MODE) }},
+ IDS_MOZC(SHIFT_KEY_MODE_SWITCH),
+ },
+ { prefs::kLanguageMozcNumpadCharacterForm,
+ "NUMPAD_HALF_WIDTH",
+ "numpad_character_form",
+ {{ "NUMPAD_INPUT_MODE",
+ IDS_MOZC(NUMPAD_CHARACTER_FORM_NUMPAD_INPUT_MODE) },
+ { "NUMPAD_FULL_WIDTH",
+ IDS_MOZC(NUMPAD_CHARACTER_FORM_NUMPAD_FULL_WIDTH) },
+ { "NUMPAD_HALF_WIDTH",
+ IDS_MOZC(NUMPAD_CHARACTER_FORM_NUMPAD_HALF_WIDTH) },
+ { "NUMPAD_DIRECT_INPUT",
+ IDS_MOZC(NUMPAD_CHARACTER_FORM_NUMPAD_DIRECT_INPUT) }},
+ IDS_MOZC(NUMPAD_CHARACTER_FORM),
+ },
+};
+COMPILE_ASSERT(kNumMozcMultipleChoicePrefs ==
+ arraysize(kMozcMultipleChoicePrefs),
+ TheSizeShouldMatch);
+
+const LanguageIntegerRangePreference kMozcIntegerPrefs[] = {
+ { prefs::kLanguageMozcSuggestionsSize, 3, 1, 9, "suggestions_size",
+ IDS_MOZC(SUGGESTIONS_SIZE)},
+};
+COMPILE_ASSERT(kNumMozcIntegerPrefs == arraysize(kMozcIntegerPrefs),
+ TheSizeShouldMatch);
+
+#undef IDS_MOZC
+
+// ---------------------------------------------------------------------------
+// For keyboard stuff
+// ---------------------------------------------------------------------------
+const LanguageMultipleChoicePreference<int> kXkbModifierMultipleChoicePrefs = {
+ NULL, // don't use this field since the config is associated with 3 prefs.
+ kNoRemap,
+ NULL, // does not use the ibus configuration service.
+ {{ kNoRemap, IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_MODIFIER_NO_REMAP },
+ { kSwapCtrlAndAlt,
+ IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_MODIFIER_REMAP_CTRL_ALT },
+ { kSwapSearchAndCtrl,
+ IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_MODIFIER_REMAP_SEARCH_CTRL }},
+ 0, // does not use the label.
+};
+
+const LanguageIntegerRangePreference kXkbAutoRepeatDelayPref = {
+ prefs::kLanguageXkbAutoRepeatDelay, 500, 100, 2000,
+ NULL, // does not use the ibus configuration service.
+ IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_REPEAT_DELAY,
+};
+const LanguageIntegerRangePreference kXkbAutoRepeatIntervalPref = {
+ prefs::kLanguageXkbAutoRepeatInterval, 33, 9, 100,
+ NULL, // does not use the ibus configuration service.
+ IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_REPEAT_SPEED,
+};
+
+const char kPreferredKeyboardLayout[] = "PreferredKeyboardLayout";
+const char kHardwareKeyboardLayout[] = "xkb:us::eng";
+
+} // chromeos
diff --git a/chrome/browser/chromeos/language_preferences.h b/chrome/browser/chromeos/language_preferences.h
index 66061dd..f1bb333 100644
--- a/chrome/browser/chromeos/language_preferences.h
+++ b/chrome/browser/chromeos/language_preferences.h
@@ -6,13 +6,14 @@
#define CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_
#pragma once
-#include "base/basictypes.h"
-#include "chrome/common/pref_names.h"
-#include "grit/generated_resources.h"
+#include <stddef.h> // For size_t
-// Section and config names for the IBus configuration daemon.
+// This file defines types and declare variables used in "Languages and
+// Input" settings in Chromium OS.
namespace chromeos {
+// The struct is used for preferences consisting of multiple choices, like
+// punctuation types used in Japanese input method.
template <typename DataType>
struct LanguageMultipleChoicePreference {
const char* pref_name; // Chrome preference name.
@@ -27,6 +28,8 @@ struct LanguageMultipleChoicePreference {
int label_message_id; // Resource grd ID for the label.
};
+// The struct is used for preferences of boolean values, like switches to
+// enable or disable particular features.
struct LanguageBooleanPrefs {
const char* pref_name; // Chrome preference name.
bool default_pref_value;
@@ -34,6 +37,8 @@ struct LanguageBooleanPrefs {
int message_id;
};
+// The struct is used for preferences of integer range values, like the
+// key repeat rate.
struct LanguageIntegerRangePreference {
const char* pref_name; // Chrome preference name.
int default_pref_value;
@@ -43,399 +48,120 @@ struct LanguageIntegerRangePreference {
int message_id;
};
+// ---------------------------------------------------------------------------
// For ibus-daemon
-const char kGeneralSectionName[] = "general";
-const char kHotKeySectionName[] = "general/hotkey";
-const char kPreloadEnginesConfigName[] = "preload_engines";
-const char kNextEngineInMenuConfigName[] = "next_engine_in_menu";
-const char kPreviousEngineConfigName[] = "previous_engine";
-
-// TODO(yusukes): Check if the "Kana/Eisu" key in the Japanese keyboard for
-// Chrome OS actually generates Zenkaku_Hankaku when the keyboard gets ready.
-
-// ibus-daemon accepts up to 5 next-engine hot-keys.
-const char kHotkeyNextEngineInMenu[] =
- "Shift+Alt+Release+Shift_L,Shift+Alt+Release+Meta_L,Control+Shift+space,"
- "Zenkaku_Hankaku";
-// TODO(suzhe): Add more key bindings?
-const char kHotkeyPreviousEngine[] = "Control+space";
-
-// For Simplified Chinese input method (ibus-chewing)
-const char kChewingSectionName[] = "engine/Chewing";
-
-// We have to sync the |ibus_config_name|s with those in
-// ibus-chewing/files/src/Config.cc.
-const LanguageBooleanPrefs kChewingBooleanPrefs[] = {
- { prefs::kLanguageChewingAutoShiftCur, false, "autoShiftCur",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_AUTO_SHIFT_CUR},
- { prefs::kLanguageChewingAddPhraseDirection, false, "addPhraseDirection",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ADD_PHRASE_DIRECTION},
- { prefs::kLanguageChewingEasySymbolInput, true, "easySymbolInput",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_EASY_SYMBOL_INPUT},
- { prefs::kLanguageChewingEscCleanAllBuf, false, "escCleanAllBuf",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ESC_CLEAN_ALL_BUF},
- { prefs::kLanguageChewingForceLowercaseEnglish, false,
- "forceLowercaseEnglish",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_FORCE_LOWER_CASE_ENGLISH},
- { prefs::kLanguageChewingPlainZhuyin, false, "plainZhuyin",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PLAIN_ZHUYIN},
- { prefs::kLanguageChewingPhraseChoiceRearward, true, "phraseChoiceRearward",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PHRASE_CHOICE_REARWARD},
- { prefs::kLanguageChewingSpaceAsSelection, true, "spaceAsSelection",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_SPACE_AS_SELECTION},
-};
-const size_t kNumChewingBooleanPrefs = arraysize(kChewingBooleanPrefs);
-
-const LanguageIntegerRangePreference kChewingIntegerPrefs[] = {
- { prefs::kLanguageChewingMaxChiSymbolLen, 20, 8, 40, "maxChiSymbolLen",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_MAX_CHI_SYMBOL_LEN},
- { prefs::kLanguageChewingCandPerPage, 10, 8, 10, "candPerPage",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_CAND_PER_PAGE},
-};
-const size_t kNumChewingIntegerPrefs = arraysize(kChewingIntegerPrefs);
-
-// TODO(yusukes): Temporary solution for View version of modifier key remapper.
-// Remove RemapType and kXkbModifierMultipleChoicePrefs when we finish to
-// migrate to DOMUI.
-enum RemapType {
- kNoRemap = 0,
- kSwapCtrlAndAlt = 1,
- kSwapSearchAndCtrl = 2,
-};
-const LanguageMultipleChoicePreference<int> kXkbModifierMultipleChoicePrefs = {
- NULL, // don't use this field since the config is associated with 3 prefs.
- kNoRemap,
- NULL, // does not use the ibus configuration service.
- {{ kNoRemap, IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_MODIFIER_NO_REMAP },
- { kSwapCtrlAndAlt,
- IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_MODIFIER_REMAP_CTRL_ALT },
- { kSwapSearchAndCtrl,
- IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_MODIFIER_REMAP_SEARCH_CTRL }},
- 0, // does not use the label.
-};
-
-const LanguageIntegerRangePreference kXkbAutoRepeatDelayPref = {
- prefs::kLanguageXkbAutoRepeatDelay, 500, 100, 2000,
- NULL, // does not use the ibus configuration service.
- IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_REPEAT_DELAY,
-};
-const LanguageIntegerRangePreference kXkbAutoRepeatIntervalPref = {
- prefs::kLanguageXkbAutoRepeatInterval, 33, 9, 100,
- NULL, // does not use the ibus configuration service.
- IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_REPEAT_SPEED,
-};
-
-const LanguageMultipleChoicePreference<const char*>
- kChewingMultipleChoicePrefs[] = {
- { prefs::kLanguageChewingKeyboardType,
- "default",
- "KBType",
- {{ "default",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DEFAULT },
- { "hsu", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_HSU },
- { "ibm", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_IBM },
- { "gin_yieh",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_GIN_YIEH },
- { "eten", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_ETEN },
- { "eten26", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_ETEN26 },
- { "dvorak", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DVORAK },
- { "dvorak_hsu",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DVORAK_HSU },
- { "dachen_26",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DACHEN_26 },
- { "hanyu", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_HANYU }},
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE,
- },
- { prefs::kLanguageChewingSelKeys,
- "1234567890",
- "selKeys",
- {{ "1234567890",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_1234567890 },
- { "asdfghjkl;",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFGHJKLS },
- { "asdfzxcv89",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFZXCV89 },
- { "asdfjkl789",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFJKL789 },
- { "aoeu;qjkix",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUSQJKIX },
- { "aoeuhtnsid",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUHTNSID },
- { "aoeuidhtns",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUIDHTNS },
- { "1234qweras",
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_1234QWERAS }},
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS,
- },
-};
-const size_t kNumChewingMultipleChoicePrefs =
- arraysize(kChewingMultipleChoicePrefs);
-
-const LanguageMultipleChoicePreference<int> kChewingHsuSelKeyType = {
- prefs::kLanguageChewingHsuSelKeyType,
- 1,
- "hsuSelKeyType",
- {{ 1, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_1 },
- { 2, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_2 }},
- IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE,
-};
-
+// ---------------------------------------------------------------------------
+extern const char kGeneralSectionName[];
+extern const char kHotKeySectionName[];
+extern const char kPreloadEnginesConfigName[];
+extern const char kNextEngineInMenuConfigName[];
+extern const char kPreviousEngineConfigName[];
+extern const char kHotkeyNextEngineInMenu[];
+extern const char kHotkeyPreviousEngine[];
+
+// ---------------------------------------------------------------------------
+// For Traditional Chinese input method (ibus-chewing)
+// ---------------------------------------------------------------------------
+extern const char kChewingSectionName[];
+
+extern const LanguageBooleanPrefs kChewingBooleanPrefs[];
+// This is not ideal, but we should hard-code the number here as the value
+// is referenced in other header files as array sizes. We have a
+// COMPILE_ASSERT in .cc to ensure that the number is correct.
+const size_t kNumChewingBooleanPrefs = 8;
+
+extern const LanguageIntegerRangePreference kChewingIntegerPrefs[];
+// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
+const size_t kNumChewingIntegerPrefs = 2;
+
+extern const LanguageMultipleChoicePreference<const char*>
+ kChewingMultipleChoicePrefs[];
+// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
+const size_t kNumChewingMultipleChoicePrefs = 2;
+
+extern const LanguageMultipleChoicePreference<int> kChewingHsuSelKeyType;
+
+// ---------------------------------------------------------------------------
// For Korean input method (ibus-hangul)
-const char kHangulSectionName[] = "engine/Hangul";
-const char kHangulKeyboardConfigName[] = "HangulKeyboard";
-const char kHangulHanjaKeysConfigName[] = "HanjaKeys";
-// We add Control+Alt+9 in addition to the two default keys since Hanja key
-// might not be available on the Chrome OS keyboard and F9 key is reserved by
-// the window manager.
-// TODO: Hanja keys are not configurable yet (and we're not sure if it should.)
-const char kHangulHanjaKeys[] = "F9,Hangul_Hanja,Control+Alt+9";
+// ---------------------------------------------------------------------------
+extern const char kHangulSectionName[];
+extern const char kHangulKeyboardConfigName[];
+extern const char kHangulHanjaKeysConfigName[];
+extern const char kHangulHanjaKeys[];
-const struct HangulKeyboardNameIDPair {
+struct HangulKeyboardNameIDPair {
int message_id;
const char* keyboard_id;
-} kHangulKeyboardNameIDPairs[] = {
- // We have to sync the |keyboard_id|s with those in
- // ibus-hangul/files/setup/main.py.
- { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_2_SET, "2" },
- { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_FINAL,
- "3f" },
- { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_390, "39" },
- { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_NO_SHIFT,
- "3s" },
- // We don't support "Sebeolsik 2 set" keyboard.
};
+extern const HangulKeyboardNameIDPair kHangulKeyboardNameIDPairs[];
+// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
+const size_t kNumHangulKeyboardNameIDPairs = 4;
+
+// ---------------------------------------------------------------------------
// For Simplified Chinese input method (ibus-pinyin)
-const char kPinyinSectionName[] = "engine/Pinyin";
+// ---------------------------------------------------------------------------
+extern const char kPinyinSectionName[];
-// We have to sync the |ibus_config_name|s with those in
-// ibus-pinyin/files/src/Config.cc.
-const LanguageBooleanPrefs kPinyinBooleanPrefs[] = {
- { prefs::kLanguagePinyinCorrectPinyin, true, "CorrectPinyin",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_CORRECT_PINYIN },
- { prefs::kLanguagePinyinFuzzyPinyin, false, "FuzzyPinyin",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_FUZZY_PINYIN },
- { prefs::kLanguagePinyinShiftSelectCandidate, false, "ShiftSelectCandidate",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_SHIFT_SELECT_PINYIN },
- { prefs::kLanguagePinyinMinusEqualPage, true, "MinusEqualPage",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_MINUS_EQUAL_PAGE },
- { prefs::kLanguagePinyinCommaPeriodPage, true, "CommaPeriodPage",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_COMMA_PERIOD_PAGE },
- { prefs::kLanguagePinyinAutoCommit, false, "AutoCommit",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_AUTO_COMMIT },
- { prefs::kLanguagePinyinDoublePinyin, false, "DoublePinyin",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_DOUBLE_PINYIN },
- { prefs::kLanguagePinyinInitChinese, true, "InitChinese",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_CHINESE },
- { prefs::kLanguagePinyinInitFull, false, "InitFull",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL },
- { prefs::kLanguagePinyinInitFullPunct, true, "InitFullPunct",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL_PUNCT },
- { prefs::kLanguagePinyinInitSimplifiedChinese, true, "InitSimplifiedChinese",
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_SIMPLIFIED_CHINESE },
- // TODO(yusukes): Support PINYIN_{INCOMPLETE,CORRECT,FUZZY}_... prefs (32
- // additional boolean prefs.)
-};
-const size_t kNumPinyinBooleanPrefs = arraysize(kPinyinBooleanPrefs);
-// TODO(yusukes): Support HalfWidthPuncts and IncompletePinyin prefs if needed.
+extern const LanguageBooleanPrefs kPinyinBooleanPrefs[];
+// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
+const size_t kNumPinyinBooleanPrefs = 11;
-const LanguageMultipleChoicePreference<int> kPinyinDoublePinyinSchema = {
- prefs::kLanguagePinyinDoublePinyinSchema,
- 0,
- "DoublePinyinSchema",
- {{ 0, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_MSPY},
- { 1, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ZRM},
- { 2, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ABC},
- { 3, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ZGPY},
- { 4, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_PYJJ}},
- IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA,
-};
+extern const LanguageMultipleChoicePreference<int> kPinyinDoublePinyinSchema;
-const struct {
+struct PinyinIntegerPref {
const char* pref_name; // Chrome preference name.
int default_pref_value;
const char* ibus_config_name;
// TODO(yusukes): Add message_id if needed.
-} kPinyinIntegerPrefs[] = {
- // TODO(yusukes): the type of lookup_table_page_size on ibus should be uint.
- { prefs::kLanguagePinyinLookupTablePageSize, 5, "LookupTablePageSize" },
};
-const size_t kNumPinyinIntegerPrefs = ARRAYSIZE_UNSAFE(kPinyinIntegerPrefs);
+extern const PinyinIntegerPref kPinyinIntegerPrefs[];
+const size_t kNumPinyinIntegerPrefs = 1;
+
+// ---------------------------------------------------------------------------
// For Japanese input method (ibus-mozc)
-const char kMozcSectionName[] = "engine/Mozc";
+// ---------------------------------------------------------------------------
+extern const char kMozcSectionName[];
-#define IDS_MOZC(suffix) \
- IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_##suffix
+extern const LanguageBooleanPrefs kMozcBooleanPrefs[];
+// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
+const size_t kNumMozcBooleanPrefs = 8;
-const LanguageBooleanPrefs kMozcBooleanPrefs[] = {
- { prefs::kLanguageMozcIncognitoMode,
- false,
- "incognito_mode",
- IDS_MOZC(INCOGNITO_MODE)
- },
- { prefs::kLanguageMozcUseAutoImeTurnOff,
- true,
- "use_auto_ime_turn_off",
- IDS_MOZC(USE_AUTO_IME_TURN_OFF)
- },
- { prefs::kLanguageMozcUseDateConversion,
- true,
- "use_date_conversion",
- IDS_MOZC(USE_DATE_CONVERSION)
- },
- { prefs::kLanguageMozcUseSingleKanjiConversion,
- true,
- "use_single_kanji_conversion",
- IDS_MOZC(USE_SINGLE_KANJI_CONVERSION)
- },
- { prefs::kLanguageMozcUseSymbolConversion,
- true,
- "use_symbol_conversion",
- IDS_MOZC(USE_SYMBOL_CONVERSION)
- },
- { prefs::kLanguageMozcUseNumberConversion,
- true,
- "use_number_conversion",
- IDS_MOZC(USE_NUMBER_CONVERSION)
- },
- { prefs::kLanguageMozcUseHistorySuggest,
- true,
- "use_history_suggest",
- IDS_MOZC(USE_HISTORY_SUGGEST)
- },
- { prefs::kLanguageMozcUseDictionarySuggest,
- true,
- "use_dictionary_suggest",
- IDS_MOZC(USE_DICTIONARY_SUGGEST)
- },
-};
-const size_t kNumMozcBooleanPrefs = arraysize(kMozcBooleanPrefs);
+extern const LanguageMultipleChoicePreference<const char*>
+ kMozcMultipleChoicePrefs[];
+// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
+const size_t kNumMozcMultipleChoicePrefs = 8;
-const LanguageMultipleChoicePreference<const char*>
- kMozcMultipleChoicePrefs[] = {
- { prefs::kLanguageMozcPreeditMethod,
- "ROMAN",
- "preedit_method",
- {{ "ROMAN", IDS_MOZC(PREEDIT_METHOD_ROMAN) },
- { "KANA", IDS_MOZC(PREEDIT_METHOD_KANA) }},
- IDS_MOZC(PREEDIT_METHOD),
- },
- { prefs::kLanguageMozcSessionKeymap,
- "MSIME",
- "session_keymap",
- {{ "ATOK", IDS_MOZC(SESSION_KEYMAP_ATOK) },
- { "MSIME", IDS_MOZC(SESSION_KEYMAP_MSIME) },
- { "KOTOERI", IDS_MOZC(SESSION_KEYMAP_KOTOERI) }},
- // TODO: Support "CUSTOM" keymap.
- IDS_MOZC(SESSION_KEYMAP),
- },
- { prefs::kLanguageMozcPunctuationMethod,
- "KUTEN_TOUTEN",
- "punctuation_method",
- {{ "KUTEN_TOUTEN",
- IDS_MOZC(PUNCTUATION_METHOD_KUTEN_TOUTEN) },
- { "COMMA_PERIOD",
- IDS_MOZC(PUNCTUATION_METHOD_COMMA_PERIOD) },
- { "KUTEN_PERIOD",
- IDS_MOZC(PUNCTUATION_METHOD_KUTEN_PERIOD) },
- { "COMMA_TOUTEN",
- IDS_MOZC(PUNCTUATION_METHOD_COMMA_TOUTEN) }},
- IDS_MOZC(PUNCTUATION_METHOD),
- },
- { prefs::kLanguageMozcSymbolMethod,
- "CORNER_BRACKET_MIDDLE_DOT",
- "symbol_method",
- {{ "CORNER_BRACKET_MIDDLE_DOT",
- IDS_MOZC(SYMBOL_METHOD_CORNER_BRACKET_MIDDLE_DOT) },
- { "SQUARE_BRACKET_SLASH",
- IDS_MOZC(SYMBOL_METHOD_SQUARE_BRACKET_SLASH) },
- { "CORNER_BRACKET_SLASH",
- IDS_MOZC(SYMBOL_METHOD_CORNER_BRACKET_SLASH) },
- { "SQUARE_BRACKET_MIDDLE_DOT",
- IDS_MOZC(SYMBOL_METHOD_SQUARE_BRACKET_MIDDLE_DOT) }},
- IDS_MOZC(SYMBOL_METHOD),
- },
- { prefs::kLanguageMozcSpaceCharacterForm,
- "FUNDAMENTAL_INPUT_MODE",
- "space_character_form",
- {{ "FUNDAMENTAL_INPUT_MODE",
- IDS_MOZC(SPACE_CHARACTER_FORM_FUNDAMENTAL_INPUT_MODE) },
- { "FUNDAMENTAL_FULL_WIDTH",
- IDS_MOZC(SPACE_CHARACTER_FORM_FUNDAMENTAL_FULL_WIDTH) },
- { "FUNDAMENTAL_HALF_WIDTH",
- IDS_MOZC(SPACE_CHARACTER_FORM_FUNDAMENTAL_HALF_WIDTH) }},
- IDS_MOZC(SPACE_CHARACTER_FORM),
- },
- { prefs::kLanguageMozcHistoryLearningLevel,
- "DEFAULT_HISTORY",
- "history_learning_level",
- {{ "DEFAULT_HISTORY",
- IDS_MOZC(HISTORY_LEARNING_LEVEL_DEFAULT_HISTORY) },
- { "READ_ONLY",
- IDS_MOZC(HISTORY_LEARNING_LEVEL_READ_ONLY) },
- { "NO_HISTORY",
- IDS_MOZC(HISTORY_LEARNING_LEVEL_NO_HISTORY) }},
- IDS_MOZC(HISTORY_LEARNING_LEVEL),
- },
- // TODO(mazda): Uncomment this block once the candidate window in Chrome OS
- // supports changing shortcut labels.
- // { prefs::kLanguageMozcSelectionShortcut,
- // "SHORTCUT_123456789",
- // "selection_shortcut",
- // {{ "NO_SHORTCUT",
- // IDS_MOZC(SELECTION_SHORTCUT_NO_SHORTCUT) },
- // { "SHORTCUT_123456789",
- // IDS_MOZC(SELECTION_SHORTCUT_SHORTCUT_123456789) },
- // { "SHORTCUT_ASDFGHJKL",
- // IDS_MOZC(SELECTION_SHORTCUT_SHORTCUT_ASDFGHJKL) }},
- // IDS_MOZC(SELECTION_SHORTCUT),
- // },
- { prefs::kLanguageMozcShiftKeyModeSwitch,
- "ASCII_INPUT_MODE",
- "shift_key_mode_switch",
- {{ "OFF",
- IDS_MOZC(SHIFT_KEY_MODE_SWITCH_OFF) },
- { "ASCII_INPUT_MODE",
- IDS_MOZC(SHIFT_KEY_MODE_SWITCH_ASCII_INPUT_MODE) },
- { "KATAKANA_INPUT_MODE",
- IDS_MOZC(SHIFT_KEY_MODE_SWITCH_KATAKANA_INPUT_MODE) }},
- IDS_MOZC(SHIFT_KEY_MODE_SWITCH),
- },
- { prefs::kLanguageMozcNumpadCharacterForm,
- "NUMPAD_HALF_WIDTH",
- "numpad_character_form",
- {{ "NUMPAD_INPUT_MODE",
- IDS_MOZC(NUMPAD_CHARACTER_FORM_NUMPAD_INPUT_MODE) },
- { "NUMPAD_FULL_WIDTH",
- IDS_MOZC(NUMPAD_CHARACTER_FORM_NUMPAD_FULL_WIDTH) },
- { "NUMPAD_HALF_WIDTH",
- IDS_MOZC(NUMPAD_CHARACTER_FORM_NUMPAD_HALF_WIDTH) },
- { "NUMPAD_DIRECT_INPUT",
- IDS_MOZC(NUMPAD_CHARACTER_FORM_NUMPAD_DIRECT_INPUT) }},
- IDS_MOZC(NUMPAD_CHARACTER_FORM),
- },
-};
-const size_t kNumMozcMultipleChoicePrefs = arraysize(kMozcMultipleChoicePrefs);
+extern const LanguageIntegerRangePreference kMozcIntegerPrefs[];
+// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
+const size_t kNumMozcIntegerPrefs = 1;
-const LanguageIntegerRangePreference kMozcIntegerPrefs[] = {
- { prefs::kLanguageMozcSuggestionsSize, 3, 1, 9, "suggestions_size",
- IDS_MOZC(SUGGESTIONS_SIZE)},
+// ---------------------------------------------------------------------------
+// For keyboard stuff
+// ---------------------------------------------------------------------------
+// TODO(yusukes): Temporary solution for View version of modifier key remapper.
+// Remove RemapType and kXkbModifierMultipleChoicePrefs when we finish to
+// migrate to DOMUI.
+enum RemapType {
+ kNoRemap = 0,
+ kSwapCtrlAndAlt = 1,
+ kSwapSearchAndCtrl = 2,
};
-const size_t kNumMozcIntegerPrefs = arraysize(kMozcIntegerPrefs);
-
-#undef IDS_MOZC
+extern const LanguageMultipleChoicePreference<int>
+ kXkbModifierMultipleChoicePrefs;
-// For Traditional Chinese input methods (ibus-pinyin-bopomofo and ibus-chewing)
-// TODO(yusukes): Add constants for Traditional Chinese input methods.
+extern const LanguageIntegerRangePreference kXkbAutoRepeatDelayPref;
+extern const LanguageIntegerRangePreference kXkbAutoRepeatIntervalPref;
// A string Chrome preference (Local State) of the preferred keyboard layout in
// the login screen.
-const char kPreferredKeyboardLayout[] = "PreferredKeyboardLayout";
+extern const char kPreferredKeyboardLayout[];
// A input method name that corresponds the hardware keyboard layout.
// TODO(yusukes): just assuming US qwerty keyboard is not always correct.
-const char kHardwareKeyboardLayout[] = "xkb:us::eng";
+// crosbug.com/5579.
+extern const char kHardwareKeyboardLayout[];
} // chromeos
diff --git a/chrome/browser/chromeos/login/eula_view.cc b/chrome/browser/chromeos/login/eula_view.cc
index b38a66f..adf0e9c 100644
--- a/chrome/browser/chromeos/login/eula_view.cc
+++ b/chrome/browser/chromeos/login/eula_view.cc
@@ -24,6 +24,7 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/views/dom_view.h"
#include "chrome/common/native_web_keyboard_event.h"
+#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "chrome/installer/util/google_update_settings.h"
#include "grit/chromium_strings.h"
diff --git a/chrome/browser/chromeos/login/existing_user_controller.cc b/chrome/browser/chromeos/login/existing_user_controller.cc
index 4cc5316..414e6b2 100644
--- a/chrome/browser/chromeos/login/existing_user_controller.cc
+++ b/chrome/browser/chromeos/login/existing_user_controller.cc
@@ -30,6 +30,7 @@
#include "chrome/browser/profile.h"
#include "chrome/browser/profile_manager.h"
#include "gfx/native_widget_types.h"
+#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "views/screen.h"
#include "views/widget/widget_gtk.h"
diff --git a/chrome/browser/chromeos/login/login_screen.cc b/chrome/browser/chromeos/login/login_screen.cc
index 7aea84a..caa84a1 100644
--- a/chrome/browser/chromeos/login/login_screen.cc
+++ b/chrome/browser/chromeos/login/login_screen.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/profile.h"
#include "chrome/browser/profile_manager.h"
#include "chrome/common/notification_service.h"
+#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
namespace chromeos {
diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc
index 3434554..11b590b 100644
--- a/chrome/browser/chromeos/login/wizard_controller.cc
+++ b/chrome/browser/chromeos/login/wizard_controller.cc
@@ -42,6 +42,7 @@
#include "chrome/browser/profile_manager.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/notification_service.h"
+#include "chrome/common/pref_names.h"
#include "cros/chromeos_wm_ipc_enums.h"
#include "unicode/timezone.h"
#include "views/accelerator.h"
diff --git a/chrome/browser/chromeos/options/language_config_model.cc b/chrome/browser/chromeos/options/language_config_model.cc
index c0d3cfd..c6247a0 100644
--- a/chrome/browser/chromeos/options/language_config_model.cc
+++ b/chrome/browser/chromeos/options/language_config_model.cc
@@ -16,6 +16,7 @@
#include "chrome/browser/chromeos/preferences.h"
#include "chrome/common/notification_type.h"
#include "chrome/common/pref_names.h"
+#include "grit/generated_resources.h"
namespace chromeos {
diff --git a/chrome/browser/chromeos/options/language_hangul_config_view.cc b/chrome/browser/chromeos/options/language_hangul_config_view.cc
index 9158c89..02eed33 100644
--- a/chrome/browser/chromeos/options/language_hangul_config_view.cc
+++ b/chrome/browser/chromeos/options/language_hangul_config_view.cc
@@ -28,7 +28,7 @@ namespace chromeos {
class HangulKeyboardComboboxModel : public ComboboxModel {
public:
HangulKeyboardComboboxModel() {
- for (size_t i = 0; i < arraysize(kHangulKeyboardNameIDPairs); ++i) {
+ for (size_t i = 0; i < kNumHangulKeyboardNameIDPairs; ++i) {
layouts_.push_back(std::make_pair(
l10n_util::GetStringUTF8(kHangulKeyboardNameIDPairs[i].message_id),
kHangulKeyboardNameIDPairs[i].keyboard_id));
diff --git a/chrome/browser/chromeos/status/language_menu_button.cc b/chrome/browser/chromeos/status/language_menu_button.cc
index 695cdf7..127b6bf 100644
--- a/chrome/browser/chromeos/status/language_menu_button.cc
+++ b/chrome/browser/chromeos/status/language_menu_button.cc
@@ -19,6 +19,7 @@
#include "chrome/browser/metrics/user_metrics.h"
#include "chrome/browser/pref_service.h"
#include "chrome/browser/profile.h"
+#include "chrome/common/pref_names.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
diff --git a/chrome/browser/chromeos/usb_mount_observer.cc b/chrome/browser/chromeos/usb_mount_observer.cc
index d0e329f..16928c6 100644
--- a/chrome/browser/chromeos/usb_mount_observer.cc
+++ b/chrome/browser/chromeos/usb_mount_observer.cc
@@ -10,6 +10,7 @@
#include "chrome/browser/dom_ui/filebrowse_ui.h"
#include "chrome/browser/pref_service.h"
#include "chrome/browser/tab_contents/tab_contents.h"
+#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
namespace chromeos {
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 207689d..c8533ac 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -457,6 +457,8 @@
'browser/chromeos/gview_request_interceptor.h',
'browser/chromeos/input_method/input_method_util.cc',
'browser/chromeos/input_method/input_method_util.h',
+ 'browser/chromeos/language_preferences.cc',
+ 'browser/chromeos/language_preferences.h',
'browser/chromeos/login/account_creation_view.cc',
'browser/chromeos/login/account_creation_view.h',
'browser/chromeos/login/account_screen.cc',