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

Side by Side Diff: ash/common/system/date/date_view.cc

Issue 2095193002: clang-format all of //ash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 unified diff | Download patch
« no previous file with comments | « ash/common/system/chromeos/tray_tracing.cc ('k') | ash/common/system/date/tray_date.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/common/system/date/date_view.h" 5 #include "ash/common/system/date/date_view.h"
6 6
7 #include "ash/common/system/tray/system_tray_delegate.h" 7 #include "ash/common/system/tray/system_tray_delegate.h"
8 #include "ash/common/system/tray/tray_constants.h" 8 #include "ash/common/system/tray/tray_constants.h"
9 #include "ash/common/system/tray/tray_utils.h" 9 #include "ash/common/system/tray/tray_utils.h"
10 #include "ash/common/wm_shell.h" 10 #include "ash/common/wm_shell.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 // Offset used to bring the minutes line closer to the hours line in the 43 // Offset used to bring the minutes line closer to the hours line in the
44 // vertical clock. 44 // vertical clock.
45 const int kVerticalClockMinutesTopOffset = -4; 45 const int kVerticalClockMinutesTopOffset = -4;
46 46
47 base::string16 FormatDate(const base::Time& time) { 47 base::string16 FormatDate(const base::Time& time) {
48 icu::UnicodeString date_string; 48 icu::UnicodeString date_string;
49 std::unique_ptr<icu::DateFormat> formatter( 49 std::unique_ptr<icu::DateFormat> formatter(
50 icu::DateFormat::createDateInstance(icu::DateFormat::kMedium)); 50 icu::DateFormat::createDateInstance(icu::DateFormat::kMedium));
51 formatter->format(static_cast<UDate>(time.ToDoubleT() * 1000), date_string); 51 formatter->format(static_cast<UDate>(time.ToDoubleT() * 1000), date_string);
52 return base::string16(date_string.getBuffer(), 52 return base::string16(date_string.getBuffer(),
53 static_cast<size_t>(date_string.length())); 53 static_cast<size_t>(date_string.length()));
54 } 54 }
55 55
56 base::string16 FormatDayOfWeek(const base::Time& time) { 56 base::string16 FormatDayOfWeek(const base::Time& time) {
57 UErrorCode status = U_ZERO_ERROR; 57 UErrorCode status = U_ZERO_ERROR;
58 std::unique_ptr<icu::DateTimePatternGenerator> generator( 58 std::unique_ptr<icu::DateTimePatternGenerator> generator(
59 icu::DateTimePatternGenerator::createInstance(status)); 59 icu::DateTimePatternGenerator::createInstance(status));
60 DCHECK(U_SUCCESS(status)); 60 DCHECK(U_SUCCESS(status));
61 const char kBasePattern[] = "EEE"; 61 const char kBasePattern[] = "EEE";
62 icu::UnicodeString generated_pattern = 62 icu::UnicodeString generated_pattern =
63 generator->getBestPattern(icu::UnicodeString(kBasePattern), status); 63 generator->getBestPattern(icu::UnicodeString(kBasePattern), status);
64 DCHECK(U_SUCCESS(status)); 64 DCHECK(U_SUCCESS(status));
65 icu::SimpleDateFormat simple_formatter(generated_pattern, status); 65 icu::SimpleDateFormat simple_formatter(generated_pattern, status);
66 DCHECK(U_SUCCESS(status)); 66 DCHECK(U_SUCCESS(status));
67 icu::UnicodeString date_string; 67 icu::UnicodeString date_string;
68 simple_formatter.format( 68 simple_formatter.format(static_cast<UDate>(time.ToDoubleT() * 1000),
69 static_cast<UDate>(time.ToDoubleT() * 1000), date_string, status); 69 date_string, status);
70 DCHECK(U_SUCCESS(status)); 70 DCHECK(U_SUCCESS(status));
71 return base::string16( 71 return base::string16(date_string.getBuffer(),
72 date_string.getBuffer(), static_cast<size_t>(date_string.length())); 72 static_cast<size_t>(date_string.length()));
73 } 73 }
74 74
75 views::Label* CreateLabel() { 75 views::Label* CreateLabel() {
76 views::Label* label = new views::Label; 76 views::Label* label = new views::Label;
77 label->SetHorizontalAlignment(gfx::ALIGN_LEFT); 77 label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
78 label->SetBackgroundColor(SkColorSetARGB(0, 255, 255, 255)); 78 label->SetBackgroundColor(SkColorSetARGB(0, 255, 255, 255));
79 return label; 79 return label;
80 } 80 }
81 81
82 } // namespace 82 } // namespace
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 // 60 seconds from now. 114 // 60 seconds from now.
115 int seconds_left = 60 - exploded.second; 115 int seconds_left = 60 - exploded.second;
116 if (seconds_left == 0) 116 if (seconds_left == 0)
117 seconds_left = 60; 117 seconds_left = 60;
118 118
119 // Make sure that the timer fires on the next minute. Without this, if it is 119 // Make sure that the timer fires on the next minute. Without this, if it is
120 // called just a teeny bit early, then it will skip the next minute. 120 // called just a teeny bit early, then it will skip the next minute.
121 seconds_left += kTimerSlopSeconds; 121 seconds_left += kTimerSlopSeconds;
122 122
123 timer_.Stop(); 123 timer_.Stop();
124 timer_.Start( 124 timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(seconds_left), this,
125 FROM_HERE, base::TimeDelta::FromSeconds(seconds_left), 125 &BaseDateTimeView::UpdateText);
126 this, &BaseDateTimeView::UpdateText);
127 } 126 }
128 127
129 void BaseDateTimeView::UpdateTextInternal(const base::Time& now) { 128 void BaseDateTimeView::UpdateTextInternal(const base::Time& now) {
130 SetAccessibleName(base::TimeFormatTimeOfDayWithHourClockType( 129 SetAccessibleName(base::TimeFormatTimeOfDayWithHourClockType(
131 now, hour_type_, base::kKeepAmPm) + 130 now, hour_type_, base::kKeepAmPm) +
132 base::ASCIIToUTF16(", ") + 131 base::ASCIIToUTF16(", ") +
133 base::TimeFormatFriendlyDate(now)); 132 base::TimeFormatFriendlyDate(now));
134 133
135 NotifyAccessibilityEvent(ui::AX_EVENT_TEXT_CHANGED, true); 134 NotifyAccessibilityEvent(ui::AX_EVENT_TEXT_CHANGED, true);
136 } 135 }
137 136
138 void BaseDateTimeView::ChildPreferredSizeChanged(views::View* child) { 137 void BaseDateTimeView::ChildPreferredSizeChanged(views::View* child) {
139 PreferredSizeChanged(); 138 PreferredSizeChanged();
140 } 139 }
141 140
142 void BaseDateTimeView::OnLocaleChanged() { 141 void BaseDateTimeView::OnLocaleChanged() {
143 UpdateText(); 142 UpdateText();
144 } 143 }
145 144
146 /////////////////////////////////////////////////////////////////////////////// 145 ///////////////////////////////////////////////////////////////////////////////
147 146
148 DateView::DateView() : action_(TrayDate::NONE) { 147 DateView::DateView() : action_(TrayDate::NONE) {
149 SetLayoutManager( 148 SetLayoutManager(new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0));
150 new views::BoxLayout(
151 views::BoxLayout::kVertical, 0, 0, 0));
152 date_label_ = CreateLabel(); 149 date_label_ = CreateLabel();
153 date_label_->SetEnabledColor(kHeaderTextColorNormal); 150 date_label_->SetEnabledColor(kHeaderTextColorNormal);
154 UpdateTextInternal(base::Time::Now()); 151 UpdateTextInternal(base::Time::Now());
155 AddChildView(date_label_); 152 AddChildView(date_label_);
156 } 153 }
157 154
158 DateView::~DateView() { 155 DateView::~DateView() {}
159 }
160 156
161 void DateView::SetAction(TrayDate::DateAction action) { 157 void DateView::SetAction(TrayDate::DateAction action) {
162 if (action == action_) 158 if (action == action_)
163 return; 159 return;
164 if (IsMouseHovered()) { 160 if (IsMouseHovered()) {
165 date_label_->SetEnabledColor( 161 date_label_->SetEnabledColor(action == TrayDate::NONE
166 action == TrayDate::NONE ? kHeaderTextColorNormal : 162 ? kHeaderTextColorNormal
167 kHeaderTextColorHover); 163 : kHeaderTextColorHover);
168 SchedulePaint(); 164 SchedulePaint();
169 } 165 }
170 action_ = action; 166 action_ = action;
171 SetFocusBehavior(action_ != TrayDate::NONE ? FocusBehavior::ALWAYS 167 SetFocusBehavior(action_ != TrayDate::NONE ? FocusBehavior::ALWAYS
172 : FocusBehavior::NEVER); 168 : FocusBehavior::NEVER);
173 } 169 }
174 170
175 void DateView::UpdateTimeFormat() { 171 void DateView::UpdateTimeFormat() {
176 hour_type_ = WmShell::Get()->system_tray_delegate()->GetHourClockType(); 172 hour_type_ = WmShell::Get()->system_tray_delegate()->GetHourClockType();
177 UpdateText(); 173 UpdateText();
178 } 174 }
179 175
180 base::HourClockType DateView::GetHourTypeForTesting() const { 176 base::HourClockType DateView::GetHourTypeForTesting() const {
181 return hour_type_; 177 return hour_type_;
182 } 178 }
183 179
184 void DateView::SetActive(bool active) { 180 void DateView::SetActive(bool active) {
185 date_label_->SetEnabledColor(active ? kHeaderTextColorHover 181 date_label_->SetEnabledColor(active ? kHeaderTextColorHover
186 : kHeaderTextColorNormal); 182 : kHeaderTextColorNormal);
187 SchedulePaint(); 183 SchedulePaint();
188 } 184 }
189 185
190 void DateView::UpdateTextInternal(const base::Time& now) { 186 void DateView::UpdateTextInternal(const base::Time& now) {
191 BaseDateTimeView::UpdateTextInternal(now); 187 BaseDateTimeView::UpdateTextInternal(now);
192 date_label_->SetText( 188 date_label_->SetText(l10n_util::GetStringFUTF16(
193 l10n_util::GetStringFUTF16( 189 IDS_ASH_STATUS_TRAY_DATE, FormatDayOfWeek(now), FormatDate(now)));
194 IDS_ASH_STATUS_TRAY_DATE, FormatDayOfWeek(now), FormatDate(now)));
195 } 190 }
196 191
197 bool DateView::PerformAction(const ui::Event& event) { 192 bool DateView::PerformAction(const ui::Event& event) {
198 if (action_ == TrayDate::NONE) 193 if (action_ == TrayDate::NONE)
199 return false; 194 return false;
200 if (action_ == TrayDate::SHOW_DATE_SETTINGS) 195 if (action_ == TrayDate::SHOW_DATE_SETTINGS)
201 WmShell::Get()->system_tray_delegate()->ShowDateSettings(); 196 WmShell::Get()->system_tray_delegate()->ShowDateSettings();
202 else if (action_ == TrayDate::SET_SYSTEM_TIME) 197 else if (action_ == TrayDate::SET_SYSTEM_TIME)
203 WmShell::Get()->system_tray_delegate()->ShowSetTimeDialog(); 198 WmShell::Get()->system_tray_delegate()->ShowSetTimeDialog();
204 return true; 199 return true;
(...skipping 24 matching lines...) Expand all
229 } 224 }
230 225
231 /////////////////////////////////////////////////////////////////////////////// 226 ///////////////////////////////////////////////////////////////////////////////
232 227
233 TimeView::TimeView(TrayDate::ClockLayout clock_layout) { 228 TimeView::TimeView(TrayDate::ClockLayout clock_layout) {
234 SetupLabels(); 229 SetupLabels();
235 UpdateTextInternal(base::Time::Now()); 230 UpdateTextInternal(base::Time::Now());
236 UpdateClockLayout(clock_layout); 231 UpdateClockLayout(clock_layout);
237 } 232 }
238 233
239 TimeView::~TimeView() { 234 TimeView::~TimeView() {}
240 }
241 235
242 void TimeView::UpdateTimeFormat() { 236 void TimeView::UpdateTimeFormat() {
243 hour_type_ = WmShell::Get()->system_tray_delegate()->GetHourClockType(); 237 hour_type_ = WmShell::Get()->system_tray_delegate()->GetHourClockType();
244 UpdateText(); 238 UpdateText();
245 } 239 }
246 240
247 base::HourClockType TimeView::GetHourTypeForTesting() const { 241 base::HourClockType TimeView::GetHourTypeForTesting() const {
248 return hour_type_; 242 return hour_type_;
249 } 243 }
250 244
(...skipping 11 matching lines...) Expand all
262 now, hour_type_, base::kDropAmPm); 256 now, hour_type_, base::kDropAmPm);
263 horizontal_label_->SetText(current_time); 257 horizontal_label_->SetText(current_time);
264 horizontal_label_->SetTooltipText(base::TimeFormatFriendlyDate(now)); 258 horizontal_label_->SetTooltipText(base::TimeFormatFriendlyDate(now));
265 259
266 // Calculate vertical clock layout labels. 260 // Calculate vertical clock layout labels.
267 size_t colon_pos = current_time.find(base::ASCIIToUTF16(":")); 261 size_t colon_pos = current_time.find(base::ASCIIToUTF16(":"));
268 base::string16 hour = current_time.substr(0, colon_pos); 262 base::string16 hour = current_time.substr(0, colon_pos);
269 base::string16 minute = current_time.substr(colon_pos + 1); 263 base::string16 minute = current_time.substr(colon_pos + 1);
270 264
271 // Sometimes pad single-digit hours with a zero for aesthetic reasons. 265 // Sometimes pad single-digit hours with a zero for aesthetic reasons.
272 if (hour.length() == 1 && 266 if (hour.length() == 1 && hour_type_ == base::k24HourClock &&
273 hour_type_ == base::k24HourClock &&
274 !base::i18n::IsRTL()) 267 !base::i18n::IsRTL())
275 hour = base::ASCIIToUTF16("0") + hour; 268 hour = base::ASCIIToUTF16("0") + hour;
276 269
277 vertical_label_hours_->SetText(hour); 270 vertical_label_hours_->SetText(hour);
278 vertical_label_minutes_->SetText(minute); 271 vertical_label_minutes_->SetText(minute);
279 Layout(); 272 Layout();
280 } 273 }
281 274
282 bool TimeView::PerformAction(const ui::Event& event) { 275 bool TimeView::PerformAction(const ui::Event& event) {
283 return false; 276 return false;
(...skipping 27 matching lines...) Expand all
311 layout->StartRow(0, kColumnId); 304 layout->StartRow(0, kColumnId);
312 layout->AddView(vertical_label_minutes_.get()); 305 layout->AddView(vertical_label_minutes_.get());
313 layout->AddPaddingRow(0, kTrayLabelItemVerticalPaddingVerticalAlignment); 306 layout->AddPaddingRow(0, kTrayLabelItemVerticalPaddingVerticalAlignment);
314 } 307 }
315 Layout(); 308 Layout();
316 } 309 }
317 310
318 void TimeView::SetBorderFromLayout(TrayDate::ClockLayout clock_layout) { 311 void TimeView::SetBorderFromLayout(TrayDate::ClockLayout clock_layout) {
319 if (clock_layout == TrayDate::HORIZONTAL_CLOCK) 312 if (clock_layout == TrayDate::HORIZONTAL_CLOCK)
320 SetBorder(views::Border::CreateEmptyBorder( 313 SetBorder(views::Border::CreateEmptyBorder(
321 0, 314 0, kTrayLabelItemHorizontalPaddingBottomAlignment, 0,
322 kTrayLabelItemHorizontalPaddingBottomAlignment,
323 0,
324 kTrayLabelItemHorizontalPaddingBottomAlignment)); 315 kTrayLabelItemHorizontalPaddingBottomAlignment));
325 else 316 else
326 SetBorder(views::Border::NullBorder()); 317 SetBorder(views::Border::NullBorder());
327 } 318 }
328 319
329 void TimeView::SetupLabels() { 320 void TimeView::SetupLabels() {
330 horizontal_label_.reset(CreateLabel()); 321 horizontal_label_.reset(CreateLabel());
331 SetupLabel(horizontal_label_.get()); 322 SetupLabel(horizontal_label_.get());
332 vertical_label_hours_.reset(CreateLabel()); 323 vertical_label_hours_.reset(CreateLabel());
333 SetupLabel(vertical_label_hours_.get()); 324 SetupLabel(vertical_label_hours_.get());
334 vertical_label_minutes_.reset(CreateLabel()); 325 vertical_label_minutes_.reset(CreateLabel());
335 SetupLabel(vertical_label_minutes_.get()); 326 SetupLabel(vertical_label_minutes_.get());
336 vertical_label_minutes_->SetEnabledColor(kVerticalClockMinuteColor); 327 vertical_label_minutes_->SetEnabledColor(kVerticalClockMinuteColor);
337 // Pull the minutes up closer to the hours by using a negative top border. 328 // Pull the minutes up closer to the hours by using a negative top border.
338 vertical_label_minutes_->SetBorder(views::Border::CreateEmptyBorder( 329 vertical_label_minutes_->SetBorder(views::Border::CreateEmptyBorder(
339 kVerticalClockMinutesTopOffset, 0, 0, 0)); 330 kVerticalClockMinutesTopOffset, 0, 0, 0));
340 } 331 }
341 332
342 void TimeView::SetupLabel(views::Label* label) { 333 void TimeView::SetupLabel(views::Label* label) {
343 label->set_owned_by_client(); 334 label->set_owned_by_client();
344 SetupLabelForTray(label); 335 SetupLabelForTray(label);
345 label->SetElideBehavior(gfx::NO_ELIDE); 336 label->SetElideBehavior(gfx::NO_ELIDE);
346 } 337 }
347 338
348 } // namespace tray 339 } // namespace tray
349 } // namespace ash 340 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/system/chromeos/tray_tracing.cc ('k') | ash/common/system/date/tray_date.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698