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
3// found in the LICENSE file.
4
5#include "ash/system/tray/system_tray_item.h"
6
7#include "ash/shell.h"
8#include "ash/system/tray/system_tray.h"
9#include "ash/system/tray/system_tray_delegate.h"
10#include "ui/views/view.h"
11
12namespace ash {
13
14SystemTrayItem::SystemTrayItem(SystemTray* system_tray)
15    : system_tray_(system_tray),
16      restore_focus_(false) {
17}
18
19SystemTrayItem::~SystemTrayItem() {
20}
21
22views::View* SystemTrayItem::CreateTrayView(user::LoginStatus status) {
23  return NULL;
24}
25
26views::View* SystemTrayItem::CreateDefaultView(user::LoginStatus status) {
27  return NULL;
28}
29
30views::View* SystemTrayItem::CreateDetailedView(user::LoginStatus status) {
31  return NULL;
32}
33
34views::View* SystemTrayItem::CreateNotificationView(user::LoginStatus status) {
35  return NULL;
36}
37
38void SystemTrayItem::DestroyTrayView() {
39}
40
41void SystemTrayItem::DestroyDefaultView() {
42}
43
44void SystemTrayItem::DestroyDetailedView() {
45}
46
47void SystemTrayItem::DestroyNotificationView() {
48}
49
50void SystemTrayItem::TransitionDetailedView() {
51  system_tray()->ShowDetailedView(this, 0, true, BUBBLE_USE_EXISTING);
52}
53
54void SystemTrayItem::UpdateAfterLoginStatusChange(user::LoginStatus status) {
55}
56
57void SystemTrayItem::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) {
58}
59
60void SystemTrayItem::PopupDetailedView(int for_seconds, bool activate) {
61  system_tray()->ShowDetailedView(
62      this, for_seconds, activate, BUBBLE_CREATE_NEW);
63}
64
65void SystemTrayItem::SetDetailedViewCloseDelay(int for_seconds) {
66  system_tray()->SetDetailedViewCloseDelay(for_seconds);
67}
68
69void SystemTrayItem::HideDetailedView() {
70  system_tray()->HideDetailedView(this);
71}
72
73void SystemTrayItem::ShowNotificationView() {
74  system_tray()->ShowNotificationView(this);
75}
76
77void SystemTrayItem::HideNotificationView() {
78  system_tray()->HideNotificationView(this);
79}
80
81bool SystemTrayItem::ShouldHideArrow() const {
82  return false;
83}
84
85bool SystemTrayItem::ShouldShowShelf() const {
86  return true;
87}
88
89}  // namespace ash
90