Home | History | Annotate | Download | only in screens
      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 the network config shortcut key is pressed.
     33     virtual void OnNetworkConfigRequested(bool requested) = 0;
     34 
     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;
     38 
     39    protected:
     40     virtual ~Delegate() {}
     41   };
     42 
     43   virtual ~AppLaunchSplashScreenActor() {}
     44 
     45   // Sets screen this actor belongs to.
     46   virtual void SetDelegate(Delegate* screen) = 0;
     47 
     48   // Prepare the contents to showing.
     49   virtual void PrepareToShow() = 0;
     50 
     51   // Shows the contents of the screen.
     52   virtual void Show(const std::string& app_id) = 0;
     53 
     54   // Hides the contents of the screen.
     55   virtual void Hide() = 0;
     56 
     57   // Set the current app launch state.
     58   virtual void UpdateAppLaunchState(AppLaunchState state) = 0;
     59 
     60   // Sets whether configure network control is visible.
     61   virtual void ToggleNetworkConfig(bool visible) = 0;
     62 
     63   // Shows the network error and configure UI.
     64   virtual void ShowNetworkConfigureUI() = 0;
     65 
     66   // Returns true if the default network has Internet access.
     67   virtual bool IsNetworkReady() = 0;
     68 };
     69 
     70 }  // namespace chromeos
     71 
     72 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_APP_LAUNCH_SPLASH_SCREEN_ACTOR_H_
     73