Home | History | Annotate | Download | only in profiles
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_PROFILES_PROFILE_LIST_H_
      6 #define CHROME_BROWSER_PROFILES_PROFILE_LIST_H_
      7 
      8 #include "chrome/browser/profiles/avatar_menu.h"
      9 
     10 class ProfileInfoInterface;
     11 
     12 // This model represents the profiles added to Chrome.
     13 class ProfileList {
     14  public:
     15   virtual ~ProfileList() {}
     16 
     17   static ProfileList* Create(ProfileInfoInterface* profile_cache);
     18 
     19   // Returns the number of profiles in the model.
     20   virtual size_t GetNumberOfItems() const = 0;
     21 
     22   // Returns the Item at the specified index.
     23   virtual const AvatarMenu::Item& GetItemAt(size_t index) const = 0;
     24 
     25   // Rebuilds the menu from the data source.
     26   virtual void RebuildMenu() = 0;
     27 
     28   // Returns the index in the menu of the specified profile.
     29   virtual size_t MenuIndexFromProfileIndex(size_t index) = 0;
     30 
     31   // Updates the path of the active browser's profile.
     32   virtual void ActiveProfilePathChanged(base::FilePath& path) = 0;
     33 };
     34 
     35 #endif  // CHROME_BROWSER_PROFILES_PROFILE_LIST_H_
     36