1a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// found in the LICENSE file. 4a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 5a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_HID_DETECTION_SCREEN_ACTOR_H_ 6a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_HID_DETECTION_SCREEN_ACTOR_H_ 7a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 8a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include <string> 9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/callback_forward.h" 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 12a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochnamespace chromeos { 13a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 14a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Interface between HID detection screen and its representation. 15a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Note, do not forget to call OnActorDestroyed in the dtor. 16a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass HIDDetectionScreenActor { 17a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public: 18a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Allows us to get info from HID detection screen that we need. 19a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch class Delegate { 20a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public: 21a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual ~Delegate() {} 22a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 23a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Called when screen is exited. 24a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void OnExit() = 0; 25a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 26a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // This method is called, when actor is being destroyed. Note, if Delegate 27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // is destroyed earlier then it has to call SetDelegate(NULL). 28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void OnActorDestroyed(HIDDetectionScreenActor* actor) = 0; 29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch }; 30a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 31a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual ~HIDDetectionScreenActor() {} 32a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 33a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void Show() = 0; 34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void Hide() = 0; 35a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch virtual void SetDelegate(Delegate* delegate) = 0; 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Checks if we should show the screen or enough devices already present. 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // Calls corresponding set of actions based on the bool result. 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void CheckIsScreenRequired( 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const base::Callback<void(bool)>& on_check_done) = 0; 41a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch}; 42a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 43a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch} // namespace chromeos 44a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 45a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_HID_DETECTION_SCREEN_ACTOR_H_ 46a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 47