tray_user_separator.cc revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
1// Copyright 2013 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/user/tray_user_separator.h"
6
7#include "ash/session/session_state_delegate.h"
8#include "ash/shell.h"
9#include "ui/views/view.h"
10
11namespace ash {
12
13TrayUserSeparator::TrayUserSeparator(SystemTray* system_tray)
14    : SystemTrayItem(system_tray),
15      separator_shown_(false) {
16}
17
18views::View* TrayUserSeparator::CreateTrayView(user::LoginStatus status) {
19  return NULL;
20}
21
22views::View* TrayUserSeparator::CreateDefaultView(user::LoginStatus status) {
23  if (status == user::LOGGED_IN_NONE)
24    return NULL;
25
26  const SessionStateDelegate* session_state_delegate =
27      Shell::GetInstance()->session_state_delegate();
28
29  // If the screen is locked, a system modal dialog or a single user is shown,
30  // show nothing.
31  if (session_state_delegate->IsUserSessionBlocked() ||
32      Shell::GetInstance()->IsSystemModalWindowOpen() ||
33      session_state_delegate->NumberOfLoggedInUsers() < 2)
34    return NULL;
35
36  separator_shown_ = true;
37  return new views::View();
38}
39
40views::View* TrayUserSeparator::CreateDetailedView(user::LoginStatus status) {
41  return NULL;
42}
43
44void TrayUserSeparator::DestroyDefaultView() {
45  separator_shown_ = false;
46}
47
48}  // namespace ash
49