146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file.
446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_ENROLLMENT_AUTO_ENROLLMENT_CHECK_SCREEN_ACTOR_H_
646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_LOGIN_ENROLLMENT_AUTO_ENROLLMENT_CHECK_SCREEN_ACTOR_H_
746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace chromeos {
946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Interface between auto-enrollment check screen and its representation.
1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Note, do not forget to call OnActorDestroyed in the dtor.
1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class AutoEnrollmentCheckScreenActor {
1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public:
1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // Allows us to get info from auto-enrollment check screen that we need.
1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  class Delegate {
1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)   public:
1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    virtual ~Delegate() {}
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    // Called when screen is exited.
2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    virtual void OnExit() = 0;
2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    // This method is called, when actor is being destroyed. Note, if Delegate
2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    // is destroyed earlier then it has to call SetDelegate(NULL).
2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    virtual void OnActorDestroyed(AutoEnrollmentCheckScreenActor* actor) = 0;
2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  };
2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual ~AutoEnrollmentCheckScreenActor() {}
2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void Show() = 0;
3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void SetDelegate(Delegate* delegate) = 0;
3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)};
3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}  // namespace chromeos
3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_ENROLLMENT_AUTO_ENROLLMENT_CHECK_SCREEN_ACTOR_H_
36