Commit d6d62c46 authored by komatsu@chromium.org's avatar komatsu@chromium.org

Remove IME related configuration preferences in Chrome OS.

Since the IMEs has been migrated from native application to
extensions.  There entries are no longer necessary.

BUG=256102

Review URL: https://chromiumcodereview.appspot.com/23548006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221995 0039d316-1c4b-4281-b951-d872f2087c98
parent f237e26d
......@@ -2,12 +2,8 @@
// 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 "base/prefs/pref_registry_simple.h"
#include "chrome/browser/chromeos/language_preferences.h"
#include "chrome/common/pref_names.h"
#include "components/user_prefs/pref_registry_syncable.h"
#include "grit/generated_resources.h"
namespace chromeos {
namespace language_prefs {
......@@ -18,375 +14,6 @@ namespace language_prefs {
const char kGeneralSectionName[] = "general";
const char kPreloadEnginesConfigName[] = "preload_engines";
// ---------------------------------------------------------------------------
// For Traditional Chinese input method (ibus-mozc-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,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageChewingAddPhraseDirection, false, "addPhraseDirection",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ADD_PHRASE_DIRECTION,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
/* Temporarily disabled. (crosbug.com/14185)
{ prefs::kLanguageChewingEasySymbolInput, true, "easySymbolInput",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_EASY_SYMBOL_INPUT,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
*/
{ prefs::kLanguageChewingEscCleanAllBuf, false, "escCleanAllBuf",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ESC_CLEAN_ALL_BUF,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageChewingForceLowercaseEnglish, false,
"forceLowercaseEnglish",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_FORCE_LOWER_CASE_ENGLISH,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
/* Temporarily disabled. (crosbug.com/14185)
{ prefs::kLanguageChewingPlainZhuyin, false, "plainZhuyin",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PLAIN_ZHUYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
*/
{ prefs::kLanguageChewingPhraseChoiceRearward, true, "phraseChoiceRearward",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PHRASE_CHOICE_REARWARD,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageChewingSpaceAsSelection, true, "spaceAsSelection",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_SPACE_AS_SELECTION,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
};
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,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF
},
{ prefs::kLanguageChewingCandPerPage, 10, 8, 10, "candPerPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_CAND_PER_PAGE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF
},
};
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,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ 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,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
};
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,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
};
// ---------------------------------------------------------------------------
// For Korean input method (ibus-mozc-hangul)
// ---------------------------------------------------------------------------
const char kHangulSectionName[] = "engine/Hangul";
const char kHangulKeyboardConfigName[] = "HangulKeyboard";
const char kHangulHanjaBindingKeysConfigName[] = "HanjaKeyBindings";
// Mozc-hangul treats Hangul_Hanja key as hanja key event even if it is not set.
// We add Control+9 since F9 key is reserved by the window manager.
// TODO(nona): Hanja keys are not configurable yet (and we're not sure if it
// should.)
const char kHangulHanjaBindingKeys[] = "F9,Ctrl 9";
const HangulKeyboardNameIDPair kHangulKeyboardNameIDPairs[] = {
// We have to sync the |keyboard_id|s with those in libhangul.
{ 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" },
{ IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_ROMAJA, "ro" },
// We don't support "Sebeolsik 2 set" keyboard.
};
COMPILE_ASSERT(kNumHangulKeyboardNameIDPairs ==
arraysize(kHangulKeyboardNameIDPairs),
TheSizeShouldMatch);
// ---------------------------------------------------------------------------
// For Simplified Chinese input method (ibus-mozc-pinyin)
// ---------------------------------------------------------------------------
const char kPinyinSectionName[] = "engine/Pinyin";
// We have to sync the |ibus_config_name|s with those in
// ibus-mozc-pinyin/files/languages/pinyin/unix/ibus/config_updater.cc.
const LanguageBooleanPrefs kPinyinBooleanPrefs[] = {
{ prefs::kLanguagePinyinCorrectPinyin, true, "CorrectPinyin",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_CORRECT_PINYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinFuzzyPinyin, false, "FuzzyPinyin",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_FUZZY_PINYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinShiftSelectCandidate, false, "ShiftSelectCandidate",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_SHIFT_SELECT_PINYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinMinusEqualPage, true, "MinusEqualPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_MINUS_EQUAL_PAGE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinCommaPeriodPage, true, "CommaPeriodPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_COMMA_PERIOD_PAGE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinAutoCommit, false, "AutoCommit",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_AUTO_COMMIT,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinDoublePinyin, false, "DoublePinyin",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_DOUBLE_PINYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinInitChinese, true, "InitChinese",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_CHINESE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinInitFull, false, "InitFull",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinInitFullPunct, true, "InitFullPunct",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL_PUNCT,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinInitSimplifiedChinese, true, "InitSimplifiedChinese",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_SIMPLIFIED_CHINESE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
// 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,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
};
const PinyinIntegerPref kPinyinIntegerPrefs[] = {
// TODO(yusukes): the type of lookup_table_page_size on ibus should be uint.
{ prefs::kLanguagePinyinLookupTablePageSize,
5,
"LookupTablePageSize",
// don't sync as it's not user configurable.
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF }
};
COMPILE_ASSERT(kNumPinyinIntegerPrefs == arraysize(kPinyinIntegerPrefs),
TheSizeShouldMatch);
// ---------------------------------------------------------------------------
// For Japanese input method (ibus-mozc)
// ---------------------------------------------------------------------------
const char kMozcSectionName[] = "engine/Mozc";
const LanguageBooleanPrefs kMozcBooleanPrefs[] = {
{ prefs::kLanguageMozcIncognitoMode,
false,
"incognito_mode",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_INCOGNITO_MODE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageMozcUseAutoImeTurnOff,
true,
"use_auto_ime_turn_off",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_AUTO_IME_TURN_OFF,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageMozcUseHistorySuggest,
true,
"use_history_suggest",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_HISTORY_SUGGEST,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageMozcUseDictionarySuggest,
true,
"use_dictionary_suggest",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_DICTIONARY_SUGGEST,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
};
COMPILE_ASSERT(kNumMozcBooleanPrefs == arraysize(kMozcBooleanPrefs),
TheSizeShouldMatch);
extern const LanguageMultipleChoicePreference<const char*>
kMozcMultipleChoicePrefs[] = {
{ prefs::kLanguageMozcPreeditMethod,
"ROMAN",
"preedit_method",
{{ "ROMAN", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD_ROMAN },
{ "KANA", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD_KANA }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcSessionKeymap,
"MSIME",
"session_keymap",
{{ "ATOK", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_ATOK },
{ "MSIME", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_MSIME },
{ "KOTOERI", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_KOTOERI }},
// TODO: Support "CUSTOM" keymap.
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcPunctuationMethod,
"KUTEN_TOUTEN",
"punctuation_method",
{{ "KUTEN_TOUTEN",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_KUTEN_TOUTEN },
{ "COMMA_PERIOD",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_COMMA_PERIOD },
{ "KUTEN_PERIOD",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_KUTEN_PERIOD },
{ "COMMA_TOUTEN",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_COMMA_TOUTEN }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcSymbolMethod,
"CORNER_BRACKET_MIDDLE_DOT",
"symbol_method",
{{ "CORNER_BRACKET_MIDDLE_DOT",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_CORNER_BRACKET_MIDDLE_DOT },
{ "SQUARE_BRACKET_SLASH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_SQUARE_BRACKET_SLASH },
{ "CORNER_BRACKET_SLASH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_CORNER_BRACKET_SLASH },
{ "SQUARE_BRACKET_MIDDLE_DOT",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_SQUARE_BRACKET_MIDDLE_DOT }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcSpaceCharacterForm,
"FUNDAMENTAL_INPUT_MODE",
"space_character_form",
{{ "FUNDAMENTAL_INPUT_MODE",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_INPUT_MODE },
{ "FUNDAMENTAL_FULL_WIDTH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_FULL_WIDTH },
{ "FUNDAMENTAL_HALF_WIDTH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_HALF_WIDTH }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcHistoryLearningLevel,
"DEFAULT_HISTORY",
"history_learning_level",
{{ "DEFAULT_HISTORY",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_DEFAULT_HISTORY },
{ "READ_ONLY",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_READ_ONLY },
{ "NO_HISTORY",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_NO_HISTORY }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
// 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_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_NO_SHORTCUT },
// { "SHORTCUT_123456789",
// IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_SHORTCUT_123456789 },
// { "SHORTCUT_ASDFGHJKL",
// IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_SHORTCUT_ASDFGHJKL }},
// IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT,
// user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
// },
{ prefs::kLanguageMozcShiftKeyModeSwitch,
"ASCII_INPUT_MODE",
"shift_key_mode_switch",
{{ "OFF",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_OFF },
{ "ASCII_INPUT_MODE",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_ASCII_INPUT_MODE },
{ "KATAKANA_INPUT_MODE",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_KATAKANA_INPUT_MODE }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcNumpadCharacterForm,
"NUMPAD_HALF_WIDTH",
"numpad_character_form",
{{ "NUMPAD_INPUT_MODE",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_INPUT_MODE },
{ "NUMPAD_FULL_WIDTH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_FULL_WIDTH },
{ "NUMPAD_HALF_WIDTH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_HALF_WIDTH },
{ "NUMPAD_DIRECT_INPUT",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_DIRECT_INPUT }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
};
COMPILE_ASSERT(kNumMozcMultipleChoicePrefs ==
arraysize(kMozcMultipleChoicePrefs),
TheSizeShouldMatch);
const LanguageIntegerRangePreference kMozcIntegerPrefs[] = {
{ prefs::kLanguageMozcSuggestionsSize, 3, 1, 9, "suggestions_size",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SUGGESTIONS_SIZE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF }
};
COMPILE_ASSERT(kNumMozcIntegerPrefs == arraysize(kMozcIntegerPrefs),
TheSizeShouldMatch);
// ---------------------------------------------------------------------------
// For keyboard stuff
// ---------------------------------------------------------------------------
......
......@@ -5,10 +5,6 @@
#ifndef CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_
#define CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_
#include <stddef.h> // For size_t
#include "components/user_prefs/pref_registry_syncable.h"
class PrefRegistrySimple;
// TODO(yusukes): Rename this file to input_method_preference.cc. Since
......@@ -20,136 +16,12 @@ class PrefRegistrySimple;
namespace chromeos {
namespace language_prefs {
// TODO(yusukes): Remove the "Language" prefix from all structs and variables.
// They're redundant (we already have the language_prefs namespace) and even
// confusing.
// 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.
DataType default_pref_value;
const char* ibus_config_name;
// Currently we have 10 combobox items at most.
static const size_t kMaxItems = 11;
struct {
DataType ibus_config_value;
int item_message_id; // Resource grd ID for the combobox item.
} values_and_ids[kMaxItems];
int label_message_id; // Resource grd ID for the label.
user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status;
};
// 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;
const char* ibus_config_name;
int message_id;
user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status;
};
// 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;
int min_pref_value;
int max_pref_value;
const char* ibus_config_name;
int message_id;
user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status;
};
// ---------------------------------------------------------------------------
// For ibus-daemon
// For input method engine management
// ---------------------------------------------------------------------------
extern const char kGeneralSectionName[];
extern const char kPreloadEnginesConfigName[];
// ---------------------------------------------------------------------------
// For Traditional Chinese input method (ibus-mozc-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 - 2; // -2 is for crosbug.com/14185
extern const LanguageIntegerRangePreference kChewingIntegerPrefs[];
// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
const size_t kNumChewingIntegerPrefs = 2;
const int kChewingMaxChiSymbolLenIndex = 0;
const int kChewingCandPerPageIndex = 1;
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-mozc-hangul)
// ---------------------------------------------------------------------------
extern const char kHangulSectionName[];
extern const char kHangulKeyboardConfigName[];
extern const char kHangulHanjaBindingKeysConfigName[];
extern const char kHangulHanjaBindingKeys[];
struct HangulKeyboardNameIDPair {
int message_id;
const char* keyboard_id;
};
extern const HangulKeyboardNameIDPair kHangulKeyboardNameIDPairs[];
// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
const size_t kNumHangulKeyboardNameIDPairs = 5;
// ---------------------------------------------------------------------------
// For Simplified Chinese input method (ibus-mozc-pinyin)
// ---------------------------------------------------------------------------
extern const char kPinyinSectionName[];
extern const LanguageBooleanPrefs kPinyinBooleanPrefs[];
// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
const size_t kNumPinyinBooleanPrefs = 11;
extern const LanguageMultipleChoicePreference<int> kPinyinDoublePinyinSchema;
struct PinyinIntegerPref {
const char* pref_name; // Chrome preference name.
int default_pref_value;
const char* ibus_config_name;
user_prefs::PrefRegistrySyncable::PrefSyncStatus sync_status;
// TODO(yusukes): Add message_id if needed.
};
extern const PinyinIntegerPref kPinyinIntegerPrefs[];
const size_t kNumPinyinIntegerPrefs = 1;
// ---------------------------------------------------------------------------
// For Japanese input method (ibus-mozc)
// ---------------------------------------------------------------------------
extern const char kMozcSectionName[];
extern const LanguageBooleanPrefs kMozcBooleanPrefs[];
// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
const size_t kNumMozcBooleanPrefs = 4;
extern const LanguageMultipleChoicePreference<const char*>
kMozcMultipleChoicePrefs[];
// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
const size_t kNumMozcMultipleChoicePrefs = 8;
extern const LanguageIntegerRangePreference kMozcIntegerPrefs[];
// See comments at kNumChewingBooleanPrefs for why we hard-code this here.
const size_t kNumMozcIntegerPrefs = 1;
// ---------------------------------------------------------------------------
// For keyboard stuff
// ---------------------------------------------------------------------------
......@@ -165,7 +37,7 @@ extern const char kPreferredKeyboardLayout[];
// Registers non-user prefs for the default keyboard layout on the login screen.
void RegisterPrefs(PrefRegistrySimple* registry);
} // language_prefs
} // chromeos
} // namespace language_prefs
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_LANGUAGE_PREFERENCES_H_
// 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 "chrome/browser/chromeos/language_preferences.h"
#include <cstring>
#include <set>
#include "testing/gtest/include/gtest/gtest.h"
namespace chromeos {
namespace language_prefs {
namespace {
// Compares |a| and |b| and returns true if a is equal to b. The second one is a
// specialized function for LanguageMultipleChoicePreference<const char*>.
template <typename T>
bool Compare(T a, T b) {
return a == b;
}
template <>
bool Compare<const char*>(const char* a, const char* b) {
return !std::strcmp(a, b);
}
// Returns false if one or more prefs have a bad |default_pref_value|.
// C++ template is used here since LanguageMultipleChoicePreference is a class
// template.
template <typename T>
bool CheckDefaultValueOfMultipleChoicePrefs(
const LanguageMultipleChoicePreference<T>* prefs, size_t prefs_len) {
const size_t kMaxItems = LanguageMultipleChoicePreference<T>::kMaxItems;
for (size_t i = 0; i < prefs_len; ++i) {
bool default_value_is_valid = false;
for (size_t j = 0; j < kMaxItems; ++j) {
const LanguageMultipleChoicePreference<T>& pref = prefs[i];
if (pref.values_and_ids[j].item_message_id == 0) {
break;
}
if (Compare(pref.default_pref_value,
pref.values_and_ids[j].ibus_config_value)) {
default_value_is_valid = true;
}
}
if (!default_value_is_valid) {
return false;
}
}
return true;
}
// Returns false if |prefs| has duplicated |ibus_config_value| or
// |item_message_id|.
template <typename T>
bool CheckDuplicationOfMultipleChoicePrefs(
const LanguageMultipleChoicePreference<T>* prefs, size_t prefs_len) {
const size_t kMaxItems = LanguageMultipleChoicePreference<T>::kMaxItems;
for (size_t i = 0; i < prefs_len; ++i) {
std::set<T> ibus_config_value_set;
std::set<int> item_message_id_set;
for (size_t j = 0; j < kMaxItems; ++j) {
const LanguageMultipleChoicePreference<T>& pref = prefs[i];
if (pref.values_and_ids[j].item_message_id == 0) {
break;
}
const T ibus_config_value = pref.values_and_ids[j].ibus_config_value;
if (!ibus_config_value_set.insert(ibus_config_value).second) {
// |ibus_config_value| is already in the set.
return false;
}
const int item_message_id = pref.values_and_ids[j].item_message_id;
if (!item_message_id_set.insert(item_message_id).second) {
// |item_message_id| is already in the set.
return false;
}
}
}
return true;
}
// Returns false if one or more prefs have an out-of-range |default_pref_value|.
bool CheckDefaultValueOfIntegerRangePrefs(
const LanguageIntegerRangePreference* prefs, size_t prefs_len) {
for (size_t i = 0; i < prefs_len; ++i) {
const LanguageIntegerRangePreference& pref = prefs[i];
if (pref.default_pref_value < pref.min_pref_value) {
return false;
}
if (pref.default_pref_value > pref.max_pref_value) {
return false;
}
}
return true;
}
} // namespace
// Checks |default_pref_value| in LanguageMultipleChoicePreference prefs.
TEST(LanguagePreferencesTest, TestDefaultValuesOfMultipleChoicePrefs) {
EXPECT_TRUE(CheckDefaultValueOfMultipleChoicePrefs(
kChewingMultipleChoicePrefs, kNumChewingMultipleChoicePrefs));
EXPECT_TRUE(CheckDefaultValueOfMultipleChoicePrefs(
&kChewingHsuSelKeyType, 1));
EXPECT_TRUE(CheckDefaultValueOfMultipleChoicePrefs(
&kPinyinDoublePinyinSchema, 1));
EXPECT_TRUE(CheckDefaultValueOfMultipleChoicePrefs(
kMozcMultipleChoicePrefs, kNumMozcMultipleChoicePrefs));
}
// Checks |ibus_config_value| and |item_message_id| duplications in
// LanguageMultipleChoicePreference prefs.
TEST(LanguagePreferencesTest, TestDuplicationOfMultipleChoicePrefs) {
EXPECT_TRUE(CheckDuplicationOfMultipleChoicePrefs(
kChewingMultipleChoicePrefs, kNumChewingMultipleChoicePrefs));
EXPECT_TRUE(CheckDuplicationOfMultipleChoicePrefs(
&kChewingHsuSelKeyType, 1));
EXPECT_TRUE(CheckDuplicationOfMultipleChoicePrefs(
&kPinyinDoublePinyinSchema, 1));
EXPECT_TRUE(CheckDuplicationOfMultipleChoicePrefs(
kMozcMultipleChoicePrefs, kNumMozcMultipleChoicePrefs));
}
// Checks |default_pref_value| in LanguageIntegerRangePreference prefs.
TEST(LanguagePreferencesTest, TestDefaultValuesOfIntegerRangePrefs) {
EXPECT_TRUE(CheckDefaultValueOfIntegerRangePrefs(
kChewingIntegerPrefs, kNumChewingIntegerPrefs));
EXPECT_TRUE(CheckDefaultValueOfIntegerRangePrefs(
kMozcIntegerPrefs, kNumMozcIntegerPrefs));
}
} // namespace language_prefs
} // namespace chromeos
......@@ -211,73 +211,7 @@ void Preferences::RegisterProfilePrefs(
prefs::kLanguageEnabledExtensionImes,
"",
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
for (size_t i = 0; i < language_prefs::kNumChewingBooleanPrefs; ++i) {
registry->RegisterBooleanPref(
language_prefs::kChewingBooleanPrefs[i].pref_name,
language_prefs::kChewingBooleanPrefs[i].default_pref_value,
language_prefs::kChewingBooleanPrefs[i].sync_status);
}
for (size_t i = 0; i < language_prefs::kNumChewingMultipleChoicePrefs; ++i) {
registry->RegisterStringPref(
language_prefs::kChewingMultipleChoicePrefs[i].pref_name,
language_prefs::kChewingMultipleChoicePrefs[i].default_pref_value,
language_prefs::kChewingMultipleChoicePrefs[i].sync_status);
}
registry->RegisterIntegerPref(
language_prefs::kChewingHsuSelKeyType.pref_name,
language_prefs::kChewingHsuSelKeyType.default_pref_value,
language_prefs::kChewingHsuSelKeyType.sync_status);
for (size_t i = 0; i < language_prefs::kNumChewingIntegerPrefs; ++i) {
registry->RegisterIntegerPref(
language_prefs::kChewingIntegerPrefs[i].pref_name,
language_prefs::kChewingIntegerPrefs[i].default_pref_value,
language_prefs::kChewingIntegerPrefs[i].sync_status);
}
registry->RegisterStringPref(
prefs::kLanguageHangulKeyboard,
language_prefs::kHangulKeyboardNameIDPairs[0].keyboard_id,
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
registry->RegisterStringPref(
prefs::kLanguageHangulHanjaBindingKeys,
language_prefs::kHangulHanjaBindingKeys,
// Don't sync the pref as it's not user-configurable
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) {
registry->RegisterBooleanPref(
language_prefs::kPinyinBooleanPrefs[i].pref_name,
language_prefs::kPinyinBooleanPrefs[i].default_pref_value,
language_prefs::kPinyinBooleanPrefs[i].sync_status);
}
for (size_t i = 0; i < language_prefs::kNumPinyinIntegerPrefs; ++i) {
registry->RegisterIntegerPref(
language_prefs::kPinyinIntegerPrefs[i].pref_name,
language_prefs::kPinyinIntegerPrefs[i].default_pref_value,
language_prefs::kPinyinIntegerPrefs[i].sync_status);
}
registry->RegisterIntegerPref(
language_prefs::kPinyinDoublePinyinSchema.pref_name,
language_prefs::kPinyinDoublePinyinSchema.default_pref_value,
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) {
registry->RegisterBooleanPref(
language_prefs::kMozcBooleanPrefs[i].pref_name,
language_prefs::kMozcBooleanPrefs[i].default_pref_value,
language_prefs::kMozcBooleanPrefs[i].sync_status);
}
for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) {
registry->RegisterStringPref(
language_prefs::kMozcMultipleChoicePrefs[i].pref_name,
language_prefs::kMozcMultipleChoicePrefs[i].default_pref_value,
language_prefs::kMozcMultipleChoicePrefs[i].sync_status);
}
for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) {
registry->RegisterIntegerPref(
language_prefs::kMozcIntegerPrefs[i].pref_name,
language_prefs::kMozcIntegerPrefs[i].default_pref_value,
language_prefs::kMozcIntegerPrefs[i].sync_status);
}
registry->RegisterIntegerPref(
prefs::kLanguageRemapSearchKeyTo,
input_method::kSearchKey,
......@@ -407,46 +341,6 @@ void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) {
previous_input_method_.Init(prefs::kLanguagePreviousInputMethod,
prefs, callback);
for (size_t i = 0; i < language_prefs::kNumChewingBooleanPrefs; ++i) {
chewing_boolean_prefs_[i].Init(
language_prefs::kChewingBooleanPrefs[i].pref_name, prefs, callback);
}
for (size_t i = 0; i < language_prefs::kNumChewingMultipleChoicePrefs; ++i) {
chewing_multiple_choice_prefs_[i].Init(
language_prefs::kChewingMultipleChoicePrefs[i].pref_name,
prefs, callback);
}
chewing_hsu_sel_key_type_.Init(
language_prefs::kChewingHsuSelKeyType.pref_name, prefs, callback);
for (size_t i = 0; i < language_prefs::kNumChewingIntegerPrefs; ++i) {
chewing_integer_prefs_[i].Init(
language_prefs::kChewingIntegerPrefs[i].pref_name, prefs, callback);
}
hangul_keyboard_.Init(prefs::kLanguageHangulKeyboard, prefs, callback);
hangul_hanja_binding_keys_.Init(
prefs::kLanguageHangulHanjaBindingKeys, prefs, callback);
for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) {
pinyin_boolean_prefs_[i].Init(
language_prefs::kPinyinBooleanPrefs[i].pref_name, prefs, callback);
}
for (size_t i = 0; i < language_prefs::kNumPinyinIntegerPrefs; ++i) {
pinyin_int_prefs_[i].Init(
language_prefs::kPinyinIntegerPrefs[i].pref_name, prefs, callback);
}
pinyin_double_pinyin_schema_.Init(
language_prefs::kPinyinDoublePinyinSchema.pref_name, prefs, callback);
for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) {
mozc_boolean_prefs_[i].Init(
language_prefs::kMozcBooleanPrefs[i].pref_name, prefs, callback);
}
for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) {
mozc_multiple_choice_prefs_[i].Init(
language_prefs::kMozcMultipleChoicePrefs[i].pref_name, prefs, callback);
}
for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) {
mozc_integer_prefs_[i].Init(
language_prefs::kMozcIntegerPrefs[i].pref_name, prefs, callback);
}
xkb_auto_repeat_enabled_.Init(
prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback);
xkb_auto_repeat_delay_pref_.Init(
......
......@@ -124,27 +124,6 @@ class Preferences : public PrefServiceSyncableObserver,
StringPrefMember previous_input_method_;
StringPrefMember enabled_extension_imes_;
BooleanPrefMember chewing_boolean_prefs_[
language_prefs::kNumChewingBooleanPrefs];
StringPrefMember chewing_multiple_choice_prefs_[
language_prefs::kNumChewingMultipleChoicePrefs];
IntegerPrefMember chewing_hsu_sel_key_type_;
IntegerPrefMember chewing_integer_prefs_[
language_prefs::kNumChewingIntegerPrefs];
StringPrefMember hangul_keyboard_;
StringPrefMember hangul_hanja_binding_keys_;
StringPrefMember hangul_hanja_keys_;
BooleanPrefMember pinyin_boolean_prefs_[
language_prefs::kNumPinyinBooleanPrefs];
IntegerPrefMember pinyin_int_prefs_[
language_prefs::kNumPinyinIntegerPrefs];
IntegerPrefMember pinyin_double_pinyin_schema_;
BooleanPrefMember mozc_boolean_prefs_[
language_prefs::kNumMozcBooleanPrefs];
StringPrefMember mozc_multiple_choice_prefs_[
language_prefs::kNumMozcMultipleChoicePrefs];
IntegerPrefMember mozc_integer_prefs_[
language_prefs::kNumMozcIntegerPrefs];
BooleanPrefMember xkb_auto_repeat_enabled_;
IntegerPrefMember xkb_auto_repeat_delay_pref_;
IntegerPrefMember xkb_auto_repeat_interval_pref_;
......
<div id="languageChewingPage" class="page" hidden>
<div class="close-button"></div>
<h1 i18n-content="languageChewingPage"></h1>
<div class="content-area">
<table class="option-control-table">
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="chewing-auto-shift-cur" type="checkbox"
pref="settings.language.chewing_auto_shift_cur">
<span i18n-content="Chewing_autoShiftCur"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="chewing-add-phrase-direction" type="checkbox"
pref="settings.language.chewing_add_phrase_direction">
<span i18n-content="Chewing_addPhraseDirection"></span>
</label>
</div>
</td>
</tr>
<!-- Temporarily disabled. (crosbug.com/14185)
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="chewing-easy-symbol-input" type="checkbox"
pref="settings.language.chewing_easy_symbol_input">
<span i18n-content="Chewing_easySymbolInput"></span>
</label>
</div>
</td>
</tr>
-->
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="chewing-esc-clean-all-buf" type="checkbox"
pref="settings.language.chewing_esc_clean_all_buf">
<span i18n-content="Chewing_escCleanAllBuf"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="chewing-force-lowercase-english" type="checkbox"
pref="settings.language.chewing_force_lowercase_english">
<span i18n-content="Chewing_forceLowercaseEnglish"></span>
</label>
</div>
</td>
</tr>
<!-- Temporarily disabled. (crosbug.com/14185)
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="chewing-plain-zhuyin" type="checkbox"
pref="settings.language.chewing_plain_zhuyin">
<span i18n-content="Chewing_plainZhuyin"></span>
</label>
</div>
</td>
</tr>
-->
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="chewing-phrase-choice-rearward" type="checkbox"
pref="settings.language.chewing_phrase_choice_rearward">
<span i18n-content="Chewing_phraseChoiceRearward"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="chewing-space-as-selection" type="checkbox"
pref="settings.language.chewing_space_as_selection">
<span i18n-content="Chewing_spaceAsSelection"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="Chewing_maxChiSymbolLen"></td>
<td class="option-value">
<input id="chewing-max-chi-symbol-len" class="control" type="range"
pref="settings.language.chewing_max_chi_symbol_len"
i18n-values="min:Chewing_maxChiSymbolLenMin;
max:Chewing_maxChiSymbolLenMax">
<span id="chewing-max-chi-symbol-len-value"></span>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="Chewing_candPerPage"></td>
<td class="option-value">
<select id="chewing-cand-per-page" class="control" data-type="number"
pref="settings.language.chewing_cand_per_page"
i18n-options="Chewing_candPerPageValue"></select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="Chewing_KBType"></td>
<td class="option-value">
<select id="chewing-keyboard-type" class="control" data-type="string"
pref="settings.language.chewing_keyboard_type"
i18n-options="Chewing_KBTypeValue"></select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="Chewing_selKeys"></td>
<td class="option-value">
<select id="chewing-sel-keys" class="control" data-type="string"
pref="settings.language.chewing_sel_keys"
i18n-options="Chewing_selKeysValue"></select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="Chewing_hsuSelKeyType"></td>
<td class="option-value">
<select id="chewing-sel-key-type" class="control" data-type="number"
pref="settings.language.chewing_hsu_sel_key_type"
i18n-options="Chewing_hsuSelKeyTypeValue"></select>
</td>
</tr>
</table>
</div>
<div class="action-area">
<div class="button-strip">
<button id="chewing-confirm" i18n-content="done"></button>
</div>
</div>
</div>
<div id="languageHangulPage" class="page" hidden>
<div class="close-button"></div>
<h1 i18n-content="languageHangulPage"></h1>
<div class="content-area">
<div class="option">
<table class="option-control-table">
<tr>
<td class="option-name" i18n-content="hangulKeyboardLayout"></td>
<td class="option-value">
<select id="keyboard-layout-select" class="control"
data-type="string"
pref="settings.language.hangul_keyboard"
i18n-options="HangulkeyboardLayoutList"></select>
</td>
</tr>
</table>
</div>
</div>
<div class="action-area">
<div class="button-strip">
<button id="hangul-confirm" i18n-content="done"></button>
</div>
</div>
</div>
<div id="languageMozcPage" class="page" hidden>
<div class="close-button"></div>
<h1 i18n-content="languageMozcPage"></h1>
<div class="content-area">
<table class="option-control-table">
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="mozc-incognito-mode"
pref="settings.language.mozc_incognito_mode"
type="checkbox">
<span i18n-content="mozc_incognito_mode"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="mozc-use-auto-ime-turn-off"
pref="settings.language.mozc_use_auto_ime_turn_off"
type="checkbox">
<span i18n-content="mozc_use_auto_ime_turn_off"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="mozc-use-history-suggest" type="checkbox"
pref="settings.language.mozc_use_history_suggest">
<span i18n-content="mozc_use_history_suggest"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="mozc-use-dictionary-suggest" type="checkbox"
pref="settings.language.mozc_use_dictionary_suggest">
<span i18n-content="mozc_use_dictionary_suggest"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="mozc_preedit_method"></td>
<td class="option-value">
<select id="mozc-preedit-method" class="control" data-type="string"
pref="settings.language.mozc_preedit_method"
i18n-options="mozc_preedit_methodValue"></select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="mozc_session_keymap"></td>
<td class="option-value">
<select id="mozc-session-keymap" class="control" data-type="string"
pref="settings.language.mozc_session_keymap"
i18n-options="mozc_session_keymapValue"></select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="mozc_punctuation_method"></td>
<td class="option-value">
<select id="mozc-punctuation-method" class="control"
pref="settings.language.mozc_punctuation_method"
data-type="string" i18n-options="mozc_punctuation_methodValue">
</select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="mozc_symbol_method"></td>
<td class="option-value">
<select id="mozc-symbol-method" class="control" data-type="string"
pref="settings.language.mozc_symbol_method"
i18n-options="mozc_symbol_methodValue"></select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="mozc_space_character_form">
</td>
<td class="option-value">
<select id="mozc-space-character-form" class="control"
pref="settings.language.mozc_space_character_form"
data-type="string" i18n-options="mozc_space_character_formValue">
</select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="mozc_history_learning_level">
</td>
<td class="option-value">
<select id="mozc-history-learning-level" class="control"
pref="settings.language.mozc_history_learning_level"
data-type="string"
i18n-options="mozc_history_learning_levelValue"></select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="mozc_shift_key_mode_switch">
</td>
<td class="option-value">
<select id="mozc-shift-key-mode-switch" class="control"
pref="settings.language.mozc_shift_key_mode_switch"
data-type="string" i18n-options="mozc_shift_key_mode_switchValue">
</select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="mozc_numpad_character_form">
</td>
<td class="option-value">
<select id="mozc-numpad-character-form" class="control"
pref="settings.language.mozc_numpad_character_form"
data-type="string" i18n-options="mozc_numpad_character_formValue">
</select>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="mozc_suggestions_size">
</td>
<td class="option-value">
<select id="mozc-suggestions-size" class="control" data-type="number"
pref="settings.language.mozc_suggestions_size"
i18n-options="mozc_suggestions_sizeValue"></select>
</td>
</tr>
</table>
</div>
<div class="action-area">
<div class="button-strip">
<button id="mozc-confirm" i18n-content="done"></button>
</div>
</div>
</div>
<div id="languagePinyinPage" class="page" hidden>
<div class="close-button"></div>
<h1 i18n-content="languagePinyinPage"></h1>
<div class="content-area">
<table class="option-control-table">
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-correct-pinyin"
pref="settings.language.pinyin_correct_pinyin"
type="checkbox">
<span i18n-content="PinyinCorrectPinyin"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-fuzzy-pinyin"
pref="settings.language.pinyin_fuzzy_pinyin"
type="checkbox">
<span i18n-content="PinyinFuzzyPinyin"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-shift-select-candidate"
pref="settings.language.pinyin_shift_select_candidate"
type="checkbox">
<span i18n-content="PinyinShiftSelectCandidate"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-minus-equal-page"
pref="settings.language.pinyin_minus_equal_page"
type="checkbox">
<span i18n-content="PinyinMinusEqualPage"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-comma-period-page"
pref="settings.language.pinyin_comma_period_page"
type="checkbox">
<span i18n-content="PinyinCommaPeriodPage"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-auto-commit"
pref="settings.language.pinyin_auto_commit"
type="checkbox">
<span i18n-content="PinyinAutoCommit"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-double-pinyin"
pref="settings.language.pinyin_double_pinyin"
type="checkbox">
<span i18n-content="PinyinDoublePinyin"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-init-chinese"
pref="settings.language.pinyin_init_chinese"
type="checkbox">
<span i18n-content="PinyinInitChinese"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-init-full"
pref="settings.language.pinyin_init_full"
type="checkbox">
<span i18n-content="PinyinInitFull"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-init-full-punct"
pref="settings.language.pinyin_init_full_punct"
type="checkbox">
<span i18n-content="PinyinInitFullPunct"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" colspan="2">
<div class="checkbox">
<label>
<input id="pinyin-init-simplified-chinese"
pref="settings.language.pinyin_init_simplified_chinese"
type="checkbox">
<span i18n-content="PinyinInitSimplifiedChinese"></span>
</label>
</div>
</td>
</tr>
<tr>
<td class="option-name" i18n-content="PinyinDoublePinyinSchema"></td>
<td class="option-value">
<select id="pinyin-double-pinyin-schema" class="control"
pref="settings.language.pinyin_double_pinyin_schema"
data-type="string"
i18n-options="PinyinDoublePinyinSchemaValue"></select>
</td>
</tr>
</table>
</div>
<div class="action-area">
<div class="button-strip">
<button id="pinyin-confirm" i18n-content="done"></button>
</div>
</div>
</div>
......@@ -9,18 +9,6 @@ cr.define('options', function() {
/** @const */ var OptionsPage = options.OptionsPage;
/** @const */ var LanguageList = options.LanguageList;
// Some input methods like Chinese Pinyin have config pages.
// This is the map of the input method names to their config page names.
/** @const */ var INPUT_METHOD_ID_TO_CONFIG_PAGE_NAME = {
'mozc': 'languageMozc',
'mozc-chewing': 'languageChewing',
'mozc-dv': 'languageMozc',
'mozc-hangul': 'languageHangul',
'mozc-jp': 'languageMozc',
'pinyin': 'languagePinyin',
'pinyin-dv': 'languagePinyin',
};
/**
* Spell check dictionary download status.
* @type {Enum}
......@@ -173,10 +161,6 @@ cr.define('options', function() {
this.handleVisibleChange_.bind(this));
if (cr.isChromeOS) {
$('chewing-confirm').onclick = $('hangul-confirm').onclick =
$('mozc-confirm').onclick = $('pinyin-confirm').onclick =
OptionsPage.closeOverlay.bind(OptionsPage);
this.initializeInputMethodList_();
this.initializeLanguageCodeToInputMethodIdsMap_();
}
......@@ -321,15 +305,6 @@ cr.define('options', function() {
var span = element.querySelector('span');
span.textContent = inputMethod.displayName;
// Add the configure button if the config page is present for this
// input method.
if (inputMethod.id in INPUT_METHOD_ID_TO_CONFIG_PAGE_NAME) {
var pageName = INPUT_METHOD_ID_TO_CONFIG_PAGE_NAME[inputMethod.id];
var button = this.createConfigureInputMethodButton_(inputMethod.id,
pageName);
element.appendChild(button);
}
if (inputMethod.optionsPage) {
var button = document.createElement('button');
button.textContent = loadTimeData.getString('configure');
......@@ -347,26 +322,6 @@ cr.define('options', function() {
}
},
/**
* Creates a configure button for the given input method ID.
* @param {string} inputMethodId Input method ID (ex. "pinyin").
* @param {string} pageName Name of the config page (ex. "languagePinyin").
* @private
*/
createConfigureInputMethodButton_: function(inputMethodId, pageName) {
var button = document.createElement('button');
button.textContent = loadTimeData.getString('configure');
button.onclick = function(e) {
// Prevent the default action (i.e. changing the checked property
// of the checkbox). The button click here should not be handled
// as checkbox click.
e.preventDefault();
chrome.send('inputMethodOptionsOpen', [inputMethodId]);
OptionsPage.navigateToPage(pageName);
};
return button;
},
/**
* Adds a language to the preference 'translate_blocked_languages'. If
* |langCode| is already added, nothing happens. |langCode| is converted
......
......@@ -146,10 +146,6 @@
<include src="chromeos/display_overscan.html">
<include src="chromeos/internet_detail.html">
<include src="chromeos/preferred_networks.html">
<include src="chromeos/language_chewing_options.html">
<include src="chromeos/language_hangul_options.html">
<include src="chromeos/language_mozc_options.html">
<include src="chromeos/language_pinyin_options.html">
</if>
<if expr="not is_win and not is_macosx">
<include src="certificate_restore_overlay.html">
......
......@@ -196,26 +196,6 @@ function load() {
[$('pointer-settings-button')]);
OptionsPage.registerOverlay(PreferredNetworks.getInstance(),
BrowserOptions.getInstance());
OptionsPage.registerOverlay(
new OptionsPage('languageChewing',
loadTimeData.getString('languageChewingPageTabTitle'),
'languageChewingPage'),
LanguageOptions.getInstance());
OptionsPage.registerOverlay(
new OptionsPage('languageHangul',
loadTimeData.getString('languageHangulPageTabTitle'),
'languageHangulPage'),
LanguageOptions.getInstance());
OptionsPage.registerOverlay(
new OptionsPage('languageMozc',
loadTimeData.getString('languageMozcPageTabTitle'),
'languageMozcPage'),
LanguageOptions.getInstance());
OptionsPage.registerOverlay(
new OptionsPage('languagePinyin',
loadTimeData.getString('languagePinyinPageTabTitle'),
'languagePinyinPage'),
LanguageOptions.getInstance());
}
if (!cr.isWindows && !cr.isMac) {
......
// Copyright (c) 2012 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 "chrome/browser/ui/webui/options/chromeos/language_chewing_handler.h"
#include <limits>
#include "base/logging.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/chromeos/language_preferences.h"
#include "chrome/browser/ui/webui/options/chromeos/language_options_util.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
namespace {
const char kI18nPrefix[] = "Chewing_";
} // namespace
namespace chromeos {
namespace options {
LanguageChewingHandler::LanguageChewingHandler() {
}
LanguageChewingHandler::~LanguageChewingHandler() {
}
void LanguageChewingHandler::GetLocalizedValues(
DictionaryValue* localized_strings) {
DCHECK(localized_strings);
RegisterTitle(localized_strings, "languageChewingPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTINGS_TITLE);
for (size_t i = 0; i < language_prefs::kNumChewingBooleanPrefs; ++i) {
localized_strings->SetString(
GetI18nContentValue(language_prefs::kChewingBooleanPrefs[i],
kI18nPrefix),
l10n_util::GetStringUTF16(
language_prefs::kChewingBooleanPrefs[i].message_id));
}
// For maximum Chinese characters in pre-edit buffer, we use slider UI.
{
const language_prefs::LanguageIntegerRangePreference& preference =
language_prefs::kChewingIntegerPrefs[
language_prefs::kChewingMaxChiSymbolLenIndex];
localized_strings->SetString(
GetI18nContentValue(preference, kI18nPrefix),
l10n_util::GetStringUTF16(preference.message_id));
localized_strings->SetString(
GetTemplateDataMinName(preference, kI18nPrefix),
base::IntToString(preference.min_pref_value));
localized_strings->SetString(
GetTemplateDataMaxName(preference, kI18nPrefix),
base::IntToString(preference.max_pref_value));
}
// For number of candidates per page, we use select-option UI.
{
const language_prefs::LanguageIntegerRangePreference& preference =
language_prefs::kChewingIntegerPrefs[
language_prefs::kChewingCandPerPageIndex];
localized_strings->SetString(
GetI18nContentValue(preference, kI18nPrefix),
l10n_util::GetStringUTF16(preference.message_id));
ListValue* list_value = new ListValue();
for (int i = preference.min_pref_value; i <= preference.max_pref_value;
++i) {
ListValue* option = new ListValue();
option->Append(CreateValue(i));
option->Append(CreateValue(i));
list_value->Append(option);
}
localized_strings->Set(GetTemplateDataPropertyName(preference, kI18nPrefix),
list_value);
}
for (size_t i = 0; i < language_prefs::kNumChewingMultipleChoicePrefs;
++i) {
const language_prefs::LanguageMultipleChoicePreference<const char*>&
preference = language_prefs::kChewingMultipleChoicePrefs[i];
localized_strings->SetString(
GetI18nContentValue(preference, kI18nPrefix),
l10n_util::GetStringUTF16(preference.label_message_id));
localized_strings->Set(
GetTemplateDataPropertyName(preference, kI18nPrefix),
CreateMultipleChoiceList(preference));
}
localized_strings->SetString(
GetI18nContentValue(language_prefs::kChewingHsuSelKeyType, kI18nPrefix),
l10n_util::GetStringUTF16(
language_prefs::kChewingHsuSelKeyType.label_message_id));
localized_strings->Set(
GetTemplateDataPropertyName(language_prefs::kChewingHsuSelKeyType,
kI18nPrefix),
CreateMultipleChoiceList(language_prefs::kChewingHsuSelKeyType));
}
} // namespace options
} // namespace chromeos
// Copyright (c) 2012 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 CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_CHEWING_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_CHEWING_HANDLER_H_
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "chrome/browser/ui/webui/options/options_ui.h"
namespace base {
class DictionaryValue;
}
namespace chromeos {
namespace options {
// Chewing options page UI handler.
class LanguageChewingHandler : public ::options::OptionsPageUIHandler {
public:
LanguageChewingHandler();
virtual ~LanguageChewingHandler();
// OptionsPageUIHandler implementation.
virtual void GetLocalizedValues(
base::DictionaryValue* localized_strings) OVERRIDE;
private:
DISALLOW_COPY_AND_ASSIGN(LanguageChewingHandler);
};
} // namespace options
} // namespace chromeos
#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_CHEWING_HANDLER_H_
// Copyright (c) 2012 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 "chrome/browser/ui/webui/options/chromeos/language_hangul_handler.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/chromeos/language_preferences.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
namespace chromeos {
namespace options {
LanguageHangulHandler::LanguageHangulHandler() {
}
LanguageHangulHandler::~LanguageHangulHandler() {
}
void LanguageHangulHandler::GetLocalizedValues(
DictionaryValue* localized_strings) {
DCHECK(localized_strings);
RegisterTitle(localized_strings, "languageHangulPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_TITLE);
localized_strings->SetString("hangulKeyboardLayout",
l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_KEYBOARD_LAYOUT_TEXT));
localized_strings->Set("HangulkeyboardLayoutList", GetKeyboardLayoutList());
}
ListValue* LanguageHangulHandler::GetKeyboardLayoutList() {
ListValue* keyboard_layout_list = new ListValue();
for (size_t i = 0; i < language_prefs::kNumHangulKeyboardNameIDPairs; ++i) {
ListValue* option = new ListValue();
option->Append(new base::StringValue(
language_prefs::kHangulKeyboardNameIDPairs[i].keyboard_id));
option->Append(new base::StringValue(l10n_util::GetStringUTF16(
language_prefs::kHangulKeyboardNameIDPairs[i].message_id)));
keyboard_layout_list->Append(option);
}
return keyboard_layout_list;
}
} // namespace options
} // namespace chromeos
// Copyright (c) 2012 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 CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_HANGUL_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_HANGUL_HANDLER_H_
#include "base/compiler_specific.h"
#include "chrome/browser/ui/webui/options/options_ui.h"
namespace base {
class DictionaryValue;
class ListValue;
}
namespace chromeos {
namespace options {
// Hangul options page UI handler.
class LanguageHangulHandler : public ::options::OptionsPageUIHandler {
public:
LanguageHangulHandler();
virtual ~LanguageHangulHandler();
// OptionsPageUIHandler implementation.
virtual void GetLocalizedValues(
base::DictionaryValue* localized_strings) OVERRIDE;
private:
// Returns the list of hangul keyboards.
static base::ListValue* GetKeyboardLayoutList();
DISALLOW_COPY_AND_ASSIGN(LanguageHangulHandler);
};
} // namespace options
} // namespace chromeos
#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_HANGUL_HANDLER_H_
// Copyright (c) 2012 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 "chrome/browser/ui/webui/options/chromeos/language_mozc_handler.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/chromeos/language_preferences.h"
#include "chrome/browser/ui/webui/options/chromeos/language_options_util.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
namespace {
const char kI18nPrefix[] = "mozc_";
} // namespace
namespace chromeos {
namespace options {
LanguageMozcHandler::LanguageMozcHandler() {
}
LanguageMozcHandler::~LanguageMozcHandler() {
}
void LanguageMozcHandler::GetLocalizedValues(
DictionaryValue* localized_strings) {
DCHECK(localized_strings);
RegisterTitle(localized_strings, "languageMozcPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SETTINGS_TITLE);
for (size_t i = 0; i < language_prefs::kNumMozcBooleanPrefs; ++i) {
localized_strings->SetString(
GetI18nContentValue(language_prefs::kMozcBooleanPrefs[i], kI18nPrefix),
l10n_util::GetStringUTF16(
language_prefs::kMozcBooleanPrefs[i].message_id));
}
for (size_t i = 0; i < language_prefs::kNumMozcMultipleChoicePrefs; ++i) {
const language_prefs::LanguageMultipleChoicePreference<const char*>&
preference = language_prefs::kMozcMultipleChoicePrefs[i];
localized_strings->SetString(
GetI18nContentValue(preference, kI18nPrefix),
l10n_util::GetStringUTF16(preference.label_message_id));
localized_strings->Set(GetTemplateDataPropertyName(preference, kI18nPrefix),
CreateMultipleChoiceList(preference));
}
for (size_t i = 0; i < language_prefs::kNumMozcIntegerPrefs; ++i) {
const language_prefs::LanguageIntegerRangePreference& preference =
language_prefs::kMozcIntegerPrefs[i];
localized_strings->SetString(
GetI18nContentValue(preference, kI18nPrefix),
l10n_util::GetStringUTF16(preference.message_id));
ListValue* list_value = new ListValue();
for (int j = preference.min_pref_value; j <= preference.max_pref_value;
++j) {
ListValue* option = new ListValue();
option->Append(CreateValue(j));
option->Append(CreateValue(j));
list_value->Append(option);
}
localized_strings->Set(GetTemplateDataPropertyName(preference, kI18nPrefix),
list_value);
}
}
} // namespace options
} // namespace chromeos
// Copyright (c) 2012 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 CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_MOZC_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_MOZC_HANDLER_H_
#include "base/compiler_specific.h"
#include "chrome/browser/ui/webui/options/options_ui.h"
namespace base {
class DictionaryValue;
}
namespace chromeos {
namespace options {
// Mozc options page UI handler.
class LanguageMozcHandler : public ::options::OptionsPageUIHandler {
public:
LanguageMozcHandler();
virtual ~LanguageMozcHandler();
// OptionsPageUIHandler implementation.
virtual void GetLocalizedValues(
base::DictionaryValue* localized_strings) OVERRIDE;
private:
DISALLOW_COPY_AND_ASSIGN(LanguageMozcHandler);
};
} // namespace options
} // namespace chromeos
#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_MOZC_HANDLER_H_
// Copyright (c) 2012 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 "chrome/browser/ui/webui/options/chromeos/language_options_util.h"
namespace chromeos {
namespace options {
// See comments in .h.
base::Value* CreateValue(const char* in_value) {
return new base::StringValue(in_value);
}
base::Value* CreateValue(int in_value) {
return new base::FundamentalValue(in_value);
}
} // namespace options
} // namespace chromeos
// Copyright (c) 2012 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 CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_OPTIONS_UTIL_H_
#define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_OPTIONS_UTIL_H_
#include <string>
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/chromeos/language_preferences.h"
#include "ui/base/l10n/l10n_util.h"
namespace base {
class ListValue;
}
namespace chromeos {
namespace options {
// Returns an i18n-content value corresponding to |preference|.
template <typename T>
std::string GetI18nContentValue(const T& preference, const char* prefix) {
return std::string(prefix) + preference.ibus_config_name;
}
// Returns a property name of templateData corresponding to |preference|.
template <typename T>
std::string GetTemplateDataPropertyName(const T& preference,
const char* prefix) {
return std::string(prefix) + preference.ibus_config_name + "Value";
}
// Returns an property name of templateData corresponding the value of the min
// attribute.
template <typename T>
std::string GetTemplateDataMinName(const T& preference, const char* prefix) {
return std::string(prefix) + preference.ibus_config_name + "Min";
}
// Returns an property name of templateData corresponding the value of the max
// attribute.
template <typename T>
std::string GetTemplateDataMaxName(const T& preference, const char* prefix) {
return std::string(prefix) + preference.ibus_config_name + "Max";
}
// Creates a Value object from the given value. Here we use function
// overloading to handle string and integer preferences in
// CreateMultipleChoiceList.
base::Value* CreateValue(const char* in_value);
base::Value* CreateValue(int in_value);
// Creates a multiple choice list from the given preference.
template <typename T>
base::ListValue* CreateMultipleChoiceList(
const language_prefs::LanguageMultipleChoicePreference<T>& preference) {
int list_length = 0;
for (size_t i = 0;
i < language_prefs::LanguageMultipleChoicePreference<T>::kMaxItems;
++i) {
if (preference.values_and_ids[i].item_message_id == 0)
break;
++list_length;
}
DCHECK_GT(list_length, 0);
base::ListValue* list_value = new base::ListValue();
for (int i = 0; i < list_length; ++i) {
base::ListValue* option = new base::ListValue();
option->Append(CreateValue(
preference.values_and_ids[i].ibus_config_value));
option->Append(new base::StringValue(l10n_util::GetStringUTF16(
preference.values_and_ids[i].item_message_id)));
list_value->Append(option);
}
return list_value;
}
} // namespace options
} // namespace chromeos
#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_OPTIONS_UTIL_H_
// Copyright (c) 2012 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 "chrome/browser/ui/webui/options/chromeos/language_pinyin_handler.h"
#include "base/values.h"
#include "chrome/browser/chromeos/language_preferences.h"
#include "chrome/browser/ui/webui/options/chromeos/language_options_util.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
namespace {
const char kI18nPrefix[] = "Pinyin";
} // namespace
namespace chromeos {
namespace options {
LanguagePinyinHandler::LanguagePinyinHandler() {
}
LanguagePinyinHandler::~LanguagePinyinHandler() {
}
void LanguagePinyinHandler::GetLocalizedValues(
DictionaryValue* localized_strings) {
DCHECK(localized_strings);
RegisterTitle(localized_strings, "languagePinyinPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTINGS_TITLE);
for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) {
localized_strings->SetString(
GetI18nContentValue(language_prefs::kPinyinBooleanPrefs[i],
kI18nPrefix),
l10n_util::GetStringUTF16(
language_prefs::kPinyinBooleanPrefs[i].message_id));
}
localized_strings->SetString(
GetI18nContentValue(language_prefs::kPinyinDoublePinyinSchema,
kI18nPrefix),
l10n_util::GetStringUTF16(
language_prefs::kPinyinDoublePinyinSchema.label_message_id));
ListValue* list_value = new ListValue();
for (size_t i = 0;
i < language_prefs::LanguageMultipleChoicePreference<int>::kMaxItems;
++i) {
if (language_prefs::kPinyinDoublePinyinSchema.values_and_ids[i].
item_message_id == 0)
break;
ListValue* option = new ListValue();
option->Append(new base::FundamentalValue(
language_prefs::kPinyinDoublePinyinSchema.values_and_ids[i].
ibus_config_value));
option->Append(new base::StringValue(l10n_util::GetStringUTF16(
language_prefs::kPinyinDoublePinyinSchema.values_and_ids[i].
item_message_id)));
list_value->Append(option);
}
localized_strings->Set(
GetTemplateDataPropertyName(language_prefs::kPinyinDoublePinyinSchema,
kI18nPrefix),
list_value);
}
} // namespace options
} // namespace chromeos
// Copyright (c) 2012 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 CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_PINYIN_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_PINYIN_HANDLER_H_
#include "base/compiler_specific.h"
#include "chrome/browser/ui/webui/options/options_ui.h"
namespace base {
class DictionaryValue;
}
namespace chromeos {
namespace options {
// Pinyin options page UI handler.
class LanguagePinyinHandler : public ::options::OptionsPageUIHandler {
public:
LanguagePinyinHandler();
virtual ~LanguagePinyinHandler();
// OptionsPageUIHandler implementation.
virtual void GetLocalizedValues(
base::DictionaryValue* localized_strings) OVERRIDE;
private:
DISALLOW_COPY_AND_ASSIGN(LanguagePinyinHandler);
};
} // namespace options
} // namespace chromeos
#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_LANGUAGE_PINYIN_HANDLER_H_
......@@ -75,10 +75,6 @@
#include "chrome/browser/ui/webui/options/chromeos/display_overscan_handler.h"
#include "chrome/browser/ui/webui/options/chromeos/internet_options_handler.h"
#include "chrome/browser/ui/webui/options/chromeos/keyboard_handler.h"
#include "chrome/browser/ui/webui/options/chromeos/language_chewing_handler.h"
#include "chrome/browser/ui/webui/options/chromeos/language_hangul_handler.h"
#include "chrome/browser/ui/webui/options/chromeos/language_mozc_handler.h"
#include "chrome/browser/ui/webui/options/chromeos/language_pinyin_handler.h"
#include "chrome/browser/ui/webui/options/chromeos/pointer_handler.h"
#include "chrome/browser/ui/webui/options/chromeos/proxy_handler.h"
#include "chrome/browser/ui/webui/options/chromeos/stats_options_handler.h"
......@@ -299,16 +295,8 @@ OptionsUI::OptionsUI(content::WebUI* web_ui)
new chromeos::options::DisplayOverscanHandler());
AddOptionsPageUIHandler(localized_strings,
new chromeos::options::InternetOptionsHandler());
AddOptionsPageUIHandler(localized_strings,
new chromeos::options::LanguageChewingHandler());
AddOptionsPageUIHandler(localized_strings,
new chromeos::options::KeyboardHandler());
AddOptionsPageUIHandler(localized_strings,
new chromeos::options::LanguageHangulHandler());
AddOptionsPageUIHandler(localized_strings,
new chromeos::options::LanguageMozcHandler());
AddOptionsPageUIHandler(localized_strings,
new chromeos::options::LanguagePinyinHandler());
chromeos::options::PointerHandler* pointer_handler =
new chromeos::options::PointerHandler();
......
......@@ -2254,16 +2254,6 @@
'browser/ui/webui/options/chromeos/internet_options_handler.h',
'browser/ui/webui/options/chromeos/keyboard_handler.cc',
'browser/ui/webui/options/chromeos/keyboard_handler.h',
'browser/ui/webui/options/chromeos/language_chewing_handler.cc',
'browser/ui/webui/options/chromeos/language_chewing_handler.h',
'browser/ui/webui/options/chromeos/language_hangul_handler.cc',
'browser/ui/webui/options/chromeos/language_hangul_handler.h',
'browser/ui/webui/options/chromeos/language_mozc_handler.cc',
'browser/ui/webui/options/chromeos/language_mozc_handler.h',
'browser/ui/webui/options/chromeos/language_options_util.cc',
'browser/ui/webui/options/chromeos/language_options_util.h',
'browser/ui/webui/options/chromeos/language_pinyin_handler.cc',
'browser/ui/webui/options/chromeos/language_pinyin_handler.h',
'browser/ui/webui/options/chromeos/pointer_handler.cc',
'browser/ui/webui/options/chromeos/pointer_handler.h',
'browser/ui/webui/options/chromeos/proxy_handler.cc',
......
......@@ -676,7 +676,6 @@
'browser/chromeos/keyboard_driven_event_rewriter_unittest.cc',
'browser/chromeos/kiosk_mode/kiosk_mode_idle_logout_unittest.cc',
'browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc',
'browser/chromeos/language_preferences_unittest.cc',
'browser/chromeos/login/default_pinned_apps_field_trial_unittest.cc',
'browser/chromeos/login/existing_user_controller_auto_login_unittest.cc',
'browser/chromeos/login/hwid_checker_unittest.cc',
......
......@@ -657,108 +657,6 @@ const char kLanguagePreloadEngines[] = "settings.language.preload_engines";
const char kLanguageEnabledExtensionImes[] =
"settings.language.enabled_extension_imes";
// Boolean prefs for ibus-chewing Chinese input method.
const char kLanguageChewingAutoShiftCur[] =
"settings.language.chewing_auto_shift_cur";
const char kLanguageChewingAddPhraseDirection[] =
"settings.language.chewing_add_phrase_direction";
const char kLanguageChewingEasySymbolInput[] =
"settings.language.chewing_easy_symbol_input";
const char kLanguageChewingEscCleanAllBuf[] =
"settings.language.chewing_esc_clean_all_buf";
const char kLanguageChewingForceLowercaseEnglish[] =
"settings.language.chewing_force_lowercase_english";
const char kLanguageChewingPlainZhuyin[] =
"settings.language.chewing_plain_zhuyin";
const char kLanguageChewingPhraseChoiceRearward[] =
"settings.language.chewing_phrase_choice_rearward";
const char kLanguageChewingSpaceAsSelection[] =
"settings.language.chewing_space_as_selection";
// Integer prefs for ibus-chewing Chinese input method.
const char kLanguageChewingMaxChiSymbolLen[] =
"settings.language.chewing_max_chi_symbol_len";
const char kLanguageChewingCandPerPage[] =
"settings.language.chewing_cand_per_page";
// String prefs for ibus-chewing Chinese input method.
const char kLanguageChewingKeyboardType[] =
"settings.language.chewing_keyboard_type";
const char kLanguageChewingSelKeys[] =
"settings.language.chewing_sel_keys";
const char kLanguageChewingHsuSelKeyType[] =
"settings.language.chewing_hsu_sel_key_type";
// A string pref which determines the keyboard layout for Hangul input method.
const char kLanguageHangulKeyboard[] = "settings.language.hangul_keyboard";
const char kLanguageHangulHanjaBindingKeys[] =
"settings.language.hangul_hanja_binding_keys";
// A boolean prefs for ibus-pinyin Chinese input method.
const char kLanguagePinyinCorrectPinyin[] =
"settings.language.pinyin_correct_pinyin";
const char kLanguagePinyinFuzzyPinyin[] =
"settings.language.pinyin_fuzzy_pinyin";
const char kLanguagePinyinShiftSelectCandidate[] =
"settings.language.pinyin_shift_select_candidate";
const char kLanguagePinyinMinusEqualPage[] =
"settings.language.pinyin_minus_equal_page";
const char kLanguagePinyinCommaPeriodPage[] =
"settings.language.pinyin_comma_period_page";
const char kLanguagePinyinAutoCommit[] =
"settings.language.pinyin_auto_commit";
const char kLanguagePinyinDoublePinyin[] =
"settings.language.pinyin_double_pinyin";
const char kLanguagePinyinInitChinese[] =
"settings.language.pinyin_init_chinese";
const char kLanguagePinyinInitFull[] =
"settings.language.pinyin_init_full";
const char kLanguagePinyinInitFullPunct[] =
"settings.language.pinyin_init_full_punct";
const char kLanguagePinyinInitSimplifiedChinese[] =
"settings.language.pinyin_init_simplified_chinese";
const char kLanguagePinyinTradCandidate[] =
"settings.language.pinyin_trad_candidate";
// A integer prefs for ibus-pinyin Chinese input method.
const char kLanguagePinyinDoublePinyinSchema[] =
"settings.language.pinyin_double_pinyin_schema";
const char kLanguagePinyinLookupTablePageSize[] =
"settings.language.pinyin_lookup_table_page_size";
// A string prefs for ibus-mozc Japanese input method.
// ibus-mozc converts the string values to protobuf enum values defined in
// third_party/ibus-mozc/files/src/session/config.proto.
const char kLanguageMozcPreeditMethod[] =
"settings.language.mozc_preedit_method";
const char kLanguageMozcSessionKeymap[] =
"settings.language.mozc_session_keymap";
const char kLanguageMozcPunctuationMethod[] =
"settings.language.mozc_punctuation_method";
const char kLanguageMozcSymbolMethod[] =
"settings.language.mozc_symbol_method";
const char kLanguageMozcSpaceCharacterForm[] =
"settings.language.mozc_space_character_form";
const char kLanguageMozcHistoryLearningLevel[] =
"settings.language.mozc_history_learning_level";
const char kLanguageMozcSelectionShortcut[] =
"settings.language.mozc_selection_shortcut";
const char kLanguageMozcShiftKeyModeSwitch[] =
"settings.language.mozc_shift_key_mode_switch";
const char kLanguageMozcNumpadCharacterForm[] =
"settings.language.mozc_numpad_character_form";
const char kLanguageMozcIncognitoMode[] =
"settings.language.mozc_incognito_mode";
const char kLanguageMozcUseAutoImeTurnOff[] =
"settings.language.mozc_use_auto_ime_turn_off";
const char kLanguageMozcUseHistorySuggest[] =
"settings.language.mozc_use_history_suggest";
const char kLanguageMozcUseDictionarySuggest[] =
"settings.language.mozc_use_dictionary_suggest";
const char kLanguageMozcSuggestionsSize[] =
"settings.language.mozc_suggestions_size";
// A integer prefs which determine how we remap modifier keys (e.g. swap Alt and
// Control.) Possible values for these prefs are 0-4. See ModifierKey enum in
// src/chrome/browser/chromeos/input_method/xkeyboard.h
......
......@@ -232,49 +232,6 @@ extern const char kLanguageHotkeyPreviousEngine[];
extern const char kLanguagePreferredLanguages[];
extern const char kLanguagePreloadEngines[];
extern const char kLanguageEnabledExtensionImes[];
extern const char kLanguageChewingAutoShiftCur[];
extern const char kLanguageChewingAddPhraseDirection[];
extern const char kLanguageChewingEasySymbolInput[];
extern const char kLanguageChewingEscCleanAllBuf[];
extern const char kLanguageChewingForceLowercaseEnglish[];
extern const char kLanguageChewingPlainZhuyin[];
extern const char kLanguageChewingPhraseChoiceRearward[];
extern const char kLanguageChewingSpaceAsSelection[];
extern const char kLanguageChewingMaxChiSymbolLen[];
extern const char kLanguageChewingCandPerPage[];
extern const char kLanguageChewingKeyboardType[];
extern const char kLanguageChewingSelKeys[];
extern const char kLanguageChewingHsuSelKeyType[];
extern const char kLanguageHangulKeyboard[];
extern const char kLanguageHangulHanjaBindingKeys[];
extern const char kLanguagePinyinCorrectPinyin[];
extern const char kLanguagePinyinFuzzyPinyin[];
extern const char kLanguagePinyinLookupTablePageSize[];
extern const char kLanguagePinyinShiftSelectCandidate[];
extern const char kLanguagePinyinMinusEqualPage[];
extern const char kLanguagePinyinCommaPeriodPage[];
extern const char kLanguagePinyinAutoCommit[];
extern const char kLanguagePinyinDoublePinyin[];
extern const char kLanguagePinyinDoublePinyinSchema[];
extern const char kLanguagePinyinInitChinese[];
extern const char kLanguagePinyinInitFull[];
extern const char kLanguagePinyinInitFullPunct[];
extern const char kLanguagePinyinInitSimplifiedChinese[];
extern const char kLanguagePinyinTradCandidate[];
extern const char kLanguageMozcPreeditMethod[];
extern const char kLanguageMozcSessionKeymap[];
extern const char kLanguageMozcPunctuationMethod[];
extern const char kLanguageMozcSymbolMethod[];
extern const char kLanguageMozcSpaceCharacterForm[];
extern const char kLanguageMozcHistoryLearningLevel[];
extern const char kLanguageMozcSelectionShortcut[];
extern const char kLanguageMozcShiftKeyModeSwitch[];
extern const char kLanguageMozcNumpadCharacterForm[];
extern const char kLanguageMozcIncognitoMode[];
extern const char kLanguageMozcUseAutoImeTurnOff[];
extern const char kLanguageMozcUseHistorySuggest[];
extern const char kLanguageMozcUseDictionarySuggest[];
extern const char kLanguageMozcSuggestionsSize[];
extern const char kLanguageRemapCapsLockKeyTo[];
extern const char kLanguageRemapSearchKeyTo[];
extern const char kLanguageRemapControlKeyTo[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment