Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Unified Diff: ash/system/power/tray_power.cc

Issue 10540041: Add battery status to settings row in uber tray bubble. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/system/power/tray_power.cc
diff --git a/ash/system/power/tray_power.cc b/ash/system/power/tray_power.cc
index b851a75bbe614394805943b17ed8cb8c0287e7a2..a061809e64253b64620127822bf4db7ae9a6ded4 100644
--- a/ash/system/power/tray_power.cc
+++ b/ash/system/power/tray_power.cc
@@ -7,6 +7,7 @@
#include "ash/ash_switches.h"
#include "ash/shell.h"
#include "ash/system/date/date_view.h"
+#include "ash/system/power/power_status_view.h"
#include "ash/system/power/power_supply_status.h"
#include "ash/system/tray/system_tray_delegate.h"
#include "ash/system/tray/tray_constants.h"
@@ -53,10 +54,7 @@ const int kCriticalSeconds = 5 * 60;
const int kLowPowerSeconds = 15 * 60;
const int kNoWarningSeconds = 30 * 60;
-enum IconSet {
- ICON_LIGHT,
- ICON_DARK
-};
+} // namespace
gfx::ImageSkia GetBatteryImage(const PowerSupplyStatus& supply_status,
IconSet icon_set) {
@@ -87,8 +85,6 @@ gfx::ImageSkia GetBatteryImage(const PowerSupplyStatus& supply_status,
return image;
}
-} // namespace
-
namespace tray {
// This view is used only for the tray.
@@ -121,148 +117,6 @@ class PowerTrayView : public views::ImageView {
DISALLOW_COPY_AND_ASSIGN(PowerTrayView);
};
-// This view is used only for the popup.
-class PowerStatusView : public views::View {
- public:
- enum ViewType {
- VIEW_DEFAULT,
- VIEW_NOTIFICATION
- };
-
- explicit PowerStatusView(ViewType view_type) : icon_(NULL) {
- status_label_ = new views::Label;
- time_label_ = new views::Label;
-
- if (view_type == VIEW_DEFAULT)
- LayoutDefaultView();
- else
- LayoutNotificationView();
-
- Update();
- }
-
- virtual ~PowerStatusView() {
- }
-
- void UpdatePowerStatus(const PowerSupplyStatus& status) {
- supply_status_ = status;
- // Sanitize.
- if (supply_status_.battery_is_full)
- supply_status_.battery_percentage = 100.0;
-
- Update();
- }
-
- private:
- void LayoutDefaultView() {
- set_border(views::Border::CreateEmptyBorder(
- kPaddingVertical, kTrayPopupPaddingHorizontal,
- kPaddingVertical, kTrayPopupPaddingHorizontal));
-
- status_label_->SetHorizontalAlignment(views::Label::ALIGN_RIGHT);
- time_label_->SetHorizontalAlignment(views::Label::ALIGN_RIGHT);
-
- icon_ = new views::ImageView;
-
- views::GridLayout* layout = new views::GridLayout(this);
- SetLayoutManager(layout);
-
- views::ColumnSet* columns = layout->AddColumnSet(0);
-
- columns->AddPaddingColumn(0, kTrayPopupPaddingHorizontal);
- // Status + Time
- columns->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL,
- 0, views::GridLayout::USE_PREF, 0, kLabelMinWidth);
-
- columns->AddPaddingColumn(0, kTrayPopupPaddingHorizontal/2);
-
- // Icon
- columns->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL,
- 0, views::GridLayout::USE_PREF, 0, 0);
-
- columns->AddPaddingColumn(0, kTrayPopupPaddingHorizontal);
-
- layout->AddPaddingRow(0, kPaddingVertical);
-
- layout->StartRow(0, 0);
- layout->AddView(status_label_);
- layout->AddView(icon_, 1, 3); // 3 rows for icon
-
- layout->AddPaddingRow(0, kPaddingVertical/3);
- layout->StartRow(0, 0);
- layout->AddView(time_label_);
-
- layout->AddPaddingRow(0, kPaddingVertical);
- }
-
- void LayoutNotificationView() {
- SetLayoutManager(
- new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 1));
- status_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
- AddChildView(status_label_);
-
- time_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
- AddChildView(time_label_);
- }
-
- void UpdateText() {
- base::TimeDelta time = base::TimeDelta::FromSeconds(
- supply_status_.line_power_on ?
- supply_status_.averaged_battery_time_to_full :
- supply_status_.averaged_battery_time_to_empty);
- int hour = time.InHours();
- int min = (time - base::TimeDelta::FromHours(hour)).InMinutes();
-
- if (supply_status_.line_power_on && !hour && !min) {
- status_label_->SetText(
- ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
- IDS_ASH_STATUS_TRAY_BATTERY_FULL));
- } else {
- status_label_->SetText(
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_BATTERY_PERCENT,
- base::IntToString16(
- static_cast<int>(supply_status_.battery_percentage))));
- }
-
- if (supply_status_.is_calculating_battery_time) {
- time_label_->SetText(
- ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
- IDS_ASH_STATUS_TRAY_BATTERY_CALCULATING));
- } else if (hour || min) {
- time_label_->SetText(
- l10n_util::GetStringFUTF16(
- supply_status_.line_power_on ?
- IDS_ASH_STATUS_TRAY_BATTERY_TIME_UNTIL_FULL :
- IDS_ASH_STATUS_TRAY_BATTERY_TIME_UNTIL_EMPTY,
- base::IntToString16(hour),
- base::IntToString16(min)));
- } else {
- time_label_->SetText(string16());
- }
- }
-
- void UpdateIcon() {
- if (icon_) {
- icon_->SetImage(GetBatteryImage(supply_status_, ICON_DARK));
- icon_->SetVisible(true);
- }
- }
-
- void Update() {
- UpdateText();
- UpdateIcon();
- }
-
- views::Label* status_label_;
- views::Label* time_label_;
- views::ImageView* icon_;
-
- PowerSupplyStatus supply_status_;
-
- DISALLOW_COPY_AND_ASSIGN(PowerStatusView);
-};
-
class PowerNotificationView : public TrayNotificationView {
public:
explicit PowerNotificationView(TrayPower* tray)

Powered by Google App Engine
This is Rietveld 408576698