summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/theme/statusbar_battery10d.pngbin578 -> 570 bytes
-rw-r--r--chrome/app/theme/statusbar_battery12d.pngbin591 -> 588 bytes
-rw-r--r--chrome/app/theme/statusbar_battery1d.pngbin646 -> 645 bytes
-rw-r--r--chrome/app/theme/statusbar_battery3d.pngbin654 -> 653 bytes
-rw-r--r--chrome/app/theme/statusbar_battery5d.pngbin658 -> 659 bytes
-rw-r--r--chrome/app/theme/statusbar_battery_charged.pngbin470 -> 476 bytes
-rw-r--r--chrome/app/theme/statusbar_battery_pressed.pngbin0 -> 470 bytes
-rw-r--r--chrome/app/theme/statusbar_network_bars0.pngbin290 -> 283 bytes
-rw-r--r--chrome/app/theme/statusbar_network_bars0b.pngbin213 -> 219 bytes
-rw-r--r--chrome/app/theme/statusbar_network_bars5.pngbin415 -> 415 bytes
-rw-r--r--chrome/app/theme/statusbar_network_bars8b.pngbin228 -> 229 bytes
-rw-r--r--chrome/app/theme/statusbar_network_bars_pressed.pngbin0 -> 366 bytes
-rw-r--r--chrome/app/theme/statusbar_network_secure.pngbin0 -> 168 bytes
-rw-r--r--chrome/app/theme/statusbar_network_wired_pressed.pngbin0 -> 284 bytes
-rw-r--r--chrome/app/theme/statusbar_pressed.pngbin541 -> 0 bytes
-rw-r--r--chrome/app/theme/statusbar_wired.pngbin299 -> 292 bytes
-rw-r--r--chrome/app/theme/statusbar_wiredb.pngbin223 -> 170 bytes
-rw-r--r--chrome/app/theme/theme_resources.grd7
-rw-r--r--chrome/browser/chromeos/options/internet_page_view.cc44
-rw-r--r--chrome/browser/chromeos/status/network_menu_button.cc25
-rw-r--r--chrome/browser/chromeos/status/network_menu_button.h19
-rw-r--r--chrome/browser/chromeos/status/power_menu_button.cc11
-rw-r--r--chrome/browser/chromeos/status/power_menu_button.h4
-rw-r--r--chrome/browser/chromeos/status/status_area_button.cc3
-rw-r--r--chrome/browser/chromeos/status/status_area_button.h5
25 files changed, 99 insertions, 19 deletions
diff --git a/chrome/app/theme/statusbar_battery10d.png b/chrome/app/theme/statusbar_battery10d.png
index 223e208..e37679f 100644
--- a/chrome/app/theme/statusbar_battery10d.png
+++ b/chrome/app/theme/statusbar_battery10d.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_battery12d.png b/chrome/app/theme/statusbar_battery12d.png
index 4b86391..adccd5a 100644
--- a/chrome/app/theme/statusbar_battery12d.png
+++ b/chrome/app/theme/statusbar_battery12d.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_battery1d.png b/chrome/app/theme/statusbar_battery1d.png
index 53a6f39..76dbe2f 100644
--- a/chrome/app/theme/statusbar_battery1d.png
+++ b/chrome/app/theme/statusbar_battery1d.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_battery3d.png b/chrome/app/theme/statusbar_battery3d.png
index 46ea25d..799adda 100644
--- a/chrome/app/theme/statusbar_battery3d.png
+++ b/chrome/app/theme/statusbar_battery3d.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_battery5d.png b/chrome/app/theme/statusbar_battery5d.png
index 298e5f5..3a1ca72 100644
--- a/chrome/app/theme/statusbar_battery5d.png
+++ b/chrome/app/theme/statusbar_battery5d.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_battery_charged.png b/chrome/app/theme/statusbar_battery_charged.png
index 603eeb9..0a08c91 100644
--- a/chrome/app/theme/statusbar_battery_charged.png
+++ b/chrome/app/theme/statusbar_battery_charged.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_battery_pressed.png b/chrome/app/theme/statusbar_battery_pressed.png
new file mode 100644
index 0000000..412473b
--- /dev/null
+++ b/chrome/app/theme/statusbar_battery_pressed.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_network_bars0.png b/chrome/app/theme/statusbar_network_bars0.png
index 2b64fec..ab7d56c 100644
--- a/chrome/app/theme/statusbar_network_bars0.png
+++ b/chrome/app/theme/statusbar_network_bars0.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_network_bars0b.png b/chrome/app/theme/statusbar_network_bars0b.png
index 9d5440b..a775b6d 100644
--- a/chrome/app/theme/statusbar_network_bars0b.png
+++ b/chrome/app/theme/statusbar_network_bars0b.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_network_bars5.png b/chrome/app/theme/statusbar_network_bars5.png
index 23da50e..beedc50 100644
--- a/chrome/app/theme/statusbar_network_bars5.png
+++ b/chrome/app/theme/statusbar_network_bars5.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_network_bars8b.png b/chrome/app/theme/statusbar_network_bars8b.png
index cce6a45..a1e5ef1 100644
--- a/chrome/app/theme/statusbar_network_bars8b.png
+++ b/chrome/app/theme/statusbar_network_bars8b.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_network_bars_pressed.png b/chrome/app/theme/statusbar_network_bars_pressed.png
new file mode 100644
index 0000000..d5df7e0
--- /dev/null
+++ b/chrome/app/theme/statusbar_network_bars_pressed.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_network_secure.png b/chrome/app/theme/statusbar_network_secure.png
new file mode 100644
index 0000000..511fc72
--- /dev/null
+++ b/chrome/app/theme/statusbar_network_secure.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_network_wired_pressed.png b/chrome/app/theme/statusbar_network_wired_pressed.png
new file mode 100644
index 0000000..efc73b7
--- /dev/null
+++ b/chrome/app/theme/statusbar_network_wired_pressed.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_pressed.png b/chrome/app/theme/statusbar_pressed.png
deleted file mode 100644
index 7da4caa..0000000
--- a/chrome/app/theme/statusbar_pressed.png
+++ /dev/null
Binary files differ
diff --git a/chrome/app/theme/statusbar_wired.png b/chrome/app/theme/statusbar_wired.png
index 60aecb8..85f41d9 100644
--- a/chrome/app/theme/statusbar_wired.png
+++ b/chrome/app/theme/statusbar_wired.png
Binary files differ
diff --git a/chrome/app/theme/statusbar_wiredb.png b/chrome/app/theme/statusbar_wiredb.png
index f625cda..2b28c5b 100644
--- a/chrome/app/theme/statusbar_wiredb.png
+++ b/chrome/app/theme/statusbar_wiredb.png
Binary files differ
diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd
index 8e23064..c449373 100644
--- a/chrome/app/theme/theme_resources.grd
+++ b/chrome/app/theme/theme_resources.grd
@@ -365,10 +365,10 @@
<include name="IDR_COMPACTNAV_SEPARATOR" file="compactnav_separator.png" type="BINDATA" />
<include name="IDR_STATUSBAR_MENU" file="statusbar_menu.png" type="BINDATA" />
- <include name="IDR_STATUSBAR_PRESSED" file="statusbar_pressed.png" type="BINDATA" />
<include name="IDR_STATUSBAR_BATTERY_CHARGED" file="statusbar_battery_charged.png" type="BINDATA" />
- <include name="IDR_STATUSBAR_BATTERY_UNKNOWN" file="statusbar_battery_unknown.png" type="BINDATA" />
<include name="IDR_STATUSBAR_BATTERY_MISSING" file="statusbar_battery_missing.png" type="BINDATA" />
+ <include name="IDR_STATUSBAR_BATTERY_PRESSED" file="statusbar_battery_pressed.png" type="BINDATA" />
+ <include name="IDR_STATUSBAR_BATTERY_UNKNOWN" file="statusbar_battery_unknown.png" type="BINDATA" />
<include name="IDR_STATUSBAR_BATTERY_CHARGING_1" file="statusbar_battery1c.png" type="BINDATA" />
<include name="IDR_STATUSBAR_BATTERY_CHARGING_2" file="statusbar_battery2c.png" type="BINDATA" />
<include name="IDR_STATUSBAR_BATTERY_CHARGING_3" file="statusbar_battery3c.png" type="BINDATA" />
@@ -413,10 +413,13 @@
<include name="IDR_STATUSBAR_NETWORK_BARS7_BLACK" file="statusbar_network_bars7b.png" type="BINDATA" />
<include name="IDR_STATUSBAR_NETWORK_BARS8_BLACK" file="statusbar_network_bars8b.png" type="BINDATA" />
<include name="IDR_STATUSBAR_NETWORK_BARS9_BLACK" file="statusbar_network_bars9b.png" type="BINDATA" />
+ <include name="IDR_STATUSBAR_NETWORK_BARS_PRESSED" file="statusbar_network_bars_pressed.png" type="BINDATA" />
<include name="IDR_STATUSBAR_NETWORK_DISCONNECTED" file="statusbar_network_disconnected.png" type="BINDATA" />
<include name="IDR_STATUSBAR_NETWORK_WARNING" file="statusbar_network_warning.png" type="BINDATA" />
+ <include name="IDR_STATUSBAR_NETWORK_SECURE" file="statusbar_network_secure.png" type="BINDATA" />
<include name="IDR_STATUSBAR_NETWORK_EDGE" file="statusbar_network_edge.png" type="BINDATA" />
<include name="IDR_STATUSBAR_NETWORK_3G" file="statusbar_network_3g.png" type="BINDATA" />
+ <include name="IDR_STATUSBAR_NETWORK_WIRED_PRESSED" file="statusbar_network_wired_pressed.png" type="BINDATA" />
<include name="IDR_STATUSBAR_WIRED" file="statusbar_wired.png" type="BINDATA" />
<include name="IDR_STATUSBAR_WIRED_BLACK" file="statusbar_wiredb.png" type="BINDATA" />
<include name="IDR_FILEBROWSER_BACK" file="filebrowse_back.png" type="BINDATA" />
diff --git a/chrome/browser/chromeos/options/internet_page_view.cc b/chrome/browser/chromeos/options/internet_page_view.cc
index 22eb479..a32bb59 100644
--- a/chrome/browser/chromeos/options/internet_page_view.cc
+++ b/chrome/browser/chromeos/options/internet_page_view.cc
@@ -9,10 +9,13 @@
#include "app/combobox_model.h"
#include "chrome/browser/chromeos/cros/network_library.h"
#include "chrome/browser/chromeos/options/ip_config_view.h"
+#include "chrome/browser/chromeos/status/network_menu_button.h"
#include "chrome/browser/chromeos/status/password_dialog_view.h"
#include "grit/generated_resources.h"
+#include "grit/theme_resources.h"
#include "views/controls/button/native_button.h"
#include "views/controls/combobox/combobox.h"
+#include "views/controls/image_view.h"
#include "views/window/window.h"
namespace chromeos {
@@ -94,6 +97,11 @@ class NetworkSection : public SettingsPageSection,
// This method will change the combobox selection to the passed in wifi ssid.
void SelectWifi(const std::string& wifi_ssid);
+ // Network icons
+ views::ImageView* ethernet_icon_;
+ views::ImageView* wifi_icon_;
+ views::ImageView* cellular_icon_;
+
// Status labels
views::Label* ethernet_status_label_;
views::Label* wifi_status_label_;
@@ -196,7 +204,15 @@ bool NetworkSection::OnPasswordDialogAccept(const std::string& ssid,
}
void NetworkSection::NetworkChanged(NetworkLibrary* obj) {
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance();
+
// Ethernet status.
+ SkBitmap ethernet_icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK);
+ SkBitmap ethernet_badge =
+ obj->ethernet_connecting() || obj->ethernet_connected() ?
+ SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
+ ethernet_icon_->SetImage(NetworkMenuButton::IconForDisplay(ethernet_icon,
+ ethernet_badge));
int status;
if (obj->ethernet_connecting())
status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING;
@@ -209,6 +225,13 @@ void NetworkSection::NetworkChanged(NetworkLibrary* obj) {
ethernet_status_label_->SetText(l10n_util::GetString(status));
// Wifi status.
+ SkBitmap wifi_icon = obj->wifi_connecting() || obj->wifi_connected() ?
+ NetworkMenuButton::IconForNetworkStrength(obj->wifi_strength(), true) :
+ *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0);
+ SkBitmap wifi_badge = obj->wifi_connecting() || obj->wifi_connected() ?
+ SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
+ wifi_icon_->SetImage(NetworkMenuButton::IconForDisplay(wifi_icon,
+ wifi_badge));
if (obj->wifi_connecting())
status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING;
else if (obj->wifi_connected())
@@ -220,6 +243,15 @@ void NetworkSection::NetworkChanged(NetworkLibrary* obj) {
wifi_status_label_->SetText(l10n_util::GetString(status));
// Cellular status.
+ SkBitmap cellular_icon =
+ obj->cellular_connecting() || obj->cellular_connected() ?
+ NetworkMenuButton::IconForNetworkStrength(obj->cellular_strength(), true)
+ : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0);
+ SkBitmap cellular_badge =
+ obj->cellular_connecting() || obj->cellular_connected() ?
+ SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
+ cellular_icon_->SetImage(NetworkMenuButton::IconForDisplay(cellular_icon,
+ cellular_badge));
status = IDS_STATUSBAR_NETWORK_DEVICE_DISABLED;
if (obj->cellular_connecting())
status = IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING;
@@ -238,6 +270,9 @@ void NetworkSection::NetworkChanged(NetworkLibrary* obj) {
void NetworkSection::InitContents(GridLayout* layout) {
int quad_column_view_set_id = 1;
ColumnSet* column_set = layout->AddColumnSet(quad_column_view_set_id);
+ // icon
+ column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
+ GridLayout::USE_PREF, 0, 0);
// device
column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
GridLayout::USE_PREF, 0, 0);
@@ -256,6 +291,8 @@ void NetworkSection::InitContents(GridLayout* layout) {
// Ethernet
layout->StartRow(0, quad_column_view_set_id);
+ ethernet_icon_ = new views::ImageView();
+ layout->AddView(ethernet_icon_, 1, 2);
views::Label* label = new views::Label(l10n_util::GetString(
IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET));
label->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
@@ -266,6 +303,7 @@ void NetworkSection::InitContents(GridLayout* layout) {
layout->AddView(ethernet_options_button_, 1, 2);
layout->StartRow(0, quad_column_view_set_id);
+ layout->SkipColumns(1);
ethernet_status_label_ = new views::Label();
ethernet_status_label_->SetFont(rb.GetFont(ResourceBundle::SmallFont));
ethernet_status_label_->SetColor(SK_ColorLTGRAY);
@@ -275,6 +313,8 @@ void NetworkSection::InitContents(GridLayout* layout) {
// Wifi
layout->StartRow(0, quad_column_view_set_id);
+ wifi_icon_ = new views::ImageView();
+ layout->AddView(wifi_icon_, 1, 2);
label = new views::Label(l10n_util::GetString(
IDS_STATUSBAR_NETWORK_DEVICE_WIFI));
label->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
@@ -289,6 +329,7 @@ void NetworkSection::InitContents(GridLayout* layout) {
layout->AddView(wifi_options_button_, 1, 2);
layout->StartRow(0, quad_column_view_set_id);
+ layout->SkipColumns(1);
wifi_status_label_ = new views::Label();
wifi_status_label_->SetFont(rb.GetFont(ResourceBundle::SmallFont));
wifi_status_label_->SetColor(SK_ColorLTGRAY);
@@ -298,6 +339,8 @@ void NetworkSection::InitContents(GridLayout* layout) {
// Cellular
layout->StartRow(0, quad_column_view_set_id);
+ cellular_icon_ = new views::ImageView();
+ layout->AddView(cellular_icon_, 1, 2);
label = new views::Label(l10n_util::GetString(
IDS_STATUSBAR_NETWORK_DEVICE_CELLULAR));
label->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
@@ -308,6 +351,7 @@ void NetworkSection::InitContents(GridLayout* layout) {
layout->AddView(cellular_options_button_, 1, 2);
layout->StartRow(0, quad_column_view_set_id);
+ layout->SkipColumns(1);
cellular_status_label_ = new views::Label();
cellular_status_label_->SetFont(rb.GetFont(ResourceBundle::SmallFont));
cellular_status_label_->SetColor(SK_ColorLTGRAY);
diff --git a/chrome/browser/chromeos/status/network_menu_button.cc b/chrome/browser/chromeos/status/network_menu_button.cc
index 8ed86c9..4b498d7 100644
--- a/chrome/browser/chromeos/status/network_menu_button.cc
+++ b/chrome/browser/chromeos/status/network_menu_button.cc
@@ -69,10 +69,7 @@ bool NetworkMenuButton::IsItemCheckedAt(int index) const {
bool NetworkMenuButton::GetIconAt(int index, SkBitmap* icon) const {
if (!menu_items_[index].icon.empty()) {
- // 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);
+ *icon = menu_items_[index].icon;
return true;
}
return false;
@@ -166,6 +163,22 @@ void NetworkMenuButton::AnimationProgressed(const Animation* animation) {
////////////////////////////////////////////////////////////////////////////////
// NetworkMenuButton, StatusAreaButton implementation:
+void NetworkMenuButton::DrawPressed(gfx::Canvas* canvas) {
+ // If ethernet connected and not current connecting, then show ethernet
+ // pressed icon. Otherwise, show the bars pressed icon.
+ if (NetworkLibrary::Get()->ethernet_connected() &&
+ !animation_connecting_.IsAnimating())
+ canvas->DrawBitmapInt(IconForDisplay(
+ *ResourceBundle::GetSharedInstance().
+ GetBitmapNamed(IDR_STATUSBAR_NETWORK_WIRED_PRESSED), SkBitmap()),
+ 0, 0);
+ else
+ canvas->DrawBitmapInt(IconForDisplay(
+ *ResourceBundle::GetSharedInstance().
+ GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS_PRESSED), SkBitmap()),
+ 0, 0);
+}
+
void NetworkMenuButton::DrawIcon(gfx::Canvas* canvas) {
canvas->DrawBitmapInt(IconForDisplay(icon(), badge()), 0, 0);
}
@@ -394,10 +407,12 @@ void NetworkMenuButton::InitMenuItems() {
for (size_t i = 0; i < wifi_networks.size(); ++i) {
label = ASCIIToUTF16(wifi_networks[i].ssid);
SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength, true);
+ SkBitmap badge = wifi_networks[i].encrypted ?
+ *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap();
flag = (wifi_networks[i].ssid == cros->wifi_ssid()) ?
FLAG_WIFI | FLAG_ASSOCIATED : FLAG_WIFI;
menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
- IconForDisplay(icon, SkBitmap()), wifi_networks[i], CellularNetwork(),
+ IconForDisplay(icon, badge), wifi_networks[i], CellularNetwork(),
flag));
}
diff --git a/chrome/browser/chromeos/status/network_menu_button.h b/chrome/browser/chromeos/status/network_menu_button.h
index c206818..e16e677 100644
--- a/chrome/browser/chromeos/status/network_menu_button.h
+++ b/chrome/browser/chromeos/status/network_menu_button.h
@@ -93,12 +93,22 @@ class NetworkMenuButton : public StatusAreaButton,
virtual void NetworkChanged(NetworkLibrary* obj);
virtual void NetworkTraffic(NetworkLibrary* cros, int traffic_type);
+ // Returns the Icon for a network strength between 0 and 100.
+ // |black| is used to specify whether to return a black icon for display
+ // on a light background or a white icon for display on a dark background.
+ static SkBitmap IconForNetworkStrength(int strength, bool black);
+
+ // This method will convert the |icon| bitmap to the correct size for display.
+ // If the |badge| icon is not empty, it will draw that on top of the icon.
+ static SkBitmap IconForDisplay(SkBitmap icon, SkBitmap badge);
+
// Sets the badge icon.
void SetBadge(const SkBitmap& badge);
SkBitmap badge() const { return badge_; }
protected:
// StatusAreaButton implementation.
+ virtual void DrawPressed(gfx::Canvas* canvas);
virtual void DrawIcon(gfx::Canvas* canvas);
private:
@@ -138,15 +148,6 @@ class NetworkMenuButton : public StatusAreaButton,
};
typedef std::vector<MenuItem> MenuItemVector;
- // Returns the Icon for a network strength between 0 and 100.
- // |black| is used to specify whether to return a black icon for display
- // on a light background or a white icon for display on a dark background.
- static SkBitmap IconForNetworkStrength(int strength, bool black);
-
- // This method will convert the |icon| bitmap to the correct size for display.
- // If the |badge| icon is not empty, it will draw that on top of the icon.
- static SkBitmap IconForDisplay(SkBitmap icon, SkBitmap badge);
-
// views::ViewMenuDelegate implementation.
virtual void RunMenu(views::View* source, const gfx::Point& pt);
diff --git a/chrome/browser/chromeos/status/power_menu_button.cc b/chrome/browser/chromeos/status/power_menu_button.cc
index b0345ee..b277654 100644
--- a/chrome/browser/chromeos/status/power_menu_button.cc
+++ b/chrome/browser/chromeos/status/power_menu_button.cc
@@ -103,12 +103,21 @@ void PowerMenuButton::PowerChanged(PowerLibrary* obj) {
////////////////////////////////////////////////////////////////////////////////
// PowerMenuButton, StatusAreaButton implementation:
+void PowerMenuButton::DrawPressed(gfx::Canvas* canvas) {
+ DrawPowerIcon(canvas, *ResourceBundle::GetSharedInstance().
+ GetBitmapNamed(IDR_STATUSBAR_BATTERY_PRESSED));
+}
+
void PowerMenuButton::DrawIcon(gfx::Canvas* canvas) {
+ DrawPowerIcon(canvas, icon());
+}
+
+void PowerMenuButton::DrawPowerIcon(gfx::Canvas* canvas, SkBitmap icon) {
// Draw the battery icon 6 pixels down to center it.
// Because the status icon is 24x24 but the images are 24x16.
// But since the images are shifted up by 4 pixels, we draw at 6 pixels down.
static const int kIconVerticalPadding = 6;
- canvas->DrawBitmapInt(icon(), 0, kIconVerticalPadding);
+ canvas->DrawBitmapInt(icon, 0, kIconVerticalPadding);
}
void PowerMenuButton::UpdateIcon() {
diff --git a/chrome/browser/chromeos/status/power_menu_button.h b/chrome/browser/chromeos/status/power_menu_button.h
index 1828f1f..0a0c98d 100644
--- a/chrome/browser/chromeos/status/power_menu_button.h
+++ b/chrome/browser/chromeos/status/power_menu_button.h
@@ -48,12 +48,16 @@ class PowerMenuButton : public StatusAreaButton,
protected:
// StatusAreaButton implementation.
+ virtual void DrawPressed(gfx::Canvas* canvas);
virtual void DrawIcon(gfx::Canvas* canvas);
private:
// views::ViewMenuDelegate implementation.
virtual void RunMenu(views::View* source, const gfx::Point& pt);
+ // This method will draw the |icon| in the appropriate place on the |canvas|.
+ void DrawPowerIcon(gfx::Canvas* canvas, SkBitmap icon);
+
// Update the power icon depending on the power status.
void UpdateIcon();
diff --git a/chrome/browser/chromeos/status/status_area_button.cc b/chrome/browser/chromeos/status/status_area_button.cc
index d779eea..8a695b1 100644
--- a/chrome/browser/chromeos/status/status_area_button.cc
+++ b/chrome/browser/chromeos/status/status_area_button.cc
@@ -24,8 +24,7 @@ StatusAreaButton::StatusAreaButton(views::ViewMenuDelegate* menu_delegate)
void StatusAreaButton::Paint(gfx::Canvas* canvas, bool for_drag) {
if (state() == BS_PUSHED) {
- canvas->DrawBitmapInt(*ResourceBundle::GetSharedInstance().
- GetBitmapNamed(IDR_STATUSBAR_PRESSED), 0, 0);
+ DrawPressed(canvas);
}
DrawIcon(canvas);
}
diff --git a/chrome/browser/chromeos/status/status_area_button.h b/chrome/browser/chromeos/status/status_area_button.h
index cb7728d..b751653 100644
--- a/chrome/browser/chromeos/status/status_area_button.h
+++ b/chrome/browser/chromeos/status/status_area_button.h
@@ -20,6 +20,11 @@ class StatusAreaButton : public views::MenuButton {
virtual gfx::Size GetPreferredSize();
protected:
+ // Draws the pressed icon. This is called before DrawIcon if the state is
+ // pressed. Subclasses should override this method if they need to draw a
+ // pressed icon.
+ virtual void DrawPressed(gfx::Canvas* canvas) {}
+
// Draws the icon for this status area button on the canvas.
// Subclasses should override this method if they need to draw their own icon.
// Otherwise, just call SetIcon() and the it will be handled for you.