Home | History | Annotate | Download | only in screens
      1 // Copyright 2014 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_HOST_PAIRING_SCREEN_H_
      6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_HOST_PAIRING_SCREEN_H_
      7 
      8 #include "base/macros.h"
      9 #include "chrome/browser/chromeos/login/screens/host_pairing_screen_actor.h"
     10 #include "chrome/browser/chromeos/login/screens/screen_context.h"
     11 #include "chrome/browser/chromeos/login/screens/wizard_screen.h"
     12 #include "components/pairing/host_pairing_controller.h"
     13 
     14 namespace chromeos {
     15 
     16 class HostPairingScreen :
     17   public WizardScreen,
     18   public pairing_chromeos::HostPairingController::Observer,
     19   public HostPairingScreenActor::Delegate {
     20  public:
     21   HostPairingScreen(ScreenObserver* observer, HostPairingScreenActor* actor,
     22                     pairing_chromeos::HostPairingController* controller);
     23   virtual ~HostPairingScreen();
     24 
     25  private:
     26   typedef pairing_chromeos::HostPairingController::Stage Stage;
     27 
     28   void CommitContextChanges();
     29 
     30   // Overridden from WizardScreen:
     31   virtual void PrepareToShow() OVERRIDE;
     32   virtual void Show() OVERRIDE;
     33   virtual void Hide() OVERRIDE;
     34   virtual std::string GetName() const OVERRIDE;
     35 
     36   // pairing_chromeos::HostPairingController::Observer:
     37   virtual void PairingStageChanged(Stage new_stage) OVERRIDE;
     38   virtual void ConfigureHost(bool accepted_eula,
     39                              const std::string& lang,
     40                              const std::string& timezone,
     41                              bool send_reports,
     42                              const std::string& keyboard_layout) OVERRIDE;
     43   virtual void EnrollHost(const std::string& auth_token) OVERRIDE;
     44 
     45   // Overridden from ControllerPairingView::Delegate:
     46   virtual void OnActorDestroyed(HostPairingScreenActor* actor) OVERRIDE;
     47 
     48   // Context for sharing data between C++ and JS.
     49   // TODO(dzhioev): move to BaseScreen when possible.
     50   ScreenContext context_;
     51 
     52   HostPairingScreenActor* actor_;
     53 
     54   // Controller performing pairing. Owned by the wizard controller.
     55   pairing_chromeos::HostPairingController* controller_;
     56 
     57   // Current stage of pairing process.
     58   Stage current_stage_;
     59 
     60   DISALLOW_COPY_AND_ASSIGN(HostPairingScreen);
     61 };
     62 
     63 }  // namespace chromeos
     64 
     65 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_HOST_PAIRING_SCREEN_H_
     66