user_selection_screen.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
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.
4
5#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_USER_SELECTION_SCREEN_H_
6#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_USER_SELECTION_SCREEN_H_
7
8#include <string>
9
10#include "base/bind.h"
11#include "base/compiler_specific.h"
12#include "chrome/browser/chromeos/login/users/user.h"
13
14namespace chromeos {
15
16class LoginDisplayWebUIHandler;
17
18// This class represents User Selection screen: user pod-based login screen.
19class UserSelectionScreen {
20 public:
21  UserSelectionScreen();
22  virtual ~UserSelectionScreen();
23
24  void SetHandler(LoginDisplayWebUIHandler* handler);
25
26  void Init(const UserList& users);
27  const UserList& GetUsers() const;
28  void OnUserImageChanged(const User& user);
29  void OnBeforeUserRemoved(const std::string& username);
30  void OnUserRemoved(const std::string& username);
31
32 private:
33  LoginDisplayWebUIHandler* handler_;
34
35  // Set of Users that are visible.
36  UserList users_;
37
38  DISALLOW_COPY_AND_ASSIGN(UserSelectionScreen);
39};
40
41}  // namespace chromeos
42
43#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_USER_SELECTION_SCREEN_H_
44