user_manager_view.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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_UI_VIEWS_PROFILES_USER_MANAGER_VIEW_H_
6#define CHROME_BROWSER_UI_VIEWS_PROFILES_USER_MANAGER_VIEW_H_
7
8#include "base/memory/scoped_ptr.h"
9#include "chrome/browser/profiles/profile.h"
10#include "chrome/browser/profiles/profile_window.h"
11#include "ui/views/window/dialog_delegate.h"
12
13class AutoKeepAlive;
14
15namespace views {
16class WebView;
17}
18
19// Dialog widget that contains the Desktop User Manager webui.
20class UserManagerView : public views::DialogDelegateView {
21 public:
22  // Do not call directly. To display the User Manager, use UserManager::Show().
23  UserManagerView();
24
25  // Creates a new UserManagerView instance for the |guest_profile| and
26  // shows the |url|.
27  static void OnGuestProfileCreated(scoped_ptr<UserManagerView> instance,
28                                    const base::FilePath& profile_path_to_focus,
29                                    Profile* guest_profile,
30                                    const std::string& url);
31
32 private:
33  virtual ~UserManagerView();
34
35  friend struct base::DefaultDeleter<UserManagerView>;
36
37  // Creates dialog and initializes UI.
38  void Init(const base::FilePath& profile_path_to_focus,
39            Profile* guest_profile,
40            const GURL& url);
41
42  // views::View:
43  virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE;
44  virtual gfx::Size GetPreferredSize() const OVERRIDE;
45
46  // views::DialogDelegateView:
47  virtual bool CanResize() const OVERRIDE;
48  virtual bool CanMaximize() const OVERRIDE;
49  virtual bool CanMinimize() const OVERRIDE;
50  virtual base::string16 GetWindowTitle() const OVERRIDE;
51  virtual int GetDialogButtons() const OVERRIDE;
52  virtual void WindowClosing() OVERRIDE;
53  virtual bool UseNewStyleForThisDialog() const OVERRIDE;
54
55  views::WebView* web_view_;
56
57  scoped_ptr<AutoKeepAlive> keep_alive_;
58
59  DISALLOW_COPY_AND_ASSIGN(UserManagerView);
60};
61
62#endif  // CHROME_BROWSER_UI_VIEWS_PROFILES_USER_MANAGER_VIEW_H_
63