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

Unified Diff: ash/system/chromeos/settings/tray_settings.cc

Issue 18176013: chromeos: Refactor system tray code into PowerStatus. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove virtual Created 7 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
« no previous file with comments | « ash/system/chromeos/settings/tray_settings.h ('k') | chromeos/dbus/power_manager_client.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/chromeos/settings/tray_settings.cc
diff --git a/ash/system/chromeos/settings/tray_settings.cc b/ash/system/chromeos/settings/tray_settings.cc
index b44e13defb1c6e05cb336b00fa97723fa7316a35..8153aeae81e767da60c7d54719e9fadd07137c2c 100644
--- a/ash/system/chromeos/settings/tray_settings.cc
+++ b/ash/system/chromeos/settings/tray_settings.cc
@@ -30,12 +30,14 @@ namespace internal {
namespace tray {
-class SettingsDefaultView : public ActionableView {
+class SettingsDefaultView : public ActionableView,
+ public PowerStatus::Observer {
public:
explicit SettingsDefaultView(user::LoginStatus status)
: login_status_(status),
label_(NULL),
power_status_view_(NULL) {
+ PowerStatus::Get()->AddObserver(this);
SetLayoutManager(new views::BoxLayout(views::BoxLayout::kHorizontal,
ash::kTrayPopupPaddingHorizontal, 0,
ash::kTrayPopupPaddingBetweenItems));
@@ -58,27 +60,16 @@ class SettingsDefaultView : public ActionableView {
power_view_right_align = true;
}
- chromeos::PowerSupplyStatus power_status =
- PowerStatus::Get()->GetPowerSupplyStatus();
- if (power_status.battery_is_present) {
+ if (PowerStatus::Get()->IsBatteryPresent()) {
power_status_view_ = new ash::internal::PowerStatusView(
ash::internal::PowerStatusView::VIEW_DEFAULT, power_view_right_align);
AddChildView(power_status_view_);
- UpdatePowerStatus(power_status);
+ OnPowerStatusChanged();
}
}
- virtual ~SettingsDefaultView() {}
-
- void UpdatePowerStatus(const chromeos::PowerSupplyStatus& status) {
- if (!power_status_view_)
- return;
- power_status_view_->UpdatePowerStatus(status);
- base::string16 accessible_name = label_ ?
- label_->text() + ASCIIToUTF16(", ") +
- power_status_view_->accessible_name() :
- power_status_view_->accessible_name();
- SetAccessibleName(accessible_name);
+ virtual ~SettingsDefaultView() {
+ PowerStatus::Get()->RemoveObserver(this);
}
// Overridden from ash::internal::ActionableView.
@@ -112,6 +103,18 @@ class SettingsDefaultView : public ActionableView {
Layout();
}
+ // Overridden from PowerStatus::Observer.
+ virtual void OnPowerStatusChanged() OVERRIDE {
+ if (!PowerStatus::Get()->IsBatteryPresent())
+ return;
+
+ base::string16 accessible_name = label_ ?
+ label_->text() + ASCIIToUTF16(", ") +
+ PowerStatus::Get()->GetAccessibleNameString() :
+ PowerStatus::Get()->GetAccessibleNameString();
+ SetAccessibleName(accessible_name);
+ }
+
private:
user::LoginStatus login_status_;
views::Label* label_;
@@ -125,11 +128,9 @@ class SettingsDefaultView : public ActionableView {
TraySettings::TraySettings(SystemTray* system_tray)
: SystemTrayItem(system_tray),
default_view_(NULL) {
- PowerStatus::Get()->AddObserver(this);
}
TraySettings::~TraySettings() {
- PowerStatus::Get()->RemoveObserver(this);
}
views::View* TraySettings::CreateTrayView(user::LoginStatus status) {
@@ -138,7 +139,7 @@ views::View* TraySettings::CreateTrayView(user::LoginStatus status) {
views::View* TraySettings::CreateDefaultView(user::LoginStatus status) {
if ((status == user::LOGGED_IN_NONE || status == user::LOGGED_IN_LOCKED) &&
- !PowerStatus::Get()->GetPowerSupplyStatus().battery_is_present)
+ !PowerStatus::Get()->IsBatteryPresent())
return NULL;
CHECK(default_view_ == NULL);
@@ -164,11 +165,5 @@ void TraySettings::DestroyDetailedView() {
void TraySettings::UpdateAfterLoginStatusChange(user::LoginStatus status) {
}
-void TraySettings::OnPowerStatusChanged(
- const chromeos::PowerSupplyStatus& status) {
- if (default_view_)
- default_view_->UpdatePowerStatus(status);
-}
-
} // namespace internal
} // namespace ash
« no previous file with comments | « ash/system/chromeos/settings/tray_settings.h ('k') | chromeos/dbus/power_manager_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698