| 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)
|
|
|