blob: 5351523f7d1ec2e7b1583dbadf16332cf1e531e9 [file] [log] [blame]
// 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.
#include "chrome/browser/profiles/profile_metrics.h"
class Browser;
class Profile;
// This interface controls the behavior of avatar menu actions.
// Only implemented by AvatarMenuActionsDesktop, although a Chrome OS version
// used to exist as AvatarMenuActionsChromeOS.
class AvatarMenuActions {
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) = 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;
// Updates the browser.
// TODO: Delegate browser actions to remove dependency on Browser class.
virtual void ActiveBrowserChanged(Browser* browser) = 0;