diff options
author | chocobo@chromium.org <chocobo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-30 19:28:54 +0000 |
---|---|---|
committer | chocobo@chromium.org <chocobo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-30 19:28:54 +0000 |
commit | a0f139efd6fc9a7793ea3851d49370538777e9df (patch) | |
tree | 339e81758ff551a6ab75a126cbfbfcfc1e79c5cd /chrome/browser/chromeos/status | |
parent | 5edf647a62fccdbcc66abe9d30736d86d67667e2 (diff) | |
download | chromium_src-a0f139efd6fc9a7793ea3851d49370538777e9df.zip chromium_src-a0f139efd6fc9a7793ea3851d49370538777e9df.tar.gz chromium_src-a0f139efd6fc9a7793ea3851d49370538777e9df.tar.bz2 |
Fix cellular data to show no bars when no data left in all places.
Refactor code and comment out colored network bars.
BUG=chromium-os:9734
TEST=manual
Review URL: http://codereview.chromium.org/5326008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67739 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/status')
4 files changed, 50 insertions, 48 deletions
diff --git a/chrome/browser/chromeos/status/network_dropdown_button.cc b/chrome/browser/chromeos/status/network_dropdown_button.cc index 32ff4e6..3b74333 100644 --- a/chrome/browser/chromeos/status/network_dropdown_button.cc +++ b/chrome/browser/chromeos/status/network_dropdown_button.cc @@ -75,18 +75,23 @@ void NetworkDropdownButton::OnNetworkManagerChanged(NetworkLibrary* cros) { if (CrosLibrary::Get()->EnsureLoaded()) { // Always show the active network, if any const Network* active_network = cros->active_network(); - const WirelessNetwork* wireless; if (active_network != NULL) { animation_connecting_.Stop(); if (active_network->type() == TYPE_ETHERNET) { SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_WIRED)); SetText(l10n_util::GetString(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)); + } else if (active_network->type() == TYPE_WIFI) { + const WifiNetwork* wifi = + static_cast<const WifiNetwork*>(active_network); + SetIcon(IconForNetworkStrength(wifi, true)); + SetText(ASCIIToWide(wifi->name())); + } else if (active_network->type() == TYPE_CELLULAR) { + const CellularNetwork* cellular = + static_cast<const CellularNetwork*>(active_network); + SetIcon(IconForNetworkStrength(cellular, true)); + SetText(ASCIIToWide(cellular->name())); } else { - DCHECK(active_network->type() == TYPE_WIFI || - active_network->type() == TYPE_CELLULAR); - wireless = static_cast<const WirelessNetwork*>(active_network); - SetIcon(IconForNetworkStrength(wireless->strength(), true)); - SetText(ASCIIToWide(wireless->name())); + NOTREACHED(); } } else if (cros->wifi_connecting() || cros->cellular_connecting()) { if (!animation_connecting_.is_animating()) { diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc index 9ceb893..5a388e1 100644 --- a/chrome/browser/chromeos/status/network_menu.cc +++ b/chrome/browser/chromeos/status/network_menu.cc @@ -45,38 +45,40 @@ namespace chromeos { // NetworkMenu // static -const int NetworkMenu::kNumWifiImages = 4; +const int NetworkMenu::kNumBarsImages = 4; // NOTE: Use an array rather than just calculating a resource number to avoid // creating implicit ordering dependencies on the resource values. // static -const int NetworkMenu::kBarsImages[kNumWifiImages] = { +const int NetworkMenu::kBarsImages[kNumBarsImages] = { IDR_STATUSBAR_NETWORK_BARS1, IDR_STATUSBAR_NETWORK_BARS2, IDR_STATUSBAR_NETWORK_BARS3, IDR_STATUSBAR_NETWORK_BARS4, }; // static -const int NetworkMenu::kBarsImagesBlack[kNumWifiImages] = { +const int NetworkMenu::kBarsImagesBlack[kNumBarsImages] = { IDR_STATUSBAR_NETWORK_BARS1_BLACK, IDR_STATUSBAR_NETWORK_BARS2_BLACK, IDR_STATUSBAR_NETWORK_BARS3_BLACK, IDR_STATUSBAR_NETWORK_BARS4_BLACK, }; +/* // static -const int NetworkMenu::kBarsImagesLowData[kNumWifiImages] = { +const int NetworkMenu::kBarsImagesLowData[kNumBarsImages] = { IDR_STATUSBAR_NETWORK_BARS1_ORANGE, IDR_STATUSBAR_NETWORK_BARS2_ORANGE, IDR_STATUSBAR_NETWORK_BARS3_ORANGE, IDR_STATUSBAR_NETWORK_BARS4_ORANGE, }; // static -const int NetworkMenu::kBarsImagesVLowData[kNumWifiImages] = { +const int NetworkMenu::kBarsImagesVLowData[kNumBarsImages] = { IDR_STATUSBAR_NETWORK_BARS1_RED, IDR_STATUSBAR_NETWORK_BARS2_RED, IDR_STATUSBAR_NETWORK_BARS3_RED, IDR_STATUSBAR_NETWORK_BARS4_RED, }; +*/ NetworkMenu::NetworkMenu() : min_width_(-1) { @@ -378,33 +380,32 @@ void NetworkMenu::UpdateMenu() { } // static -SkBitmap NetworkMenu::IconForNetworkStrength(int strength, bool black) { +SkBitmap NetworkMenu::IconForNetworkStrength(const WifiNetwork* wifi, + bool black) { + DCHECK(wifi); // Compose wifi icon by superimposing various icons. - int index = static_cast<int>(strength / 100.0 * - nextafter(static_cast<float>(kNumWifiImages), 0)); - index = std::max(std::min(index, kNumWifiImages - 1), 0); + int index = static_cast<int>(wifi->strength() / 100.0 * + nextafter(static_cast<float>(kNumBarsImages), 0)); + index = std::max(std::min(index, kNumBarsImages - 1), 0); const int* images = black ? kBarsImagesBlack : kBarsImages; return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]); } // static -SkBitmap NetworkMenu::IconForNetworkStrength(const CellularNetwork* cellular) { +SkBitmap NetworkMenu::IconForNetworkStrength(const CellularNetwork* cellular, + bool black) { DCHECK(cellular); + // If no data, then we show 0 bars. + if (cellular->GetDataLeft() == CellularNetwork::DATA_NONE) { + return *ResourceBundle::GetSharedInstance().GetBitmapNamed( + black ? IDR_STATUSBAR_NETWORK_BARS0_BLACK : + IDR_STATUSBAR_NETWORK_BARS0); + } // Compose cellular icon by superimposing various icons. int index = static_cast<int>(cellular->strength() / 100.0 * - nextafter(static_cast<float>(kNumWifiImages), 0)); - index = std::max(std::min(index, kNumWifiImages - 1), 0); - const int* images = kBarsImages; - switch (cellular->GetDataLeft()) { - case CellularNetwork::DATA_NONE: - images = kBarsImagesVLowData; - break; - case CellularNetwork::DATA_VERY_LOW: - case CellularNetwork::DATA_LOW: - case CellularNetwork::DATA_NORMAL: - images = kBarsImages; - break; - } + nextafter(static_cast<float>(kNumBarsImages), 0)); + index = std::max(std::min(index, kNumBarsImages - 1), 0); + const int* images = black ? kBarsImagesBlack : kBarsImages; return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]); } @@ -560,8 +561,7 @@ void NetworkMenu::InitMenuItems() { } } - SkBitmap icon = IconForNetworkStrength(wifi_networks[i]->strength(), - true); + SkBitmap icon = IconForNetworkStrength(wifi_networks[i], true); SkBitmap badge = wifi_networks[i]->encrypted() ? *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap(); int flag = FLAG_WIFI; @@ -621,8 +621,7 @@ void NetworkMenu::InitMenuItems() { } } - SkBitmap icon = IconForNetworkStrength(cell_networks[i]->strength(), - true); + SkBitmap icon = IconForNetworkStrength(cell_networks[i], true); SkBitmap badge = BadgeForNetworkTechnology(cell_networks[i]); int flag = FLAG_CELLULAR; if (!cell_networks[i]->connectable()) diff --git a/chrome/browser/chromeos/status/network_menu.h b/chrome/browser/chromeos/status/network_menu.h index 05b941e..2abe14f 100644 --- a/chrome/browser/chromeos/status/network_menu.h +++ b/chrome/browser/chromeos/status/network_menu.h @@ -114,13 +114,15 @@ class NetworkMenu : public views::ViewMenuDelegate, // Cancels the active menu. void CancelMenu(); - // Returns the Icon for a network strength between 0 and 100. + // Returns the Icon for a network strength for a WifiNetwork |wifi|. // |black| is used to specify whether to return a black icon for display // on a light background or a white icon for display on a dark background. - static SkBitmap IconForNetworkStrength(int strength, bool black); + static SkBitmap IconForNetworkStrength(const WifiNetwork* wifi, bool black); // Returns the Icon for a network strength for CellularNetwork |cellular|. - // This returns different colored bars depending on cellular data left. - static SkBitmap IconForNetworkStrength(const CellularNetwork* cellular); + // |black| is used to specify whether to return a black icon for display + // on a light background or a white icon for display on a dark background. + static SkBitmap IconForNetworkStrength(const CellularNetwork* cellular, + bool black); // Returns the Icon for animating network connecting. // |animation_value| is the value from Animation.GetCurrentValue() // |black| is used to specify whether to return a black icon for display @@ -203,14 +205,15 @@ class NetworkMenu : public views::ViewMenuDelegate, // Set to true if we are currently refreshing the menu. bool refreshing_menu_; - // The number of wifi strength images. - static const int kNumWifiImages; + // The number of bars images for representing network strength. + static const int kNumBarsImages; // Bars image resources. static const int kBarsImages[]; static const int kBarsImagesBlack[]; - static const int kBarsImagesLowData[]; - static const int kBarsImagesVLowData[]; + // TODO(chocobo): Add these back when we decide to do colored bars again. +// static const int kBarsImagesLowData[]; +// static const int kBarsImagesVLowData[]; // Our menu items. MenuItemVector menu_items_; diff --git a/chrome/browser/chromeos/status/network_menu_button.cc b/chrome/browser/chromeos/status/network_menu_button.cc index cc0c604..f7aefad 100644 --- a/chrome/browser/chromeos/status/network_menu_button.cc +++ b/chrome/browser/chromeos/status/network_menu_button.cc @@ -167,7 +167,7 @@ void NetworkMenuButton::SetNetworkIcon(NetworkLibrary* cros, l10n_util::GetString(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET))); } else if (network->type() == TYPE_WIFI) { const WifiNetwork* wifi = static_cast<const WifiNetwork*>(network); - SetIcon(IconForNetworkStrength(wifi->strength(), false)); + SetIcon(IconForNetworkStrength(wifi, false)); SetBadge(SkBitmap()); SetTooltipText(l10n_util::GetStringF( IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, @@ -175,12 +175,7 @@ void NetworkMenuButton::SetNetworkIcon(NetworkLibrary* cros, } else if (network->type() == TYPE_CELLULAR) { const CellularNetwork* cellular = static_cast<const CellularNetwork*>(network); - if (cellular->GetDataLeft() == CellularNetwork::DATA_NONE) { - // If no data, then we show 0 bars. - SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0)); - } else { - SetIcon(IconForNetworkStrength(cellular)); - } + SetIcon(IconForNetworkStrength(cellular, false)); SetBadge(BadgeForNetworkTechnology(cellular)); SetTooltipText(l10n_util::GetStringF( IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, |