• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
11 namespace ash {
12 
TrayUserSeparator(SystemTray * system_tray)13 TrayUserSeparator::TrayUserSeparator(SystemTray* system_tray)
14     : SystemTrayItem(system_tray),
15       separator_shown_(false) {
16 }
17 
CreateTrayView(user::LoginStatus status)18 views::View* TrayUserSeparator::CreateTrayView(user::LoginStatus status) {
19   return NULL;
20 }
21 
CreateDefaultView(user::LoginStatus status)22 views::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 
CreateDetailedView(user::LoginStatus status)40 views::View* TrayUserSeparator::CreateDetailedView(user::LoginStatus status) {
41   return NULL;
42 }
43 
DestroyDefaultView()44 void TrayUserSeparator::DestroyDefaultView() {
45   separator_shown_ = false;
46 }
47 
48 }  // namespace ash
49