#include "ash/system/date/tray_date.h"
-#include "ash/metrics/user_metrics_recorder.h"
-#include "ash/session_state_delegate.h"
#include "ash/shell.h"
-#include "ash/shell_delegate.h"
+#include "ash/system/date/date_default_view.h"
#include "ash/system/date/date_view.h"
#include "ash/system/tray/system_tray.h"
-#include "ash/system/tray/system_tray_delegate.h"
#include "ash/system/tray/system_tray_notifier.h"
-#include "ash/system/tray/tray_constants.h"
#include "ash/system/tray/tray_item_view.h"
-#include "ash/system/tray/tray_popup_header_button.h"
-#include "base/i18n/time_formatting.h"
-#include "base/strings/stringprintf.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/time/time.h"
-#include "base/timer/timer.h"
-#include "grit/ash_resources.h"
-#include "grit/ash_strings.h"
-#include "third_party/icu/source/i18n/unicode/datefmt.h"
-#include "third_party/icu/source/i18n/unicode/fieldpos.h"
-#include "third_party/icu/source/i18n/unicode/fmtable.h"
-#include "third_party/skia/include/core/SkRect.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/image/image.h"
-#include "ui/gfx/image/image_skia.h"
-#include "ui/gfx/size.h"
-#include "ui/views/controls/button/button.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/painter.h"
-#include "ui/views/view.h"
-#include "ui/views/widget/widget.h"
#if defined(OS_CHROMEOS)
#include "ash/system/chromeos/system_clock_observer.h"
#endif
-namespace {
-
-const int kPaddingVertical = 19;
-
-} // namespace
-
namespace ash {
namespace internal {
-class DateDefaultView : public views::View,
- public views::ButtonListener {
- public:
- explicit DateDefaultView(ash::user::LoginStatus login)
- : help_(NULL),
- shutdown_(NULL),
- lock_(NULL),
- date_view_(NULL) {
- SetLayoutManager(new views::FillLayout);
-
- date_view_ = new tray::DateView();
- date_view_->SetBorder(views::Border::CreateEmptyBorder(
- kPaddingVertical, ash::kTrayPopupPaddingHorizontal, 0, 0));
- SpecialPopupRow* view = new SpecialPopupRow();
- view->SetContent(date_view_);
- AddChildView(view);
-
- if (login == ash::user::LOGGED_IN_LOCKED ||
- login == ash::user::LOGGED_IN_NONE)
- return;
-
- date_view_->SetActionable(true);
-
- help_ = new TrayPopupHeaderButton(this,
- IDR_AURA_UBER_TRAY_HELP,
- IDR_AURA_UBER_TRAY_HELP,
- IDR_AURA_UBER_TRAY_HELP_HOVER,
- IDR_AURA_UBER_TRAY_HELP_HOVER,
- IDS_ASH_STATUS_TRAY_HELP);
- help_->SetTooltipText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_HELP));
- view->AddButton(help_);
-
-#if !defined(OS_WIN)
- if (login != ash::user::LOGGED_IN_LOCKED &&
- login != ash::user::LOGGED_IN_RETAIL_MODE) {
- shutdown_ = new TrayPopupHeaderButton(this,
- IDR_AURA_UBER_TRAY_SHUTDOWN,
- IDR_AURA_UBER_TRAY_SHUTDOWN,
- IDR_AURA_UBER_TRAY_SHUTDOWN_HOVER,
- IDR_AURA_UBER_TRAY_SHUTDOWN_HOVER,
- IDS_ASH_STATUS_TRAY_SHUTDOWN);
- shutdown_->SetTooltipText(
- l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SHUTDOWN));
- view->AddButton(shutdown_);
- }
-
- if (ash::Shell::GetInstance()->session_state_delegate()->CanLockScreen()) {
- lock_ = new TrayPopupHeaderButton(this,
- IDR_AURA_UBER_TRAY_LOCKSCREEN,
- IDR_AURA_UBER_TRAY_LOCKSCREEN,
- IDR_AURA_UBER_TRAY_LOCKSCREEN_HOVER,
- IDR_AURA_UBER_TRAY_LOCKSCREEN_HOVER,
- IDS_ASH_STATUS_TRAY_LOCK);
- lock_->SetTooltipText(
- l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_LOCK));
- view->AddButton(lock_);
- }
-#endif // !defined(OS_WIN)
- }
-
- virtual ~DateDefaultView() {}
-
- views::View* GetHelpButtonView() const {
- return help_;
- }
-
- tray::DateView* GetDateView() const {
- return date_view_;
- }
-
- private:
- // Overridden from views::ButtonListener.
- virtual void ButtonPressed(views::Button* sender,
- const ui::Event& event) OVERRIDE {
- ash::Shell* shell = ash::Shell::GetInstance();
- ash::SystemTrayDelegate* tray_delegate = shell->system_tray_delegate();
- if (sender == help_) {
- shell->metrics()->RecordUserMetricsAction(ash::UMA_TRAY_HELP);
- tray_delegate->ShowHelp();
- } else if (sender == shutdown_) {
- shell->metrics()->RecordUserMetricsAction(ash::UMA_TRAY_SHUT_DOWN);
- tray_delegate->ShutDown();
- } else if (sender == lock_) {
- shell->metrics()->RecordUserMetricsAction(ash::UMA_TRAY_LOCK_SCREEN);
- tray_delegate->RequestLockScreen();
- } else {
- NOTREACHED();
- }
- }
-
- TrayPopupHeaderButton* help_;
- TrayPopupHeaderButton* shutdown_;
- TrayPopupHeaderButton* lock_;
- tray::DateView* date_view_;
-
- DISALLOW_COPY_AND_ASSIGN(DateDefaultView);
-};
-
TrayDate::TrayDate(SystemTray* system_tray)
: SystemTrayItem(system_tray),
time_tray_(NULL),
return default_view_->GetHelpButtonView();
}
+const tray::TimeView* TrayDate::GetTimeTrayForTesting() const {
+ return time_tray_;
+}
+
+const DateDefaultView* TrayDate::GetDefaultViewForTesting() const {
+ return default_view_;
+}
+
+views::View* TrayDate::CreateDefaultViewForTesting(user::LoginStatus status) {
+ return CreateDefaultView(status);
+}
+
views::View* TrayDate::CreateTrayView(user::LoginStatus status) {
CHECK(time_tray_ == NULL);
ClockLayout clock_layout =