Home | History | Annotate | Download | only in screens
      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_HID_DETECTION_SCREEN_ACTOR_H_
      6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_HID_DETECTION_SCREEN_ACTOR_H_
      7 
      8 #include <string>
      9 
     10 #include "base/callback_forward.h"
     11 
     12 namespace chromeos {
     13 
     14 // Interface between HID detection screen and its representation.
     15 // Note, do not forget to call OnActorDestroyed in the dtor.
     16 class HIDDetectionScreenActor {
     17  public:
     18   // Allows us to get info from HID detection screen that we need.
     19   class Delegate {
     20    public:
     21     virtual ~Delegate() {}
     22 
     23     // Called when screen is exited.
     24     virtual void OnExit() = 0;
     25 
     26     // This method is called, when actor is being destroyed. Note, if Delegate
     27     // is destroyed earlier then it has to call SetDelegate(NULL).
     28     virtual void OnActorDestroyed(HIDDetectionScreenActor* actor) = 0;
     29   };
     30 
     31   virtual ~HIDDetectionScreenActor() {}
     32 
     33   virtual void Show() = 0;
     34   virtual void Hide() = 0;
     35   virtual void SetDelegate(Delegate* delegate) = 0;
     36 
     37   // Checks if we should show the screen or enough devices already present.
     38   // Calls corresponding set of actions based on the bool result.
     39   virtual void CheckIsScreenRequired(
     40       const base::Callback<void(bool)>& on_check_done) = 0;
     41 };
     42 
     43 }  // namespace chromeos
     44 
     45 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_HID_DETECTION_SCREEN_ACTOR_H_
     46 
     47