screen_observer.h revision 868fa2fe829687343ffae624259930155e16dbd8
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. 4 5#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_SCREEN_OBSERVER_H_ 6#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_SCREEN_OBSERVER_H_ 7 8#include <string> 9 10namespace chromeos { 11 12class ErrorScreen; 13class WizardScreen; 14 15// Interface that handles notifications received from any of login wizard 16// screens. 17class ScreenObserver { 18 public: 19 // Each login screen or a view shown within login wizard view is itself a 20 // state. Upon exit each view returns one of the results by calling 21 // OnExit() method. Depending on the result and the current view or state 22 // login wizard decides what is the next view to show. There must be an 23 // exit code for each way to exit the screen for each screen. 24 enum ExitCodes { 25 // "Continue" was pressed on network screen and network is online. 26 NETWORK_CONNECTED, 27 // Connection failed while trying to load a WebPageScreen. 28 CONNECTION_FAILED, 29 UPDATE_INSTALLED, 30 UPDATE_NOUPDATE, 31 UPDATE_ERROR_CHECKING_FOR_UPDATE, 32 UPDATE_ERROR_UPDATING, 33 USER_IMAGE_SELECTED, 34 EULA_ACCEPTED, 35 EULA_BACK, 36 ENTERPRISE_ENROLLMENT_COMPLETED, 37 ENTERPRISE_AUTO_MAGIC_ENROLLMENT_COMPLETED, 38 RESET_CANCELED, 39 KIOSK_AUTOLAUNCH_CANCELED, 40 KIOSK_AUTOLAUNCH_CONFIRMED, 41 TERMS_OF_SERVICE_DECLINED, 42 TERMS_OF_SERVICE_ACCEPTED, 43 WRONG_HWID_WARNING_SKIPPED, 44 EXIT_CODES_COUNT // not a real code, must be the last 45 }; 46 47 // Method called by a screen when user's done with it. 48 virtual void OnExit(ExitCodes exit_code) = 0; 49 50 // Forces current screen showing. 51 virtual void ShowCurrentScreen() = 0; 52 53 // Notify about new user names and password. It is used to autologin 54 // just created user without asking the same info once again. 55 virtual void OnSetUserNamePassword(const std::string& username, 56 const std::string& password) = 0; 57 58 // Whether usage statistics reporting is enabled on EULA screen. 59 virtual void SetUsageStatisticsReporting(bool val) = 0; 60 virtual bool GetUsageStatisticsReporting() const = 0; 61 62 virtual ErrorScreen* GetErrorScreen() = 0; 63 virtual void ShowErrorScreen() = 0; 64 virtual void HideErrorScreen(WizardScreen* parent_screen) = 0; 65 66 protected: 67 virtual ~ScreenObserver() {} 68}; 69 70} // namespace chromeos 71 72#endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_SCREEN_OBSERVER_H_ 73