OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/gfx/canvas.h" | 9 #include "app/gfx/canvas.h" |
10 #include "app/gfx/skbitmap_operations.h" | 10 #include "app/gfx/skbitmap_operations.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 } | 48 } |
49 | 49 |
50 menus::MenuModel::ItemType NetworkMenuButton::GetTypeAt(int index) const { | 50 menus::MenuModel::ItemType NetworkMenuButton::GetTypeAt(int index) const { |
51 return menu_items_[index].type; | 51 return menu_items_[index].type; |
52 } | 52 } |
53 | 53 |
54 string16 NetworkMenuButton::GetLabelAt(int index) const { | 54 string16 NetworkMenuButton::GetLabelAt(int index) const { |
55 return menu_items_[index].label; | 55 return menu_items_[index].label; |
56 } | 56 } |
57 | 57 |
| 58 const gfx::Font* NetworkMenuButton::GetLabelFontAt(int index) const { |
| 59 return (menu_items_[index].flags & FLAG_BOLD) ? |
| 60 &ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BoldFont) : |
| 61 NULL; |
| 62 } |
| 63 |
58 bool NetworkMenuButton::IsItemCheckedAt(int index) const { | 64 bool NetworkMenuButton::IsItemCheckedAt(int index) const { |
59 // All menus::MenuModel::TYPE_CHECK menu items are checked. | 65 // All menus::MenuModel::TYPE_CHECK menu items are checked. |
60 return true; | 66 return true; |
61 } | 67 } |
62 | 68 |
63 bool NetworkMenuButton::GetIconAt(int index, SkBitmap* icon) const { | 69 bool NetworkMenuButton::GetIconAt(int index, SkBitmap* icon) const { |
64 if (!menu_items_[index].icon.empty()) { | 70 if (!menu_items_[index].icon.empty()) { |
65 *icon = menu_items_[index].icon; | 71 // Make icon smaller (if necessary) to look better in the menu. |
| 72 static const int kMinSize = 8; |
| 73 *icon = SkBitmapOperations::DownsampleByTwoUntilSize( |
| 74 menu_items_[index].icon, kMinSize, kMinSize); |
66 return true; | 75 return true; |
67 } | 76 } |
68 return false; | 77 return false; |
69 } | 78 } |
70 | 79 |
71 bool NetworkMenuButton::IsEnabledAt(int index) const { | 80 bool NetworkMenuButton::IsEnabledAt(int index) const { |
72 return !(menu_items_[index].flags & FLAG_DISABLED); | 81 return !(menu_items_[index].flags & FLAG_DISABLED); |
73 } | 82 } |
74 | 83 |
75 void NetworkMenuButton::ActivatedAt(int index) { | 84 void NetworkMenuButton::ActivatedAt(int index) { |
76 // When we are refreshing the menu, ignore menu item activation. | 85 // When we are refreshing the menu, ignore menu item activation. |
77 if (refreshing_menu_) | 86 if (refreshing_menu_) |
78 return; | 87 return; |
79 | 88 |
80 NetworkLibrary* cros = NetworkLibrary::Get(); | 89 NetworkLibrary* cros = NetworkLibrary::Get(); |
81 | 90 |
82 if (menu_items_[index].flags & FLAG_TOGGLE_ETHERNET) { | 91 if (menu_items_[index].flags & FLAG_TOGGLE_ETHERNET) { |
83 cros->EnableEthernetNetworkDevice(!cros->ethernet_enabled()); | 92 cros->EnableEthernetNetworkDevice(!cros->ethernet_enabled()); |
84 } else if (menu_items_[index].flags & FLAG_TOGGLE_WIFI) { | 93 } else if (menu_items_[index].flags & FLAG_TOGGLE_WIFI) { |
85 cros->EnableWifiNetworkDevice(!cros->wifi_enabled()); | 94 cros->EnableWifiNetworkDevice(!cros->wifi_enabled()); |
86 } else if (menu_items_[index].flags & FLAG_TOGGLE_CELLULAR) { | 95 } else if (menu_items_[index].flags & FLAG_TOGGLE_CELLULAR) { |
87 cros->EnableCellularNetworkDevice(!cros->cellular_enabled()); | 96 cros->EnableCellularNetworkDevice(!cros->cellular_enabled()); |
88 } else if (menu_items_[index].flags & FLAG_TOGGLE_OFFLINE) { | 97 } else if (menu_items_[index].flags & FLAG_TOGGLE_OFFLINE) { |
89 cros->EnableOfflineMode(!cros->offline_mode()); | 98 cros->EnableOfflineMode(!cros->offline_mode()); |
90 } else if (menu_items_[index].flags & FLAG_ACTIVATE_WIFI) { | 99 } else if (menu_items_[index].flags & FLAG_WIFI) { |
91 activated_wifi_network_ = menu_items_[index].wifi_network; | 100 activated_wifi_network_ = menu_items_[index].wifi_network; |
92 | 101 |
93 // If clicked on a network that we are already connected to or we are | 102 // If clicked on a network that we are already connected to or we are |
94 // currently trying to connect to, then do nothing. | 103 // currently trying to connect to, then do nothing. |
95 if (activated_wifi_network_.ssid == cros->wifi_ssid()) | 104 if (activated_wifi_network_.ssid == cros->wifi_ssid()) |
96 return; | 105 return; |
97 | 106 |
98 // If wifi network is not encrypted, then directly connect. | 107 // If wifi network is not encrypted, then directly connect. |
99 // Otherwise, we open password dialog window. | 108 // Otherwise, we open password dialog window. |
100 if (!activated_wifi_network_.encrypted) { | 109 if (!activated_wifi_network_.encrypted) { |
101 cros->ConnectToWifiNetwork(activated_wifi_network_, string16()); | 110 cros->ConnectToWifiNetwork(activated_wifi_network_, string16()); |
102 } else { | 111 } else { |
103 PasswordDialogView* dialog = new PasswordDialogView(this, | 112 PasswordDialogView* dialog = new PasswordDialogView(this, |
104 activated_wifi_network_.ssid); | 113 activated_wifi_network_.ssid); |
105 views::Window* window = views::Window::CreateChromeWindow(parent_window_, | 114 views::Window* window = views::Window::CreateChromeWindow(parent_window_, |
106 gfx::Rect(), dialog); | 115 gfx::Rect(), dialog); |
107 // Draw the password dialog right below this button and right aligned. | 116 // Draw the password dialog right below this button and right aligned. |
108 gfx::Size size = dialog->GetPreferredSize(); | 117 gfx::Size size = dialog->GetPreferredSize(); |
109 gfx::Rect rect = bounds(); | 118 gfx::Rect rect = bounds(); |
110 gfx::Point point = gfx::Point(rect.width() - size.width(), rect.height()); | 119 gfx::Point point = gfx::Point(rect.width() - size.width(), rect.height()); |
111 ConvertPointToScreen(this, &point); | 120 ConvertPointToScreen(this, &point); |
112 window->SetBounds(gfx::Rect(point, size), parent_window_); | 121 window->SetBounds(gfx::Rect(point, size), parent_window_); |
113 window->Show(); | 122 window->Show(); |
114 } | 123 } |
115 } else if (menu_items_[index].flags & FLAG_ACTIVATE_CELLULAR) { | 124 } else if (menu_items_[index].flags & FLAG_CELLULAR) { |
| 125 // If clicked on a network that we are already connected to or we are |
| 126 // currently trying to connect to, then do nothing. |
| 127 if (menu_items_[index].cellular_network.name == cros->cellular_name()) |
| 128 return; |
| 129 |
116 cros->ConnectToCellularNetwork(menu_items_[index].cellular_network); | 130 cros->ConnectToCellularNetwork(menu_items_[index].cellular_network); |
117 } | 131 } |
118 } | 132 } |
119 | 133 |
120 //////////////////////////////////////////////////////////////////////////////// | 134 //////////////////////////////////////////////////////////////////////////////// |
121 // NetworkMenuButton, PasswordDialogDelegate implementation: | 135 // NetworkMenuButton, PasswordDialogDelegate implementation: |
122 | 136 |
123 bool NetworkMenuButton::OnPasswordDialogAccept(const std::string& ssid, | 137 bool NetworkMenuButton::OnPasswordDialogAccept(const std::string& ssid, |
124 const string16& password) { | 138 const string16& password) { |
125 NetworkLibrary::Get()->ConnectToWifiNetwork(activated_wifi_network_, | 139 NetworkLibrary::Get()->ConnectToWifiNetwork(activated_wifi_network_, |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 refreshing_menu_ = false; | 355 refreshing_menu_ = false; |
342 network_menu_.RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT); | 356 network_menu_.RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT); |
343 } | 357 } |
344 | 358 |
345 void NetworkMenuButton::InitMenuItems() { | 359 void NetworkMenuButton::InitMenuItems() { |
346 menu_items_.clear(); | 360 menu_items_.clear(); |
347 // Populate our MenuItems with the current list of wifi networks. | 361 // Populate our MenuItems with the current list of wifi networks. |
348 NetworkLibrary* cros = NetworkLibrary::Get(); | 362 NetworkLibrary* cros = NetworkLibrary::Get(); |
349 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 363 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
350 | 364 |
351 bool offline_mode = cros->offline_mode(); | 365 // Ethernet |
| 366 string16 label = l10n_util::GetStringUTF16( |
| 367 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); |
| 368 SkBitmap icon = cros->ethernet_connecting() || cros->ethernet_connected() ? |
| 369 *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK) : |
| 370 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED); |
| 371 int flag = (cros->ethernet_connecting() || cros->ethernet_connected()) ? |
| 372 FLAG_ETHERNET & FLAG_BOLD : FLAG_ETHERNET; |
| 373 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 374 icon, WifiNetwork(), CellularNetwork(), flag)); |
352 | 375 |
353 // Wifi: Status. | 376 // Wifi |
354 int status = IDS_STATUSBAR_NETWORK_DEVICE_DISABLED; | 377 const WifiNetworkVector& wifi_networks = cros->wifi_networks(); |
355 if (cros->wifi_connecting()) | 378 // Wifi networks ssids. |
356 status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING; | 379 for (size_t i = 0; i < wifi_networks.size(); ++i) { |
357 else if (cros->wifi_connected()) | 380 label = ASCIIToUTF16(wifi_networks[i].ssid); |
358 status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED; | 381 flag = (wifi_networks[i].ssid == cros->wifi_ssid()) ? |
359 else if (cros->wifi_enabled()) | 382 FLAG_WIFI & FLAG_BOLD : FLAG_WIFI; |
360 status = IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED; | 383 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
361 string16 label = | 384 IconForNetworkStrength(wifi_networks[i].strength, true), |
362 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_STATUS, | 385 wifi_networks[i], CellularNetwork(), flag)); |
363 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI), | 386 } |
364 l10n_util::GetStringUTF16(status)); | 387 |
365 SkBitmap icon = cros->wifi_connected() ? | 388 // Cellular |
366 IconForNetworkStrength(cros->wifi_strength(), true) : | 389 const CellularNetworkVector& cell_networks = cros->cellular_networks(); |
367 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED); | 390 // Cellular networks ssids. |
368 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 391 for (size_t i = 0; i < cell_networks.size(); ++i) { |
369 icon, WifiNetwork(), CellularNetwork(), FLAG_DISABLED)); | 392 label = ASCIIToUTF16(cell_networks[i].name); |
| 393 flag = (cell_networks[i].name == cros->cellular_name()) ? |
| 394 FLAG_CELLULAR & FLAG_BOLD : FLAG_CELLULAR; |
| 395 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 396 IconForNetworkStrength(cell_networks[i].strength, true), |
| 397 WifiNetwork(), cell_networks[i], flag)); |
| 398 } |
| 399 |
| 400 // No networks available message. |
| 401 if (wifi_networks.empty() && cell_networks.empty()) { |
| 402 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, |
| 403 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); |
| 404 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 405 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_DISABLED)); |
| 406 } |
| 407 |
| 408 // Separator. |
| 409 menu_items_.push_back(MenuItem()); |
| 410 |
| 411 // TODO(chocobo): Uncomment once we figure out how to do offline mode. |
| 412 // Offline mode. |
| 413 // menu_items_.push_back(MenuItem(cros->offline_mode() ? |
| 414 // menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND, |
| 415 // l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE), |
| 416 // SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_OFFLINE)); |
370 | 417 |
371 // Turn Wifi Off. | 418 // Turn Wifi Off. |
372 if (!offline_mode) { | 419 label = cros->wifi_enabled() ? |
373 label = cros->wifi_enabled() ? | 420 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE, |
374 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE, | 421 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)) : |
375 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)) : | 422 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE, |
376 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE, | 423 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)); |
377 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)); | 424 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
378 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 425 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_WIFI)); |
379 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_WIFI)); | |
380 | 426 |
381 const WifiNetworkVector& networks = cros->wifi_networks(); | 427 // Turn Cellular Off. |
382 // Wifi networks ssids. | 428 label = cros->cellular_enabled() ? |
383 if (networks.empty()) { | 429 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE, |
384 // No networks available message. | 430 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)) : |
385 label = | 431 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE, |
386 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | 432 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)); |
387 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); | 433 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
388 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 434 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_CELLULAR)); |
389 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_DISABLED)); | |
390 } else { | |
391 for (size_t i = 0; i < networks.size(); ++i) { | |
392 label = | |
393 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | |
394 ASCIIToUTF16(networks[i].ssid)); | |
395 if (networks[i].ssid == cros->wifi_ssid()) { | |
396 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_CHECK, label, | |
397 SkBitmap(), networks[i], CellularNetwork(), FLAG_ACTIVATE_WIFI)); | |
398 } else { | |
399 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | |
400 SkBitmap(), networks[i], CellularNetwork(), FLAG_ACTIVATE_WIFI)); | |
401 } | |
402 } | |
403 } | |
404 | 435 |
| 436 // IP address |
| 437 if (cros->Connected()) { |
405 // Separator. | 438 // Separator. |
406 menu_items_.push_back(MenuItem()); | 439 menu_items_.push_back(MenuItem()); |
| 440 |
| 441 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, |
| 442 ASCIIToUTF16(cros->IPAddress()), SkBitmap(), |
| 443 WifiNetwork(), CellularNetwork(), FLAG_DISABLED)); |
407 } | 444 } |
408 | |
409 // Cellular: Status. | |
410 status = IDS_STATUSBAR_NETWORK_DEVICE_DISABLED; | |
411 if (cros->cellular_connecting()) | |
412 status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING; | |
413 else if (cros->cellular_connected()) | |
414 status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED; | |
415 else if (cros->cellular_enabled()) | |
416 status = IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED; | |
417 label = | |
418 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_STATUS, | |
419 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR), | |
420 l10n_util::GetStringUTF16(status)); | |
421 icon = cros->cellular_connected() ? | |
422 IconForNetworkStrength(cros->cellular_strength(), true) : | |
423 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED); | |
424 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | |
425 icon, WifiNetwork(), CellularNetwork(), FLAG_DISABLED)); | |
426 | |
427 // Turn Cellular Off. | |
428 if (!offline_mode) { | |
429 label = cros->cellular_enabled() ? | |
430 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE, | |
431 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)) : | |
432 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE, | |
433 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)); | |
434 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | |
435 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_CELLULAR)); | |
436 | |
437 const CellularNetworkVector& networks = cros->cellular_networks(); | |
438 // Cellular networks ssids. | |
439 if (networks.empty()) { | |
440 // No networks available message. | |
441 label = | |
442 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | |
443 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); | |
444 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | |
445 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_DISABLED)); | |
446 } else { | |
447 for (size_t i = 0; i < networks.size(); ++i) { | |
448 label = | |
449 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | |
450 ASCIIToUTF16(networks[i].name)); | |
451 if (networks[i].name == cros->cellular_name()) { | |
452 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_CHECK, label, | |
453 SkBitmap(), WifiNetwork(), networks[i], FLAG_ACTIVATE_CELLULAR)); | |
454 } else { | |
455 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | |
456 SkBitmap(), WifiNetwork(), networks[i], FLAG_ACTIVATE_CELLULAR)); | |
457 } | |
458 } | |
459 } | |
460 | |
461 // Separator. | |
462 menu_items_.push_back(MenuItem()); | |
463 } | |
464 | |
465 // Ethernet: Status. | |
466 status = IDS_STATUSBAR_NETWORK_DEVICE_DISABLED; | |
467 if (cros->ethernet_connecting()) | |
468 status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING; | |
469 else if (cros->ethernet_connected()) | |
470 status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED; | |
471 else if (cros->ethernet_enabled()) | |
472 status = IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED; | |
473 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_STATUS, | |
474 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET), | |
475 l10n_util::GetStringUTF16(status)); | |
476 icon = cros->ethernet_connected() ? | |
477 *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK) : | |
478 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED); | |
479 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | |
480 icon, WifiNetwork(), CellularNetwork(), FLAG_DISABLED)); | |
481 | |
482 // Turn Ethernet Off. | |
483 if (!offline_mode) { | |
484 label = cros->ethernet_enabled() ? | |
485 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE, | |
486 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)) : | |
487 l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE, | |
488 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)); | |
489 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | |
490 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_ETHERNET)); | |
491 | |
492 // Separator. | |
493 menu_items_.push_back(MenuItem()); | |
494 } | |
495 | |
496 // Offline mode. | |
497 menu_items_.push_back(MenuItem(offline_mode ? | |
498 menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND, | |
499 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE), | |
500 SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_OFFLINE)); | |
501 } | 445 } |
502 | 446 |
503 } // namespace chromeos | 447 } // namespace chromeos |
OLD | NEW |