| // 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_PROFILES_AVATAR_MENU_ACTIONS_H_ |
| #define CHROME_BROWSER_PROFILES_AVATAR_MENU_ACTIONS_H_ |
| |
| #include <string> |
| |
| #include "chrome/browser/profiles/avatar_menu.h" |
| #include "chrome/browser/profiles/profile_metrics.h" |
| |
| class Profile; |
| |
| // This interface controls the behavior of avatar menu actions. |
| class AvatarMenuActions { |
| public: |
| virtual ~AvatarMenuActions() {} |
| |
| static AvatarMenuActions* Create(); |
| |
| // Allows the user to create a new profile. |
| virtual void AddNewProfile(ProfileMetrics::ProfileAdd type) = 0; |
| |
| // Allows the user to edit the profile at the given index in the cache. |
| virtual void EditProfile(Profile* profile, size_t index) = 0; |
| |
| // Returns true if the add profile link should be shown. |
| virtual bool ShouldShowAddNewProfileLink() const = 0; |
| |
| // Returns true if the edit profile link should be shown. |
| virtual bool ShouldShowEditProfileLink() const = 0; |
| |
| // Starts the sign-out process for this profile. |
| virtual content::WebContents* BeginSignOut() = 0; |
| |
| // Sets a different URL to use for logout (for testing only). |
| virtual void SetLogoutURL(const std::string& logout_url) = 0; |
| |
| // Updates the browser. |
| // TODO: Delegate browser actions to remove dependency on Browser class. |
| virtual void ActiveBrowserChanged(Browser* browser) = 0; |
| }; |
| |
| #endif // CHROME_BROWSER_PROFILES_AVATAR_MENU_ACTIONS_H_ |