diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-17 17:39:25 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-17 17:39:25 +0000 |
commit | a0bd3fbc565acf25bfb77e6240d89ab4d24c5399 (patch) | |
tree | 84a7baab8427802519d1470d167def5a2f7d5be6 | |
parent | 9c55f7f401c1238d4f7e28f958dd7b0e513eb85d (diff) | |
download | chromium_src-a0bd3fbc565acf25bfb77e6240d89ab4d24c5399.zip chromium_src-a0bd3fbc565acf25bfb77e6240d89ab4d24c5399.tar.gz chromium_src-a0bd3fbc565acf25bfb77e6240d89ab4d24c5399.tar.bz2 |
ash: Make sure the time in the uber tray is updated when the system resumes from suspend.
BUG=110130
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9716015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127368 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ash/ash.gyp | 2 | ||||
-rw-r--r-- | ash/shell.cc | 2 | ||||
-rw-r--r-- | ash/system/power/clock_observer.h | 22 | ||||
-rw-r--r-- | ash/system/power/date_format_observer.h | 19 | ||||
-rw-r--r-- | ash/system/power/tray_power_date.cc | 6 | ||||
-rw-r--r-- | ash/system/power/tray_power_date.h | 7 | ||||
-rw-r--r-- | ash/system/tray/system_tray.cc | 2 | ||||
-rw-r--r-- | ash/system/tray/system_tray.h | 8 | ||||
-rw-r--r-- | chrome/browser/chromeos/system/ash_system_tray_delegate.cc | 13 |
9 files changed, 48 insertions, 33 deletions
diff --git a/ash/ash.gyp b/ash/ash.gyp index bb22570..28284e6 100644 --- a/ash/ash.gyp +++ b/ash/ash.gyp @@ -123,7 +123,7 @@ 'system/network/network_observer.h', 'system/network/tray_network.cc', 'system/network/tray_network.h', - 'system/power/date_format_observer.h', + 'system/power/clock_observer.h', 'system/power/power_status_observer.h', 'system/power/power_supply_status.cc', 'system/power/power_supply_status.h', diff --git a/ash/shell.cc b/ash/shell.cc index 0f6d076..a633b33 100644 --- a/ash/shell.cc +++ b/ash/shell.cc @@ -557,7 +557,7 @@ void Shell::Init() { internal::TrayUser* tray_user = new internal::TrayUser; tray_->audio_observer_ = tray_volume; tray_->brightness_observer_ = tray_brightness; - tray_->date_format_observer_ = tray_power_date; + tray_->clock_observer_ = tray_power_date; tray_->network_observer_ = tray_network; tray_->power_status_observer_ = tray_power_date; tray_->update_observer_ = tray_user; diff --git a/ash/system/power/clock_observer.h b/ash/system/power/clock_observer.h new file mode 100644 index 0000000..15747f0 --- /dev/null +++ b/ash/system/power/clock_observer.h @@ -0,0 +1,22 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_SYSTEM_POWER_CLOCK_OBSERVER_H_ +#define ASH_SYSTEM_POWER_CLOCK_OBSERVER_H_ + +namespace ash { + +class ClockObserver { + public: + virtual ~ClockObserver() {} + + virtual void OnDateFormatChanged() = 0; + + // Force a refresh (e.g. after the system is resumed). + virtual void Refresh() = 0; +}; + +}; + +#endif // ASH_SYSTEM_POWER_CLOCK_OBSERVER_H_ diff --git a/ash/system/power/date_format_observer.h b/ash/system/power/date_format_observer.h deleted file mode 100644 index dd45a4f..0000000 --- a/ash/system/power/date_format_observer.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef ASH_SYSTEM_POWER_DATE_FORMAT_OBSERVER_H_ -#define ASH_SYSTEM_POWER_DATE_FORMAT_OBSERVER_H_ - -namespace ash { - -class DateFormatObserver { - public: - virtual ~DateFormatObserver() {} - - virtual void OnDateFormatChanged() = 0; -}; - -}; - -#endif // ASH_SYSTEM_POWER_DATE_FORMAT_OBSERVER_H_ diff --git a/ash/system/power/tray_power_date.cc b/ash/system/power/tray_power_date.cc index 6bb8530..e5e3199 100644 --- a/ash/system/power/tray_power_date.cc +++ b/ash/system/power/tray_power_date.cc @@ -105,7 +105,6 @@ class DateView : public views::View { void set_actionable(bool actionable) { actionable_ = actionable; } - private: void UpdateText() { base::Time now = base::Time::Now(); if (type_ == DATE) { @@ -139,6 +138,7 @@ class DateView : public views::View { &DateView::UpdateText); } + private: // Overridden from views::View. virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE { if (!actionable_) @@ -355,5 +355,9 @@ void TrayPowerDate::OnDateFormatChanged() { date_tray_->UpdateTimeFormat(); } +void TrayPowerDate::Refresh() { + date_tray_->UpdateText(); +} + } // namespace internal } // namespace ash diff --git a/ash/system/power/tray_power_date.h b/ash/system/power/tray_power_date.h index 98095f5..bfbc674 100644 --- a/ash/system/power/tray_power_date.h +++ b/ash/system/power/tray_power_date.h @@ -6,7 +6,7 @@ #define ASH_SYSTEM_POWER_TRAY_POWER_DATE_H_ #pragma once -#include "ash/system/power/date_format_observer.h" +#include "ash/system/power/clock_observer.h" #include "ash/system/power/power_status_observer.h" #include "ash/system/tray/system_tray_item.h" @@ -21,7 +21,7 @@ class PowerTrayView; class TrayPowerDate : public SystemTrayItem, public PowerStatusObserver, - public DateFormatObserver { + public ClockObserver { public: TrayPowerDate(); virtual ~TrayPowerDate(); @@ -38,8 +38,9 @@ class TrayPowerDate : public SystemTrayItem, // Overridden from PowerStatusObserver. virtual void OnPowerStatusChanged(const PowerSupplyStatus& status) OVERRIDE; - // Overridden from DateFormatObserver. + // Overridden from ClockObserver. virtual void OnDateFormatChanged() OVERRIDE; + virtual void Refresh() OVERRIDE; scoped_ptr<tray::DateView> date_; scoped_ptr<tray::DateView> date_tray_; diff --git a/ash/system/tray/system_tray.cc b/ash/system/tray/system_tray.cc index 2bc4135..867197ce 100644 --- a/ash/system/tray/system_tray.cc +++ b/ash/system/tray/system_tray.cc @@ -333,7 +333,7 @@ SystemTray::SystemTray() : items_(), audio_observer_(NULL), brightness_observer_(NULL), - date_format_observer_(NULL), + clock_observer_(NULL), network_observer_(NULL), power_status_observer_(NULL), update_observer_(NULL), diff --git a/ash/system/tray/system_tray.h b/ash/system/tray/system_tray.h index 90f0a93..79f90bd 100644 --- a/ash/system/tray/system_tray.h +++ b/ash/system/tray/system_tray.h @@ -19,7 +19,7 @@ namespace ash { class AudioObserver; class BrightnessObserver; -class DateFormatObserver; +class ClockObserver; class NetworkObserver; class PowerStatusObserver; class UpdateObserver; @@ -62,8 +62,8 @@ class ASH_EXPORT SystemTray : public views::View, BrightnessObserver* brightness_observer() const { return brightness_observer_; } - DateFormatObserver* date_format_observer() const { - return date_format_observer_; + ClockObserver* clock_observer() const { + return clock_observer_; } NetworkObserver* network_observer() const { return network_observer_; @@ -99,7 +99,7 @@ class ASH_EXPORT SystemTray : public views::View, // These observers are not owned by the tray. AudioObserver* audio_observer_; BrightnessObserver* brightness_observer_; - DateFormatObserver* date_format_observer_; + ClockObserver* clock_observer_; NetworkObserver* network_observer_; PowerStatusObserver* power_status_observer_; UpdateObserver* update_observer_; diff --git a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc index 87a2fe9..70239a3 100644 --- a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc +++ b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc @@ -9,7 +9,7 @@ #include "ash/system/audio/audio_observer.h" #include "ash/system/brightness/brightness_observer.h" #include "ash/system/network/network_observer.h" -#include "ash/system/power/date_format_observer.h" +#include "ash/system/power/clock_observer.h" #include "ash/system/power/power_status_observer.h" #include "ash/system/tray/system_tray.h" #include "ash/system/tray/system_tray_delegate.h" @@ -354,6 +354,13 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, observer->OnPowerStatusChanged(power_status); } + virtual void SystemResumed() OVERRIDE { + ash::ClockObserver* observer = + ash::Shell::GetInstance()->tray()->clock_observer(); + if (observer) + observer->Refresh(); + } + virtual void LockScreen() OVERRIDE { } @@ -433,8 +440,8 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, case chrome::NOTIFICATION_PREF_CHANGED: { DCHECK_EQ(*content::Details<std::string>(details).ptr(), prefs::kUse24HourClock); - ash::DateFormatObserver* observer = - ash::Shell::GetInstance()->tray()->date_format_observer(); + ash::ClockObserver* observer = + ash::Shell::GetInstance()->tray()->clock_observer(); if (observer) observer->OnDateFormatChanged(); break; |