Home | History | Annotate | Download | only in login
      1 // Copyright (c) 2011 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_OOBE_DISPLAY_H_
      6 #define CHROME_BROWSER_CHROMEOS_LOGIN_OOBE_DISPLAY_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "base/callback.h"
     12 
     13 namespace chromeos {
     14 
     15 class EnrollmentScreenActor;
     16 class ErrorScreenActor;
     17 class EulaScreenActor;
     18 class KioskAutolaunchScreenActor;
     19 class KioskEnableScreenActor;
     20 class NetworkScreenActor;
     21 class ResetScreenActor;
     22 class TermsOfServiceScreenActor;
     23 class UpdateScreenActor;
     24 class UserImageScreenActor;
     25 // TODO(altimofeev): use real actors instead
     26 class ViewScreenDelegate;
     27 class WizardScreen;
     28 class WrongHWIDScreenActor;
     29 class LocallyManagedUserCreationScreenHandler;
     30 
     31 // Interface which is used by WizardController to do actual OOBE screens
     32 // showing. Also it provides actors for the OOBE screens.
     33 class OobeDisplay {
     34  public:
     35   enum Screen {
     36     SCREEN_OOBE_NETWORK = 0,
     37     SCREEN_OOBE_EULA,
     38     SCREEN_OOBE_UPDATE,
     39     SCREEN_OOBE_ENROLLMENT,
     40     SCREEN_GAIA_SIGNIN,
     41     SCREEN_ACCOUNT_PICKER,
     42     SCREEN_KIOSK_AUTOLAUNCH,
     43     SCREEN_KIOSK_ENABLE,
     44     SCREEN_ERROR_MESSAGE,
     45     SCREEN_USER_IMAGE_PICKER,
     46     SCREEN_TPM_ERROR,
     47     SCREEN_PASSWORD_CHANGED,
     48     SCREEN_CREATE_MANAGED_USER_DIALOG,
     49     SCREEN_CREATE_MANAGED_USER_FLOW,
     50     SCREEN_TERMS_OF_SERVICE,
     51     SCREEN_WRONG_HWID,
     52     SCREEN_UNKNOWN
     53   };
     54 
     55   virtual ~OobeDisplay() {}
     56 
     57   // Shows the given screen.
     58   virtual void ShowScreen(WizardScreen* screen) = 0;
     59 
     60   // Hides the given screen.
     61   virtual void HideScreen(WizardScreen* screen) = 0;
     62 
     63   // Pointers to actors which should be used by the specific screens. Actors
     64   // must be owned by the OobeDisplay implementation.
     65   virtual UpdateScreenActor* GetUpdateScreenActor() = 0;
     66   virtual NetworkScreenActor* GetNetworkScreenActor() = 0;
     67   virtual EulaScreenActor* GetEulaScreenActor() = 0;
     68   virtual EnrollmentScreenActor* GetEnrollmentScreenActor() = 0;
     69   virtual ResetScreenActor* GetResetScreenActor() = 0;
     70   virtual KioskAutolaunchScreenActor* GetKioskAutolaunchScreenActor() = 0;
     71   virtual KioskEnableScreenActor* GetKioskEnableScreenActor() = 0;
     72   virtual TermsOfServiceScreenActor* GetTermsOfServiceScreenActor() = 0;
     73   virtual UserImageScreenActor* GetUserImageScreenActor() = 0;
     74   virtual ErrorScreenActor* GetErrorScreenActor() = 0;
     75   virtual WrongHWIDScreenActor* GetWrongHWIDScreenActor() = 0;
     76   virtual LocallyManagedUserCreationScreenHandler*
     77       GetLocallyManagedUserCreationScreenActor() = 0;
     78 
     79   // Returns if JS side is fully loaded and ready to accept messages.
     80   // If |false| is returned, then |display_is_ready_callback| is stored
     81   // and will be called once display is ready.
     82   virtual bool IsJSReady(const base::Closure& display_is_ready_callback) = 0;
     83 };
     84 
     85 }  // namespace chromeos
     86 
     87 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_OOBE_DISPLAY_H_
     88