diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-20 20:03:29 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-20 20:03:29 +0000 |
commit | 86cd1df6450f0838b670fdff392dd0d8401fc5ae (patch) | |
tree | 83cf55afd4aa00f9a7e22dbf9fbb10b02b74c24d | |
parent | a8f4399a147e2e19a6ee21c7d8276cbec8f1ce22 (diff) | |
download | chromium_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.cc | 15 | ||||
-rw-r--r-- | ash/system/tray/system_tray.cc | 3 | ||||
-rw-r--r-- | ash/system/tray/system_tray_delegate.h | 1 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/network_menu.cc | 25 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/network_menu.h | 3 | ||||
-rw-r--r-- | chrome/browser/chromeos/system/ash_system_tray_delegate.cc | 24 |
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())); + } } } |