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

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

Issue 3108011: If ethernet is not available (i.e. no wired nic), don't show ethernet in stat... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 4 months 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
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_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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698