diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-14 17:34:18 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-14 17:34:18 +0000 |
commit | 793f5afb536a2dbe02ec15d0b3a48c780d3d6d0e (patch) | |
tree | f0f6ed6c29300e271c43344c1460106704ec2d91 /ash/system/power | |
parent | e379b8a445c2f2da88dd7936c2656801b9b7dee7 (diff) | |
download | chromium_src-793f5afb536a2dbe02ec15d0b3a48c780d3d6d0e.zip chromium_src-793f5afb536a2dbe02ec15d0b3a48c780d3d6d0e.tar.gz chromium_src-793f5afb536a2dbe02ec15d0b3a48c780d3d6d0e.tar.bz2 |
ash: Take the 24h clock pref into consideration when showing the time.
R=ben@chromium.org
BUG=117682
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9702024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126672 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/system/power')
-rw-r--r-- | ash/system/power/date_format_observer.h | 19 | ||||
-rw-r--r-- | ash/system/power/tray_power_date.cc | 27 | ||||
-rw-r--r-- | ash/system/power/tray_power_date.h | 7 |
3 files changed, 43 insertions, 10 deletions
diff --git a/ash/system/power/date_format_observer.h b/ash/system/power/date_format_observer.h new file mode 100644 index 0000000..dd45a4f --- /dev/null +++ b/ash/system/power/date_format_observer.h @@ -0,0 +1,19 @@ +// 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 6e39204..1894f536 100644 --- a/ash/system/power/tray_power_date.cc +++ b/ash/system/power/tray_power_date.cc @@ -79,8 +79,9 @@ class DateView : public views::View { DATE }; - DateView(base::HourClockType hour_type, TimeType type) - : hour_type_(hour_type), + explicit DateView(TimeType type) + : hour_type_(ash::Shell::GetInstance()->tray_delegate()-> + GetHourClockType()), type_(type), actionable_(false) { SetLayoutManager(new views::FillLayout()); @@ -93,6 +94,11 @@ class DateView : public views::View { timer_.Stop(); } + void UpdateTimeFormat() { + hour_type_ = ash::Shell::GetInstance()->tray_delegate()->GetHourClockType(); + UpdateText(); + } + views::Label* label() const { return label_; } void set_actionable(bool actionable) { actionable_ = actionable; } @@ -100,11 +106,11 @@ class DateView : public views::View { private: void UpdateText() { base::Time now = base::Time::Now(); - if (type_ == TIME) { + if (type_ == DATE) { + label_->SetText(FormatNicely(now)); + } else { label_->SetText(base::TimeFormatTimeOfDayWithHourClockType( now, hour_type_, base::kDropAmPm)); - } else { - label_->SetText(FormatNicely(now)); } label_->SetTooltipText(base::TimeFormatFriendlyDate(now)); @@ -126,6 +132,7 @@ class DateView : public views::View { // called just a teeny bit early, then it will skip the next minute. seconds_left += kTimerSlopSeconds; + timer_.Stop(); timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(seconds_left), this, &DateView::UpdateText); } @@ -272,8 +279,7 @@ TrayPowerDate::~TrayPowerDate() { } views::View* TrayPowerDate::CreateTrayView(user::LoginStatus status) { - date_tray_.reset(new tray::DateView(base::k24HourClock, - tray::DateView::TIME)); + date_tray_.reset(new tray::DateView(tray::DateView::TIME)); date_tray_->label()->SetFont( date_tray_->label()->font().DeriveFont(-1, gfx::Font::BOLD)); date_tray_->label()->SetAutoColorReadabilityEnabled(false); @@ -291,8 +297,7 @@ views::View* TrayPowerDate::CreateTrayView(user::LoginStatus status) { } views::View* TrayPowerDate::CreateDefaultView(user::LoginStatus status) { - date_.reset(new tray::DateView(base::k24HourClock, - tray::DateView::DATE)); + date_.reset(new tray::DateView(tray::DateView::DATE)); if (status != user::LOGGED_IN_NONE) date_->set_actionable(true); @@ -333,5 +338,9 @@ void TrayPowerDate::OnPowerStatusChanged(const PowerSupplyStatus& status) { power_->UpdatePowerStatus(status); } +void TrayPowerDate::OnDateFormatChanged() { + date_tray_->UpdateTimeFormat(); +} + } // namespace internal } // namespace ash diff --git a/ash/system/power/tray_power_date.h b/ash/system/power/tray_power_date.h index 5ca8606..9f4f327 100644 --- a/ash/system/power/tray_power_date.h +++ b/ash/system/power/tray_power_date.h @@ -6,6 +6,7 @@ #define ASH_SYSTEM_POWER_TRAY_POWER_DATE_H_ #pragma once +#include "ash/system/power/date_format_observer.h" #include "ash/system/power/power_status_controller.h" #include "ash/system/tray/system_tray_item.h" @@ -19,7 +20,8 @@ class PowerTrayView; } class TrayPowerDate : public SystemTrayItem, - public PowerStatusController { + public PowerStatusController, + public DateFormatObserver { public: TrayPowerDate(); virtual ~TrayPowerDate(); @@ -36,6 +38,9 @@ class TrayPowerDate : public SystemTrayItem, // Overridden from PowerStatusController. virtual void OnPowerStatusChanged(const PowerSupplyStatus& status) OVERRIDE; + // Overridden from DateFormatObserver. + virtual void OnDateFormatChanged() OVERRIDE; + scoped_ptr<tray::DateView> date_; scoped_ptr<tray::DateView> date_tray_; |