| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/system/date/date_view.h" | 5 #include "ash/system/date/date_view.h" |
| 6 | 6 |
| 7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
| 8 #include "ash/system/tray/system_tray_delegate.h" | 8 #include "ash/system/tray/system_tray_delegate.h" |
| 9 #include "ash/system/tray/tray_constants.h" | 9 #include "ash/system/tray/tray_constants.h" |
| 10 #include "ash/system/tray/tray_utils.h" | 10 #include "ash/system/tray/tray_utils.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 PreferredSizeChanged(); | 121 PreferredSizeChanged(); |
| 122 } | 122 } |
| 123 | 123 |
| 124 void BaseDateTimeView::OnLocaleChanged() { | 124 void BaseDateTimeView::OnLocaleChanged() { |
| 125 UpdateText(); | 125 UpdateText(); |
| 126 } | 126 } |
| 127 | 127 |
| 128 DateView::DateView() | 128 DateView::DateView() |
| 129 : hour_type_(ash::Shell::GetInstance()->system_tray_delegate()-> | 129 : hour_type_(ash::Shell::GetInstance()->system_tray_delegate()-> |
| 130 GetHourClockType()), | 130 GetHourClockType()), |
| 131 actionable_(false) { | 131 action_(TrayDate::NONE) { |
| 132 SetLayoutManager( | 132 SetLayoutManager( |
| 133 new views::BoxLayout( | 133 new views::BoxLayout( |
| 134 views::BoxLayout::kVertical, 0, 0, 0)); | 134 views::BoxLayout::kVertical, 0, 0, 0)); |
| 135 date_label_ = CreateLabel(); | 135 date_label_ = CreateLabel(); |
| 136 date_label_->SetEnabledColor(kHeaderTextColorNormal); | 136 date_label_->SetEnabledColor(kHeaderTextColorNormal); |
| 137 UpdateTextInternal(base::Time::Now()); | 137 UpdateTextInternal(base::Time::Now()); |
| 138 AddChildView(date_label_); | 138 AddChildView(date_label_); |
| 139 SetFocusable(actionable_); | 139 SetFocusable(false); |
| 140 } | 140 } |
| 141 | 141 |
| 142 DateView::~DateView() { | 142 DateView::~DateView() { |
| 143 } | 143 } |
| 144 | 144 |
| 145 void DateView::SetActionable(bool actionable) { | 145 void DateView::SetAction(TrayDate::DateAction action) { |
| 146 actionable_ = actionable; | 146 action_ = action; |
| 147 SetFocusable(actionable_); | 147 SetFocusable(action_ != TrayDate::NONE); |
| 148 } | 148 } |
| 149 | 149 |
| 150 void DateView::UpdateTimeFormat() { | 150 void DateView::UpdateTimeFormat() { |
| 151 hour_type_ = | 151 hour_type_ = |
| 152 ash::Shell::GetInstance()->system_tray_delegate()->GetHourClockType(); | 152 ash::Shell::GetInstance()->system_tray_delegate()->GetHourClockType(); |
| 153 UpdateText(); | 153 UpdateText(); |
| 154 } | 154 } |
| 155 | 155 |
| 156 base::HourClockType DateView::GetHourTypeForTesting() const { | 156 base::HourClockType DateView::GetHourTypeForTesting() const { |
| 157 return hour_type_; | 157 return hour_type_; |
| 158 } | 158 } |
| 159 | 159 |
| 160 void DateView::UpdateTextInternal(const base::Time& now) { | 160 void DateView::UpdateTextInternal(const base::Time& now) { |
| 161 SetAccessibleName( | 161 SetAccessibleName( |
| 162 base::TimeFormatFriendlyDate(now) + | 162 base::TimeFormatFriendlyDate(now) + |
| 163 base::ASCIIToUTF16(", ") + | 163 base::ASCIIToUTF16(", ") + |
| 164 base::TimeFormatTimeOfDayWithHourClockType( | 164 base::TimeFormatTimeOfDayWithHourClockType( |
| 165 now, hour_type_, base::kKeepAmPm)); | 165 now, hour_type_, base::kKeepAmPm)); |
| 166 date_label_->SetText( | 166 date_label_->SetText( |
| 167 l10n_util::GetStringFUTF16( | 167 l10n_util::GetStringFUTF16( |
| 168 IDS_ASH_STATUS_TRAY_DATE, FormatDayOfWeek(now), FormatDate(now))); | 168 IDS_ASH_STATUS_TRAY_DATE, FormatDayOfWeek(now), FormatDate(now))); |
| 169 } | 169 } |
| 170 | 170 |
| 171 bool DateView::PerformAction(const ui::Event& event) { | 171 bool DateView::PerformAction(const ui::Event& event) { |
| 172 if (!actionable_) | 172 if (action_ == TrayDate::NONE) |
| 173 return false; | 173 return false; |
| 174 | 174 if (action_ == TrayDate::SHOW_DATE_SETTINGS) |
| 175 ash::Shell::GetInstance()->system_tray_delegate()->ShowDateSettings(); | 175 ash::Shell::GetInstance()->system_tray_delegate()->ShowDateSettings(); |
| 176 else if (action_ == TrayDate::SET_SYSTEM_TIME) |
| 177 ash::Shell::GetInstance()->system_tray_delegate()->ShowSetTimeDialog(); |
| 176 return true; | 178 return true; |
| 177 } | 179 } |
| 178 | 180 |
| 179 void DateView::OnMouseEntered(const ui::MouseEvent& event) { | 181 void DateView::OnMouseEntered(const ui::MouseEvent& event) { |
| 180 if (!actionable_) | 182 if (action_ == TrayDate::NONE) |
| 181 return; | 183 return; |
| 182 date_label_->SetEnabledColor(kHeaderTextColorHover); | 184 date_label_->SetEnabledColor(kHeaderTextColorHover); |
| 183 SchedulePaint(); | 185 SchedulePaint(); |
| 184 } | 186 } |
| 185 | 187 |
| 186 void DateView::OnMouseExited(const ui::MouseEvent& event) { | 188 void DateView::OnMouseExited(const ui::MouseEvent& event) { |
| 187 if (!actionable_) | 189 if (action_ == TrayDate::NONE) |
| 188 return; | 190 return; |
| 189 date_label_->SetEnabledColor(kHeaderTextColorNormal); | 191 date_label_->SetEnabledColor(kHeaderTextColorNormal); |
| 190 SchedulePaint(); | 192 SchedulePaint(); |
| 191 } | 193 } |
| 192 | 194 |
| 193 /////////////////////////////////////////////////////////////////////////////// | 195 /////////////////////////////////////////////////////////////////////////////// |
| 194 | 196 |
| 195 TimeView::TimeView(TrayDate::ClockLayout clock_layout) | 197 TimeView::TimeView(TrayDate::ClockLayout clock_layout) |
| 196 : hour_type_(ash::Shell::GetInstance()->system_tray_delegate()-> | 198 : hour_type_(ash::Shell::GetInstance()->system_tray_delegate()-> |
| 197 GetHourClockType()) { | 199 GetHourClockType()) { |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 306 | 308 |
| 307 void TimeView::SetupLabel(views::Label* label) { | 309 void TimeView::SetupLabel(views::Label* label) { |
| 308 label->set_owned_by_client(); | 310 label->set_owned_by_client(); |
| 309 SetupLabelForTray(label); | 311 SetupLabelForTray(label); |
| 310 label->SetFontList(label->font_list().DeriveWithStyle( | 312 label->SetFontList(label->font_list().DeriveWithStyle( |
| 311 label->font_list().GetFontStyle() & ~gfx::Font::BOLD)); | 313 label->font_list().GetFontStyle() & ~gfx::Font::BOLD)); |
| 312 } | 314 } |
| 313 | 315 |
| 314 } // namespace tray | 316 } // namespace tray |
| 315 } // namespace ash | 317 } // namespace ash |
| OLD | NEW |