android: Enable media autoplay for webview test shell
[chromium-blink-merge.git] / ash / system / date / date_default_view.cc
blobbd05be2c88a22bb2d04915b9dbe1a15a1055a95c
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ash/system/date/date_default_view.h"
7 #include "ash/metrics/user_metrics_recorder.h"
8 #include "ash/session/session_state_delegate.h"
9 #include "ash/shell.h"
10 #include "ash/system/date/date_view.h"
11 #include "ash/system/tray/special_popup_row.h"
12 #include "ash/system/tray/system_tray_delegate.h"
13 #include "ash/system/tray/tray_constants.h"
14 #include "ash/system/tray/tray_popup_header_button.h"
15 #include "grit/ash_resources.h"
16 #include "grit/ash_strings.h"
17 #include "ui/base/l10n/l10n_util.h"
18 #include "ui/views/border.h"
19 #include "ui/views/controls/button/button.h"
20 #include "ui/views/layout/fill_layout.h"
21 #include "ui/views/view.h"
23 namespace {
25 const int kPaddingVertical = 19;
27 } // namespace
29 namespace ash {
31 DateDefaultView::DateDefaultView(ash::user::LoginStatus login)
32 : help_(NULL),
33 shutdown_(NULL),
34 lock_(NULL),
35 date_view_(NULL) {
36 SetLayoutManager(new views::FillLayout);
38 date_view_ = new tray::DateView();
39 date_view_->SetBorder(views::Border::CreateEmptyBorder(
40 kPaddingVertical, ash::kTrayPopupPaddingHorizontal, 0, 0));
41 SpecialPopupRow* view = new SpecialPopupRow();
42 view->SetContent(date_view_);
43 AddChildView(view);
45 bool userAddingRunning = ash::Shell::GetInstance()
46 ->session_state_delegate()
47 ->IsInSecondaryLoginScreen();
49 if (login == user::LOGGED_IN_LOCKED ||
50 login == user::LOGGED_IN_NONE || userAddingRunning)
51 return;
53 date_view_->SetAction(TrayDate::SHOW_DATE_SETTINGS);
55 help_ = new TrayPopupHeaderButton(this,
56 IDR_AURA_UBER_TRAY_HELP,
57 IDR_AURA_UBER_TRAY_HELP,
58 IDR_AURA_UBER_TRAY_HELP_HOVER,
59 IDR_AURA_UBER_TRAY_HELP_HOVER,
60 IDS_ASH_STATUS_TRAY_HELP);
61 help_->SetTooltipText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_HELP));
62 view->AddButton(help_);
64 #if !defined(OS_WIN)
65 if (login != ash::user::LOGGED_IN_LOCKED &&
66 login != ash::user::LOGGED_IN_RETAIL_MODE) {
67 shutdown_ = new TrayPopupHeaderButton(this,
68 IDR_AURA_UBER_TRAY_SHUTDOWN,
69 IDR_AURA_UBER_TRAY_SHUTDOWN,
70 IDR_AURA_UBER_TRAY_SHUTDOWN_HOVER,
71 IDR_AURA_UBER_TRAY_SHUTDOWN_HOVER,
72 IDS_ASH_STATUS_TRAY_SHUTDOWN);
73 shutdown_->SetTooltipText(
74 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SHUTDOWN));
75 view->AddButton(shutdown_);
78 if (ash::Shell::GetInstance()->session_state_delegate()->CanLockScreen()) {
79 lock_ = new TrayPopupHeaderButton(this,
80 IDR_AURA_UBER_TRAY_LOCKSCREEN,
81 IDR_AURA_UBER_TRAY_LOCKSCREEN,
82 IDR_AURA_UBER_TRAY_LOCKSCREEN_HOVER,
83 IDR_AURA_UBER_TRAY_LOCKSCREEN_HOVER,
84 IDS_ASH_STATUS_TRAY_LOCK);
85 lock_->SetTooltipText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_LOCK));
86 view->AddButton(lock_);
88 #endif // !defined(OS_WIN)
91 DateDefaultView::~DateDefaultView() {
94 views::View* DateDefaultView::GetHelpButtonView() {
95 return help_;
98 tray::DateView* DateDefaultView::GetDateView() {
99 return date_view_;
102 const tray::DateView* DateDefaultView::GetDateView() const {
103 return date_view_;
106 void DateDefaultView::ButtonPressed(views::Button* sender,
107 const ui::Event& event) {
108 ash::Shell* shell = ash::Shell::GetInstance();
109 ash::SystemTrayDelegate* tray_delegate = shell->system_tray_delegate();
110 if (sender == help_) {
111 shell->metrics()->RecordUserMetricsAction(ash::UMA_TRAY_HELP);
112 tray_delegate->ShowHelp();
113 } else if (sender == shutdown_) {
114 shell->metrics()->RecordUserMetricsAction(ash::UMA_TRAY_SHUT_DOWN);
115 tray_delegate->ShutDown();
116 } else if (sender == lock_) {
117 shell->metrics()->RecordUserMetricsAction(ash::UMA_TRAY_LOCK_SCREEN);
118 tray_delegate->RequestLockScreen();
119 } else {
120 NOTREACHED();
124 } // namespace ash