diff options
25 files changed, 99 insertions, 19 deletions
diff --git a/chrome/app/theme/statusbar_battery10d.png b/chrome/app/theme/statusbar_battery10d.png Binary files differindex 223e208..e37679f 100644 --- a/chrome/app/theme/statusbar_battery10d.png +++ b/chrome/app/theme/statusbar_battery10d.png diff --git a/chrome/app/theme/statusbar_battery12d.png b/chrome/app/theme/statusbar_battery12d.png Binary files differindex 4b86391..adccd5a 100644 --- a/chrome/app/theme/statusbar_battery12d.png +++ b/chrome/app/theme/statusbar_battery12d.png diff --git a/chrome/app/theme/statusbar_battery1d.png b/chrome/app/theme/statusbar_battery1d.png Binary files differindex 53a6f39..76dbe2f 100644 --- a/chrome/app/theme/statusbar_battery1d.png +++ b/chrome/app/theme/statusbar_battery1d.png diff --git a/chrome/app/theme/statusbar_battery3d.png b/chrome/app/theme/statusbar_battery3d.png Binary files differindex 46ea25d..799adda 100644 --- a/chrome/app/theme/statusbar_battery3d.png +++ b/chrome/app/theme/statusbar_battery3d.png diff --git a/chrome/app/theme/statusbar_battery5d.png b/chrome/app/theme/statusbar_battery5d.png Binary files differindex 298e5f5..3a1ca72 100644 --- a/chrome/app/theme/statusbar_battery5d.png +++ b/chrome/app/theme/statusbar_battery5d.png diff --git a/chrome/app/theme/statusbar_battery_charged.png b/chrome/app/theme/statusbar_battery_charged.png Binary files differindex 603eeb9..0a08c91 100644 --- a/chrome/app/theme/statusbar_battery_charged.png +++ b/chrome/app/theme/statusbar_battery_charged.png diff --git a/chrome/app/theme/statusbar_battery_pressed.png b/chrome/app/theme/statusbar_battery_pressed.png Binary files differnew file mode 100644 index 0000000..412473b --- /dev/null +++ b/chrome/app/theme/statusbar_battery_pressed.png diff --git a/chrome/app/theme/statusbar_network_bars0.png b/chrome/app/theme/statusbar_network_bars0.png Binary files differindex 2b64fec..ab7d56c 100644 --- a/chrome/app/theme/statusbar_network_bars0.png +++ b/chrome/app/theme/statusbar_network_bars0.png diff --git a/chrome/app/theme/statusbar_network_bars0b.png b/chrome/app/theme/statusbar_network_bars0b.png Binary files differindex 9d5440b..a775b6d 100644 --- a/chrome/app/theme/statusbar_network_bars0b.png +++ b/chrome/app/theme/statusbar_network_bars0b.png diff --git a/chrome/app/theme/statusbar_network_bars5.png b/chrome/app/theme/statusbar_network_bars5.png Binary files differindex 23da50e..beedc50 100644 --- a/chrome/app/theme/statusbar_network_bars5.png +++ b/chrome/app/theme/statusbar_network_bars5.png diff --git a/chrome/app/theme/statusbar_network_bars8b.png b/chrome/app/theme/statusbar_network_bars8b.png Binary files differindex cce6a45..a1e5ef1 100644 --- a/chrome/app/theme/statusbar_network_bars8b.png +++ b/chrome/app/theme/statusbar_network_bars8b.png diff --git a/chrome/app/theme/statusbar_network_bars_pressed.png b/chrome/app/theme/statusbar_network_bars_pressed.png Binary files differnew file mode 100644 index 0000000..d5df7e0 --- /dev/null +++ b/chrome/app/theme/statusbar_network_bars_pressed.png diff --git a/chrome/app/theme/statusbar_network_secure.png b/chrome/app/theme/statusbar_network_secure.png Binary files differnew file mode 100644 index 0000000..511fc72 --- /dev/null +++ b/chrome/app/theme/statusbar_network_secure.png diff --git a/chrome/app/theme/statusbar_network_wired_pressed.png b/chrome/app/theme/statusbar_network_wired_pressed.png Binary files differnew file mode 100644 index 0000000..efc73b7 --- /dev/null +++ b/chrome/app/theme/statusbar_network_wired_pressed.png diff --git a/chrome/app/theme/statusbar_pressed.png b/chrome/app/theme/statusbar_pressed.png Binary files differdeleted file mode 100644 index 7da4caa..0000000 --- a/chrome/app/theme/statusbar_pressed.png +++ /dev/null diff --git a/chrome/app/theme/statusbar_wired.png b/chrome/app/theme/statusbar_wired.png Binary files differindex 60aecb8..85f41d9 100644 --- a/chrome/app/theme/statusbar_wired.png +++ b/chrome/app/theme/statusbar_wired.png diff --git a/chrome/app/theme/statusbar_wiredb.png b/chrome/app/theme/statusbar_wiredb.png Binary files differindex f625cda..2b28c5b 100644 --- a/chrome/app/theme/statusbar_wiredb.png +++ b/chrome/app/theme/statusbar_wiredb.png 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. |