1// Copyright 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_UI_ASH_LAUNCHER_MULTI_PROFILE_BROWSER_STATUS_MONITOR_H_ 6#define CHROME_BROWSER_UI_ASH_LAUNCHER_MULTI_PROFILE_BROWSER_STATUS_MONITOR_H_ 7 8#include "chrome/browser/ui/ash/launcher/browser_status_monitor.h" 9 10// MultiProfileBrowserStatusMonitor uses mainly the BrowserStatusMonitor 11// with the addition that it creates and destroys launcher items for windowed 12// V1 apps - upon creation as well as upon user switch. 13class MultiProfileBrowserStatusMonitor : public BrowserStatusMonitor { 14 public: 15 explicit MultiProfileBrowserStatusMonitor( 16 ChromeLauncherController* launcher_controller); 17 virtual ~MultiProfileBrowserStatusMonitor(); 18 19 // BrowserStatusMonitor overrides. 20 virtual void ActiveUserChanged(const std::string& user_email) OVERRIDE; 21 virtual void AddV1AppToShelf(Browser* browser) OVERRIDE; 22 virtual void RemoveV1AppFromShelf(Browser* browser) OVERRIDE; 23 24 private: 25 typedef std::vector<Browser*> AppList; 26 AppList app_list_; 27 28 // Connect a V1 app to the launcher. 29 void ConnectV1AppToLauncher(Browser* browser); 30 31 // Disconnect a V1 app from the launcher. 32 void DisconnectV1AppFromLauncher(Browser* browser); 33 34 // The launcher controller which is associated with this object. 35 ChromeLauncherController* launcher_controller_; 36 37 DISALLOW_COPY_AND_ASSIGN(MultiProfileBrowserStatusMonitor); 38}; 39 40#endif // CHROME_BROWSER_UI_ASH_LAUNCHER_MULTI_PROFILE_BROWSER_STATUS_MONITOR_H_ 41