diff options
author | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-28 06:47:55 +0000 |
---|---|---|
committer | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-28 06:47:55 +0000 |
commit | 234676bc5e2fc64b034dc387e3ef7f9718b32409 (patch) | |
tree | 37a9cd99eadff33db87792b21a51267e163e9261 /chrome/browser | |
parent | 7aeaaa70c692d71b5dbcf9d25b64f09ace95fb98 (diff) | |
download | chromium_src-234676bc5e2fc64b034dc387e3ef7f9718b32409.zip chromium_src-234676bc5e2fc64b034dc387e3ef7f9718b32409.tar.gz chromium_src-234676bc5e2fc64b034dc387e3ef7f9718b32409.tar.bz2 |
Speak a message when accessibility is on and the network state changes
R=dmazzoni@chromium.org
BUG=chromium-os:21760
TEST=Change the network state with a11y turned on
Review URL: http://codereview.chromium.org/8402023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107689 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/chromeos/accessibility_util.cc | 8 | ||||
-rw-r--r-- | chrome/browser/chromeos/accessibility_util.h | 3 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/network_menu_icon.cc | 38 |
3 files changed, 49 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/accessibility_util.cc b/chrome/browser/chromeos/accessibility_util.cc index dce20f9..a46327a 100644 --- a/chrome/browser/chromeos/accessibility_util.cc +++ b/chrome/browser/chromeos/accessibility_util.cc @@ -168,6 +168,14 @@ void Speak(const char* speak_str, bool queue, bool interruptible) { Speak(speak_str); } +void MaybeSpeak(const char* speak_str, bool queue, bool interruptible) { + bool accessibility_enabled = g_browser_process && + g_browser_process->local_state()->GetBoolean( + prefs::kAccessibilityEnabled); + if (accessibility_enabled) { + Speak(speak_str, queue, interruptible); + } +} } // namespace accessibility } // namespace chromeos diff --git a/chrome/browser/chromeos/accessibility_util.h b/chrome/browser/chromeos/accessibility_util.h index 7bfb5f4..5119290 100644 --- a/chrome/browser/chromeos/accessibility_util.h +++ b/chrome/browser/chromeos/accessibility_util.h @@ -24,6 +24,9 @@ void ToggleAccessibility(WebUI* login_web_ui); // Speaks the specified string. void Speak(const char* speak_str, bool queue, bool interruptible); +// Speaks the specified string if Accessibility is enabled. +void MaybeSpeak(const char* speak_str, bool queue, bool interruptible); + } // namespace accessibility } // namespace chromeos diff --git a/chrome/browser/chromeos/status/network_menu_icon.cc b/chrome/browser/chromeos/status/network_menu_icon.cc index d6f1da0..ebeca95 100644 --- a/chrome/browser/chromeos/status/network_menu_icon.cc +++ b/chrome/browser/chromeos/status/network_menu_icon.cc @@ -8,6 +8,7 @@ #include <cmath> #include "base/utf_string_conversions.h" +#include "chrome/browser/chromeos/accessibility_util.h" #include "chrome/browser/chromeos/cros/cros_library.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" @@ -207,6 +208,12 @@ class NetworkIcon { } } bool dirty = bitmap_.empty(); + bool speak = false; + if ((Network::IsConnectedState(state_) && !network->connected()) || + (Network::IsConnectingState(state_) && !network->connecting()) || + (Network::IsDisconnectedState(state_) && !network->disconnected())) { + speak = true; + } if (state_ != network->state()) { state_ = network->state(); dirty = true; @@ -247,6 +254,37 @@ class NetworkIcon { UpdateIcon(network); GenerateBitmap(); } + if (speak) { + std::string connection_string; + if (Network::IsConnectedState(state_)) { + switch (network->type()) { + case TYPE_ETHERNET: + connection_string = l10n_util::GetStringFUTF8( + IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, + l10n_util::GetStringUTF16( + IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)); + break; + default: + connection_string = l10n_util::GetStringFUTF8( + IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, + UTF8ToUTF16(network->name())); + break; + } + } else if (Network::IsConnectingState(state_)) { + const Network* connecting_network = cros->connecting_network(); + if (connecting_network && connecting_network->type() != TYPE_ETHERNET) { + connection_string = l10n_util::GetStringFUTF8( + IDS_STATUSBAR_NETWORK_CONNECTING_TOOLTIP, + UTF8ToUTF16(connecting_network->name())); + } + } else if (Network::IsDisconnectedState(state_)) { + connection_string = l10n_util::GetStringUTF8( + IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP); + } + if (!connection_string.empty()) { + accessibility::MaybeSpeak(connection_string.c_str(), true, false); + } + } } // Sets up the base icon image. |