| OLD | NEW |
| 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 <algorithm> |
| 8 |
| 7 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
| 8 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
| 9 #include "base/command_line.h" | 11 #include "base/command_line.h" |
| 10 #include "base/stringprintf.h" | 12 #include "base/stringprintf.h" |
| 11 #include "base/utf_string_conversions.h" | 13 #include "base/utf_string_conversions.h" |
| 12 #include "chrome/browser/browser.h" | 14 #include "chrome/browser/browser.h" |
| 13 #include "chrome/browser/browser_list.h" | 15 #include "chrome/browser/browser_list.h" |
| 14 #include "chrome/browser/chromeos/cros/cros_library.h" | 16 #include "chrome/browser/chromeos/cros/cros_library.h" |
| 15 #include "chrome/browser/chromeos/dom_ui/network_menu_ui.h" | 17 #include "chrome/browser/chromeos/dom_ui/network_menu_ui.h" |
| 16 #include "chrome/common/chrome_switches.h" | 18 #include "chrome/common/chrome_switches.h" |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 images = kBarsImagesLowData; | 385 images = kBarsImagesLowData; |
| 384 break; | 386 break; |
| 385 case CellularNetwork::DATA_NORMAL: | 387 case CellularNetwork::DATA_NORMAL: |
| 386 images = kBarsImages; | 388 images = kBarsImages; |
| 387 break; | 389 break; |
| 388 } | 390 } |
| 389 return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]); | 391 return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]); |
| 390 } | 392 } |
| 391 | 393 |
| 392 // static | 394 // static |
| 395 // TODO(ers) update for GSM when we have the necessary images |
| 396 SkBitmap NetworkMenu::BadgeForNetworkTechnology( |
| 397 const CellularNetwork* cellular) { |
| 398 |
| 399 int id = -1; |
| 400 if (cellular->network_technology() == NETWORK_TECHNOLOGY_EVDO) { |
| 401 switch (cellular->data_left()) { |
| 402 case CellularNetwork::DATA_NONE: |
| 403 case CellularNetwork::DATA_VERY_LOW: |
| 404 id = IDR_STATUSBAR_NETWORK_3G_ERROR; |
| 405 break; |
| 406 case CellularNetwork::DATA_LOW: |
| 407 id = IDR_STATUSBAR_NETWORK_3G_WARN; |
| 408 break; |
| 409 case CellularNetwork::DATA_NORMAL: |
| 410 id = IDR_STATUSBAR_NETWORK_3G; |
| 411 break; |
| 412 } |
| 413 } else if (cellular->network_technology() == NETWORK_TECHNOLOGY_1XRTT) { |
| 414 switch (cellular->data_left()) { |
| 415 case CellularNetwork::DATA_NONE: |
| 416 case CellularNetwork::DATA_VERY_LOW: |
| 417 id = IDR_STATUSBAR_NETWORK_1X_ERROR; |
| 418 break; |
| 419 case CellularNetwork::DATA_LOW: |
| 420 id = IDR_STATUSBAR_NETWORK_1X_WARN; |
| 421 break; |
| 422 case CellularNetwork::DATA_NORMAL: |
| 423 id = IDR_STATUSBAR_NETWORK_1X; |
| 424 break; |
| 425 } |
| 426 } else { |
| 427 id = -1; |
| 428 } |
| 429 if (id == -1) |
| 430 return SkBitmap(); |
| 431 else |
| 432 return *ResourceBundle::GetSharedInstance().GetBitmapNamed(id); |
| 433 } |
| 434 |
| 435 // static |
| 393 SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) { | 436 SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) { |
| 394 // Draw badge at (14,14). | 437 // Draw badge at (14,14). |
| 395 static const int kBadgeX = 14; | 438 static const int kBadgeX = 14; |
| 396 static const int kBadgeY = 14; | 439 static const int kBadgeY = 14; |
| 397 | 440 |
| 398 gfx::CanvasSkia canvas(icon.width(), icon.height(), false); | 441 gfx::CanvasSkia canvas(icon.width(), icon.height(), false); |
| 399 canvas.DrawBitmapInt(icon, 0, 0); | 442 canvas.DrawBitmapInt(icon, 0, 0); |
| 400 if (!badge.empty()) | 443 if (!badge.empty()) |
| 401 canvas.DrawBitmapInt(badge, kBadgeX, kBadgeY); | 444 canvas.DrawBitmapInt(badge, kBadgeX, kBadgeY); |
| 402 return canvas.ExtractBitmap(); | 445 return canvas.ExtractBitmap(); |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 } else if (cell_networks[i]->connecting()) { | 566 } else if (cell_networks[i]->connecting()) { |
| 524 label = l10n_util::GetStringFUTF16( | 567 label = l10n_util::GetStringFUTF16( |
| 525 IDS_STATUSBAR_NETWORK_DEVICE_STATUS, | 568 IDS_STATUSBAR_NETWORK_DEVICE_STATUS, |
| 526 ASCIIToUTF16(cell_networks[i]->name()), | 569 ASCIIToUTF16(cell_networks[i]->name()), |
| 527 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); | 570 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)); |
| 528 } else { | 571 } else { |
| 529 label = ASCIIToUTF16(cell_networks[i]->name()); | 572 label = ASCIIToUTF16(cell_networks[i]->name()); |
| 530 } | 573 } |
| 531 SkBitmap icon = IconForNetworkStrength(cell_networks[i]->strength(), | 574 SkBitmap icon = IconForNetworkStrength(cell_networks[i]->strength(), |
| 532 true); | 575 true); |
| 533 // TODO(chocobo): Check cellular network 3g/edge. | 576 SkBitmap badge = BadgeForNetworkTechnology(cell_networks[i]); |
| 534 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G); | |
| 535 // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE); | |
| 536 int flag = FLAG_CELLULAR; | 577 int flag = FLAG_CELLULAR; |
| 537 if (active_cellular && | 578 if (active_cellular && |
| 538 cell_networks[i]->service_path() == | 579 cell_networks[i]->service_path() == |
| 539 active_cellular->service_path() && | 580 active_cellular->service_path() && |
| 540 (cell_networks[i]->connecting() || cell_networks[i]->connected())) | 581 (cell_networks[i]->connecting() || cell_networks[i]->connected())) |
| 541 flag |= FLAG_ASSOCIATED; | 582 flag |= FLAG_ASSOCIATED; |
| 542 menu_items_.push_back( | 583 menu_items_.push_back( |
| 543 MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 584 MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 544 IconForDisplay(icon, badge), | 585 IconForDisplay(icon, badge), |
| 545 cell_networks[i]->service_path(), flag)); | 586 cell_networks[i]->service_path(), flag)); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 635 bool focus_login) const { | 676 bool focus_login) const { |
| 636 view->set_browser_mode(IsBrowserMode()); | 677 view->set_browser_mode(IsBrowserMode()); |
| 637 views::Window* window = browser::CreateViewsWindow( | 678 views::Window* window = browser::CreateViewsWindow( |
| 638 GetNativeWindow(), gfx::Rect(), view); | 679 GetNativeWindow(), gfx::Rect(), view); |
| 639 window->SetIsAlwaysOnTop(true); | 680 window->SetIsAlwaysOnTop(true); |
| 640 window->Show(); | 681 window->Show(); |
| 641 if (focus_login) | 682 if (focus_login) |
| 642 view->SetLoginTextfieldFocus(); | 683 view->SetLoginTextfieldFocus(); |
| 643 } | 684 } |
| 644 | 685 |
| 645 void NetworkMenu::ShowWifi(const WifiNetwork* wifi, bool focus_login) const{ | 686 void NetworkMenu::ShowWifi(const WifiNetwork* wifi, bool focus_login) const { |
| 646 DCHECK(wifi); | 687 DCHECK(wifi); |
| 647 if (use_settings_ui_ && | 688 if (use_settings_ui_ && |
| 648 (MenuUI::IsEnabled() || wifi->connected() || wifi->connecting())) { | 689 (MenuUI::IsEnabled() || wifi->connected() || wifi->connecting())) { |
| 649 ShowTabbedNetworkSettings(wifi); | 690 ShowTabbedNetworkSettings(wifi); |
| 650 } else { | 691 } else { |
| 651 ShowNetworkConfigView(new NetworkConfigView(wifi, true), focus_login); | 692 ShowNetworkConfigView(new NetworkConfigView(wifi, true), focus_login); |
| 652 } | 693 } |
| 653 } | 694 } |
| 654 | 695 |
| 655 void NetworkMenu::ShowCellular(const CellularNetwork* cellular, | 696 void NetworkMenu::ShowCellular(const CellularNetwork* cellular, |
| 656 bool focus_login) const { | 697 bool focus_login) const { |
| 657 DCHECK(cellular); | 698 DCHECK(cellular); |
| 658 if (use_settings_ui_ && | 699 if (use_settings_ui_ && |
| 659 (MenuUI::IsEnabled() || cellular->connected() || | 700 (MenuUI::IsEnabled() || cellular->connected() || |
| 660 cellular->connecting())) { | 701 cellular->connecting())) { |
| 661 ShowTabbedNetworkSettings(cellular); | 702 ShowTabbedNetworkSettings(cellular); |
| 662 } else { | 703 } else { |
| 663 ShowNetworkConfigView(new NetworkConfigView(cellular), focus_login); | 704 ShowNetworkConfigView(new NetworkConfigView(cellular), focus_login); |
| 664 } | 705 } |
| 665 } | 706 } |
| 666 | 707 |
| 667 void NetworkMenu::ActivateCellular(const CellularNetwork* cellular) const { | 708 void NetworkMenu::ActivateCellular(const CellularNetwork* cellular) const { |
| 668 DCHECK(cellular); | 709 DCHECK(cellular); |
| 669 Browser* browser = BrowserList::GetLastActive(); | 710 Browser* browser = BrowserList::GetLastActive(); |
| 670 // TODO?(stevenjb) : specify which service to activate. | 711 // TODO(stevenjb) : specify which service to activate. |
| 671 browser->ShowSingletonTab(GURL(chrome::kChromeUIMobileSetupURL)); | 712 browser->ShowSingletonTab(GURL(chrome::kChromeUIMobileSetupURL)); |
| 672 } | 713 } |
| 673 | 714 |
| 674 void NetworkMenu::ShowEthernet(const EthernetNetwork* ethernet) const { | 715 void NetworkMenu::ShowEthernet(const EthernetNetwork* ethernet) const { |
| 675 DCHECK(ethernet); | 716 DCHECK(ethernet); |
| 676 if (use_settings_ui_ && | 717 if (use_settings_ui_ && |
| 677 (MenuUI::IsEnabled() || ethernet->connected() || | 718 (MenuUI::IsEnabled() || ethernet->connected() || |
| 678 ethernet->connecting())) { | 719 ethernet->connecting())) { |
| 679 ShowTabbedNetworkSettings(ethernet); | 720 ShowTabbedNetworkSettings(ethernet); |
| 680 } else { | 721 } else { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 691 chromeos::TYPE_WIFI); | 732 chromeos::TYPE_WIFI); |
| 692 browser->ShowOptionsTab(page); | 733 browser->ShowOptionsTab(page); |
| 693 } | 734 } |
| 694 } else { | 735 } else { |
| 695 const bool kFocusLogin = true; | 736 const bool kFocusLogin = true; |
| 696 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); | 737 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); |
| 697 } | 738 } |
| 698 } | 739 } |
| 699 | 740 |
| 700 } // namespace chromeos | 741 } // namespace chromeos |
| OLD | NEW |