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_ACTOR_H_
6#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_HOST_PAIRING_SCREEN_ACTOR_H_
7
8#include "base/macros.h"
9
10namespace base {
11class DictionaryValue;
12}
13
14namespace chromeos {
15
16namespace host_pairing {
17
18// Keep these constants synced with corresponding constants defined in
19// oobe_screen_host_pairing.js.
20// Conxtext keys.
21extern const char kContextKeyPage[];
22extern const char kContextKeyDeviceName[];
23extern const char kContextKeyConfirmationCode[];
24extern const char kContextKeyEnrollmentDomain[];
25extern const char kContextKeyUpdateProgress[];
26
27// Pages names.
28extern const char kPageWelcome[];
29extern const char kPageCodeConfirmation[];
30extern const char kPageUpdate[];
31extern const char kPageEnrollmentIntroduction[];
32extern const char kPageEnrollment[];
33extern const char kPageEnrollmentError[];
34extern const char kPagePairingDone[];
35
36}  // namespace host_pairing
37
38class HostPairingScreenActor {
39 public:
40  class Delegate {
41   public:
42    virtual ~Delegate() {}
43    virtual void OnActorDestroyed(HostPairingScreenActor* actor) = 0;
44  };
45
46  HostPairingScreenActor();
47  virtual ~HostPairingScreenActor();
48
49  virtual void Show() = 0;
50  virtual void Hide() = 0;
51  virtual void SetDelegate(Delegate* delegate) = 0;
52  virtual void OnContextChanged(const base::DictionaryValue& diff) = 0;
53
54 private:
55  DISALLOW_COPY_AND_ASSIGN(HostPairingScreenActor);
56};
57
58}  // namespace chromeos
59
60#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_HOST_PAIRING_SCREEN_ACTOR_H_
61