summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authornkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-15 13:42:42 +0000
committernkostylev@chromium.org <nkostylev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-15 13:42:42 +0000
commit54ce29c0a77316ad7e464ab9c1b3e5c196e0d8fa (patch)
treee9e6aeaf2b46b61f4ff7db32c754e2d100d942e0 /chrome
parentba45786f91135458a403a52be2aa88ac88fdd8bf (diff)
downloadchromium_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.cc1
-rw-r--r--chrome/browser/chromeos/status/network_menu.cc36
-rw-r--r--chrome/browser/chromeos/status/network_menu.h12
-rw-r--r--chrome/browser/chromeos/webui/internet_options_handler.cc4
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(),