1 // Copyright (c) 2012 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.
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_SCREEN_FACTORY_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_SCREEN_FACTORY_H_
10 #include "base/basictypes.h"
11 #include "chrome/browser/chromeos/login/screens/base_screen.h"
18 // Class that can instantiate screens by name.
21 static const char kEnrollmentScreenId
[];
22 static const char kErrorScreenId
[];
23 static const char kEulaScreenId
[];
24 static const char kKioskAutolaunchScreenId
[];
25 static const char kLocallyManagedUserCreationScreenId
[];
26 static const char kLoginScreenId
[];
27 static const char kNetworkScreenId
[];
28 static const char kResetScreenId
[];
29 static const char kTermsOfServiceScreenId
[];
30 static const char kUpdateScreenId
[];
31 static const char kUserImageScreenId
[];
32 static const char kWrongHWIDScreenId
[];
34 // |observer| to be passed to each created screen for providing screen
35 // outcome. Legacy, should be gone once refactoring is finished.
36 // |oobe_display| is a source for all the Handlers required for screens.
37 ScreenFactory(ScreenObserver
* observer
,
38 OobeDisplay
* oobe_display
);
39 virtual ~ScreenFactory();
41 // Create a screen given its |id|.
42 BaseScreen
* CreateScreen(const std::string
& id
);
45 BaseScreen
* CreateScreenImpl(const std::string
& id
);
47 // Not owned. Screen observer for created screens. Legacy, should be gone
48 // once refactoring is finished.
49 ScreenObserver
* observer_
;
51 // Now owned. Source of Handler objects for created screens.
52 OobeDisplay
* oobe_display_
;
54 DISALLOW_COPY_AND_ASSIGN(ScreenFactory
);
57 } // namespace chromeos
59 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_SCREEN_FACTORY_H_