| Index: ash/system/date/date_view.cc
|
| diff --git a/ash/system/date/date_view.cc b/ash/system/date/date_view.cc
|
| index 3e151c8e6b9b6c5ba00638c9a7f736f2587a3cec..ebd98d14e5fb17c470fc01b8d3ac8653118f46c3 100644
|
| --- a/ash/system/date/date_view.cc
|
| +++ b/ash/system/date/date_view.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/utf_string_conversions.h"
|
| #include "ui/views/controls/label.h"
|
| #include "ui/views/layout/box_layout.h"
|
| +#include "ui/views/layout/grid_layout.h"
|
| #include "ui/views/widget/widget.h"
|
| #include "unicode/datefmt.h"
|
|
|
| @@ -25,6 +26,9 @@ namespace {
|
| // when the timer goes off.
|
| const int kTimerSlopSeconds = 1;
|
|
|
| +// Top number text color of vertical clock.
|
| +const SkColor kVerticalClockHourColor = SkColorSetRGB(0xBA, 0xBA, 0xBA);
|
| +
|
| string16 FormatDate(const base::Time& time) {
|
| icu::UnicodeString date_string;
|
| scoped_ptr<icu::DateFormat> formatter(
|
| @@ -154,19 +158,12 @@ void DateView::OnMouseExited(const views::MouseEvent& event) {
|
| SchedulePaint();
|
| }
|
|
|
| -TimeView::TimeView()
|
| +TimeView::TimeView(TrayDate::ClockLayout clock_layout)
|
| : hour_type_(
|
| ash::Shell::GetInstance()->tray_delegate()->GetHourClockType()) {
|
| - SetLayoutManager(
|
| - new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0));
|
| - label_.reset(CreateLabel());
|
| - label_hour_.reset(CreateLabel());
|
| - label_minute_.reset(CreateLabel());
|
| - label_->set_owned_by_client();
|
| - label_hour_->set_owned_by_client();
|
| - label_minute_->set_owned_by_client();
|
| + SetupLabels();
|
| UpdateTextInternal(base::Time::Now());
|
| - AddChildView(label_.get());
|
| + UpdateClockLayout(clock_layout);
|
| }
|
|
|
| TimeView::~TimeView() {
|
| @@ -187,13 +184,13 @@ void TimeView::UpdateTextInternal(const base::Time& now) {
|
| size_t colon_pos = current_time.find(ASCIIToUTF16(":"));
|
| string16 hour = current_time.substr(0, colon_pos);
|
| string16 minute = current_time.substr(colon_pos + 1);
|
| - if (hour.length() == 2) {
|
| - label_hour_->SetText(hour);
|
| - } else {
|
| - label_hour_->SetText(hour_type_ == base::k24HourClock ?
|
| - ASCIIToUTF16("0") + hour : hour + ASCIIToUTF16(":"));
|
| - }
|
| - label_minute_->SetText(minute);
|
| + label_hour_left_->SetText(hour.substr(0, 1));
|
| + label_hour_right_->SetText(hour.length() == 2 ?
|
| + hour.substr(1,1) : ASCIIToUTF16(":"));
|
| + label_minute_left_->SetText(minute.substr(0, 1));
|
| + label_minute_right_->SetText(minute.substr(1, 1));
|
| +
|
| + Layout();
|
| }
|
|
|
| bool TimeView::PerformAction(const views::Event& event) {
|
| @@ -208,18 +205,33 @@ bool TimeView::OnMousePressed(const views::MouseEvent& event) {
|
| void TimeView::UpdateClockLayout(TrayDate::ClockLayout clock_layout){
|
| SetBorder(clock_layout);
|
| if (clock_layout == TrayDate::HORIZONTAL_CLOCK) {
|
| - RemoveChildView(label_hour_.get());
|
| - RemoveChildView(label_minute_.get());
|
| + RemoveChildView(label_hour_left_.get());
|
| + RemoveChildView(label_hour_right_.get());
|
| + RemoveChildView(label_minute_left_.get());
|
| + RemoveChildView(label_minute_right_.get());
|
| SetLayoutManager(
|
| new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0));
|
| AddChildView(label_.get());
|
| } else {
|
| RemoveChildView(label_.get());
|
| - SetLayoutManager(
|
| - new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0));
|
| - AddChildView(label_hour_.get());
|
| - AddChildView(label_minute_.get());
|
| + views::GridLayout* layout = new views::GridLayout(this);
|
| + SetLayoutManager(layout);
|
| + views::ColumnSet* columns = layout->AddColumnSet(0);
|
| + columns->AddPaddingColumn(0, 6);
|
| + columns->AddColumn(views::GridLayout::CENTER, views::GridLayout::CENTER,
|
| + 0, views::GridLayout::USE_PREF, 0, 0);
|
| + columns->AddColumn(views::GridLayout::CENTER, views::GridLayout::CENTER,
|
| + 0, views::GridLayout::USE_PREF, 0, 0);
|
| + layout->AddPaddingRow(0, 4);
|
| + layout->StartRow(0, 0);
|
| + layout->AddView(label_hour_left_.get());
|
| + layout->AddView(label_hour_right_.get());
|
| + layout->StartRow(0, 0);
|
| + layout->AddView(label_minute_left_.get());
|
| + layout->AddView(label_minute_right_.get());
|
| + layout->AddPaddingRow(0, 4);
|
| }
|
| + Layout();
|
| set_focusable(true);
|
| }
|
|
|
| @@ -227,7 +239,29 @@ void TimeView::SetBorder(TrayDate::ClockLayout clock_layout) {
|
| if (clock_layout == TrayDate::HORIZONTAL_CLOCK)
|
| set_border(views::Border::CreateEmptyBorder(0, 10, 0, 7));
|
| else
|
| - set_border(views::Border::CreateEmptyBorder(2, 12, 2, 2));
|
| + set_border(NULL);
|
| +}
|
| +
|
| +void TimeView::SetupLabels() {
|
| + label_.reset(CreateLabel());
|
| + SetupLabel(label_.get());
|
| + label_hour_left_.reset(CreateLabel());
|
| + SetupLabel(label_hour_left_.get());
|
| + label_hour_right_.reset(CreateLabel());
|
| + SetupLabel(label_hour_right_.get());
|
| + label_minute_left_.reset(CreateLabel());
|
| + SetupLabel(label_minute_left_.get());
|
| + label_minute_right_.reset(CreateLabel());
|
| + SetupLabel(label_minute_right_.get());
|
| + label_hour_left_->SetEnabledColor(kVerticalClockHourColor);
|
| + label_hour_right_->SetEnabledColor(kVerticalClockHourColor);
|
| +}
|
| +
|
| +void TimeView::SetupLabel(views::Label* label) {
|
| + label->set_owned_by_client();
|
| + SetupLabelForTray(label);
|
| + gfx::Font font = label->font();
|
| + label->SetFont(font.DeriveFont(0, font.GetStyle() & ~gfx::Font::BOLD));
|
| }
|
|
|
| } // namespace tray
|
|
|