Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Unified Diff: ash/system/network/tray_network.cc

Issue 10824142: Support toggling Wi-Fi with keyboard shortcut. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Change the key conbination and messages for popup Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/system/network/tray_network.cc
diff --git a/ash/system/network/tray_network.cc b/ash/system/network/tray_network.cc
index 86ee617ffed63baa9f0a86d824c17afafe9710db..142e43225d6346e90450ca29300004512aa93f63 100644
--- a/ash/system/network/tray_network.cc
+++ b/ash/system/network/tray_network.cc
@@ -705,12 +705,44 @@ class NetworkNotificationView : public TrayNotificationView {
DISALLOW_COPY_AND_ASSIGN(NetworkNotificationView);
};
+class NetworkWifiDetailedView : public TrayDetailsView {
+ public:
+ explicit NetworkWifiDetailedView(bool wifi_enabled) {
+ SetLayoutManager(new views::BoxLayout(views::BoxLayout::kHorizontal,
+ kTrayPopupPaddingHorizontal,
+ 10,
+ kTrayPopupPaddingBetweenItems));
+
+ ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
+ views::ImageView* image = new views::ImageView;
+ const int image_id = wifi_enabled ?
+ IDR_AURA_UBER_TRAY_WIFI_ENABLED : IDR_AURA_UBER_TRAY_WIFI_DISABLED;
+ image->SetImage(bundle.GetImageNamed(image_id).ToImageSkia());
+ AddChildView(image);
+
+ const int string_id = wifi_enabled ?
+ IDS_ASH_STATUS_TRAY_NETWORK_WIFI_ENABLED:
+ IDS_ASH_STATUS_TRAY_NETWORK_WIFI_DISABLED;
+ views::Label* label =
+ new views::Label(bundle.GetLocalizedString(string_id));
+ label->SetMultiLine(true);
+ label->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
+ AddChildView(label);
+ }
+
+ virtual ~NetworkWifiDetailedView() {}
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NetworkWifiDetailedView);
+};
+
} // namespace tray
TrayNetwork::TrayNetwork()
: tray_(NULL),
default_(NULL),
detailed_(NULL),
+ wifi_view_(NULL),
notification_(NULL),
errors_(new tray::NetworkErrors()) {
}
@@ -731,6 +763,12 @@ views::View* TrayNetwork::CreateDefaultView(user::LoginStatus status) {
}
views::View* TrayNetwork::CreateDetailedView(user::LoginStatus status) {
+ if (wifi_view_) {
+ views::View* returned_view = wifi_view_;
+ wifi_view_ = NULL;
+ return returned_view;
stevenjb 2012/08/02 17:47:16 This logic is pretty confusing. I think we would b
mazda 2012/08/02 19:49:16 Done.
+ }
+
CHECK(detailed_ == NULL);
detailed_ = new tray::NetworkDetailedView(status);
return detailed_;
@@ -802,6 +840,13 @@ void TrayNetwork::ClearNetworkError(ErrorType error_type) {
ShowNotificationView();
}
+void TrayNetwork::OnWifiToggled(bool wifi_enabled) {
+ if (!detailed_) {
+ wifi_view_ = new tray::NetworkWifiDetailedView(wifi_enabled);
+ PopupDetailedView(kTrayPopupAutoCloseDelayForTextInSeconds, false);
+ }
+}
+
void TrayNetwork::LinkClicked(ErrorType error_type) {
tray::NetworkErrors::ErrorMap::const_iterator iter =
errors()->messages().find(error_type);

Powered by Google App Engine
This is Rietveld 408576698