diff options
author | nkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-15 13:42:42 +0000 |
---|---|---|
committer | nkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-15 13:42:42 +0000 |
commit | 54ce29c0a77316ad7e464ab9c1b3e5c196e0d8fa (patch) | |
tree | e9e6aeaf2b46b61f4ff7db32c754e2d100d942e0 /chrome | |
parent | ba45786f91135458a403a52be2aa88ac88fdd8bf (diff) | |
download | chromium_src-54ce29c0a77316ad7e464ab9c1b3e5c196e0d8fa.zip chromium_src-54ce29c0a77316ad7e464ab9c1b3e5c196e0d8fa.tar.gz chromium_src-54ce29c0a77316ad7e464ab9c1b3e5c196e0d8fa.tar.bz2 |
[cros] Display roaming status for cellular network.
Still waiting for "R" badge resource.
BUG=chromium-os:12010
TEST=manual
Review URL: http://codereview.chromium.org/6686044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78204 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/chromeos/cros/network_library.cc | 1 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/network_menu.cc | 36 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/network_menu.h | 12 | ||||
-rw-r--r-- | chrome/browser/chromeos/webui/internet_options_handler.cc | 4 |
4 files changed, 46 insertions, 7 deletions
diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc index 5ced288..3f6c816 100644 --- a/chrome/browser/chromeos/cros/network_library.cc +++ b/chrome/browser/chromeos/cros/network_library.cc @@ -2815,6 +2815,7 @@ class NetworkLibraryImpl : public NetworkLibrary { cellular1->set_payment_url(std::string("http://www.google.com")); cellular1->set_usage_url(std::string("http://www.google.com")); cellular1->set_network_technology(NETWORK_TECHNOLOGY_EVDO); + cellular1->set_roaming_state(ROAMING_STATE_ROAMING); CellularDataPlan* base_plan = new CellularDataPlan(); base_plan->plan_name = "Base plan"; diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc index ed8aa0d..028d36c 100644 --- a/chrome/browser/chromeos/status/network_menu.cc +++ b/chrome/browser/chromeos/status/network_menu.cc @@ -483,19 +483,42 @@ const SkBitmap* NetworkMenu::BadgeForNetworkTechnology( } // static +const SkBitmap* NetworkMenu::BadgeForRoamingStatus( + const CellularNetwork* cellular) { + // TODO(nkostylev): Return "R" badge, http://crosbug.com/12010. + if (cellular->roaming_state() == ROAMING_STATE_ROAMING) + return NULL; + else + return NULL; +} + +// static SkBitmap NetworkMenu::IconForDisplay(const SkBitmap* icon, const SkBitmap* badge) { + return IconForDisplay(icon, badge, NULL); +} + +// static +SkBitmap NetworkMenu::IconForDisplay(const SkBitmap* icon, + const SkBitmap* bottom_right_badge, + const SkBitmap* top_left_badge) { DCHECK(icon); - if (badge == NULL) + if (bottom_right_badge == NULL && top_left_badge == NULL) return *icon; - // Draw badge at (14,14). - static const int kBadgeX = 14; - static const int kBadgeY = 14; + static const int kTopLeftBadgeX = 0; + static const int kTopLeftBadgeY = 0; + static const int kBottomRightBadgeX = 14; + static const int kBottomRightBadgeY = 14; gfx::CanvasSkia canvas(icon->width(), icon->height(), false); canvas.DrawBitmapInt(*icon, 0, 0); - canvas.DrawBitmapInt(*badge, kBadgeX, kBadgeY); + if (bottom_right_badge != NULL) + canvas.DrawBitmapInt(*bottom_right_badge, + kBottomRightBadgeX, + kBottomRightBadgeY); + if (top_left_badge != NULL) + canvas.DrawBitmapInt(*top_left_badge, kTopLeftBadgeX, kTopLeftBadgeY); return canvas.ExtractBitmap(); } @@ -656,6 +679,7 @@ void NetworkMenu::InitMenuItems() { const SkBitmap* icon = IconForNetworkStrength(cell_networks[i], true); const SkBitmap* badge = BadgeForNetworkTechnology(cell_networks[i]); + const SkBitmap* roaming_badge = BadgeForRoamingStatus(cell_networks[i]); int flag = FLAG_CELLULAR; if (!cell_networks[i]->connectable()) flag |= FLAG_DISABLED; @@ -666,7 +690,7 @@ void NetworkMenu::InitMenuItems() { flag |= FLAG_ASSOCIATED; menu_items_.push_back( MenuItem(ui::MenuModel::TYPE_COMMAND, label, - IconForDisplay(icon, badge), + IconForDisplay(icon, badge, roaming_badge), cell_networks[i]->service_path(), flag)); if (isActive) { label.clear(); diff --git a/chrome/browser/chromeos/status/network_menu.h b/chrome/browser/chromeos/status/network_menu.h index 2df6e50..9187799 100644 --- a/chrome/browser/chromeos/status/network_menu.h +++ b/chrome/browser/chromeos/status/network_menu.h @@ -141,11 +141,23 @@ class NetworkMenu : public views::ViewMenuDelegate, // Returns NULL if not badge is needed. static const SkBitmap* BadgeForNetworkTechnology( const CellularNetwork* cellular); + // Returns the Badge for a given network roaming status. + // This returns "R" badge if network is in roaming state, otherwise + // returns NULL. Badge is supposed to be shown on top right of the icon. + static const SkBitmap* BadgeForRoamingStatus(const CellularNetwork* cellular); // This method will convert the |icon| bitmap to the correct size for display. // |icon| must be non-NULL. // If the |badge| icon is not NULL, it will draw that on top of the icon. static SkBitmap IconForDisplay(const SkBitmap* icon, const SkBitmap* badge); + // This method will convert the |icon| bitmap to the correct size for display. + // |icon| must be non-NULL. + // If one of the |bottom_right_badge| or |top_left_badge| icons are not NULL, + // they will be drawn on top of the icon. + static SkBitmap IconForDisplay(const SkBitmap* icon, + const SkBitmap* bottom_right_badge, + const SkBitmap* top_left_badge); + protected: virtual bool IsBrowserMode() const = 0; virtual gfx::NativeWindow GetNativeWindow() const = 0; diff --git a/chrome/browser/chromeos/webui/internet_options_handler.cc b/chrome/browser/chromeos/webui/internet_options_handler.cc index 187467a..c1ce745 100644 --- a/chrome/browser/chromeos/webui/internet_options_handler.cc +++ b/chrome/browser/chromeos/webui/internet_options_handler.cc @@ -972,9 +972,11 @@ ListValue* InternetOptionsHandler::GetWirelessList() { chromeos::NetworkMenu::IconForNetworkStrength(*it, true); const SkBitmap* badge = chromeos::NetworkMenu::BadgeForNetworkTechnology(*it); + const SkBitmap* roaming_badge = + chromeos::NetworkMenu::BadgeForRoamingStatus(*it); list->Append(GetNetwork( (*it)->service_path(), - chromeos::NetworkMenu::IconForDisplay(icon, badge), + chromeos::NetworkMenu::IconForDisplay(icon, badge, roaming_badge), (*it)->name(), (*it)->connecting(), (*it)->connected(), |