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

Side by Side Diff: chrome/browser/ui/webui/options/font_settings_handler.cc

Issue 6672063: web-ui settings: Font setting fixes and improvements.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: code review fix Created 9 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/webui/options/font_settings_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/ui/webui/options/font_settings_handler.h" 5 #include "chrome/browser/ui/webui/options/font_settings_handler.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
(...skipping 21 matching lines...) Expand all
32 fonts_list_loader_->SetObserver(NULL); 32 fonts_list_loader_->SetObserver(NULL);
33 } 33 }
34 34
35 void FontSettingsHandler::GetLocalizedValues( 35 void FontSettingsHandler::GetLocalizedValues(
36 DictionaryValue* localized_strings) { 36 DictionaryValue* localized_strings) {
37 DCHECK(localized_strings); 37 DCHECK(localized_strings);
38 38
39 static OptionsStringResource resources[] = { 39 static OptionsStringResource resources[] = {
40 { "fontSettingsStandard", 40 { "fontSettingsStandard",
41 IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_STANDARD_LABEL }, 41 IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_STANDARD_LABEL },
42 { "fontSettingsSerif",
43 IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_SERIF_LABEL },
44 { "fontSettingsSansSerif",
45 IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_SANS_SERIF_LABEL },
42 { "fontSettingsFixedWidth", 46 { "fontSettingsFixedWidth",
43 IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_FIXED_WIDTH_LABEL }, 47 IDS_FONT_LANGUAGE_SETTING_FONT_SELECTOR_FIXED_WIDTH_LABEL },
44 { "fontSettingsMinimumSize", 48 { "fontSettingsMinimumSize",
45 IDS_FONT_LANGUAGE_SETTING_MINIMUM_FONT_SIZE_TITLE }, 49 IDS_FONT_LANGUAGE_SETTING_MINIMUM_FONT_SIZE_TITLE },
46 { "fontSettingsEncoding", 50 { "fontSettingsEncoding",
47 IDS_FONT_LANGUAGE_SETTING_FONT_SUB_DIALOG_ENCODING_TITLE }, 51 IDS_FONT_LANGUAGE_SETTING_FONT_SUB_DIALOG_ENCODING_TITLE },
48 { "fontSettingsSizeLabel", 52 { "fontSettingsSizeLabel",
49 IDS_FONT_LANGUAGE_SETTING_FONT_SIZE_SELECTOR_LABEL }, 53 IDS_FONT_LANGUAGE_SETTING_FONT_SIZE_SELECTOR_LABEL },
50 { "fontSettingsSizeTiny", 54 { "fontSettingsSizeTiny",
51 IDS_FONT_LANGUAGE_SETTING_FONT_SIZE_TINY }, 55 IDS_FONT_LANGUAGE_SETTING_FONT_SIZE_TINY },
52 { "fontSettingsSizeHuge", 56 { "fontSettingsSizeHuge",
53 IDS_FONT_LANGUAGE_SETTING_FONT_SIZE_HUGE }, 57 IDS_FONT_LANGUAGE_SETTING_FONT_SIZE_HUGE },
54 { "fontSettingsEncodingLabel", 58 { "fontSettingsEncodingLabel",
55 IDS_FONT_LANGUAGE_SETTING_FONT_DEFAULT_ENCODING_SELECTOR_LABEL }, 59 IDS_FONT_LANGUAGE_SETTING_FONT_DEFAULT_ENCODING_SELECTOR_LABEL },
56 { "fontSettingsLoremIpsum", 60 { "fontSettingsLoremIpsum",
57 IDS_FONT_LANGUAGE_SETTING_LOREM_IPSUM }, 61 IDS_FONT_LANGUAGE_SETTING_LOREM_IPSUM },
58 }; 62 };
59 63
60 RegisterStrings(localized_strings, resources, arraysize(resources)); 64 RegisterStrings(localized_strings, resources, arraysize(resources));
61 RegisterTitle(localized_strings, "fontSettingsPage", 65 RegisterTitle(localized_strings, "fontSettingsPage",
62 IDS_FONT_LANGUAGE_SETTING_FONT_TAB_TITLE); 66 IDS_FONT_LANGUAGE_SETTING_FONT_TAB_TITLE);
63 localized_strings->SetString("fontSettingsPlaceholder", 67 localized_strings->SetString("fontSettingsPlaceholder",
64 l10n_util::GetStringUTF16( 68 l10n_util::GetStringUTF16(
65 IDS_FONT_LANGUAGE_SETTING_PLACEHOLDER)); 69 IDS_FONT_LANGUAGE_SETTING_PLACEHOLDER));
66 } 70 }
67 71
68 void FontSettingsHandler::Initialize() { 72 void FontSettingsHandler::Initialize() {
69 DCHECK(web_ui_); 73 DCHECK(web_ui_);
70 SetupStandardFontSample(); 74 SetupStandardFontSample();
75 SetupSerifFontSample();
76 SetupSansSerifFontSample();
77 SetupFixedFontSample();
71 SetupMinimumFontSample(); 78 SetupMinimumFontSample();
72 SetupFixedFontSample();
73 } 79 }
74 80
75 WebUIMessageHandler* FontSettingsHandler::Attach(WebUI* web_ui) { 81 WebUIMessageHandler* FontSettingsHandler::Attach(WebUI* web_ui) {
76 // Call through to superclass. 82 // Call through to superclass.
77 WebUIMessageHandler* handler = OptionsPageUIHandler::Attach(web_ui); 83 WebUIMessageHandler* handler = OptionsPageUIHandler::Attach(web_ui);
78 84
79 // Perform validation for saved fonts. 85 // Perform validation for saved fonts.
80 DCHECK(web_ui_); 86 DCHECK(web_ui_);
81 PrefService* pref_service = web_ui_->GetProfile()->GetPrefs(); 87 PrefService* pref_service = web_ui_->GetProfile()->GetPrefs();
82 FontSettingsUtilities::ValidateSavedFonts(pref_service); 88 FontSettingsUtilities::ValidateSavedFonts(pref_service);
83 89
84 // Register for preferences that we need to observe manually. 90 // Register for preferences that we need to observe manually.
85 standard_font_.Init(prefs::kWebKitStandardFontFamily, pref_service, this); 91 standard_font_.Init(prefs::kWebKitStandardFontFamily, pref_service, this);
92 serif_font_.Init(prefs::kWebKitSerifFontFamily, pref_service, this);
93 sans_serif_font_.Init(prefs::kWebKitSansSerifFontFamily, pref_service, this);
86 fixed_font_.Init(prefs::kWebKitFixedFontFamily, pref_service, this); 94 fixed_font_.Init(prefs::kWebKitFixedFontFamily, pref_service, this);
87 font_encoding_.Init(prefs::kDefaultCharset, pref_service, this); 95 font_encoding_.Init(prefs::kDefaultCharset, pref_service, this);
88 default_font_size_.Init(prefs::kWebKitDefaultFontSize, pref_service, this); 96 default_font_size_.Init(prefs::kWebKitDefaultFontSize, pref_service, this);
89 default_fixed_font_size_.Init(prefs::kWebKitDefaultFixedFontSize, 97 default_fixed_font_size_.Init(prefs::kWebKitDefaultFixedFontSize,
90 pref_service, this); 98 pref_service, this);
91 minimum_font_size_.Init(prefs::kWebKitMinimumFontSize, pref_service, this); 99 minimum_font_size_.Init(prefs::kWebKitMinimumFontSize, pref_service, this);
92 100
93 // Return result from the superclass. 101 // Return result from the superclass.
94 return handler; 102 return handler;
95 } 103 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 } else { 138 } else {
131 // Add empty name/value to indicate a separator item. 139 // Add empty name/value to indicate a separator item.
132 option->Append(Value::CreateStringValue("")); 140 option->Append(Value::CreateStringValue(""));
133 option->Append(Value::CreateStringValue("")); 141 option->Append(Value::CreateStringValue(""));
134 } 142 }
135 encoding_list.Append(option); 143 encoding_list.Append(option);
136 } 144 }
137 145
138 ListValue selected_values; 146 ListValue selected_values;
139 selected_values.Append(Value::CreateStringValue(standard_font_.GetValue())); 147 selected_values.Append(Value::CreateStringValue(standard_font_.GetValue()));
148 selected_values.Append(Value::CreateStringValue(serif_font_.GetValue()));
149 selected_values.Append(Value::CreateStringValue(sans_serif_font_.GetValue()));
140 selected_values.Append(Value::CreateStringValue(fixed_font_.GetValue())); 150 selected_values.Append(Value::CreateStringValue(fixed_font_.GetValue()));
141 selected_values.Append(Value::CreateStringValue(font_encoding_.GetValue())); 151 selected_values.Append(Value::CreateStringValue(font_encoding_.GetValue()));
142 152
143 web_ui_->CallJavascriptFunction("FontSettings.setFontsData", 153 web_ui_->CallJavascriptFunction("FontSettings.setFontsData",
144 *fonts_list, encoding_list, selected_values); 154 *fonts_list, encoding_list, selected_values);
145 } 155 }
146 156
147 void FontSettingsHandler::Observe(NotificationType type, 157 void FontSettingsHandler::Observe(NotificationType type,
148 const NotificationSource& source, 158 const NotificationSource& source,
149 const NotificationDetails& details) { 159 const NotificationDetails& details) {
150 if (type == NotificationType::PREF_CHANGED) { 160 if (type == NotificationType::PREF_CHANGED) {
151 std::string* pref_name = Details<std::string>(details).ptr(); 161 std::string* pref_name = Details<std::string>(details).ptr();
152 if (*pref_name == prefs::kWebKitStandardFontFamily || 162 if (*pref_name == prefs::kWebKitStandardFontFamily) {
153 *pref_name == prefs::kWebKitDefaultFontSize) {
154 SetupStandardFontSample(); 163 SetupStandardFontSample();
164 } else if (*pref_name == prefs::kWebKitSerifFontFamily) {
165 SetupSerifFontSample();
166 } else if (*pref_name == prefs::kWebKitSansSerifFontFamily) {
167 SetupSansSerifFontSample();
155 } else if (*pref_name == prefs::kWebKitFixedFontFamily || 168 } else if (*pref_name == prefs::kWebKitFixedFontFamily ||
156 *pref_name == prefs::kWebKitDefaultFixedFontSize) { 169 *pref_name == prefs::kWebKitDefaultFixedFontSize) {
157 SetupFixedFontSample(); 170 SetupFixedFontSample();
171 } else if (*pref_name == prefs::kWebKitDefaultFontSize) {
172 SetupStandardFontSample();
173 SetupSerifFontSample();
174 SetupSansSerifFontSample();
158 } else if (*pref_name == prefs::kWebKitMinimumFontSize) { 175 } else if (*pref_name == prefs::kWebKitMinimumFontSize) {
159 SetupMinimumFontSample(); 176 SetupMinimumFontSample();
160 } 177 }
161 } 178 }
162 } 179 }
163 180
164 void FontSettingsHandler::SetupStandardFontSample() { 181 void FontSettingsHandler::SetupStandardFontSample() {
165 StringValue font_value(standard_font_.GetValue()); 182 StringValue font_value(standard_font_.GetValue());
166 FundamentalValue size_value(default_font_size_.GetValue()); 183 FundamentalValue size_value(default_font_size_.GetValue());
167 web_ui_->CallJavascriptFunction( 184 web_ui_->CallJavascriptFunction(
168 "FontSettings.setupStandardFontSample", font_value, size_value); 185 "FontSettings.setupStandardFontSample", font_value, size_value);
169 } 186 }
170 187
188 void FontSettingsHandler::SetupSerifFontSample() {
189 StringValue font_value(serif_font_.GetValue());
190 FundamentalValue size_value(default_font_size_.GetValue());
191 web_ui_->CallJavascriptFunction(
192 "FontSettings.setupSerifFontSample", font_value, size_value);
193 }
194
195 void FontSettingsHandler::SetupSansSerifFontSample() {
196 StringValue font_value(sans_serif_font_.GetValue());
197 FundamentalValue size_value(default_font_size_.GetValue());
198 web_ui_->CallJavascriptFunction(
199 "FontSettings.setupSansSerifFontSample", font_value, size_value);
200 }
201
171 void FontSettingsHandler::SetupFixedFontSample() { 202 void FontSettingsHandler::SetupFixedFontSample() {
172 StringValue font_value(fixed_font_.GetValue()); 203 StringValue font_value(fixed_font_.GetValue());
173 FundamentalValue size_value(default_fixed_font_size_.GetValue()); 204 FundamentalValue size_value(default_fixed_font_size_.GetValue());
174 web_ui_->CallJavascriptFunction( 205 web_ui_->CallJavascriptFunction(
175 "FontSettings.setupFixedFontSample", font_value, size_value); 206 "FontSettings.setupFixedFontSample", font_value, size_value);
176 } 207 }
177 208
178 void FontSettingsHandler::SetupMinimumFontSample() { 209 void FontSettingsHandler::SetupMinimumFontSample() {
179 FundamentalValue size_value(minimum_font_size_.GetValue()); 210 FundamentalValue size_value(minimum_font_size_.GetValue());
180 web_ui_->CallJavascriptFunction("FontSettings.setupMinimumFontSample", 211 web_ui_->CallJavascriptFunction("FontSettings.setupMinimumFontSample",
181 size_value); 212 size_value);
182 } 213 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/font_settings_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698