summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-20 20:03:29 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-20 20:03:29 +0000
commit86cd1df6450f0838b670fdff392dd0d8401fc5ae (patch)
tree83cf55afd4aa00f9a7e22dbf9fbb10b02b74c24d
parenta8f4399a147e2e19a6ee21c7d8276cbec8f1ce22 (diff)
downloadchromium_src-86cd1df6450f0838b670fdff392dd0d8401fc5ae.zip
chromium_src-86cd1df6450f0838b670fdff392dd0d8401fc5ae.tar.gz
chromium_src-86cd1df6450f0838b670fdff392dd0d8401fc5ae.tar.bz2
ash: Make the 'connected' networks bold in the network list.
BUG=109480, 119115 TEST=none Review URL: https://chromiumcodereview.appspot.com/9752005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127756 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/system/network/tray_network.cc15
-rw-r--r--ash/system/tray/system_tray.cc3
-rw-r--r--ash/system/tray/system_tray_delegate.h1
-rw-r--r--chrome/browser/chromeos/status/network_menu.cc25
-rw-r--r--chrome/browser/chromeos/status/network_menu.h3
-rw-r--r--chrome/browser/chromeos/system/ash_system_tray_delegate.cc24
6 files changed, 50 insertions, 21 deletions
diff --git a/ash/system/network/tray_network.cc b/ash/system/network/tray_network.cc
index 8976a97..c36b57a 100644
--- a/ash/system/network/tray_network.cc
+++ b/ash/system/network/tray_network.cc
@@ -69,13 +69,18 @@ class HoverHighlightView : public views::View {
virtual ~HoverHighlightView() {}
// Convenience function for adding an icon and a label.
- void AddIconAndLabel(const SkBitmap& image, const string16& label) {
+ void AddIconAndLabel(const SkBitmap& image,
+ const string16& text,
+ gfx::Font::FontStyle style) {
SetLayoutManager(new views::BoxLayout(
views::BoxLayout::kHorizontal, 0, 3, kIconPaddingLeft));
views::ImageView* image_view = new FixedWidthImageView;
image_view->SetImage(image);
AddChildView(image_view);
- AddChildView(new views::Label(label));
+
+ views::Label* label = new views::Label(text);
+ label->SetFont(label->font().DeriveFont(0, style));
+ AddChildView(label);
}
void AddLabel(const string16& text) {
@@ -310,7 +315,8 @@ class NetworkDetailedView : public views::View,
views::BoxLayout::kVertical, 0, 0, 1));
for (size_t i = 0; i < list.size(); i++) {
HoverHighlightView* container = new HoverHighlightView(this);
- container->AddIconAndLabel(list[i].image, list[i].name);
+ container->AddIconAndLabel(list[i].image, list[i].name,
+ list[i].highlight ? gfx::Font::BOLD : gfx::Font::NORMAL);
networks->AddChildView(container);
network_map_[container] = list[i].service_path;
}
@@ -352,7 +358,8 @@ class NetworkDetailedView : public views::View,
HoverHighlightView* container = new HoverHighlightView(this);
container->AddIconAndLabel(
*rb.GetImageNamed(IDR_AURA_UBER_TRAY_NETWORK_AIRPLANE).ToSkBitmap(),
- rb.GetLocalizedString(IDS_ASH_STATUS_TRAY_AIRPLANE_MODE));
+ rb.GetLocalizedString(IDS_ASH_STATUS_TRAY_AIRPLANE_MODE),
+ gfx::Font::NORMAL);
AddChildView(container);
airplane_ = container;
}
diff --git a/ash/system/tray/system_tray.cc b/ash/system/tray/system_tray.cc
index e345848..b116b1f6 100644
--- a/ash/system/tray/system_tray.cc
+++ b/ash/system/tray/system_tray.cc
@@ -369,7 +369,8 @@ class SystemTrayBubble : public views::BubbleDelegateView {
} // namespace internal
-NetworkIconInfo::NetworkIconInfo() {
+NetworkIconInfo::NetworkIconInfo()
+ : highlight(false) {
}
NetworkIconInfo::~NetworkIconInfo() {
diff --git a/ash/system/tray/system_tray_delegate.h b/ash/system/tray/system_tray_delegate.h
index 45ba40d..dc5d033 100644
--- a/ash/system/tray/system_tray_delegate.h
+++ b/ash/system/tray/system_tray_delegate.h
@@ -23,6 +23,7 @@ struct ASH_EXPORT NetworkIconInfo {
NetworkIconInfo();
~NetworkIconInfo();
+ bool highlight;
SkBitmap image;
string16 name;
string16 description;
diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc
index 5ccc913..5da84184 100644
--- a/chrome/browser/chromeos/status/network_menu.cc
+++ b/chrome/browser/chromeos/status/network_menu.cc
@@ -96,6 +96,14 @@ void ActivateCellular(const chromeos::CellularNetwork* cellular) {
browser->OpenMobilePlanTabAndActivate();
}
+// Decides whether a network should be highlighted in the UI.
+bool ShouldHighlightNetwork(const chromeos::Network* network) {
+ chromeos::NetworkLibrary* cros =
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary();
+ return cros->connected_network() ? network == cros->connected_network() :
+ network == cros->connecting_network();
+}
+
} // namespace
namespace chromeos {
@@ -538,7 +546,6 @@ void MainMenuModel::InitMenuItems(bool should_open_button_options) {
bool ethernet_enabled = cros->ethernet_enabled();
const chromeos::EthernetNetwork* ethernet_network = cros->ethernet_network();
if (ethernet_enabled && ethernet_network) {
- bool ethernet_connected = cros->ethernet_connected();
bool ethernet_connecting = cros->ethernet_connecting();
if (ethernet_connecting) {
@@ -550,7 +557,7 @@ void MainMenuModel::InitMenuItems(bool should_open_button_options) {
label = l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET);
}
int flag = FLAG_ETHERNET;
- if (ethernet_connecting || ethernet_connected)
+ if (ShouldHighlightNetwork(ethernet_network))
flag |= FLAG_ASSOCIATED;
SkBitmap icon;
icon = NetworkMenuIcon::GetBitmap(ethernet_network,
@@ -564,7 +571,6 @@ void MainMenuModel::InitMenuItems(bool should_open_button_options) {
bool wifi_enabled = cros->wifi_enabled();
if (wifi_available && wifi_enabled) {
const WifiNetworkVector& wifi_networks = cros->wifi_networks();
- const WifiNetwork* active_wifi = cros->wifi_network();
bool separator_added = false;
// List Wifi networks.
@@ -594,8 +600,7 @@ void MainMenuModel::InitMenuItems(bool should_open_button_options) {
// the user is not logged in), we disable it.
if (!cros->CanConnectToNetwork(wifi_networks[i]))
flag |= FLAG_DISABLED;
- if (active_wifi
- && wifi_networks[i]->service_path() == active_wifi->service_path())
+ if (ShouldHighlightNetwork(wifi_networks[i]))
flag |= FLAG_ASSOCIATED;
const SkBitmap icon = NetworkMenuIcon::GetBitmap(wifi_networks[i],
NetworkMenuIcon::SIZE_SMALL);
@@ -663,9 +668,7 @@ void MainMenuModel::InitMenuItems(bool should_open_button_options) {
int flag = FLAG_CELLULAR;
// If wifi is associated, then cellular is not active.
- bool isActive = !cros->wifi_network() && active_cellular &&
- cell_networks[i]->service_path() == active_cellular->service_path() &&
- (cell_networks[i]->connecting() || cell_networks[i]->connected());
+ bool isActive = ShouldHighlightNetwork(cell_networks[i]);
bool supports_data_plan =
active_cellular && active_cellular->SupportsDataPlan();
if (isActive)
@@ -878,7 +881,7 @@ void VPNMenuModel::InitMenuItems(bool should_open_button_options) {
int flag = FLAG_VPN;
if (!cros->CanConnectToNetwork(vpn))
flag |= FLAG_DISABLED;
- if (active_vpn && vpn->service_path() == active_vpn->service_path())
+ if (ShouldHighlightNetwork(vpn))
flag |= FLAG_ASSOCIATED;
const SkBitmap icon = NetworkMenuIcon::GetBitmap(vpn,
NetworkMenuIcon::SIZE_SMALL);
@@ -1128,4 +1131,8 @@ void NetworkMenu::ToggleCellular() {
}
}
+bool NetworkMenu::ShouldHighlightNetwork(const Network* network) {
+ return ::ShouldHighlightNetwork(network);
+}
+
} // namespace chromeos
diff --git a/chrome/browser/chromeos/status/network_menu.h b/chrome/browser/chromeos/status/network_menu.h
index f60684d..9ab0785 100644
--- a/chrome/browser/chromeos/status/network_menu.h
+++ b/chrome/browser/chromeos/status/network_menu.h
@@ -106,6 +106,9 @@ class NetworkMenu {
void ToggleWifi();
void ToggleCellular();
+ // Decides whether a network should be highlighted in the UI.
+ bool ShouldHighlightNetwork(const Network* network);
+
private:
friend class NetworkMenuModel;
diff --git a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
index dea11f9..4eff0dc 100644
--- a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
+++ b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc
@@ -52,11 +52,13 @@ namespace chromeos {
namespace {
ash::NetworkIconInfo CreateNetworkIconInfo(const Network* network,
- NetworkMenuIcon* network_icon) {
+ NetworkMenuIcon* network_icon,
+ NetworkMenu* network_menu) {
ash::NetworkIconInfo info;
info.name = UTF8ToUTF16(network->name());
info.image = network_icon->GetBitmap(network, NetworkMenuIcon::SIZE_SMALL);
info.service_path = network->service_path();
+ info.highlight = network_menu->ShouldHighlightNetwork(network);
return info;
}
@@ -251,6 +253,8 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
info.name =
l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET);
info.service_path = ethernet_network->service_path();
+ info.highlight =
+ network_menu_->ShouldHighlightNetwork(ethernet_network);
list->push_back(info);
}
}
@@ -258,8 +262,10 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
// Wifi.
if (crosnet->wifi_available() && crosnet->wifi_enabled()) {
const WifiNetworkVector& wifi = crosnet->wifi_networks();
- for (size_t i = 0; i < wifi.size(); ++i)
- list->push_back(CreateNetworkIconInfo(wifi[i], network_icon_.get()));
+ for (size_t i = 0; i < wifi.size(); ++i) {
+ list->push_back(CreateNetworkIconInfo(wifi[i], network_icon_.get(),
+ network_menu_.get()));
+ }
}
// Cellular.
@@ -269,8 +275,10 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
// networks with top-up URLs etc. All of these need to be handled
// properly.
const CellularNetworkVector& cell = crosnet->cellular_networks();
- for (size_t i = 0; i < cell.size(); ++i)
- list->push_back(CreateNetworkIconInfo(cell[i], network_icon_.get()));
+ for (size_t i = 0; i < cell.size(); ++i) {
+ list->push_back(CreateNetworkIconInfo(cell[i], network_icon_.get(),
+ network_menu_.get()));
+ }
}
// VPN (only if logged in).
@@ -278,8 +286,10 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate,
return;
if (crosnet->connected_network() || crosnet->virtual_network_connected()) {
const VirtualNetworkVector& vpns = crosnet->virtual_networks();
- for (size_t i = 0; i < vpns.size(); ++i)
- list->push_back(CreateNetworkIconInfo(vpns[i], network_icon_.get()));
+ for (size_t i = 0; i < vpns.size(); ++i) {
+ list->push_back(CreateNetworkIconInfo(vpns[i], network_icon_.get(),
+ network_menu_.get()));
+ }
}
}