| 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 47d6e35d35304c6cadfd6faad6d943849fb7659e..8cb274adbbad93f30d72e5f9885dd1f003a7ce40 100644
|
| --- a/chrome/browser/ui/webui/options/browser_options_handler.cc
|
| +++ b/chrome/browser/ui/webui/options/browser_options_handler.cc
|
| @@ -114,6 +114,12 @@ using content::UserMetricsAction;
|
|
|
| namespace options {
|
|
|
| +namespace {
|
| +const char kScreenMagnifierOff[] = "off";
|
| +const char kScreenMagnifierFull[] = "full";
|
| +const char kScreenMagnifierPartial[] = "partial";
|
| +}
|
| +
|
| BrowserOptionsHandler::BrowserOptionsHandler()
|
| : page_initialized_(false),
|
| template_url_service_(NULL),
|
| @@ -287,6 +293,12 @@ void BrowserOptionsHandler::GetLocalizedValues(DictionaryValue* values) {
|
| IDS_OPTIONS_SETTINGS_ACCESSIBILITY_SCREEN_MAGNIFIER_DESCRIPTION },
|
| { "accessibilityTapDragging",
|
| IDS_OPTIONS_SETTINGS_ACCESSIBILITY_TOUCHPAD_TAP_DRAGGING_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",
|
| @@ -1269,10 +1281,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(
|
| @@ -1312,11 +1332,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(
|
|
|