• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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_APP_LAUNCH_SPLASH_SCREEN_ACTOR_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_APP_LAUNCH_SPLASH_SCREEN_ACTOR_H_
7 
8 #include "base/strings/string16.h"
9 
10 namespace chromeos {
11 
12 // Interface for UI implemenations of the ApplaunchSplashScreen.
13 class AppLaunchSplashScreenActor {
14  public:
15   enum AppLaunchState {
16     APP_LAUNCH_STATE_LOADING_AUTH_FILE,
17     APP_LAUNCH_STATE_LOADING_TOKEN_SERVICE,
18     APP_LAUNCH_STATE_PREPARING_NETWORK,
19     APP_LAUNCH_STATE_INSTALLING_APPLICATION,
20     APP_LAUNCH_STATE_WAITING_APP_WINDOW,
21     APP_LAUNCH_STATE_NETWORK_WAIT_TIMEOUT,
22   };
23 
24   class Delegate {
25    public:
26     // Invoked when the configure network control is clicked.
27     virtual void OnConfigureNetwork() = 0;
28 
29     // Invoked when the app launch bailout shortcut key is pressed.
30     virtual void OnCancelAppLaunch() = 0;
31 
32     // Invoked when network state is changed. |online| is true if the device
33     // is connected to the Internet.
34     virtual void OnNetworkStateChanged(bool online) = 0;
35 
36    protected:
~Delegate()37     virtual ~Delegate() {}
38   };
39 
~AppLaunchSplashScreenActor()40   virtual ~AppLaunchSplashScreenActor() {}
41 
42   // Sets screen this actor belongs to.
43   virtual void SetDelegate(Delegate* screen) = 0;
44 
45   // Prepare the contents to showing.
46   virtual void PrepareToShow() = 0;
47 
48   // Shows the contents of the screen.
49   virtual void Show(const std::string& app_id) = 0;
50 
51   // Hides the contents of the screen.
52   virtual void Hide() = 0;
53 
54   // Set the current app launch state.
55   virtual void UpdateAppLaunchState(AppLaunchState state) = 0;
56 
57   // Sets whether configure network control is visible.
58   virtual void ToggleNetworkConfig(bool visible) = 0;
59 
60   // Shows the network error and configure UI.
61   virtual void ShowNetworkConfigureUI() = 0;
62 };
63 
64 }  // namespace chromeos
65 
66 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_APP_LAUNCH_SPLASH_SCREEN_ACTOR_H_
67