summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/status
diff options
context:
space:
mode:
authorchocobo@chromium.org <chocobo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-30 19:28:54 +0000
committerchocobo@chromium.org <chocobo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-30 19:28:54 +0000
commita0f139efd6fc9a7793ea3851d49370538777e9df (patch)
tree339e81758ff551a6ab75a126cbfbfcfc1e79c5cd /chrome/browser/chromeos/status
parent5edf647a62fccdbcc66abe9d30736d86d67667e2 (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/chromeos/status/network_dropdown_button.cc17
-rw-r--r--chrome/browser/chromeos/status/network_menu.cc53
-rw-r--r--chrome/browser/chromeos/status/network_menu.h19
-rw-r--r--chrome/browser/chromeos/status/network_menu_button.cc9
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,