summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authoryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-10 05:38:25 +0000
committeryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-10 05:38:25 +0000
commit8a1ace211bd056287ccd0675d60a5f321a3e427d (patch)
tree70d4244105ff5940f337939b1d8d3ccd63c3de86 /chrome
parent3bde472efc5b871a5ad222cb8fad1908f6485af1 (diff)
downloadchromium_src-8a1ace211bd056287ccd0675d60a5f321a3e427d.zip
chromium_src-8a1ace211bd056287ccd0675d60a5f321a3e427d.tar.gz
chromium_src-8a1ace211bd056287ccd0675d60a5f321a3e427d.tar.bz2
Add checkboxes for configuring the boolean type of Mozc configurations.
The original patch was written by mazda@chromium.org. http://codereview.chromium.org/2778002/show BUG=chromium-os:2625 TEST=manual Review URL: http://codereview.chromium.org/2778002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49369 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/generated_resources.grd32
-rw-r--r--chrome/browser/chromeos/language_preferences.h65
-rw-r--r--chrome/browser/chromeos/options/language_config_view.cc6
-rw-r--r--chrome/browser/chromeos/options/language_mozc_config_view.cc42
-rw-r--r--chrome/browser/chromeos/options/language_mozc_config_view.h15
-rw-r--r--chrome/browser/chromeos/preferences.cc15
-rw-r--r--chrome/browser/chromeos/preferences.h1
-rw-r--r--chrome/browser/sync/glue/synchronized_preferences.h8
-rw-r--r--chrome/common/pref_names.cc16
-rw-r--r--chrome/common/pref_names.h8
10 files changed, 190 insertions, 18 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 7ce3454..f90ff1d 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -8050,6 +8050,38 @@ Keep your key file in a safe place. You will need it to create new versions of y
desc="The combobox value for the Mozc input method preference">
Direct input
</message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_INCOGNITO_MODE"
+ desc="The checkbox label for a Mozc input method preference">
+ Temporarily disable conversion personalization, history-based suggestions and user dictionary
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_AUTO_IME_TURN_OFF"
+ desc="The checkbox label for a Mozc input method preference">
+ Automatically switch to halfwidth
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_DATE_CONVERSION"
+ desc="The checkbox label for a Mozc input method preference">
+ Date/time conversion
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_SINGLE_KANJI_CONVERSION"
+ desc="The checkbox label for a Mozc input method preference">
+ Single kanji dictionary
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_SYMBOL_CONVERSION"
+ desc="The checkbox label for a Mozc input method preference">
+ Symbol dictionary
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_NUMBER_CONVERSION"
+ desc="The checkbox label for a Mozc input method preference">
+ Special number conversion
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_HISTORY_SUGGEST"
+ desc="The checkbox label for a Mozc input method preference">
+ Use input history
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_DICTIONARY_SUGGEST"
+ desc="The checkbox label for a Mozc input method preference">
+ Use system dictionary
+ </message>
<message name="IDS_OPTIONS_SETTINGS_LANGUAGES_CONFIGURE"
desc="The label for the configure button for input methods">
Configure...
diff --git a/chrome/browser/chromeos/language_preferences.h b/chrome/browser/chromeos/language_preferences.h
index dfb6e38..02a7744 100644
--- a/chrome/browser/chromeos/language_preferences.h
+++ b/chrome/browser/chromeos/language_preferences.h
@@ -26,6 +26,13 @@ struct LanguageMultipleChoicePreference {
int label_message_id; // Resource grd ID for the label.
};
+struct LanguageBooleanPrefs {
+ const wchar_t* pref_name; // Chrome preference name.
+ bool default_pref_value;
+ const char* ibus_config_name;
+ int message_id;
+};
+
// For ibus-daemon
const char kGeneralSectionName[] = "general";
const char kHotKeySectionName[] = "general/hotkey";
@@ -53,12 +60,7 @@ const char kChewingSectionName[] = "engine/Chewing";
// We have to sync the |ibus_config_name|s with those in
// ibus-chewing/files/src/Config.cc.
-const struct {
- const wchar_t* pref_name; // Chrome preference name.
- bool default_pref_value;
- const char* ibus_config_name;
- int message_id;
-} kChewingBooleanPrefs[] = {
+const LanguageBooleanPrefs kChewingBooleanPrefs[] = {
{ prefs::kLanguageChewingAutoShiftCur, false, "autoShiftCur",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_AUTO_SHIFT_CUR},
{ prefs::kLanguageChewingAddPhraseDirection, false, "addPhraseDirection",
@@ -173,12 +175,7 @@ const char kPinyinSectionName[] = "engine/Pinyin";
// We have to sync the |ibus_config_name|s with those in
// ibus-pinyin/files/src/Config.cc.
-const struct {
- const wchar_t* pref_name; // Chrome preference name.
- bool default_pref_value;
- const char* ibus_config_name;
- int message_id;
-} kPinyinBooleanPrefs[] = {
+const LanguageBooleanPrefs kPinyinBooleanPrefs[] = {
{ prefs::kLanguagePinyinCorrectPinyin, true, "CorrectPinyin",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_CORRECT_PINYIN },
{ prefs::kLanguagePinyinFuzzyPinyin, false, "FuzzyPinyin",
@@ -238,6 +235,50 @@ 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)
+ },
+};
+const size_t kNumMozcBooleanPrefs = ARRAYSIZE_UNSAFE(kMozcBooleanPrefs);
+
const LanguageMultipleChoicePreference<const char*>
kMozcMultipleChoicePrefs[] = {
{ prefs::kLanguageMozcPreeditMethod,
diff --git a/chrome/browser/chromeos/options/language_config_view.cc b/chrome/browser/chromeos/options/language_config_view.cc
index 271792b..c6a22a9 100644
--- a/chrome/browser/chromeos/options/language_config_view.cc
+++ b/chrome/browser/chromeos/options/language_config_view.cc
@@ -384,7 +384,7 @@ void LanguageConfigView::AddInputMethodSection(
input_method_id);
layout->StartRow(0, kPerLanguageDoubleColumnSetId);
InputMethodCheckbox* checkbox
- = new InputMethodCheckbox(UTF8ToWide(display_name),
+ = new InputMethodCheckbox(UTF8ToWide(display_name).substr(0, 4),
input_method_id);
checkbox->set_listener(this);
checkbox->set_tag(kSelectInputMethodButton);
@@ -545,8 +545,8 @@ void LanguageConfigView::InitInputMethodConfigViewMap() {
// TODO(yusukes): Enable the following two mappings when ibus-mozc starts
// supporting IBus style configs.
- // input_method_config_view_map_["mozc"] = CreateLanguageMozcConfigView;
- // input_method_config_view_map_["mozc-jp"] = CreateLanguageMozcConfigView;
+ input_method_config_view_map_["mozc"] = CreateLanguageMozcConfigView;
+ input_method_config_view_map_["mozc-jp"] = CreateLanguageMozcConfigView;
}
void LanguageConfigView::InitInputMethodIdMapsAndVectors() {
diff --git a/chrome/browser/chromeos/options/language_mozc_config_view.cc b/chrome/browser/chromeos/options/language_mozc_config_view.cc
index ac9b4d4..8b27ea0 100644
--- a/chrome/browser/chromeos/options/language_mozc_config_view.cc
+++ b/chrome/browser/chromeos/options/language_mozc_config_view.cc
@@ -15,6 +15,7 @@
#include "chrome/common/pref_names.h"
#include "grit/generated_resources.h"
#include "grit/locale_settings.h"
+#include "views/controls/button/checkbox.h"
#include "views/grid_layout.h"
#include "views/standard_layout.h"
#include "views/window/window.h"
@@ -23,6 +24,12 @@ namespace chromeos {
LanguageMozcConfigView::LanguageMozcConfigView(Profile* profile)
: OptionsPageView(profile), contents_(NULL) {
+ for (size_t i = 0; i < kNumMozcBooleanPrefs; ++i) {
+ MozcPrefAndAssociatedCheckbox& current = prefs_and_checkboxes_[i];
+ current.boolean_pref.Init(
+ kMozcBooleanPrefs[i].pref_name, profile->GetPrefs(), this);
+ current.checkbox = NULL;
+ }
for (size_t i = 0; i < kNumMozcMultipleChoicePrefs; ++i) {
MozcPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i];
current.multiple_choice_pref.Init(
@@ -39,6 +46,14 @@ LanguageMozcConfigView::~LanguageMozcConfigView() {
}
}
+void LanguageMozcConfigView::ButtonPressed(
+ views::Button* sender, const views::Event& event) {
+ views::Checkbox* checkbox = static_cast<views::Checkbox*>(sender);
+ const int pref_id = checkbox->tag();
+ DCHECK(pref_id >= 0 && pref_id < static_cast<int>(kNumMozcBooleanPrefs));
+ prefs_and_checkboxes_[pref_id].boolean_pref.SetValue(checkbox->checked());
+}
+
void LanguageMozcConfigView::ItemChanged(
views::Combobox* sender, int prev_index, int new_index) {
for (size_t i = 0; i < kNumMozcMultipleChoicePrefs; ++i) {
@@ -66,9 +81,14 @@ std::wstring LanguageMozcConfigView::GetWindowTitle() const {
gfx::Size LanguageMozcConfigView::GetPreferredSize() {
// TODO(satorux): Create our own localized content size once the UI is done.
- return gfx::Size(views::Window::GetLocalizedContentsSize(
+ gfx::Size preferred_size = views::Window::GetLocalizedContentsSize(
IDS_LANGUAGES_INPUT_DIALOG_WIDTH_CHARS,
- IDS_LANGUAGES_INPUT_DIALOG_HEIGHT_LINES));
+ IDS_LANGUAGES_INPUT_DIALOG_HEIGHT_LINES);
+ // TODO(mazda): Remove the manual adjustment.
+ // The padding is needed for accommodating all the controls in the dialog.
+ const int kHeightPadding = 20;
+ preferred_size.Enlarge(0, kHeightPadding);
+ return preferred_size;
}
void LanguageMozcConfigView::InitControlLayout() {
@@ -91,6 +111,13 @@ void LanguageMozcConfigView::InitControlLayout() {
column_set->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 0,
GridLayout::USE_PREF, 0, 0);
+ for (size_t i = 0; i < kNumMozcBooleanPrefs; ++i) {
+ MozcPrefAndAssociatedCheckbox& current = prefs_and_checkboxes_[i];
+ current.checkbox = new views::Checkbox(
+ l10n_util::GetString(kMozcBooleanPrefs[i].message_id));
+ current.checkbox->set_listener(this);
+ current.checkbox->set_tag(i);
+ }
for (size_t i = 0; i < kNumMozcMultipleChoicePrefs; ++i) {
MozcPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i];
current.combobox = new LanguageCombobox(current.combobox_model);
@@ -98,6 +125,12 @@ void LanguageMozcConfigView::InitControlLayout() {
}
NotifyPrefChanged(); // Sync the comboboxes with current Chrome prefs.
+ // Show the checkboxes.
+ for (size_t i = 0; i < kNumMozcBooleanPrefs; ++i) {
+ const MozcPrefAndAssociatedCheckbox& current = prefs_and_checkboxes_[i];
+ layout->StartRow(0, kColumnSetId);
+ layout->AddView(current.checkbox, 3, 1);
+ }
// Show the comboboxes.
for (size_t i = 0; i < kNumMozcMultipleChoicePrefs; ++i) {
const MozcPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i];
@@ -118,6 +151,11 @@ void LanguageMozcConfigView::Observe(NotificationType type,
void LanguageMozcConfigView::NotifyPrefChanged() {
// Update comboboxes.
// TODO(yusukes): We don't have to update all UI controls.
+ for (size_t i = 0; i < kNumMozcBooleanPrefs; ++i) {
+ MozcPrefAndAssociatedCheckbox& current = prefs_and_checkboxes_[i];
+ const bool checked = current.boolean_pref.GetValue();
+ current.checkbox->SetChecked(checked);
+ }
for (size_t i = 0; i < kNumMozcMultipleChoicePrefs; ++i) {
MozcPrefAndAssociatedCombobox& current = prefs_and_comboboxes_[i];
const std::wstring value = current.multiple_choice_pref.GetValue();
diff --git a/chrome/browser/chromeos/options/language_mozc_config_view.h b/chrome/browser/chromeos/options/language_mozc_config_view.h
index 94df39c..173d028 100644
--- a/chrome/browser/chromeos/options/language_mozc_config_view.h
+++ b/chrome/browser/chromeos/options/language_mozc_config_view.h
@@ -16,6 +16,10 @@
#include "views/controls/label.h"
#include "views/window/dialog_delegate.h"
+namespace views {
+class Checkbox;
+}
+
namespace chromeos {
class LanguageCombobox;
@@ -23,13 +27,17 @@ template <typename DataType>
class LanguageComboboxModel;
// A dialog box for showing Mozc (Japanese input method) preferences.
-class LanguageMozcConfigView : public views::Combobox::Listener,
+class LanguageMozcConfigView : public views::ButtonListener,
+ public views::Combobox::Listener,
public views::DialogDelegate,
public OptionsPageView {
public:
explicit LanguageMozcConfigView(Profile* profile);
virtual ~LanguageMozcConfigView();
+ // views::ButtonListener overrides.
+ virtual void ButtonPressed(views::Button* sender, const views::Event& event);
+
// views::Combobox::Listener overrides.
virtual void ItemChanged(views::Combobox* sender,
int prev_index,
@@ -58,6 +66,11 @@ class LanguageMozcConfigView : public views::Combobox::Listener,
views::View* contents_;
+ struct MozcPrefAndAssociatedCheckbox {
+ BooleanPrefMember boolean_pref;
+ views::Checkbox* checkbox;
+ } prefs_and_checkboxes_[kNumMozcBooleanPrefs];
+
struct MozcPrefAndAssociatedCombobox {
StringPrefMember multiple_choice_pref;
LanguageComboboxModel<const char*>* combobox_model;
diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc
index 0cee1dce..c5ef05f 100644
--- a/chrome/browser/chromeos/preferences.cc
+++ b/chrome/browser/chromeos/preferences.cc
@@ -62,6 +62,10 @@ void Preferences::RegisterUserPrefs(PrefService* prefs) {
prefs->RegisterIntegerPref(kPinyinDoublePinyinSchema.pref_name,
kPinyinDoublePinyinSchema.default_pref_value);
+ for (size_t i = 0; i < kNumMozcBooleanPrefs; ++i) {
+ prefs->RegisterBooleanPref(kMozcBooleanPrefs[i].pref_name,
+ kMozcBooleanPrefs[i].default_pref_value);
+ }
for (size_t i = 0; i < kNumMozcMultipleChoicePrefs; ++i) {
prefs->RegisterStringPref(
kMozcMultipleChoicePrefs[i].pref_name,
@@ -106,6 +110,10 @@ void Preferences::Init(PrefService* prefs) {
}
language_pinyin_double_pinyin_schema_.Init(
kPinyinDoublePinyinSchema.pref_name, prefs, this);
+ for (size_t i = 0; i < kNumMozcBooleanPrefs; ++i) {
+ language_mozc_boolean_prefs_[i].Init(
+ kMozcBooleanPrefs[i].pref_name, prefs, this);
+ }
for (size_t i = 0; i < kNumMozcMultipleChoicePrefs; ++i) {
language_mozc_multiple_choice_prefs_[i].Init(
kMozcMultipleChoicePrefs[i].pref_name, prefs, this);
@@ -216,6 +224,13 @@ void Preferences::NotifyPrefChanged(const std::wstring* pref_name) {
kPinyinDoublePinyinSchema.ibus_config_name,
language_pinyin_double_pinyin_schema_.GetValue());
}
+ for (size_t i = 0; i < kNumMozcBooleanPrefs; ++i) {
+ if (!pref_name || *pref_name == kMozcBooleanPrefs[i].pref_name) {
+ SetLanguageConfigBoolean(kMozcSectionName,
+ kMozcBooleanPrefs[i].ibus_config_name,
+ language_mozc_boolean_prefs_[i].GetValue());
+ }
+ }
for (size_t i = 0; i < kNumMozcMultipleChoicePrefs; ++i) {
if (!pref_name || *pref_name == kMozcMultipleChoicePrefs[i].pref_name) {
SetLanguageConfigString(
diff --git a/chrome/browser/chromeos/preferences.h b/chrome/browser/chromeos/preferences.h
index 90ade43..ed5e7f6 100644
--- a/chrome/browser/chromeos/preferences.h
+++ b/chrome/browser/chromeos/preferences.h
@@ -96,6 +96,7 @@ class Preferences : public NotificationObserver {
BooleanPrefMember language_pinyin_boolean_prefs_[kNumPinyinBooleanPrefs];
IntegerPrefMember language_pinyin_int_prefs_[kNumPinyinIntegerPrefs];
IntegerPrefMember language_pinyin_double_pinyin_schema_;
+ BooleanPrefMember language_mozc_boolean_prefs_[kNumMozcBooleanPrefs];
StringPrefMember language_mozc_multiple_choice_prefs_[
kNumMozcMultipleChoicePrefs];
diff --git a/chrome/browser/sync/glue/synchronized_preferences.h b/chrome/browser/sync/glue/synchronized_preferences.h
index 3ec3946..f252764 100644
--- a/chrome/browser/sync/glue/synchronized_preferences.h
+++ b/chrome/browser/sync/glue/synchronized_preferences.h
@@ -125,6 +125,14 @@ static const wchar_t* kSynchronizedPreferences[] = {
// prefs::kLanguageMozcSelectionShortcut;
// prefs::kLanguageMozcShiftKeyModeSwitch;
// prefs::kLanguageMozcNumpadCharacterForm;
+ // prefs::kLanguageMozcIncognitoMode,
+ // prefs::kLanguageMozcUseAutoImeTurnOff,
+ // prefs::kLanguageMozcUseDateConversion,
+ // prefs::kLanguageMozcUseSingleKanjiConversion,
+ // prefs::kLanguageMozcUseSymbolConversion,
+ // prefs::kLanguageMozcUseNumberConversion,
+ // prefs::kLanguageMozcUseHistorySuggest,
+ // prefs::kLanguageMozcUseDictionarySuggest,
//
// We don't sync the following IME prefs since they are not user-configurable
// (yet):
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index d0b351b..e63ee6b 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -305,6 +305,22 @@ const wchar_t kLanguageMozcShiftKeyModeSwitch[] =
L"settings.language.mozc_shift_key_mode_switch";
const wchar_t kLanguageMozcNumpadCharacterForm[] =
L"settings.language.mozc_numpad_character_form";
+const wchar_t kLanguageMozcIncognitoMode[] =
+ L"settings.language.mozc_incognito_mode";
+const wchar_t kLanguageMozcUseAutoImeTurnOff[] =
+ L"settings.language.mozc_use_auto_ime_turn_off";
+const wchar_t kLanguageMozcUseDateConversion[] =
+ L"settings.language.mozc_use_date_conversion";
+const wchar_t kLanguageMozcUseSingleKanjiConversion[] =
+ L"settings.language.mozc_use_single_kanji_conversion";
+const wchar_t kLanguageMozcUseSymbolConversion[] =
+ L"settings.language.mozc_use_symbol_conversion";
+const wchar_t kLanguageMozcUseNumberConversion[] =
+ L"settings.language.mozc_use_number_conversion";
+const wchar_t kLanguageMozcUseHistorySuggest[] =
+ L"settings.language.mozc_use_history_suggest";
+const wchar_t kLanguageMozcUseDictionarySuggest[] =
+ L"settings.language.mozc_use_dictionary_suggest";
// A boolean pref which determines whether accessibility is enabled.
const wchar_t kAccessibilityEnabled[] = L"settings.accessibility";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 18ae835..f1cb15b 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -115,6 +115,14 @@ extern const wchar_t kLanguageMozcHistoryLearningLevel[];
extern const wchar_t kLanguageMozcSelectionShortcut[];
extern const wchar_t kLanguageMozcShiftKeyModeSwitch[];
extern const wchar_t kLanguageMozcNumpadCharacterForm[];
+extern const wchar_t kLanguageMozcIncognitoMode[];
+extern const wchar_t kLanguageMozcUseAutoImeTurnOff[];
+extern const wchar_t kLanguageMozcUseDateConversion[];
+extern const wchar_t kLanguageMozcUseSingleKanjiConversion[];
+extern const wchar_t kLanguageMozcUseSymbolConversion[];
+extern const wchar_t kLanguageMozcUseNumberConversion[];
+extern const wchar_t kLanguageMozcUseHistorySuggest[];
+extern const wchar_t kLanguageMozcUseDictionarySuggest[];
extern const wchar_t kAccessibilityEnabled[];
#endif
extern const wchar_t kIpcDisabledMessages[];