Index: chrome/browser/ui/webui/options/browser_options_handler.cc |
diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc |
index 3285d5cc1e659502c4d77d07486e380384010347..f7ebdbba861e0a4e56651360e3f30c6ae4492bb0 100644 |
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc |
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc |
@@ -108,6 +108,12 @@ using content::UserMetricsAction; |
namespace options { |
+namespace { |
+const char kScreenMagnifierOff[] = "off"; |
+const char kScreenMagnifierFull[] = "full"; |
+const char kScreenMagnifierPartial[] = "partial"; |
+} |
+ |
BrowserOptionsHandler::BrowserOptionsHandler() |
: template_url_service_(NULL), |
ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_for_file_(this)), |
@@ -277,6 +283,12 @@ void BrowserOptionsHandler::GetLocalizedValues(DictionaryValue* values) { |
IDS_OPTIONS_SETTINGS_ACCESSIBILITY_HIGH_CONTRAST_DESCRIPTION }, |
{ "accessibilityScreenMagnifier", |
IDS_OPTIONS_SETTINGS_ACCESSIBILITY_SCREEN_MAGNIFIER_DESCRIPTION }, |
+ { "accessibilityScreenMagnifierOff", |
+ IDS_OPTIONS_SETTINGS_ACCESSIBILITY_SCREEN_MAGNIFIER_OFF }, |
+ { "accessibilityScreenMagnifierFull", |
+ IDS_OPTIONS_SETTINGS_ACCESSIBILITY_SCREEN_MAGNIFIER_FULL }, |
+ { "accessibilityScreenMagnifierPartial", |
+ IDS_OPTIONS_SETTINGS_ACCESSIBILITY_SCREEN_MAGNIFIER_PARTIAL }, |
{ "accessibilitySpokenFeedback", |
IDS_OPTIONS_SETTINGS_ACCESSIBILITY_DESCRIPTION }, |
{ "accessibilityTitle", |
@@ -1309,10 +1321,18 @@ void BrowserOptionsHandler::HighContrastChangeCallback(const ListValue* args) { |
void BrowserOptionsHandler::ScreenMagnifierChangeCallback( |
const ListValue* args) { |
- bool enabled = false; |
- args->GetBoolean(0, &enabled); |
+ std::string type_name; |
+ args->GetString(0, &type_name); |
+ |
+ chromeos::accessibility::ScreenMagnifierType type = |
+ chromeos::accessibility::MagnifierNone; |
- chromeos::accessibility::EnableScreenMagnifier(enabled); |
+ if (type_name == kScreenMagnifierFull) |
+ type = chromeos::accessibility::MagnifierFull; |
+ else if (type_name == kScreenMagnifierPartial) |
+ type = chromeos::accessibility::MagnifierPartial; |
+ |
+ chromeos::accessibility::SetScreenMagnifier(type); |
} |
void BrowserOptionsHandler::VirtualKeyboardChangeCallback( |
@@ -1335,11 +1355,17 @@ void BrowserOptionsHandler::SetupAccessibilityFeatures() { |
web_ui()->CallJavascriptFunction( |
"BrowserOptions.setHighContrastCheckboxState", |
high_contrast_enabled); |
- base::FundamentalValue screen_magnifier_enabled( |
- pref_service->GetBoolean(prefs::kScreenMagnifierEnabled)); |
+ |
+ std::string type(kScreenMagnifierOff); |
+ if (pref_service->GetBoolean(prefs::kScreenMagnifierEnabled)) |
+ type = kScreenMagnifierFull; |
+ else if (pref_service->GetBoolean(prefs::kPartialScreenMagnifierEnabled)) |
+ type = kScreenMagnifierPartial; |
+ |
web_ui()->CallJavascriptFunction( |
- "BrowserOptions.setScreenMagnifierCheckboxState", |
- screen_magnifier_enabled); |
+ "BrowserOptions.setScreenMagnifierTypeState", |
+ base::StringValue(type)); |
+ |
base::FundamentalValue virtual_keyboard_enabled( |
pref_service->GetBoolean(prefs::kVirtualKeyboardEnabled)); |
web_ui()->CallJavascriptFunction( |