Chromium Code Reviews| Index: chrome/browser/ui/cocoa/user_manager_mac.h |
| diff --git a/chrome/browser/ui/cocoa/user_manager_mac.h b/chrome/browser/ui/cocoa/user_manager_mac.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c534975bad6d7d217d15240d140fbbd481c40933 |
| --- /dev/null |
| +++ b/chrome/browser/ui/cocoa/user_manager_mac.h |
| @@ -0,0 +1,73 @@ |
| +// Copyright 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_BROWSER_UI_COCOA_USER_MANAGER_MAC_H_ |
| +#define CHROME_BROWSER_UI_COCOA_USER_MANAGER_MAC_H_ |
| + |
| +#import <Cocoa/Cocoa.h> |
| + |
| +#include "base/mac/scoped_nsobject.h" |
| +#include "base/memory/scoped_ptr.h" |
| +#include "chrome/browser/profiles/profile.h" |
| + |
| +class UserManagerMac; |
| + |
| +namespace content { |
| +class NavigationController; |
| +class WebContents; |
| +} |
| + |
| +// Window controller for the User Manager view. |
| +@interface UserManagerWindowController : NSWindowController <NSWindowDelegate> { |
| +@private |
| + scoped_ptr<content::WebContents> webContents_; |
| + UserManagerMac* userManagerObserver_; // Weak. |
| +} |
| + |
| +- (id)initWithProfile:(Profile*) profile |
| + withObserver:(UserManagerMac*) userManagerObserver; |
| +- (void)showURL:(GURL)url; |
|
groby-ooo-7-16
2013/12/10 00:41:06
Please pass as const ref, not a copy
noms (inactive)
2013/12/10 15:41:35
Done.
|
| +- (void)show; |
| +- (void)close; |
| +@end |
| + |
| +// Dialog widget that contains the Desktop User Manager webui. |
| +class UserManagerMac { |
| + public: |
| + // Shows the User Manager or re-activates an existing one, focusing the |
| + // profile given by |profile_path_to_focus|. |
| + static void Show(const base::FilePath& profile_path_to_focus); |
| + |
| + // Hide the User Manager. |
| + static void Hide(); |
| + |
| + // Returns whether or not the User Manager is showing. |
| + static bool IsShowing(); |
| + |
| + // Called by the cocoa window controller when its window closes and the |
| + // controller destroyed itself. Deletes the instance. |
| + void WindowWasClosed(); |
| + |
| + private: |
| + explicit UserManagerMac(Profile* profile); |
| + virtual ~UserManagerMac(); |
| + |
| + // If the |guest_profile| has been initialized succesfully (according to |
| + // |status|), creates a new UserManagerMac instance with the user with path |
| + // |profile_path_to_focus| focused. |
| + static void OnGuestProfileCreated(const base::FilePath& profile_path_to_focus, |
| + Profile* guest_profile, |
| + Profile::CreateStatus status); |
| + |
| + // An open User Manager window. There can only be one open at a time. This |
| + // is reset to NULL when the window is closed. |
| + static UserManagerMac* instance_; // Weak. |
| + |
| + // Controller of the window. |
| + base::scoped_nsobject<UserManagerWindowController> window_controller_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(UserManagerMac); |
| +}; |
| + |
| +#endif // CHROME_BROWSER_UI_COCOA_USER_MANAGER_MAC_H_ |