| 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(
|
|
|