Chromium Code Reviews| 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_button.h" | 5 #include "chrome/browser/chromeos/status/network_menu_button.h" |
| 6 | 6 |
| 7 #include <algorithm> | |
|
dhg
2010/08/12 15:47:25
Whats this used for?
| |
| 7 #include <limits> | 8 #include <limits> |
| 8 | 9 |
| 9 #include "app/l10n_util.h" | 10 #include "app/l10n_util.h" |
| 10 #include "app/resource_bundle.h" | 11 #include "app/resource_bundle.h" |
| 11 #include "base/string_util.h" | 12 #include "base/string_util.h" |
| 12 #include "base/utf_string_conversions.h" | 13 #include "base/utf_string_conversions.h" |
| 13 #include "chrome/browser/chromeos/cros/cros_library.h" | 14 #include "chrome/browser/chromeos/cros/cros_library.h" |
| 14 #include "chrome/browser/chromeos/options/network_config_view.h" | 15 #include "chrome/browser/chromeos/options/network_config_view.h" |
| 15 #include "chrome/browser/chromeos/status/status_area_host.h" | 16 #include "chrome/browser/chromeos/status/status_area_host.h" |
| 16 #include "gfx/canvas_skia.h" | 17 #include "gfx/canvas_skia.h" |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 340 refreshing_menu_ = false; | 341 refreshing_menu_ = false; |
| 341 network_menu_.RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT); | 342 network_menu_.RunMenuAt(pt, views::Menu2::ALIGN_TOPRIGHT); |
| 342 } | 343 } |
| 343 | 344 |
| 344 void NetworkMenuButton::InitMenuItems() { | 345 void NetworkMenuButton::InitMenuItems() { |
| 345 menu_items_.clear(); | 346 menu_items_.clear(); |
| 346 // Populate our MenuItems with the current list of wifi networks. | 347 // Populate our MenuItems with the current list of wifi networks. |
| 347 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); | 348 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); |
| 348 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 349 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 349 | 350 |
| 350 // Ethernet | 351 // Ethernet (if enabled, which means it's available)) |
| 351 string16 label = l10n_util::GetStringUTF16( | 352 if (cros->ethernet_enabled()) { |
| 352 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); | 353 string16 label = l10n_util::GetStringUTF16( |
| 353 SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK); | 354 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); |
| 354 SkBitmap badge = cros->ethernet_connecting() || cros->ethernet_connected() ? | 355 SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK); |
| 355 SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED); | 356 SkBitmap badge = cros->ethernet_connecting() || cros->ethernet_connected() ? |
| 356 int flag = (cros->ethernet_connecting() || cros->ethernet_connected()) ? | 357 SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED); |
| 357 FLAG_ETHERNET | FLAG_ASSOCIATED : FLAG_ETHERNET; | 358 int flag = (cros->ethernet_connecting() || cros->ethernet_connected()) ? |
| 358 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 359 FLAG_ETHERNET | FLAG_ASSOCIATED : FLAG_ETHERNET; |
| 359 IconForDisplay(icon, badge), std::string(), flag)); | 360 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 361 IconForDisplay(icon, badge), std::string(), flag)); | |
| 362 } | |
| 360 | 363 |
| 361 // Wifi | 364 // Wifi |
| 362 const WifiNetworkVector& wifi_networks = cros->wifi_networks(); | 365 const WifiNetworkVector& wifi_networks = cros->wifi_networks(); |
| 363 // Wifi networks ssids. | 366 // Wifi networks ssids. |
| 364 for (size_t i = 0; i < wifi_networks.size(); ++i) { | 367 for (size_t i = 0; i < wifi_networks.size(); ++i) { |
| 365 label = ASCIIToUTF16(wifi_networks[i].name()); | 368 string16 label = ASCIIToUTF16(wifi_networks[i].name()); |
| 366 SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength(), true); | 369 SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength(), true); |
| 367 SkBitmap badge = wifi_networks[i].encrypted() ? | 370 SkBitmap badge = wifi_networks[i].encrypted() ? |
| 368 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap(); | 371 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap(); |
| 369 flag = (wifi_networks[i].name() == cros->wifi_name()) ? | 372 int flag = (wifi_networks[i].name() == cros->wifi_name()) ? |
| 370 FLAG_WIFI | FLAG_ASSOCIATED : FLAG_WIFI; | 373 FLAG_WIFI | FLAG_ASSOCIATED : FLAG_WIFI; |
| 371 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 374 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 372 IconForDisplay(icon, badge), wifi_networks[i].service_path(), flag)); | 375 IconForDisplay(icon, badge), wifi_networks[i].service_path(), flag)); |
| 373 } | 376 } |
| 374 | 377 |
| 375 // Cellular | 378 // Cellular |
| 376 const CellularNetworkVector& cell_networks = cros->cellular_networks(); | 379 const CellularNetworkVector& cell_networks = cros->cellular_networks(); |
| 377 // Cellular networks ssids. | 380 // Cellular networks ssids. |
| 378 for (size_t i = 0; i < cell_networks.size(); ++i) { | 381 for (size_t i = 0; i < cell_networks.size(); ++i) { |
| 379 label = ASCIIToUTF16(cell_networks[i].name()); | 382 string16 label = ASCIIToUTF16(cell_networks[i].name()); |
| 380 SkBitmap icon = IconForNetworkStrength(cell_networks[i].strength(), true); | 383 SkBitmap icon = IconForNetworkStrength(cell_networks[i].strength(), true); |
| 381 // TODO(chocobo): Check cellular network 3g/edge. | 384 // TODO(chocobo): Check cellular network 3g/edge. |
| 382 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G); | 385 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G); |
| 383 // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE); | 386 // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE); |
| 384 flag = (cell_networks[i].name() == cros->cellular_name()) ? | 387 int flag = (cell_networks[i].name() == cros->cellular_name()) ? |
| 385 FLAG_CELLULAR | FLAG_ASSOCIATED : FLAG_CELLULAR; | 388 FLAG_CELLULAR | FLAG_ASSOCIATED : FLAG_CELLULAR; |
| 386 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 389 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 387 IconForDisplay(icon, badge), cell_networks[i].service_path(), flag)); | 390 IconForDisplay(icon, badge), cell_networks[i].service_path(), flag)); |
| 388 } | 391 } |
| 389 | 392 |
| 390 // No networks available message. | 393 // No networks available message. |
| 391 if (wifi_networks.empty() && cell_networks.empty()) { | 394 if (wifi_networks.empty() && cell_networks.empty()) { |
| 392 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | 395 string16 label = l10n_util::GetStringFUTF16( |
| 393 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); | 396 IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, |
| 397 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); | |
| 394 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 398 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 395 SkBitmap(), std::string(), FLAG_DISABLED)); | 399 SkBitmap(), std::string(), FLAG_DISABLED)); |
| 396 } | 400 } |
| 397 | 401 |
| 398 // Other networks | 402 // Add "Other..." if wifi is enabled. |
| 399 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, | 403 if (cros->wifi_enabled()) { |
| 400 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_NETWORKS), | 404 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, |
| 401 IconForDisplay(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0), | 405 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_NETWORKS), |
| 402 SkBitmap()), | 406 IconForDisplay(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0), |
| 403 std::string(), FLAG_OTHER_NETWORK)); | 407 SkBitmap()), |
| 408 std::string(), FLAG_OTHER_NETWORK)); | |
| 409 } | |
| 404 | 410 |
| 405 if (cros->wifi_available() || cros->cellular_available()) { | 411 if (cros->wifi_available() || cros->cellular_available()) { |
| 406 // Separator. | 412 // Separator. |
| 407 menu_items_.push_back(MenuItem()); | 413 menu_items_.push_back(MenuItem()); |
| 408 | 414 |
| 409 // Turn Wifi Off. (only if wifi available) | 415 // Turn Wifi Off. (only if wifi available) |
| 410 if (cros->wifi_available()) { | 416 if (cros->wifi_available()) { |
| 411 int id = cros->wifi_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE : | 417 int id = cros->wifi_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE : |
| 412 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE; | 418 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE; |
| 413 label = l10n_util::GetStringFUTF16(id, | 419 string16 label = l10n_util::GetStringFUTF16(id, |
| 414 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)); | 420 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)); |
| 415 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 421 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 416 SkBitmap(), std::string(), FLAG_TOGGLE_WIFI)); | 422 SkBitmap(), std::string(), FLAG_TOGGLE_WIFI)); |
| 417 } | 423 } |
| 418 | 424 |
| 419 // Turn Cellular Off. (only if cellular available) | 425 // Turn Cellular Off. (only if cellular available) |
| 420 if (cros->cellular_available()) { | 426 if (cros->cellular_available()) { |
| 421 int id = cros->cellular_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE : | 427 int id = cros->cellular_enabled() ? IDS_STATUSBAR_NETWORK_DEVICE_DISABLE : |
| 422 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE; | 428 IDS_STATUSBAR_NETWORK_DEVICE_ENABLE; |
| 423 label = l10n_util::GetStringFUTF16(id, | 429 string16 label = l10n_util::GetStringFUTF16(id, |
| 424 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)); | 430 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)); |
| 425 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 431 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 426 SkBitmap(), std::string(), FLAG_TOGGLE_CELLULAR)); | 432 SkBitmap(), std::string(), FLAG_TOGGLE_CELLULAR)); |
| 427 } | 433 } |
| 428 } | 434 } |
| 429 | 435 |
| 430 // TODO(chocobo): Uncomment once we figure out how to do offline mode. | 436 // TODO(chocobo): Uncomment once we figure out how to do offline mode. |
| 431 // Offline mode. | 437 // Offline mode. |
| 432 // menu_items_.push_back(MenuItem(cros->offline_mode() ? | 438 // menu_items_.push_back(MenuItem(cros->offline_mode() ? |
| 433 // menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND, | 439 // menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND, |
| 434 // l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE), | 440 // l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE), |
| 435 // SkBitmap(), std::string(), FLAG_TOGGLE_OFFLINE)); | 441 // SkBitmap(), std::string(), FLAG_TOGGLE_OFFLINE)); |
| 436 | 442 |
| 437 if (cros->Connected() || host_->ShouldOpenButtonOptions(this)) { | 443 if (cros->Connected() || host_->ShouldOpenButtonOptions(this)) { |
| 438 // Separator. | 444 // Separator. |
| 439 menu_items_.push_back(MenuItem()); | 445 menu_items_.push_back(MenuItem()); |
| 440 | 446 |
| 441 // IP address | 447 // IP address |
| 442 if (cros->Connected()) { | 448 if (cros->Connected()) { |
| 443 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, | 449 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, |
| 444 ASCIIToUTF16(cros->IPAddress()), SkBitmap(), | 450 ASCIIToUTF16(cros->IPAddress()), SkBitmap(), |
| 445 std::string(), FLAG_DISABLED)); | 451 std::string(), FLAG_DISABLED)); |
| 446 } | 452 } |
| 447 | 453 |
| 448 // Network settings. | 454 // Network settings. |
| 449 if (host_->ShouldOpenButtonOptions(this)) { | 455 if (host_->ShouldOpenButtonOptions(this)) { |
| 450 label = | 456 string16 label = |
| 451 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG); | 457 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG); |
| 452 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 458 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
| 453 SkBitmap(), std::string(), FLAG_OPTIONS)); | 459 SkBitmap(), std::string(), FLAG_OPTIONS)); |
| 454 } | 460 } |
| 455 } | 461 } |
| 456 } | 462 } |
| 457 | 463 |
| 458 } // namespace chromeos | 464 } // namespace chromeos |
| OLD | NEW |