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