c69f5f8b38b82aecbc9c586f4b1a15c64935058e
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / screens / host_pairing_screen.h
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_