| Index: chrome/browser/chromeos/status/network_menu_button.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/status/network_menu_button.cc (revision 39463)
|
| +++ chrome/browser/chromeos/status/network_menu_button.cc (working copy)
|
| @@ -55,6 +55,12 @@
|
| return menu_items_[index].label;
|
| }
|
|
|
| +const gfx::Font* NetworkMenuButton::GetLabelFontAt(int index) const {
|
| + return (menu_items_[index].flags & FLAG_BOLD) ?
|
| + &ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BoldFont) :
|
| + NULL;
|
| +}
|
| +
|
| bool NetworkMenuButton::IsItemCheckedAt(int index) const {
|
| // All menus::MenuModel::TYPE_CHECK menu items are checked.
|
| return true;
|
| @@ -62,7 +68,10 @@
|
|
|
| bool NetworkMenuButton::GetIconAt(int index, SkBitmap* icon) const {
|
| if (!menu_items_[index].icon.empty()) {
|
| - *icon = menu_items_[index].icon;
|
| + // Make icon smaller (if necessary) to look better in the menu.
|
| + static const int kMinSize = 8;
|
| + *icon = SkBitmapOperations::DownsampleByTwoUntilSize(
|
| + menu_items_[index].icon, kMinSize, kMinSize);
|
| return true;
|
| }
|
| return false;
|
| @@ -87,7 +96,7 @@
|
| cros->EnableCellularNetworkDevice(!cros->cellular_enabled());
|
| } else if (menu_items_[index].flags & FLAG_TOGGLE_OFFLINE) {
|
| cros->EnableOfflineMode(!cros->offline_mode());
|
| - } else if (menu_items_[index].flags & FLAG_ACTIVATE_WIFI) {
|
| + } else if (menu_items_[index].flags & FLAG_WIFI) {
|
| activated_wifi_network_ = menu_items_[index].wifi_network;
|
|
|
| // If clicked on a network that we are already connected to or we are
|
| @@ -112,7 +121,12 @@
|
| window->SetBounds(gfx::Rect(point, size), parent_window_);
|
| window->Show();
|
| }
|
| - } else if (menu_items_[index].flags & FLAG_ACTIVATE_CELLULAR) {
|
| + } else if (menu_items_[index].flags & FLAG_CELLULAR) {
|
| + // If clicked on a network that we are already connected to or we are
|
| + // currently trying to connect to, then do nothing.
|
| + if (menu_items_[index].cellular_network.name == cros->cellular_name())
|
| + return;
|
| +
|
| cros->ConnectToCellularNetwork(menu_items_[index].cellular_network);
|
| }
|
| }
|
| @@ -348,156 +362,86 @@
|
| NetworkLibrary* cros = NetworkLibrary::Get();
|
| ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
|
|
| - bool offline_mode = cros->offline_mode();
|
| -
|
| - // Wifi: Status.
|
| - int status = IDS_STATUSBAR_NETWORK_DEVICE_DISABLED;
|
| - if (cros->wifi_connecting())
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING;
|
| - else if (cros->wifi_connected())
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED;
|
| - else if (cros->wifi_enabled())
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED;
|
| - string16 label =
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_STATUS,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI),
|
| - l10n_util::GetStringUTF16(status));
|
| - SkBitmap icon = cros->wifi_connected() ?
|
| - IconForNetworkStrength(cros->wifi_strength(), true) :
|
| + // Ethernet
|
| + string16 label = l10n_util::GetStringUTF16(
|
| + IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET);
|
| + SkBitmap icon = cros->ethernet_connecting() || cros->ethernet_connected() ?
|
| + *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK) :
|
| *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
|
| + int flag = (cros->ethernet_connecting() || cros->ethernet_connected()) ?
|
| + FLAG_ETHERNET & FLAG_BOLD : FLAG_ETHERNET;
|
| menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - icon, WifiNetwork(), CellularNetwork(), FLAG_DISABLED));
|
| + icon, WifiNetwork(), CellularNetwork(), flag));
|
|
|
| - // Turn Wifi Off.
|
| - if (!offline_mode) {
|
| - label = cros->wifi_enabled() ?
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)) :
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI));
|
| + // Wifi
|
| + const WifiNetworkVector& wifi_networks = cros->wifi_networks();
|
| + // Wifi networks ssids.
|
| + for (size_t i = 0; i < wifi_networks.size(); ++i) {
|
| + label = ASCIIToUTF16(wifi_networks[i].ssid);
|
| + flag = (wifi_networks[i].ssid == cros->wifi_ssid()) ?
|
| + FLAG_WIFI & FLAG_BOLD : FLAG_WIFI;
|
| menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_WIFI));
|
| + IconForNetworkStrength(wifi_networks[i].strength, true),
|
| + wifi_networks[i], CellularNetwork(), flag));
|
| + }
|
|
|
| - const WifiNetworkVector& networks = cros->wifi_networks();
|
| - // Wifi networks ssids.
|
| - if (networks.empty()) {
|
| - // No networks available message.
|
| - label =
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE));
|
| - menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_DISABLED));
|
| - } else {
|
| - for (size_t i = 0; i < networks.size(); ++i) {
|
| - label =
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT,
|
| - ASCIIToUTF16(networks[i].ssid));
|
| - if (networks[i].ssid == cros->wifi_ssid()) {
|
| - menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_CHECK, label,
|
| - SkBitmap(), networks[i], CellularNetwork(), FLAG_ACTIVATE_WIFI));
|
| - } else {
|
| - menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - SkBitmap(), networks[i], CellularNetwork(), FLAG_ACTIVATE_WIFI));
|
| - }
|
| - }
|
| - }
|
| -
|
| - // Separator.
|
| - menu_items_.push_back(MenuItem());
|
| + // Cellular
|
| + const CellularNetworkVector& cell_networks = cros->cellular_networks();
|
| + // Cellular networks ssids.
|
| + for (size_t i = 0; i < cell_networks.size(); ++i) {
|
| + label = ASCIIToUTF16(cell_networks[i].name);
|
| + flag = (cell_networks[i].name == cros->cellular_name()) ?
|
| + FLAG_CELLULAR & FLAG_BOLD : FLAG_CELLULAR;
|
| + menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| + IconForNetworkStrength(cell_networks[i].strength, true),
|
| + WifiNetwork(), cell_networks[i], flag));
|
| }
|
|
|
| - // Cellular: Status.
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_DISABLED;
|
| - if (cros->cellular_connecting())
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING;
|
| - else if (cros->cellular_connected())
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED;
|
| - else if (cros->cellular_enabled())
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED;
|
| - label =
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_STATUS,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR),
|
| - l10n_util::GetStringUTF16(status));
|
| - icon = cros->cellular_connected() ?
|
| - IconForNetworkStrength(cros->cellular_strength(), true) :
|
| - *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
|
| - menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - icon, WifiNetwork(), CellularNetwork(), FLAG_DISABLED));
|
| -
|
| - // Turn Cellular Off.
|
| - if (!offline_mode) {
|
| - label = cros->cellular_enabled() ?
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)) :
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR));
|
| + // No networks available message.
|
| + if (wifi_networks.empty() && cell_networks.empty()) {
|
| + label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT,
|
| + l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE));
|
| menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_CELLULAR));
|
| + SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_DISABLED));
|
| + }
|
|
|
| - const CellularNetworkVector& networks = cros->cellular_networks();
|
| - // Cellular networks ssids.
|
| - if (networks.empty()) {
|
| - // No networks available message.
|
| - label =
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE));
|
| - menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_DISABLED));
|
| - } else {
|
| - for (size_t i = 0; i < networks.size(); ++i) {
|
| - label =
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT,
|
| - ASCIIToUTF16(networks[i].name));
|
| - if (networks[i].name == cros->cellular_name()) {
|
| - menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_CHECK, label,
|
| - SkBitmap(), WifiNetwork(), networks[i], FLAG_ACTIVATE_CELLULAR));
|
| - } else {
|
| - menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - SkBitmap(), WifiNetwork(), networks[i], FLAG_ACTIVATE_CELLULAR));
|
| - }
|
| - }
|
| - }
|
| + // Separator.
|
| + menu_items_.push_back(MenuItem());
|
|
|
| - // Separator.
|
| - menu_items_.push_back(MenuItem());
|
| - }
|
| + // TODO(chocobo): Uncomment once we figure out how to do offline mode.
|
| + // Offline mode.
|
| +// menu_items_.push_back(MenuItem(cros->offline_mode() ?
|
| +// menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND,
|
| +// l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE),
|
| +// SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_OFFLINE));
|
|
|
| - // Ethernet: Status.
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_DISABLED;
|
| - if (cros->ethernet_connecting())
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING;
|
| - else if (cros->ethernet_connected())
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED;
|
| - else if (cros->ethernet_enabled())
|
| - status = IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED;
|
| - label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_STATUS,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET),
|
| - l10n_util::GetStringUTF16(status));
|
| - icon = cros->ethernet_connected() ?
|
| - *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK) :
|
| - *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
|
| + // Turn Wifi Off.
|
| + label = cros->wifi_enabled() ?
|
| + l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE,
|
| + l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI)) :
|
| + l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE,
|
| + l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_WIFI));
|
| menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - icon, WifiNetwork(), CellularNetwork(), FLAG_DISABLED));
|
| + SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_WIFI));
|
|
|
| - // Turn Ethernet Off.
|
| - if (!offline_mode) {
|
| - label = cros->ethernet_enabled() ?
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)) :
|
| - l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET));
|
| - menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| - SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_ETHERNET));
|
| + // Turn Cellular Off.
|
| + label = cros->cellular_enabled() ?
|
| + l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_DISABLE,
|
| + l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR)) :
|
| + l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ENABLE,
|
| + l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR));
|
| + menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| + SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_CELLULAR));
|
|
|
| + // IP address
|
| + if (cros->Connected()) {
|
| // Separator.
|
| menu_items_.push_back(MenuItem());
|
| - }
|
|
|
| - // Offline mode.
|
| - menu_items_.push_back(MenuItem(offline_mode ?
|
| - menus::MenuModel::TYPE_CHECK : menus::MenuModel::TYPE_COMMAND,
|
| - l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OFFLINE_MODE),
|
| - SkBitmap(), WifiNetwork(), CellularNetwork(), FLAG_TOGGLE_OFFLINE));
|
| + menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND,
|
| + ASCIIToUTF16(cros->IPAddress()), SkBitmap(),
|
| + WifiNetwork(), CellularNetwork(), FLAG_DISABLED));
|
| + }
|
| }
|
|
|
| } // namespace chromeos
|
|
|