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

Side by Side Diff: chrome/browser/chromeos/status/network_menu_button.cc

Issue 2817036: Push change for stevenjb:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/status/network_menu_button.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/status/network_menu_button.h" 5 #include "chrome/browser/chromeos/status/network_menu_button.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 } else if (flags & FLAG_ETHERNET) { 109 } else if (flags & FLAG_ETHERNET) {
110 if (cros->ethernet_connected()) { 110 if (cros->ethernet_connected()) {
111 NetworkConfigView* view = new NetworkConfigView(cros->ethernet_network()); 111 NetworkConfigView* view = new NetworkConfigView(cros->ethernet_network());
112 view->set_browser_mode(host_->IsBrowserMode()); 112 view->set_browser_mode(host_->IsBrowserMode());
113 views::Window* window = views::Window::CreateChromeWindow( 113 views::Window* window = views::Window::CreateChromeWindow(
114 host_->GetNativeWindow(), gfx::Rect(), view); 114 host_->GetNativeWindow(), gfx::Rect(), view);
115 window->SetIsAlwaysOnTop(true); 115 window->SetIsAlwaysOnTop(true);
116 window->Show(); 116 window->Show();
117 } 117 }
118 } else if (flags & FLAG_WIFI) { 118 } else if (flags & FLAG_WIFI) {
119 WifiNetwork wifi = menu_items_[index].wifi_network; 119 WifiNetwork wifi;
120 120 bool wifi_exists = cros->FindWifiNetworkByPath(
121 // If clicked on a network that we are already connected to or we are 121 menu_items_[index].wireless_path, &wifi);
122 // currently trying to connect to, then open config dialog. 122 if (!wifi_exists) {
123 if (wifi.name() == cros->wifi_name()) { 123 // If we are attempting to connect to a network that no longer exists,
124 // display a notification.
125 // TODO(stevenjb): Show notification.
126 } else if (wifi.name() == cros->wifi_name()) {
124 if (cros->wifi_connected()) { 127 if (cros->wifi_connected()) {
128 // If we are already connected, open the config dialog.
125 NetworkConfigView* view = new NetworkConfigView(wifi, false); 129 NetworkConfigView* view = new NetworkConfigView(wifi, false);
126 view->set_browser_mode(host_->IsBrowserMode()); 130 view->set_browser_mode(host_->IsBrowserMode());
127 views::Window* window = views::Window::CreateChromeWindow( 131 views::Window* window = views::Window::CreateChromeWindow(
128 host_->GetNativeWindow(), gfx::Rect(), view); 132 host_->GetNativeWindow(), gfx::Rect(), view);
129 window->SetIsAlwaysOnTop(true); 133 window->SetIsAlwaysOnTop(true);
130 window->Show(); 134 window->Show();
135 } else {
136 // TODO(stevenjb): Connection in progress. Show dialog?
131 } 137 }
132 } else { 138 } else {
133 // If wifi network is not encrypted, then directly connect. 139 // If wifi network is not encrypted, then directly connect.
134 // Otherwise, we open password dialog window. 140 // Otherwise, we open password dialog window.
135 if (!wifi.encrypted()) { 141 if (!wifi.encrypted()) {
136 cros->ConnectToWifiNetwork(wifi, string16(), string16(), string16()); 142 cros->ConnectToWifiNetwork(wifi, string16(), string16(), string16());
137 } else { 143 } else {
138 NetworkConfigView* view = new NetworkConfigView(wifi, true); 144 NetworkConfigView* view = new NetworkConfigView(wifi, true);
139 view->set_browser_mode(host_->IsBrowserMode()); 145 view->set_browser_mode(host_->IsBrowserMode());
140 views::Window* window = views::Window::CreateChromeWindow( 146 views::Window* window = views::Window::CreateChromeWindow(
141 host_->GetNativeWindow(), gfx::Rect(), view); 147 host_->GetNativeWindow(), gfx::Rect(), view);
142 window->SetIsAlwaysOnTop(true); 148 window->SetIsAlwaysOnTop(true);
143 window->Show(); 149 window->Show();
144 view->SetLoginTextfieldFocus(); 150 view->SetLoginTextfieldFocus();
145 } 151 }
146 } 152 }
147 } else if (flags & FLAG_CELLULAR) { 153 } else if (flags & FLAG_CELLULAR) {
148 CellularNetwork cellular = menu_items_[index].cellular_network; 154 CellularNetwork cellular;
155 bool cellular_exists = cros->FindCellularNetworkByPath(
156 menu_items_[index].wireless_path, &cellular);
149 157
150 // If clicked on a network that we are already connected to or we are 158 if (!cellular_exists) {
151 // currently trying to connect to, then open config dialog. 159 // If we are attempting to connect to a network that no longer exists,
152 if (cellular.name() == cros->cellular_name()) { 160 // display a notification.
161 // TODO(stevenjb): Show notification.
162 } else if (cellular.name() == cros->cellular_name()) {
163 // If clicked on a network that we are already connected to or we are
164 // currently trying to connect to, then open config dialog.
153 if (cros->cellular_connected()) { 165 if (cros->cellular_connected()) {
154 NetworkConfigView* view = new NetworkConfigView(cellular); 166 NetworkConfigView* view = new NetworkConfigView(cellular);
155 view->set_browser_mode(host_->IsBrowserMode()); 167 view->set_browser_mode(host_->IsBrowserMode());
156 views::Window* window = views::Window::CreateChromeWindow( 168 views::Window* window = views::Window::CreateChromeWindow(
157 host_->GetNativeWindow(), gfx::Rect(), view); 169 host_->GetNativeWindow(), gfx::Rect(), view);
158 window->SetIsAlwaysOnTop(true); 170 window->SetIsAlwaysOnTop(true);
159 window->Show(); 171 window->Show();
172 } else {
173 // TODO(stevenjb): Connection in progress. Show dialog?
160 } 174 }
161 } else { 175 } else {
162 cros->ConnectToCellularNetwork(cellular); 176 cros->ConnectToCellularNetwork(cellular);
163 } 177 }
164 } 178 }
165 } 179 }
166 180
167 //////////////////////////////////////////////////////////////////////////////// 181 ////////////////////////////////////////////////////////////////////////////////
168 // NetworkMenuButton, AnimationDelegate implementation: 182 // NetworkMenuButton, AnimationDelegate implementation:
169 183
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 429
416 // Ethernet 430 // Ethernet
417 string16 label = l10n_util::GetStringUTF16( 431 string16 label = l10n_util::GetStringUTF16(
418 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); 432 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET);
419 SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK); 433 SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK);
420 SkBitmap badge = cros->ethernet_connecting() || cros->ethernet_connected() ? 434 SkBitmap badge = cros->ethernet_connecting() || cros->ethernet_connected() ?
421 SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED); 435 SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
422 int flag = (cros->ethernet_connecting() || cros->ethernet_connected()) ? 436 int flag = (cros->ethernet_connecting() || cros->ethernet_connected()) ?
423 FLAG_ETHERNET | FLAG_ASSOCIATED : FLAG_ETHERNET; 437 FLAG_ETHERNET | FLAG_ASSOCIATED : FLAG_ETHERNET;
424 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 438 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
425 IconForDisplay(icon, badge), WifiNetwork(), CellularNetwork(), flag)); 439 IconForDisplay(icon, badge), std::string(), flag));
426 440
427 // Wifi 441 // Wifi
428 const WifiNetworkVector& wifi_networks = cros->wifi_networks(); 442 const WifiNetworkVector& wifi_networks = cros->wifi_networks();
429 // Wifi networks ssids. 443 // Wifi networks ssids.
430 for (size_t i = 0; i < wifi_networks.size(); ++i) { 444 for (size_t i = 0; i < wifi_networks.size(); ++i) {
431 label = ASCIIToUTF16(wifi_networks[i].name()); 445 label = ASCIIToUTF16(wifi_networks[i].name());
432 SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength(), true); 446 SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength(), true);
433 SkBitmap badge = wifi_networks[i].encrypted() ? 447 SkBitmap badge = wifi_networks[i].encrypted() ?
434 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap(); 448 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap();
435 flag = (wifi_networks[i].name() == cros->wifi_name()) ? 449 flag = (wifi_networks[i].name() == cros->wifi_name()) ?
436 FLAG_WIFI | FLAG_ASSOCIATED : FLAG_WIFI; 450 FLAG_WIFI | FLAG_ASSOCIATED : FLAG_WIFI;
437 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 451 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
438 IconForDisplay(icon, badge), wifi_networks[i], CellularNetwork(), 452 IconForDisplay(icon, badge), wifi_networks[i].service_path(), flag));
439 flag));
440 } 453 }
441 454
442 // Cellular 455 // Cellular
443 const CellularNetworkVector& cell_networks = cros->cellular_networks(); 456 const CellularNetworkVector& cell_networks = cros->cellular_networks();
444 // Cellular networks ssids. 457 // Cellular networks ssids.
445 for (size_t i = 0; i < cell_networks.size(); ++i) { 458 for (size_t i = 0; i < cell_networks.size(); ++i) {
446 label = ASCIIToUTF16(cell_networks[i].name()); 459 label = ASCIIToUTF16(cell_networks[i].name());
447 SkBitmap icon = IconForNetworkStrength(cell_networks[i].strength(), true); 460 SkBitmap icon = IconForNetworkStrength(cell_networks[i].strength(), true);
448 // TODO(chocobo): Check cellular network 3g/edge. 461 // TODO(chocobo): Check cellular network 3g/edge.
449 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G); 462 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
450 // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE); 463 // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE);
451 flag = (cell_networks[i].name() == cros->cellular_name()) ? 464 flag = (cell_networks[i].name() == cros->cellular_name()) ?
452 FLAG_CELLULAR | FLAG_ASSOCIATED : FLAG_CELLULAR; 465 FLAG_CELLULAR | FLAG_ASSOCIATED : FLAG_CELLULAR;
453 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 466 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
454 IconForDisplay(icon, badge), WifiNetwork(), cell_networks[i], flag)); 467 IconForDisplay(icon, badge), cell_networks[i].service_path(), flag));
455 } 468 }
456 469
457 // No networks available message. 470 // No networks available message.
458 if (wifi_networks.empty() && cell_networks.empty()) { 471 if (wifi_networks.empty() && cell_networks.empty()) {
459 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, 472 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT,
460 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); 473 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE));
461 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 474 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
462 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_DISABLED)); 475 SkBitmap(), std::string(), FLAG_DISABLED));
463 } 476 }
464 477
465 // Other networks 478 // Other networks
466 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, 479 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND,
467 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_NETWORKS), 480 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_NETWORKS),
468 IconForDisplay(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0), 481 IconForDisplay(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0),
469 SkBitmap()), 482 SkBitmap()),
470 WifiNetwork(), CellularNetwork(), FLAG_OTHER_NETWORK)); 483 std::string(), FLAG_OTHER_NETWORK));
471 484
472 if (cros->wifi_available() || cros->cellular_available()) { 485 if (cros->wifi_available() || cros->cellular_available()) {
473 // Separator. 486 // Separator.
474 menu_items_.push_back(MenuItem()); 487 menu_items_.push_back(MenuItem());
475 488
476 // Turn Wifi Off. (only if wifi available) 489 // Turn Wifi Off. (only if wifi available)
477 if (cros->wifi_available()) { 490 if (cros->wifi_available()) {
478 int id = cros->wifi_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE : 491 int id = cros->wifi_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE :
479 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE; 492 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE;
480 label = l10n_util::GetStringFUTF16(id, 493 label = l10n_util::GetStringFUTF16(id,
481 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)); 494 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI));
482 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 495 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
483 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_WIFI)); 496 SkBitmap(), std::string(), FLAG_TOGGLE_WIFI));
484 } 497 }
485 498
486 // Turn Cellular Off. (only if cellular available) 499 // Turn Cellular Off. (only if cellular available)
487 if (cros->cellular_available()) { 500 if (cros->cellular_available()) {
488 int id = cros->cellular_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE : 501 int id = cros->cellular_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE :
489 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE; 502 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE;
490 label = l10n_util::GetStringFUTF16(id, 503 label = l10n_util::GetStringFUTF16(id,
491 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)); 504 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR));
492 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 505 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
493 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_CELLULAR)); 506 SkBitmap(), std::string(), FLAG_TOGGLE_CELLULAR));
494 } 507 }
495 } 508 }
496 509
497 // TODO(chocobo): Uncomment once we figure out how to do offline mode. 510 // TODO(chocobo): Uncomment once we figure out how to do offline mode.
498 // Offline mode. 511 // Offline mode.
499 // menu_items_.push_back(MenuItem(cros->offline_mode() ? 512 // menu_items_.push_back(MenuItem(cros->offline_mode() ?
500 // menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND, 513 // menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND,
501 // l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE), 514 // l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE),
502 // SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_OFFLINE)); 515 // SkBitmap(), std::string(), FLAG_TOGGLE_OFFLINE));
503 516
504 if (cros->Connected() || host_->ShouldOpenButtonOptions(this)) { 517 if (cros->Connected() || host_->ShouldOpenButtonOptions(this)) {
505 // Separator. 518 // Separator.
506 menu_items_.push_back(MenuItem()); 519 menu_items_.push_back(MenuItem());
507 520
508 // IP address 521 // IP address
509 if (cros->Connected()) { 522 if (cros->Connected()) {
510 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, 523 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND,
511 ASCIIToUTF16(cros->IPAddress()), SkBitmap(), 524 ASCIIToUTF16(cros->IPAddress()), SkBitmap(),
512 WifiNetwork(), CellularNetwork(), FLAG_DISABLED)); 525 std::string(), FLAG_DISABLED));
513 } 526 }
514 527
515 // Network settings. 528 // Network settings.
516 if (host_->ShouldOpenButtonOptions(this)) { 529 if (host_->ShouldOpenButtonOptions(this)) {
517 label = 530 label =
518 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG); 531 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG);
519 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 532 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
520 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_OPTIONS)); 533 SkBitmap(), std::string(), FLAG_OPTIONS));
521 } 534 }
522 } 535 }
523 } 536 }
524 537
525 } // namespace chromeos 538 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/status/network_menu_button.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698