Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_UI_COCOA_PROFILES_PROFILE_CHOOSER_CONTROLLER_H_ | 5 #ifndef CHROME_BROWSER_UI_COCOA_PROFILES_PROFILE_CHOOSER_CONTROLLER_H_ |
| 6 #define CHROME_BROWSER_UI_COCOA_PROFILES_PROFILE_CHOOSER_CONTROLLER_H_ | 6 #define CHROME_BROWSER_UI_COCOA_PROFILES_PROFILE_CHOOSER_CONTROLLER_H_ |
| 7 | 7 |
| 8 #import <Cocoa/Cocoa.h> | 8 #import <Cocoa/Cocoa.h> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <string> | 10 #include <string> |
| 11 | 11 |
| 12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 13 #include "chrome/browser/ui/profile_chooser_constants.h" | |
| 13 #import "chrome/browser/ui/cocoa/base_bubble_controller.h" | 14 #import "chrome/browser/ui/cocoa/base_bubble_controller.h" |
| 14 | 15 |
| 15 class AvatarMenu; | 16 class AvatarMenu; |
| 16 class ActiveProfileObserverBridge; | 17 class ActiveProfileObserverBridge; |
| 17 class Browser; | 18 class Browser; |
| 18 class ProfileOAuth2TokenService; | 19 class ProfileOAuth2TokenService; |
| 19 | 20 |
| 20 namespace content { | 21 namespace content { |
| 21 class WebContents; | 22 class WebContents; |
| 22 } | 23 } |
| 23 | 24 |
| 24 // This window controller manages the bubble that displays a "menu" of profiles. | 25 // This window controller manages the bubble that displays a "menu" of profiles. |
| 25 // It is brought open by clicking on the avatar icon in the window frame. | 26 // It is brought open by clicking on the avatar icon in the window frame. |
| 26 @interface ProfileChooserController : BaseBubbleController<NSTextViewDelegate> { | 27 @interface ProfileChooserController : BaseBubbleController<NSTextViewDelegate> { |
| 27 @public | 28 @public |
| 28 // Different views that can be displayed in the bubble. | |
| 29 enum BubbleViewMode { | |
| 30 // Shows a "fast profile switcher" view. | |
| 31 BUBBLE_VIEW_MODE_PROFILE_CHOOSER, | |
| 32 // Shows a list of accounts for the active user. | |
| 33 BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT, | |
| 34 // Shows a web view for primary sign in. | |
| 35 BUBBLE_VIEW_MODE_GAIA_SIGNIN, | |
| 36 // Shows a web view for adding secondary accounts. | |
| 37 BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT, | |
| 38 // Shows a view for confirming account removal. | |
| 39 BUBBLE_VIEW_MODE_ACCOUNT_REMOVAL, | |
| 40 // Shows a view for ending new profile management preview. | |
| 41 BUBBLE_VIEW_MODE_END_PREVIEW | |
| 42 }; | |
| 43 | |
| 44 @private | |
|
msw
2014/05/21 19:42:47
Keep this visibility modifier for the class member
Mike Lerman
2014/05/21 19:53:10
Done.
| |
| 45 enum TutorialMode { | |
| 46 TUTORIAL_MODE_NONE, // No tutorial card shown. | |
| 47 TUTORIAL_MODE_ENABLE_PREVIEW, // The enable-mirror-preview tutorial shown. | |
| 48 TUTORIAL_MODE_WELCOME, // The welcome-to-mirror tutorial shown. | |
| 49 TUTORIAL_MODE_SEND_FEEDBACK // The send-feedback tutorial shown. | |
| 50 }; | |
| 51 | |
| 52 // The menu that contains the data from the backend. | 29 // The menu that contains the data from the backend. |
| 53 scoped_ptr<AvatarMenu> avatarMenu_; | 30 scoped_ptr<AvatarMenu> avatarMenu_; |
| 54 | 31 |
| 55 // An observer to be notified when the OAuth2 tokens change or the avatar | 32 // An observer to be notified when the OAuth2 tokens change or the avatar |
| 56 // menu model updates for the active profile. | 33 // menu model updates for the active profile. |
| 57 scoped_ptr<ActiveProfileObserverBridge> observer_; | 34 scoped_ptr<ActiveProfileObserverBridge> observer_; |
| 58 | 35 |
| 59 // The browser that launched the bubble. Not owned. | 36 // The browser that launched the bubble. Not owned. |
| 60 Browser* browser_; | 37 Browser* browser_; |
| 61 | 38 |
| 62 // The id for the account that the user has requested to remove from the | 39 // The id for the account that the user has requested to remove from the |
| 63 // current profile. It is set in |showAccountRemovalView| and used in | 40 // current profile. It is set in |showAccountRemovalView| and used in |
| 64 // |removeAccount|. | 41 // |removeAccount|. |
| 65 std::string accountIdToRemove_; | 42 std::string accountIdToRemove_; |
| 66 | 43 |
| 67 // Active view mode. | 44 // Active view mode. |
| 68 BubbleViewMode viewMode_; | 45 profiles::BubbleViewMode viewMode_; |
| 69 | 46 |
| 70 // The current tutorial mode. | 47 // The current tutorial mode. |
| 71 TutorialMode tutorialMode_; | 48 profiles::TutorialMode tutorialMode_; |
| 72 | 49 |
| 73 // List of the full, un-elided accounts for the active profile. The keys are | 50 // List of the full, un-elided accounts for the active profile. The keys are |
| 74 // generated used to tag the UI buttons, and the values are the original | 51 // generated used to tag the UI buttons, and the values are the original |
| 75 // emails displayed by the buttons. | 52 // emails displayed by the buttons. |
| 76 std::map<int, std::string> currentProfileAccounts_; | 53 std::map<int, std::string> currentProfileAccounts_; |
| 77 | 54 |
| 78 // Web contents used by the inline signin view. | 55 // Web contents used by the inline signin view. |
| 79 scoped_ptr<content::WebContents> webContents_; | 56 scoped_ptr<content::WebContents> webContents_; |
| 80 | 57 |
| 81 // Whether the bubble is displayed for an active guest profile. | 58 // Whether the bubble is displayed for an active guest profile. |
| 82 BOOL isGuestSession_; | 59 BOOL isGuestSession_; |
| 83 } | 60 } |
| 84 | 61 |
| 85 - (id)initWithBrowser:(Browser*)browser | 62 - (id)initWithBrowser:(Browser*)browser |
| 86 anchoredAt:(NSPoint)point | 63 anchoredAt:(NSPoint)point |
| 87 withMode:(BubbleViewMode)mode; | 64 withMode:(profiles::BubbleViewMode)mode; |
| 88 | 65 |
| 89 // Creates all the subviews of the avatar bubble for |viewToDisplay|. | 66 // Creates all the subviews of the avatar bubble for |viewToDisplay|. |
| 90 - (void)initMenuContentsWithView:(BubbleViewMode)viewToDisplay; | 67 - (void)initMenuContentsWithView:(profiles::BubbleViewMode)viewToDisplay; |
| 91 | 68 |
| 92 // Returns the view currently displayed by the bubble. | 69 // Returns the view currently displayed by the bubble. |
| 93 - (BubbleViewMode)viewMode; | 70 - (profiles::BubbleViewMode)viewMode; |
| 94 | 71 |
| 95 // Switches to a given profile. |sender| is an ProfileChooserItemController. | 72 // Switches to a given profile. |sender| is an ProfileChooserItemController. |
| 96 - (IBAction)switchToProfile:(id)sender; | 73 - (IBAction)switchToProfile:(id)sender; |
| 97 | 74 |
| 98 // Shows the User Manager. | 75 // Shows the User Manager. |
| 99 - (IBAction)showUserManager:(id)sender; | 76 - (IBAction)showUserManager:(id)sender; |
| 100 | 77 |
| 101 // Closes all guest browsers and shows the User Manager. | 78 // Closes all guest browsers and shows the User Manager. |
| 102 - (IBAction)exitGuest:(id)sender; | 79 - (IBAction)exitGuest:(id)sender; |
| 103 | 80 |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 128 | 105 |
| 129 // Reset the WebContents used by the Gaia embedded view. | 106 // Reset the WebContents used by the Gaia embedded view. |
| 130 - (void)cleanUpEmbeddedViewContents; | 107 - (void)cleanUpEmbeddedViewContents; |
| 131 @end | 108 @end |
| 132 | 109 |
| 133 // Testing API ///////////////////////////////////////////////////////////////// | 110 // Testing API ///////////////////////////////////////////////////////////////// |
| 134 | 111 |
| 135 @interface ProfileChooserController (ExposedForTesting) | 112 @interface ProfileChooserController (ExposedForTesting) |
| 136 - (id)initWithBrowser:(Browser*)browser | 113 - (id)initWithBrowser:(Browser*)browser |
| 137 anchoredAt:(NSPoint)point | 114 anchoredAt:(NSPoint)point |
| 138 withMode:(BubbleViewMode)mode; | 115 withMode:(profiles::BubbleViewMode)mode; |
| 139 @end | 116 @end |
| 140 | 117 |
| 141 #endif // CHROME_BROWSER_UI_COCOA_PROFILES_PROFILE_CHOOSER_CONTROLLER_H_ | 118 #endif // CHROME_BROWSER_UI_COCOA_PROFILES_PROFILE_CHOOSER_CONTROLLER_H_ |
| OLD | NEW |