diff options
author | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-15 11:08:46 +0000 |
---|---|---|
committer | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-15 11:08:46 +0000 |
commit | 66501afa72934631a32cd0cdd0a5ab5bb43b4d7a (patch) | |
tree | cb3a4408be616e3cfccebdabb85f09c5e807564b /chrome | |
parent | 10af60b65cf699cfcf0937eb2b7aeeb2a00a28c0 (diff) | |
download | chromium_src-66501afa72934631a32cd0cdd0a5ab5bb43b4d7a.zip chromium_src-66501afa72934631a32cd0cdd0a5ab5bb43b4d7a.tar.gz chromium_src-66501afa72934631a32cd0cdd0a5ab5bb43b4d7a.tar.bz2 |
Speak a message when accessibility is on and the network state changes
R=stevenjb@chromium.org
BUG=chromium-os:21760
TEST=Change the network state with a11y turned on
Review URL: http://codereview.chromium.org/8503041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110069 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/chromeos/accessibility_util.cc | 9 | ||||
-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, 50 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/accessibility_util.cc b/chrome/browser/chromeos/accessibility_util.cc index 5ac954a..7670909 100644 --- a/chrome/browser/chromeos/accessibility_util.cc +++ b/chrome/browser/chromeos/accessibility_util.cc @@ -158,6 +158,15 @@ void Speak(const char* utterance) { params); } +bool IsAccessibilityEnabled() { + if (!g_browser_process) { + return false; + } + PrefService* prefs = g_browser_process->local_state(); + bool accessibility_enabled = prefs && + prefs->GetBoolean(prefs::kAccessibilityEnabled); + return accessibility_enabled; +} } // namespace accessibility } // namespace chromeos diff --git a/chrome/browser/chromeos/accessibility_util.h b/chrome/browser/chromeos/accessibility_util.h index b96635e..d9e3df9 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); +// Returns true if Accessibility is enabled, or false if not. +bool IsAccessibilityEnabled(); + } // 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..207a1e5 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,14 @@ class NetworkIcon { } } bool dirty = bitmap_.empty(); + bool speak = false; + if (accessibility::IsAccessibilityEnabled()) { + 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 +256,35 @@ 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); + } + accessibility::Speak(connection_string.c_str()); + } } // Sets up the base icon image. |