Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / screens / device_disabled_screen.h
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_DEVICE_DISABLED_SCREEN_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_DEVICE_DISABLED_SCREEN_H_
7
8 #include "base/macros.h"
9 #include "chrome/browser/chromeos/login/screens/base_screen.h"
10 #include "chrome/browser/chromeos/login/screens/device_disabled_screen_actor.h"
11 #include "chrome/browser/chromeos/system/device_disabling_manager.h"
12
13 namespace chromeos {
14
15 namespace system {
16 class DeviceDisablingManager;
17 }
18
19 class BaseScreenDelegate;
20
21 // Screen informing the user that the device has been disabled by its owner.
22 class DeviceDisabledScreen : public BaseScreen,
23                              public DeviceDisabledScreenActor::Delegate,
24                              public system::DeviceDisablingManager::Observer {
25  public:
26   DeviceDisabledScreen(BaseScreenDelegate* base_screen_delegate,
27                        DeviceDisabledScreenActor* actor);
28   ~DeviceDisabledScreen() override;
29
30   // BaseScreen:
31   void PrepareToShow() override;
32   void Show() override;
33   void Hide() override;
34   std::string GetName() const override;
35
36   // DeviceDisabledScreenActor::Delegate:
37   void OnActorDestroyed(DeviceDisabledScreenActor* actor) override;
38   const std::string& GetEnrollmentDomain() const override;
39   const std::string& GetMessage() const override;
40
41   // system::DeviceDisablingManager::Observer:
42   void OnDisabledMessageChanged(const std::string& disabled_message) override;
43
44  private:
45   DeviceDisabledScreenActor* actor_;
46   system::DeviceDisablingManager* device_disabling_manager_;
47
48   // Whether the screen is currently showing.
49   bool showing_;
50
51   DISALLOW_COPY_AND_ASSIGN(DeviceDisabledScreen);
52 };
53
54 }  // namespace chromeos
55
56 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_DEVICE_DISABLED_SCREEN_H_