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 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_UI_USER_ADDING_SCREEN_H_ 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_UI_USER_ADDING_SCREEN_H_ 7 8 #include "base/basictypes.h" 9 10 namespace chromeos { 11 12 // An interface that defines screen for adding users into multi-profile session. 13 // Current implementation is a singleton. 14 // TODO(dzhioev): get rid of singleton. 15 class UserAddingScreen { 16 public: 17 struct Observer { OnUserAddingStartedObserver18 virtual void OnUserAddingStarted() {} OnUserAddingFinishedObserver19 virtual void OnUserAddingFinished() {} ~ObserverObserver20 virtual ~Observer() {} 21 }; 22 23 static UserAddingScreen* Get(); 24 25 virtual void Start() = 0; 26 virtual void Cancel() = 0; 27 virtual bool IsRunning() = 0; 28 29 virtual void AddObserver(Observer* observer) = 0; 30 virtual void RemoveObserver(Observer* observer) = 0; 31 32 protected: 33 UserAddingScreen(); 34 virtual ~UserAddingScreen(); 35 36 DISALLOW_COPY_AND_ASSIGN(UserAddingScreen); 37 }; 38 39 } // namespace chromeos 40 41 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_UI_USER_ADDING_SCREEN_H_ 42 43