17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file.
47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_KIOSK_ENABLE_SCREEN_ACTOR_H_
67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_KIOSK_ENABLE_SCREEN_ACTOR_H_
77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include <string>
97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace chromeos {
117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Interface between enable kiosk screen and its representation.
137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Note, do not forget to call OnActorDestroyed in the dtor.
147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class KioskEnableScreenActor {
157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public:
167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  // Allows us to get info from reset screen that we need.
177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  class Delegate {
187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)   public:
197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    virtual ~Delegate() {}
207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    // Called when screen is exited.
227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    virtual void OnExit() = 0;
237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    // This method is called, when actor is being destroyed. Note, if Delegate
257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    // is destroyed earlier then it has to call SetDelegate(NULL).
267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    virtual void OnActorDestroyed(KioskEnableScreenActor* actor) = 0;
277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  };
287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  virtual ~KioskEnableScreenActor() {}
307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  virtual void Show() = 0;
327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  virtual void SetDelegate(Delegate* delegate) = 0;
337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)};
347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}  // namespace chromeos
367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_KIOSK_ENABLE_SCREEN_ACTOR_H_
38