Chromium Code Reviews| Index: chrome/browser/chromeos/login/wizard_accessibility_helper.cc |
| =================================================================== |
| --- chrome/browser/chromeos/login/wizard_accessibility_helper.cc (revision 69334) |
| +++ chrome/browser/chromeos/login/wizard_accessibility_helper.cc (working copy) |
| @@ -29,7 +29,7 @@ |
| // new views::Accelerator(app::VKEY_Z, false, true, true) |
|
xiyuan
2010/12/15 22:44:52
please remove the TODO since you re-enabled the ho
|
| if (!WizardAccessibilityHelper::accelerator_.get()) |
| WizardAccessibilityHelper::accelerator_.reset( |
| - new views::Accelerator(app::VKEY_UNKNOWN, 0xdeadbeef)); |
| + new views::Accelerator(app::VKEY_Z, false, true, true)); |
| return *(WizardAccessibilityHelper::accelerator_.get()); |
| } |
| @@ -70,12 +70,16 @@ |
| registered_notifications_ = false; |
| } |
| +bool WizardAccessibilityHelper::IsAccessibilityEnabled() { |
| + return g_browser_process && |
| + g_browser_process->local_state()->GetBoolean( |
| + prefs::kAccessibilityEnabled); |
| +} |
| + |
| void WizardAccessibilityHelper::MaybeEnableAccessibility( |
| views::View* view_tree) { |
| - if (g_browser_process && |
| - g_browser_process->local_state()->GetBoolean( |
| - prefs::kAccessibilityEnabled)) { |
| - EnableAccessibility(view_tree); |
| + if (IsAccessibilityEnabled()) { |
| + EnableAccessibilityForView(view_tree); |
| } else { |
| AddViewToBuffer(view_tree); |
| } |
| @@ -83,39 +87,53 @@ |
| void WizardAccessibilityHelper::MaybeSpeak(const char* str, bool queue, |
| bool interruptible) { |
| - if (g_browser_process && |
| - g_browser_process->local_state()->GetBoolean( |
| - prefs::kAccessibilityEnabled)) { |
| + if (IsAccessibilityEnabled()) { |
| accessibility_handler_->Speak(str, queue, interruptible); |
| } |
| } |
| -void WizardAccessibilityHelper::EnableAccessibility(views::View* view_tree) { |
| +void WizardAccessibilityHelper::EnableAccessibilityForView( |
| + views::View* view_tree) { |
| VLOG(1) << "Enabling accessibility."; |
| if (!registered_notifications_) |
| RegisterNotifications(); |
| + SetAccessibilityEnabled(true); |
| + if (view_tree) { |
| + AddViewToBuffer(view_tree); |
| + // If accessibility pref is set, enable accessibility for all views in |
| + // the buffer for which access is not yet enabled. |
| + for (std::map<views::View*, bool>::iterator iter = |
| + views_buffer_.begin(); |
| + iter != views_buffer_.end(); ++iter) { |
| + if (!(*iter).second) { |
| + AccessibleViewHelper *helper = new AccessibleViewHelper((*iter).first, |
| + profile_); |
| + accessible_view_helpers_.push_back(helper); |
| + (*iter).second = true; |
| + } |
| + } |
| + } |
| +} |
| + |
| +void WizardAccessibilityHelper::ToggleAccessibility(views::View* view_tree) { |
| + if (!IsAccessibilityEnabled()) { |
| + EnableAccessibilityForView(view_tree); |
| + } else { |
| + SetAccessibilityEnabled(false); |
| + } |
| +} |
| + |
| +void WizardAccessibilityHelper::SetAccessibilityEnabled(bool enabled) { |
| if (g_browser_process) { |
| PrefService* prefService = g_browser_process->local_state(); |
| - if (!prefService->GetBoolean(prefs::kAccessibilityEnabled)) { |
| - prefService->SetBoolean(prefs::kAccessibilityEnabled, true); |
| - prefService->ScheduleSavePersistentPrefs(); |
| - } |
| + prefService->SetBoolean(prefs::kAccessibilityEnabled, enabled); |
| + prefService->ScheduleSavePersistentPrefs(); |
| } |
| ExtensionAccessibilityEventRouter::GetInstance()-> |
| - SetAccessibilityEnabled(true); |
| - AddViewToBuffer(view_tree); |
| - // If accessibility pref is set, enable accessibility for all views in |
| - // the buffer for which access is not yet enabled. |
| - for (std::map<views::View*, bool>::iterator iter = |
| - views_buffer_.begin(); |
| - iter != views_buffer_.end(); ++iter) { |
| - if (!(*iter).second) { |
| - AccessibleViewHelper *helper = new AccessibleViewHelper((*iter).first, |
| - profile_); |
| - accessible_view_helpers_.push_back(helper); |
| - (*iter).second = true; |
| - } |
| - } |
| + SetAccessibilityEnabled(enabled); |
| + accessibility_handler_->Speak(enabled ? "Accessibility turned on." : |
| + "Accessibility turned off", |
|
xiyuan
2010/12/15 22:44:52
Do we need to move the string literals into resour
|
| + false, true); |
| } |
| void WizardAccessibilityHelper::AddViewToBuffer(views::View* view_tree) { |