Chromium Code Reviews

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

Issue 4200008: Revert 64191 - Add 3G Activation to the network menu.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/status/network_menu.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.h" 5 #include "chrome/browser/chromeos/status/network_menu.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
(...skipping 60 matching lines...)
71 // static 71 // static
72 const int NetworkMenu::kBarsImagesVLowData[kNumWifiImages] = { 72 const int NetworkMenu::kBarsImagesVLowData[kNumWifiImages] = {
73 IDR_STATUSBAR_NETWORK_BARS1_RED, 73 IDR_STATUSBAR_NETWORK_BARS1_RED,
74 IDR_STATUSBAR_NETWORK_BARS2_RED, 74 IDR_STATUSBAR_NETWORK_BARS2_RED,
75 IDR_STATUSBAR_NETWORK_BARS3_RED, 75 IDR_STATUSBAR_NETWORK_BARS3_RED,
76 IDR_STATUSBAR_NETWORK_BARS4_RED, 76 IDR_STATUSBAR_NETWORK_BARS4_RED,
77 }; 77 };
78 78
79 NetworkMenu::NetworkMenu() 79 NetworkMenu::NetworkMenu()
80 : min_width_(-1) { 80 : min_width_(-1) {
81 use_settings_ui_ = CommandLine::ForCurrentProcess()->HasSwitch(
82 switches::kEnableTabbedOptions);
83 network_menu_.reset(NetworkMenuUI::CreateMenu2(this)); 81 network_menu_.reset(NetworkMenuUI::CreateMenu2(this));
84 } 82 }
85 83
86 NetworkMenu::~NetworkMenu() { 84 NetworkMenu::~NetworkMenu() {
87 } 85 }
88 86
89 bool NetworkMenu::GetNetworkAt(int index, NetworkInfo* info) const { 87 bool NetworkMenu::GetNetworkAt(int index, NetworkInfo* info) const {
90 DCHECK(info); 88 DCHECK(info);
91 bool res = true; // True unless a network doesn't exist. 89 bool res = true; // True unless a network doesn't exist.
92 int flags = menu_items_[index].flags; 90 int flags = menu_items_[index].flags;
(...skipping 12 matching lines...)
105 menu_items_[index].wireless_path, &wifi); 103 menu_items_[index].wireless_path, &wifi);
106 if (found) { 104 if (found) {
107 info->network_type = kNetworkTypeWifi; 105 info->network_type = kNetworkTypeWifi;
108 if (wifi.service_path() == cros->wifi_network().service_path()) { 106 if (wifi.service_path() == cros->wifi_network().service_path()) {
109 if (cros->wifi_connected()) { 107 if (cros->wifi_connected()) {
110 info->status = kNetworkStatusConnected; 108 info->status = kNetworkStatusConnected;
111 info->message = l10n_util::GetStringUTF8( 109 info->message = l10n_util::GetStringUTF8(
112 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED); 110 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED);
113 } else if (cros->wifi_connecting()) { 111 } else if (cros->wifi_connecting()) {
114 info->status = kNetworkStatusConnecting; 112 info->status = kNetworkStatusConnecting;
113 // TODO(stevenjb): Eliminate status message, or localize properly.
115 info->message = l10n_util::GetStringUTF8( 114 info->message = l10n_util::GetStringUTF8(
116 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING); 115 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)
116 + ": " + wifi.GetStateString();
117 } else if (wifi.state() == STATE_FAILURE) { 117 } else if (wifi.state() == STATE_FAILURE) {
118 info->status = kNetworkStatusError; 118 info->status = kNetworkStatusError;
119 info->message = wifi.GetErrorString(); 119 info->message = wifi.GetErrorString();
120 } else { 120 } else {
121 info->status = kNetworkStatusDisconnected; 121 info->status = kNetworkStatusDisconnected;
122 info->message = l10n_util::GetStringUTF8( 122 info->message = l10n_util::GetStringUTF8(
123 IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED); 123 IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED);
124 } 124 }
125 } else { 125 } else {
126 info->status = kNetworkStatusDisconnected; 126 info->status = kNetworkStatusDisconnected;
(...skipping 83 matching lines...)
210 if (remember >= 0) 210 if (remember >= 0)
211 wifi.set_favorite(remember ? true : false); 211 wifi.set_favorite(remember ? true : false);
212 if (wifi.encrypted()) { 212 if (wifi.encrypted()) {
213 if (wifi.IsCertificateLoaded()) { 213 if (wifi.IsCertificateLoaded()) {
214 cros->ConnectToWifiNetwork(wifi, std::string(), std::string(), 214 cros->ConnectToWifiNetwork(wifi, std::string(), std::string(),
215 wifi.cert_path()); 215 wifi.cert_path());
216 } else if (wifi.encryption() == SECURITY_8021X) { 216 } else if (wifi.encryption() == SECURITY_8021X) {
217 // Show the wifi settings/dialog to load/select a certificate. 217 // Show the wifi settings/dialog to load/select a certificate.
218 ShowWifi(wifi, true); 218 ShowWifi(wifi, true);
219 } else { 219 } else {
220 if (MenuUI::IsEnabled()) { 220 cros->ConnectToWifiNetwork(wifi, passphrase, std::string(),
221 cros->ConnectToWifiNetwork(wifi, passphrase, std::string(), 221 std::string());
222 std::string());
223 } else {
224 ShowWifi(wifi, true);
225 }
226 } 222 }
227 } else { 223 } else {
228 cros->ConnectToWifiNetwork(wifi, std::string(), std::string(), 224 cros->ConnectToWifiNetwork(wifi, std::string(), std::string(),
229 std::string()); 225 std::string());
230 } 226 }
231 } 227 }
232 } else if (flags & FLAG_CELLULAR) { 228 } else if (flags & FLAG_CELLULAR) {
233 CellularNetwork cellular; 229 CellularNetwork cellular;
234 bool found = cros->FindCellularNetworkByPath( 230 bool found = cros->FindCellularNetworkByPath(
235 menu_items_[index].wireless_path, &cellular); 231 menu_items_[index].wireless_path, &cellular);
(...skipping 85 matching lines...)
321 ConnectToNetworkAt(index, std::string(), std::string(), -1); 317 ConnectToNetworkAt(index, std::string(), std::string(), -1);
322 } 318 }
323 } else if (flags & FLAG_CELLULAR) { 319 } else if (flags & FLAG_CELLULAR) {
324 CellularNetwork cellular; 320 CellularNetwork cellular;
325 bool cellular_exists = cros->FindCellularNetworkByPath( 321 bool cellular_exists = cros->FindCellularNetworkByPath(
326 menu_items_[index].wireless_path, &cellular); 322 menu_items_[index].wireless_path, &cellular);
327 if (!cellular_exists) { 323 if (!cellular_exists) {
328 // If we are attempting to connect to a network that no longer exists, 324 // If we are attempting to connect to a network that no longer exists,
329 // display a notification. 325 // display a notification.
330 // TODO(stevenjb): Show notification. 326 // TODO(stevenjb): Show notification.
331 } else if (cellular.activation_state() != ACTIVATION_STATE_ACTIVATED) {
332 ActivateCellular(cellular);
333 } else if (cellular.service_path() == 327 } else if (cellular.service_path() ==
334 cros->cellular_network().service_path()) { 328 cros->cellular_network().service_path()) {
335 // Show the config settings for the cellular network. 329 // Show the config settings for the cellular network.
336 ShowCellular(cellular, false); 330 ShowCellular(cellular, false);
337 } else { 331 } else {
338 ConnectToNetworkAt(index, std::string(), std::string(), -1); 332 ConnectToNetworkAt(index, std::string(), std::string(), -1);
339 } 333 }
340 } 334 }
341 } 335 }
342 336
(...skipping 79 matching lines...)
422 416
423 void NetworkMenu::InitMenuItems() { 417 void NetworkMenu::InitMenuItems() {
424 // This gets called on initialization, so any changes should be reflected 418 // This gets called on initialization, so any changes should be reflected
425 // in CrosMock::SetNetworkLibraryStatusAreaExpectations(). 419 // in CrosMock::SetNetworkLibraryStatusAreaExpectations().
426 420
427 menu_items_.clear(); 421 menu_items_.clear();
428 // Populate our MenuItems with the current list of wifi networks. 422 // Populate our MenuItems with the current list of wifi networks.
429 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); 423 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
430 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 424 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
431 425
432 bool no_networks = true; 426 // Ethernet
433 string16 label; 427 bool ethernet_connected = cros->ethernet_connected();
428 bool ethernet_connecting = cros->ethernet_connecting();
429 string16 label = l10n_util::GetStringUTF16(
430 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET);
431 SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK);
432 SkBitmap badge = ethernet_connecting || ethernet_connected ?
433 SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
434 int flag = FLAG_ETHERNET;
435 if (ethernet_connecting || ethernet_connected)
436 flag |= FLAG_ASSOCIATED;
437 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
438 IconForDisplay(icon, badge), std::string(), flag));
434 439
435 // Ethernet 440 // Wifi
436 bool ethernet_available = cros->ethernet_available(); 441 const WifiNetworkVector& wifi_networks = cros->wifi_networks();
437 if (ethernet_available) { 442 const WifiNetwork& active_wifi = cros->wifi_network();
438 no_networks = false; 443 // Wifi networks ssids.
439 bool ethernet_connected = cros->ethernet_connected(); 444 for (size_t i = 0; i < wifi_networks.size(); ++i) {
440 bool ethernet_connecting = cros->ethernet_connecting(); 445 label = ASCIIToUTF16(wifi_networks[i].name());
441 446 SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength(), true);
442 if (ethernet_connecting) { 447 SkBitmap badge = wifi_networks[i].encrypted() ?
443 label = l10n_util::GetStringFUTF16( 448 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap();
444 IDS_STATUSBAR_NETWORK_DEVICE_STATUS, 449 flag = FLAG_WIFI;
445 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET), 450 if (wifi_networks[i].service_path() == active_wifi.service_path())
446 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING));
447 } else {
448 label = l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET);
449 }
450 SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK);
451 SkBitmap badge = ethernet_connecting || ethernet_connected ?
452 SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
453 int flag = FLAG_ETHERNET;
454 if (ethernet_connecting || ethernet_connected)
455 flag |= FLAG_ASSOCIATED; 451 flag |= FLAG_ASSOCIATED;
456 menu_items_.push_back( 452 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
457 MenuItem(menus::MenuModel::TYPE_COMMAND, label, 453 IconForDisplay(icon, badge), wifi_networks[i].service_path(), flag));
458 IconForDisplay(icon, badge), std::string(), flag));
459 } 454 }
460 455
461 // Wifi Networks 456 // Cellular
462 bool wifi_available = cros->wifi_available(); 457 const CellularNetworkVector& cell_networks = cros->cellular_networks();
463 if (wifi_available) { 458 const CellularNetwork& active_cellular = cros->cellular_network();
464 const WifiNetworkVector& wifi_networks = cros->wifi_networks(); 459 // Cellular networks ssids.
465 const WifiNetwork& active_wifi = cros->wifi_network(); 460 for (size_t i = 0; i < cell_networks.size(); ++i) {
466 461 label = ASCIIToUTF16(cell_networks[i].name());
467 if (wifi_networks.size() > 0) { 462 SkBitmap icon = IconForNetworkStrength(cell_networks[i].strength(), true);
468 no_networks = false; 463 // TODO(chocobo): Check cellular network 3g/edge.
469 // Separator 464 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
470 menu_items_.push_back(MenuItem()); 465 // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE);
471 } 466 flag = FLAG_CELLULAR;
472 // List Wifi networks. 467 if (cell_networks[i].service_path() == active_cellular.service_path())
473 for (size_t i = 0; i < wifi_networks.size(); ++i) { 468 flag |= FLAG_ASSOCIATED;
474 if (wifi_networks[i].connecting()) { 469 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
475 label = l10n_util::GetStringFUTF16( 470 IconForDisplay(icon, badge), cell_networks[i].service_path(), flag));
476 IDS_STATUSBAR_NETWORK_DEVICE_STATUS,
477 ASCIIToUTF16(wifi_networks[i].name()),
478 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING));
479 } else {
480 label = ASCIIToUTF16(wifi_networks[i].name());
481 }
482 SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength(), true);
483 SkBitmap badge = wifi_networks[i].encrypted() ?
484 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap();
485 int flag = FLAG_WIFI;
486 if (wifi_networks[i].service_path() == active_wifi.service_path())
487 flag |= FLAG_ASSOCIATED;
488 menu_items_.push_back(
489 MenuItem(menus::MenuModel::TYPE_COMMAND, label,
490 IconForDisplay(icon, badge),
491 wifi_networks[i].service_path(), flag));
492 }
493 }
494
495 // Cellular Networks
496 bool cellular_available = cros->cellular_available();
497 if (cellular_available) {
498 const CellularNetworkVector& cell_networks = cros->cellular_networks();
499 const CellularNetwork& active_cellular = cros->cellular_network();
500
501 if (cell_networks.size() > 0) {
502 no_networks = false;
503 // Separator
504 menu_items_.push_back(MenuItem());
505 }
506 // List Cellular networks.
507 for (size_t i = 0; i < cell_networks.size(); ++i) {
508 chromeos::ActivationState activation_state =
509 cell_networks[i].activation_state();
510 if (activation_state == ACTIVATION_STATE_NOT_ACTIVATED) {
511 label = l10n_util::GetStringFUTF16(
512 IDS_STATUSBAR_NETWORK_DEVICE_ACTIVATE,
513 ASCIIToUTF16(cell_networks[i].name()));
514 } else if (activation_state == ACTIVATION_STATE_PARTIALLY_ACTIVATED ||
515 activation_state == ACTIVATION_STATE_ACTIVATING) {
516 label = l10n_util::GetStringFUTF16(
517 IDS_STATUSBAR_NETWORK_DEVICE_STATUS,
518 ASCIIToUTF16(cell_networks[i].name()),
519 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ACTIVATING));
520 } else if (cell_networks[i].connecting()) {
521 label = l10n_util::GetStringFUTF16(
522 IDS_STATUSBAR_NETWORK_DEVICE_STATUS,
523 ASCIIToUTF16(cell_networks[i].name()),
524 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING));
525 } else {
526 label = ASCIIToUTF16(cell_networks[i].name());
527 }
528 SkBitmap icon = IconForNetworkStrength(cell_networks[i].strength(), true);
529 // TODO(chocobo): Check cellular network 3g/edge.
530 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
531 // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE);
532 int flag = FLAG_CELLULAR;
533 if (cell_networks[i].service_path() == active_cellular.service_path() &&
534 cell_networks[i].connecting() || cell_networks[i].connected())
535 flag |= FLAG_ASSOCIATED;
536 menu_items_.push_back(
537 MenuItem(menus::MenuModel::TYPE_COMMAND, label,
538 IconForDisplay(icon, badge),
539 cell_networks[i].service_path(), flag));
540 }
541 } 471 }
542 472
543 // No networks available message. 473 // No networks available message.
544 if (no_networks) { 474 if (wifi_networks.empty() && cell_networks.empty()) {
545 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, 475 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT,
546 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); 476 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE));
547 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 477 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
548 SkBitmap(), std::string(), FLAG_DISABLED)); 478 SkBitmap(), std::string(), FLAG_DISABLED));
549 } 479 }
550 480
551 // Add network. 481 // Other networks
552 if (wifi_available) { 482 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND,
553 // Separator 483 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_NETWORKS),
484 IconForDisplay(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0_BLACK),
485 SkBitmap()),
486 std::string(), FLAG_OTHER_NETWORK));
487
488 bool wifi_available = cros->wifi_available();
489 bool cellular_available = cros->cellular_available();
490 if (wifi_available || cellular_available) {
491 // Separator.
554 menu_items_.push_back(MenuItem()); 492 menu_items_.push_back(MenuItem());
555 493
556 menu_items_.push_back(MenuItem( 494 // Turn Wifi Off. (only if wifi available)
557 menus::MenuModel::TYPE_COMMAND,
558 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_NETWORKS),
559 IconForDisplay(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0_BLACK),
560 SkBitmap()),
561 std::string(), FLAG_OTHER_NETWORK));
562 }
563
564 // Enable / disable wireless.
565 if (wifi_available || cellular_available) {
566 // Separator
567 menu_items_.push_back(MenuItem());
568
569 if (wifi_available) { 495 if (wifi_available) {
570 int id = cros->wifi_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE : 496 int id = cros->wifi_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE :
571 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE; 497 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE;
572 label = l10n_util::GetStringFUTF16(id, 498 label = l10n_util::GetStringFUTF16(id,
573 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)); 499 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI));
574 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 500 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
575 SkBitmap(), std::string(), FLAG_TOGGLE_WIFI)); 501 SkBitmap(), std::string(), FLAG_TOGGLE_WIFI));
576 } 502 }
577 503
504 // Turn Cellular Off. (only if cellular available)
578 if (cellular_available) { 505 if (cellular_available) {
579 int id = cros->cellular_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE : 506 int id = cros->cellular_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE :
580 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE; 507 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE;
581 label = l10n_util::GetStringFUTF16(id, 508 label = l10n_util::GetStringFUTF16(id,
582 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)); 509 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR));
583 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 510 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
584 SkBitmap(), std::string(), FLAG_TOGGLE_CELLULAR)); 511 SkBitmap(), std::string(), FLAG_TOGGLE_CELLULAR));
585 } 512 }
586 } 513 }
587 514
515 // TODO(chocobo): Uncomment once we figure out how to do offline mode.
588 // Offline mode. 516 // Offline mode.
589 // TODO(chocobo): Uncomment once we figure out how to do offline mode. 517 // menu_items_.push_back(MenuItem(cros->offline_mode() ?
590 // menu_items_.push_back(MenuItem(cros->offline_mode() ? 518 // menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND,
591 // menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND, 519 // l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE),
592 // l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE), 520 // SkBitmap(), std::string(), FLAG_TOGGLE_OFFLINE));
593 // SkBitmap(), std::string(), FLAG_TOGGLE_OFFLINE));
594 521
595 // Network settings. 522 if (cros->Connected() || ShouldOpenButtonOptions()) {
596 if (ShouldOpenButtonOptions()) {
597 // Separator. 523 // Separator.
598 menu_items_.push_back(MenuItem()); 524 menu_items_.push_back(MenuItem());
599 525
600 label = 526 // Network settings.
601 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG); 527 if (ShouldOpenButtonOptions()) {
602 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 528 label =
603 SkBitmap(), std::string(), FLAG_OPTIONS)); 529 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG);
530 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
531 SkBitmap(), std::string(), FLAG_OPTIONS));
532 }
604 } 533 }
605 } 534 }
606 535
607 void NetworkMenu::ShowTabbedNetworkSettings(const Network& network) const { 536 void NetworkMenu::ShowTabbedNetworkSettings(const Network& network) const {
608 Browser* browser = BrowserList::GetLastActive(); 537 Browser* browser = BrowserList::GetLastActive();
609 if (!browser) 538 if (!browser)
610 return; 539 return;
611 std::string page = StringPrintf("%s?servicePath=%s&networkType=%d", 540 std::string page = StringPrintf("%s?servicePath=%s&networkType=%d",
612 chrome::kInternetOptionsSubPage, 541 chrome::kInternetOptionsSubPage,
613 EscapeUrlEncodedData(network.service_path()).c_str(), 542 EscapeUrlEncodedData(network.service_path()).c_str(),
614 network.type()); 543 network.type());
615 browser->ShowOptionsTab(page); 544 browser->ShowOptionsTab(page);
616 } 545 }
617 546
618 // TODO(stevenjb): deprecate this once we've committed to tabbed settings 547 // TODO(stevenjb): deprecate this once we've committed to the embedded
619 // and the embedded menu UI (and fully deprecated NetworkConfigView). 548 // menu UI and fully deprecated NetworkConfigView.
620 // Meanwhile, if MenuUI::IsEnabled() is true, always show the settings UI,
621 // otherwise show NetworkConfigView only to get passwords when not connected.
622 void NetworkMenu::ShowNetworkConfigView(NetworkConfigView* view, 549 void NetworkMenu::ShowNetworkConfigView(NetworkConfigView* view,
623 bool focus_login) const { 550 bool focus_login) const {
624 view->set_browser_mode(IsBrowserMode()); 551 view->set_browser_mode(IsBrowserMode());
625 views::Window* window = browser::CreateViewsWindow( 552 views::Window* window = browser::CreateViewsWindow(
626 GetNativeWindow(), gfx::Rect(), view); 553 GetNativeWindow(), gfx::Rect(), view);
627 window->SetIsAlwaysOnTop(true); 554 window->SetIsAlwaysOnTop(true);
628 window->Show(); 555 window->Show();
629 if (focus_login) 556 if (focus_login)
630 view->SetLoginTextfieldFocus(); 557 view->SetLoginTextfieldFocus();
631 } 558 }
632 559
633 void NetworkMenu::ShowWifi(const WifiNetwork& wifi, bool focus_login) const{ 560 void NetworkMenu::ShowWifi(const WifiNetwork& wifi, bool focus_login) const{
634 if (use_settings_ui_ && 561 if (CommandLine::ForCurrentProcess()->HasSwitch(
635 (MenuUI::IsEnabled() || wifi.connected() || wifi.connecting())) { 562 switches::kEnableTabbedOptions)) {
636 ShowTabbedNetworkSettings(wifi); 563 ShowTabbedNetworkSettings(wifi);
637 } else { 564 } else {
638 ShowNetworkConfigView(new NetworkConfigView(wifi, true), focus_login); 565 ShowNetworkConfigView(new NetworkConfigView(wifi, true), focus_login);
639 } 566 }
640 } 567 }
641 568
642 void NetworkMenu::ShowCellular(const CellularNetwork& cellular, 569 void NetworkMenu::ShowCellular(const CellularNetwork& cellular,
643 bool focus_login) const { 570 bool focus_login) const {
644 if (use_settings_ui_ && 571 if (CommandLine::ForCurrentProcess()->HasSwitch(
645 (MenuUI::IsEnabled() || cellular.connected() || cellular.connecting())) { 572 switches::kEnableTabbedOptions)) {
646 ShowTabbedNetworkSettings(cellular); 573 ShowTabbedNetworkSettings(cellular);
647 } else { 574 } else {
648 ShowNetworkConfigView(new NetworkConfigView(cellular), focus_login); 575 ShowNetworkConfigView(new NetworkConfigView(cellular), focus_login);
649 } 576 }
650 } 577 }
651 578
652 void NetworkMenu::ActivateCellular(const CellularNetwork& cellular) const {
653 Browser* browser = BrowserList::GetLastActive();
654 // TODO?(stevenjb) : specify which service to activate.
655 browser->ShowSingletonTab(GURL(chrome::kChromeUIMobileSetupURL));
656 }
657
658 void NetworkMenu::ShowEthernet(const EthernetNetwork& ethernet) const { 579 void NetworkMenu::ShowEthernet(const EthernetNetwork& ethernet) const {
659 if (use_settings_ui_ && 580 if (CommandLine::ForCurrentProcess()->HasSwitch(
660 (MenuUI::IsEnabled() || ethernet.connected() || ethernet.connecting())) { 581 switches::kEnableTabbedOptions)) {
661 ShowTabbedNetworkSettings(ethernet); 582 ShowTabbedNetworkSettings(ethernet);
662 } else { 583 } else {
663 ShowNetworkConfigView(new NetworkConfigView(ethernet), false); 584 ShowNetworkConfigView(new NetworkConfigView(ethernet), false);
664 } 585 }
665 } 586 }
666 587
667 void NetworkMenu::ShowOther() const { 588 void NetworkMenu::ShowOther() const {
668 if (use_settings_ui_ && MenuUI::IsEnabled()) { 589 if (CommandLine::ForCurrentProcess()->HasSwitch(
590 switches::kEnableTabbedOptions)) {
669 Browser* browser = BrowserList::GetLastActive(); 591 Browser* browser = BrowserList::GetLastActive();
670 if (browser) { 592 if (browser) {
671 std::string page = StringPrintf("%s?networkType=%d", 593 std::string page = StringPrintf("%s?networkType=%d",
672 chrome::kInternetOptionsSubPage, 594 chrome::kInternetOptionsSubPage,
673 chromeos::TYPE_WIFI); 595 chromeos::TYPE_WIFI);
674 browser->ShowOptionsTab(page); 596 browser->ShowOptionsTab(page);
675 } 597 }
676 } else { 598 } else {
677 const bool kFocusLogin = true; 599 const bool kFocusLogin = true;
678 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); 600 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin);
679 } 601 }
680 } 602 }
681 603
682 } // namespace chromeos 604 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/status/network_menu.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine