Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(887)

Side by Side Diff: chrome/browser/chromeos/preferences.cc

Issue 1631030: Adding Chrome preferences for ibus-pinyin. (Closed)
Patch Set: sync prefs Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/preferences.h" 5 #include "chrome/browser/chromeos/preferences.h"
6 6
7 #include "base/string_util.h" 7 #include "base/string_util.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/chromeos/cros/cros_library.h" 9 #include "chrome/browser/chromeos/cros/cros_library.h"
10 #include "chrome/browser/chromeos/cros/language_library.h" 10 #include "chrome/browser/chromeos/cros/language_library.h"
11 #include "chrome/browser/chromeos/cros/synaptics_library.h" 11 #include "chrome/browser/chromeos/cros/synaptics_library.h"
12 #include "chrome/browser/chromeos/language_preferences.h"
13 #include "chrome/browser/pref_member.h" 12 #include "chrome/browser/pref_member.h"
14 #include "chrome/browser/pref_service.h" 13 #include "chrome/browser/pref_service.h"
15 #include "chrome/common/notification_service.h" 14 #include "chrome/common/notification_service.h"
16 #include "chrome/common/pref_names.h" 15 #include "chrome/common/pref_names.h"
17 #include "unicode/timezone.h" 16 #include "unicode/timezone.h"
18 17
19 namespace {
20
21 // Section and config names for the IBus configuration daemon.
22 const char kGeneralSectionName[] = "general";
23 const char kHotKeySectionName[] = "general/hotkey";
24 const char kHangulSectionName[] = "engine/Hangul";
25
26 const char kUseGlobalEngineConfigName[] = "use_global_engine";
27 const char kPreloadEnginesConfigName[] = "preload_engines";
28 const char kNextEngineConfigName[] = "next_engine";
29 const char kTriggerConfigName[] = "trigger";
30 const char kHangulKeyboardConfigName[] = "HangulKeyboard";
31
32 } // namespace
33
34 namespace chromeos { 18 namespace chromeos {
35 19
36 // static 20 // static
37 void Preferences::RegisterUserPrefs(PrefService* prefs) { 21 void Preferences::RegisterUserPrefs(PrefService* prefs) {
38 prefs->RegisterStringPref(prefs::kTimeZone, L"US/Pacific"); 22 prefs->RegisterStringPref(prefs::kTimeZone, L"US/Pacific");
39 prefs->RegisterBooleanPref(prefs::kTapToClickEnabled, false); 23 prefs->RegisterBooleanPref(prefs::kTapToClickEnabled, false);
40 prefs->RegisterBooleanPref(prefs::kVertEdgeScrollEnabled, false); 24 prefs->RegisterBooleanPref(prefs::kVertEdgeScrollEnabled, false);
41 prefs->RegisterIntegerPref(prefs::kTouchpadSpeedFactor, 5); 25 prefs->RegisterIntegerPref(prefs::kTouchpadSpeedFactor, 5);
42 prefs->RegisterIntegerPref(prefs::kTouchpadSensitivity, 5); 26 prefs->RegisterIntegerPref(prefs::kTouchpadSensitivity, 5);
43 prefs->RegisterBooleanPref(prefs::kLanguageUseGlobalEngine, true); 27 prefs->RegisterBooleanPref(prefs::kLanguageUseGlobalEngine, true);
44 prefs->RegisterStringPref(prefs::kLanguageHotkeyNextEngine, 28 prefs->RegisterStringPref(prefs::kLanguageHotkeyNextEngine,
45 kHotkeyNextEngine); 29 kHotkeyNextEngine);
46 prefs->RegisterStringPref(prefs::kLanguageHotkeyTrigger, kHotkeyTrigger); 30 prefs->RegisterStringPref(prefs::kLanguageHotkeyTrigger, kHotkeyTrigger);
47 prefs->RegisterStringPref(prefs::kLanguagePreloadEngines, 31 prefs->RegisterStringPref(prefs::kLanguagePreloadEngines,
48 UTF8ToWide(kFallbackInputMethodId)); // EN layout 32 UTF8ToWide(kFallbackInputMethodId)); // EN layout
49 prefs->RegisterStringPref(prefs::kLanguageHangulKeyboard, 33 prefs->RegisterStringPref(prefs::kLanguageHangulKeyboard,
50 kHangulKeyboardNameIDPairs[0].keyboard_id); 34 kHangulKeyboardNameIDPairs[0].keyboard_id);
35 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kPinyinBooleanPrefs); ++i) {
36 prefs->RegisterBooleanPref(kPinyinBooleanPrefs[i].pref_name,
37 kPinyinBooleanPrefs[i].default_value);
38 }
39 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kPinyinIntegerPrefs); ++i) {
40 prefs->RegisterIntegerPref(kPinyinIntegerPrefs[i].pref_name,
41 kPinyinIntegerPrefs[i].default_value);
42 }
51 } 43 }
52 44
53 void Preferences::Init(PrefService* prefs) { 45 void Preferences::Init(PrefService* prefs) {
54 timezone_.Init(prefs::kTimeZone, prefs, this); 46 timezone_.Init(prefs::kTimeZone, prefs, this);
55 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, this); 47 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, this);
56 vert_edge_scroll_enabled_.Init(prefs::kVertEdgeScrollEnabled, prefs, this); 48 vert_edge_scroll_enabled_.Init(prefs::kVertEdgeScrollEnabled, prefs, this);
57 speed_factor_.Init(prefs::kTouchpadSpeedFactor, prefs, this); 49 speed_factor_.Init(prefs::kTouchpadSpeedFactor, prefs, this);
58 sensitivity_.Init(prefs::kTouchpadSensitivity, prefs, this); 50 sensitivity_.Init(prefs::kTouchpadSensitivity, prefs, this);
59 language_use_global_engine_.Init( 51 language_use_global_engine_.Init(
60 prefs::kLanguageUseGlobalEngine, prefs, this); 52 prefs::kLanguageUseGlobalEngine, prefs, this);
61 language_hotkey_next_engine_.Init( 53 language_hotkey_next_engine_.Init(
62 prefs::kLanguageHotkeyNextEngine, prefs, this); 54 prefs::kLanguageHotkeyNextEngine, prefs, this);
63 language_hotkey_trigger_.Init(prefs::kLanguageHotkeyTrigger, prefs, this); 55 language_hotkey_trigger_.Init(prefs::kLanguageHotkeyTrigger, prefs, this);
64 language_preload_engines_.Init(prefs::kLanguagePreloadEngines, prefs, this); 56 language_preload_engines_.Init(prefs::kLanguagePreloadEngines, prefs, this);
65 language_hangul_keyboard_.Init(prefs::kLanguageHangulKeyboard, prefs, this); 57 language_hangul_keyboard_.Init(prefs::kLanguageHangulKeyboard, prefs, this);
58 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kPinyinBooleanPrefs); ++i) {
59 language_pinyin_boolean_prefs_[i].Init(
60 kPinyinBooleanPrefs[i].pref_name, prefs, this);
61 }
62 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kPinyinIntegerPrefs); ++i) {
63 language_pinyin_int_prefs_[i].Init(
64 kPinyinIntegerPrefs[i].pref_name, prefs, this);
65 }
66 66
67 // Initialize touchpad settings to what's saved in user preferences. 67 // Initialize touchpad settings to what's saved in user preferences.
68 NotifyPrefChanged(NULL); 68 NotifyPrefChanged(NULL);
69 } 69 }
70 70
71 void Preferences::Observe(NotificationType type, 71 void Preferences::Observe(NotificationType type,
72 const NotificationSource& source, 72 const NotificationSource& source,
73 const NotificationDetails& details) { 73 const NotificationDetails& details) {
74 if (type == NotificationType::PREF_CHANGED) 74 if (type == NotificationType::PREF_CHANGED)
75 NotifyPrefChanged(Details<std::wstring>(details).ptr()); 75 NotifyPrefChanged(Details<std::wstring>(details).ptr());
(...skipping 29 matching lines...) Expand all
105 SetLanguageConfigStringListAsCSV(kHotKeySectionName, 105 SetLanguageConfigStringListAsCSV(kHotKeySectionName,
106 kTriggerConfigName, 106 kTriggerConfigName,
107 language_hotkey_trigger_.GetValue()); 107 language_hotkey_trigger_.GetValue());
108 if (!pref_name || *pref_name == prefs::kLanguagePreloadEngines) 108 if (!pref_name || *pref_name == prefs::kLanguagePreloadEngines)
109 SetLanguageConfigStringListAsCSV(kGeneralSectionName, 109 SetLanguageConfigStringListAsCSV(kGeneralSectionName,
110 kPreloadEnginesConfigName, 110 kPreloadEnginesConfigName,
111 language_preload_engines_.GetValue()); 111 language_preload_engines_.GetValue());
112 if (!pref_name || *pref_name == prefs::kLanguageHangulKeyboard) 112 if (!pref_name || *pref_name == prefs::kLanguageHangulKeyboard)
113 SetLanguageConfigString(kHangulSectionName, kHangulKeyboardConfigName, 113 SetLanguageConfigString(kHangulSectionName, kHangulKeyboardConfigName,
114 language_hangul_keyboard_.GetValue()); 114 language_hangul_keyboard_.GetValue());
115 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kPinyinBooleanPrefs); ++i) {
116 if (!pref_name || *pref_name == kPinyinBooleanPrefs[i].pref_name) {
117 SetLanguageConfigBoolean(kPinyinSectionName,
118 kPinyinBooleanPrefs[i].ibus_config_name,
119 language_pinyin_boolean_prefs_[i].GetValue());
120 }
121 }
122 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kPinyinIntegerPrefs); ++i) {
123 if (!pref_name || *pref_name == kPinyinIntegerPrefs[i].pref_name) {
124 SetLanguageConfigInteger(kPinyinSectionName,
125 kPinyinIntegerPrefs[i].ibus_config_name,
126 language_pinyin_int_prefs_[i].GetValue());
127 }
128 }
115 } 129 }
116 130
117 void Preferences::SetTimeZone(const std::wstring& id) { 131 void Preferences::SetTimeZone(const std::wstring& id) {
118 icu::TimeZone* timezone = icu::TimeZone::createTimeZone( 132 icu::TimeZone* timezone = icu::TimeZone::createTimeZone(
119 icu::UnicodeString::fromUTF8(WideToASCII(id))); 133 icu::UnicodeString::fromUTF8(WideToASCII(id)));
120 icu::TimeZone::adoptDefault(timezone); 134 icu::TimeZone::adoptDefault(timezone);
121 } 135 }
122 136
123 void Preferences::SetLanguageConfigBoolean(const char* section, 137 void Preferences::SetLanguageConfigBoolean(const char* section,
124 const char* name, 138 const char* name,
125 bool value) { 139 bool value) {
126 ImeConfigValue config; 140 ImeConfigValue config;
127 config.type = ImeConfigValue::kValueTypeBool; 141 config.type = ImeConfigValue::kValueTypeBool;
128 config.bool_value = value; 142 config.bool_value = value;
129 CrosLibrary::Get()->GetLanguageLibrary()->SetImeConfig(section, name, config); 143 CrosLibrary::Get()->GetLanguageLibrary()->SetImeConfig(section, name, config);
130 } 144 }
131 145
146 void Preferences::SetLanguageConfigInteger(const char* section,
147 const char* name,
148 int value) {
149 ImeConfigValue config;
150 config.type = ImeConfigValue::kValueTypeInt;
151 config.int_value = value;
152 CrosLibrary::Get()->GetLanguageLibrary()->SetImeConfig(section, name, config);
153 }
154
132 void Preferences::SetLanguageConfigString(const char* section, 155 void Preferences::SetLanguageConfigString(const char* section,
133 const char* name, 156 const char* name,
134 const std::wstring& value) { 157 const std::wstring& value) {
135 ImeConfigValue config; 158 ImeConfigValue config;
136 config.type = ImeConfigValue::kValueTypeString; 159 config.type = ImeConfigValue::kValueTypeString;
137 config.string_value = WideToUTF8(value); 160 config.string_value = WideToUTF8(value);
138 CrosLibrary::Get()->GetLanguageLibrary()->SetImeConfig(section, name, config); 161 CrosLibrary::Get()->GetLanguageLibrary()->SetImeConfig(section, name, config);
139 } 162 }
140 163
141 void Preferences::SetLanguageConfigStringList( 164 void Preferences::SetLanguageConfigStringList(
(...skipping 16 matching lines...) Expand all
158 std::vector<std::wstring> split_values; 181 std::vector<std::wstring> split_values;
159 if (!value.empty()) { 182 if (!value.empty()) {
160 SplitString(value, L',', &split_values); 183 SplitString(value, L',', &split_values);
161 } 184 }
162 // We should call the cros API even when |value| is empty, to disable default 185 // We should call the cros API even when |value| is empty, to disable default
163 // config. 186 // config.
164 SetLanguageConfigStringList(section, name, split_values); 187 SetLanguageConfigStringList(section, name, split_values);
165 } 188 }
166 189
167 } // namespace chromeos 190 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/preferences.h ('k') | chrome/browser/sync/glue/synchronized_preferences.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698