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.
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_
8 #include "base/strings/string16.h"
12 // Interface for UI implemenations of the ApplaunchSplashScreen.
13 class AppLaunchSplashScreenActor
{
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
,
26 // Invoked when the configure network control is clicked.
27 virtual void OnConfigureNetwork() = 0;
29 // Invoked when the app launch bailout shortcut key is pressed.
30 virtual void OnCancelAppLaunch() = 0;
32 // Invoked when the network config shortcut key is pressed.
33 virtual void OnNetworkConfigRequested(bool requested
) = 0;
35 // Invoked when network state is changed. |online| is true if the device
36 // is connected to the Internet.
37 virtual void OnNetworkStateChanged(bool online
) = 0;
40 virtual ~Delegate() {}
43 virtual ~AppLaunchSplashScreenActor() {}
45 // Sets screen this actor belongs to.
46 virtual void SetDelegate(Delegate
* screen
) = 0;
48 // Prepare the contents to showing.
49 virtual void PrepareToShow() = 0;
51 // Shows the contents of the screen.
52 virtual void Show(const std::string
& app_id
) = 0;
54 // Hides the contents of the screen.
55 virtual void Hide() = 0;
57 // Set the current app launch state.
58 virtual void UpdateAppLaunchState(AppLaunchState state
) = 0;
60 // Sets whether configure network control is visible.
61 virtual void ToggleNetworkConfig(bool visible
) = 0;
63 // Shows the network error and configure UI.
64 virtual void ShowNetworkConfigureUI() = 0;
66 // Returns true if the default network has Internet access.
67 virtual bool IsNetworkReady() = 0;
70 } // namespace chromeos
72 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_APP_LAUNCH_SPLASH_SCREEN_ACTOR_H_