1// Copyright (c) 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#ifndef CHROME_BROWSER_UI_ASH_SESSION_STATE_DELEGATE_VIEWS_H_
6#define CHROME_BROWSER_UI_ASH_SESSION_STATE_DELEGATE_VIEWS_H_
7
8#include "ash/session_state_delegate.h"
9#include "base/basictypes.h"
10#include "base/compiler_specific.h"
11#include "base/observer_list.h"
12
13namespace ash {
14class SessionStateObserver;
15}  // namespace ash
16
17class SessionStateDelegate : public ash::SessionStateDelegate {
18 public:
19  SessionStateDelegate();
20  virtual ~SessionStateDelegate();
21
22  // ash::SessionStateDelegate:
23  virtual int GetMaximumNumberOfLoggedInUsers() const OVERRIDE;
24  virtual int NumberOfLoggedInUsers() const OVERRIDE;
25  virtual bool IsActiveUserSessionStarted() const OVERRIDE;
26  virtual bool CanLockScreen() const OVERRIDE;
27  virtual bool IsScreenLocked() const OVERRIDE;
28  virtual bool ShouldLockScreenBeforeSuspending() const OVERRIDE;
29  virtual void LockScreen() OVERRIDE;
30  virtual void UnlockScreen() OVERRIDE;
31  virtual bool IsUserSessionBlocked() const OVERRIDE;
32  virtual const base::string16 GetUserDisplayName(
33      ash::MultiProfileIndex index) const OVERRIDE;
34  virtual const std::string GetUserEmail(
35      ash::MultiProfileIndex index) const OVERRIDE;
36  virtual const std::string GetUserID(
37      ash::MultiProfileIndex index) const OVERRIDE;
38  virtual const gfx::ImageSkia& GetUserImage(
39      ash::MultiProfileIndex index) const OVERRIDE;
40  virtual void GetLoggedInUsers(ash::UserIdList* users) OVERRIDE;
41  virtual void SwitchActiveUser(const std::string& user_id) OVERRIDE;
42  virtual void CycleActiveUser(CycleUser cycle_user) OVERRIDE;
43  virtual void AddSessionStateObserver(
44      ash::SessionStateObserver* observer) OVERRIDE;
45  virtual void RemoveSessionStateObserver(
46      ash::SessionStateObserver* observer) OVERRIDE;
47  virtual bool TransferWindowToDesktopOfUser(
48      aura::Window* window,
49      ash::MultiProfileIndex index) OVERRIDE;
50 private:
51  DISALLOW_COPY_AND_ASSIGN(SessionStateDelegate);
52};
53
54#endif  // CHROME_BROWSER_UI_ASH_SESSION_STATE_DELEGATE_VIEWS_H_
55