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 67e5116e5cfb18f98c713724c05984f29b331b8f..b889763c1b54afbe6177cfe0f80ec9d1ba9ad740 100644 |
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc |
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc |
@@ -113,6 +113,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)), |
@@ -283,6 +289,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", |
@@ -1253,10 +1265,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( |
@@ -1296,11 +1316,18 @@ 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; |
+ |
+ base::StringValue magnifier_type(type); |
web_ui()->CallJavascriptFunction( |
- "BrowserOptions.setScreenMagnifierCheckboxState", |
- screen_magnifier_enabled); |
+ "BrowserOptions.setScreenMagnifierTypeState", |
+ magnifier_type); |
+ |
base::FundamentalValue virtual_keyboard_enabled( |
pref_service->GetBoolean(prefs::kVirtualKeyboardEnabled)); |
web_ui()->CallJavascriptFunction( |