Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / chromeos / login / screens / screen_factory.h
blob9ab6a4cf8f27e47d7da9723dafcfea28d4d4e2c4
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_
8 #include <string>
10 #include "base/basictypes.h"
11 #include "chrome/browser/chromeos/login/screens/base_screen.h"
13 namespace chromeos {
15 class OobeDisplay;
16 class ScreenObserver;
18 // Class that can instantiate screens by name.
19 class ScreenFactory {
20 public:
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);
44 private:
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_