1c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file. 458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#ifndef CHROME_BROWSER_UI_VIEWS_PROFILES_USER_MANAGER_VIEW_H_ 6c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#define CHROME_BROWSER_UI_VIEWS_PROFILES_USER_MANAGER_VIEW_H_ 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "chrome/browser/profiles/profile.h" 1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "chrome/browser/profiles/profile_window.h" 1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "ui/views/window/dialog_delegate.h" 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class AutoKeepAlive; 14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace views { 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class WebView; 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Dialog widget that contains the Desktop User Manager webui. 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class UserManagerView : public views::DialogDelegateView { 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public: 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Do not call directly. To display the User Manager, use UserManager::Show(). 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) UserManagerView(); 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Creates a new UserManagerView instance for the |guest_profile| and 2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // shows the |url|. 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) static void OnGuestProfileCreated(scoped_ptr<UserManagerView> instance, 2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const base::FilePath& profile_path_to_focus, 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) Profile* guest_profile, 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const std::string& url); 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~UserManagerView(); 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci friend struct base::DefaultDeleter<UserManagerView>; 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Creates dialog and initializes UI. 3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) void Init(const base::FilePath& profile_path_to_focus, 3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) Profile* guest_profile, 4003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const GURL& url); 41010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // views::View: 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual gfx::Size GetPreferredSize() const OVERRIDE; 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // views::DialogDelegateView: 4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool CanResize() const OVERRIDE; 4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool CanMaximize() const OVERRIDE; 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool CanMinimize() const OVERRIDE; 50a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual base::string16 GetWindowTitle() const OVERRIDE; 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual int GetDialogButtons() const OVERRIDE; 5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void WindowClosing() OVERRIDE; 5358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool UseNewStyleForThisDialog() const OVERRIDE; 5458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) views::WebView* web_view_; 5658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 57a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) scoped_ptr<AutoKeepAlive> keep_alive_; 5858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(UserManagerView); 6058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}; 6158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 62c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#endif // CHROME_BROWSER_UI_VIEWS_PROFILES_USER_MANAGER_VIEW_H_ 63