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

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

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