Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / chromeos / login / screens / controller_pairing_screen.h
blob9ff53230fe5eb0beb8e9952b3bb47afa757167c2
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.
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_H_
8 #include "base/macros.h"
10 #include "chrome/browser/chromeos/login/screens/base_screen.h"
11 #include "chrome/browser/chromeos/login/screens/controller_pairing_screen_actor.h"
12 #include "components/login/screens/screen_context.h"
13 #include "components/pairing/controller_pairing_controller.h"
15 namespace chromeos {
17 class ControllerPairingScreen
18 : public BaseScreen,
19 public pairing_chromeos::ControllerPairingController::Observer,
20 public ControllerPairingScreenActor::Delegate {
21 public:
22 class Delegate {
23 public:
24 virtual ~Delegate() {}
26 // Set remora configuration from shark.
27 virtual void SetHostConfiguration() = 0;
30 ControllerPairingScreen(
31 BaseScreenDelegate* base_screen_delegate,
32 Delegate* delegate,
33 ControllerPairingScreenActor* actor,
34 pairing_chromeos::ControllerPairingController* shark_controller);
35 ~ControllerPairingScreen() override;
37 private:
38 typedef pairing_chromeos::ControllerPairingController::Stage Stage;
40 void CommitContextChanges();
41 bool ExpectStageIs(Stage stage) const;
43 // Overridden from BaseScreen:
44 void PrepareToShow() override;
45 void Show() override;
46 void Hide() override;
47 std::string GetName() const override;
49 // Overridden from pairing_chromeos::ControllerPairingController::Observer:
50 void PairingStageChanged(Stage new_stage) override;
51 void DiscoveredDevicesListChanged() override;
53 // Overridden from ControllerPairingView::Delegate:
54 void OnActorDestroyed(ControllerPairingScreenActor* actor) override;
55 void OnScreenContextChanged(const base::DictionaryValue& diff) override;
56 void OnUserActed(const std::string& action) override;
58 Delegate* delegate_;
60 ControllerPairingScreenActor* actor_;
62 // Controller performing pairing. Owned by the wizard controller.
63 pairing_chromeos::ControllerPairingController* shark_controller_;
65 // Current stage of pairing process.
66 Stage current_stage_;
68 // If this one is |false| first device in device list will be preselected on
69 // next device list update.
70 bool device_preselected_;
72 DISALLOW_COPY_AND_ASSIGN(ControllerPairingScreen);
75 } // namespace chromeos
77 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_H_