update_screen_actor.h revision 2385ea399aae016c0806a4f9ef3c9cfe3d2a39df
1// Copyright (c) 2012 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_UPDATE_SCREEN_ACTOR_H_
6#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_UPDATE_SCREEN_ACTOR_H_
7
8#include "base/time/time.h"
9
10namespace chromeos {
11
12class UpdateScreenActor {
13 public:
14  // Indices for corresponding info messages during update stage.
15  enum ProgressMessage {
16    PROGRESS_MESSAGE_UPDATE_AVAILABLE = 0,
17    PROGRESS_MESSAGE_INSTALLING_UPDATE,
18    PROGRESS_MESSAGE_VERIFYING,
19    PROGRESS_MESSAGE_FINALIZING
20  };
21
22  class Delegate {
23   public:
24    virtual ~Delegate() {}
25    // Force cancel update.
26    virtual void CancelUpdate() = 0;
27    virtual void OnActorDestroyed(UpdateScreenActor* actor) = 0;
28    virtual void OnConnectToNetworkRequested(
29        const std::string& service_path) = 0;
30  };
31
32  virtual ~UpdateScreenActor() {}
33
34  // Sets screen this actor belongs to.
35  virtual void SetDelegate(Delegate* screen) = 0;
36
37  // Shows the screen.
38  virtual void Show() = 0;
39
40  // Hides the screen.
41  virtual void Hide() = 0;
42
43  virtual void PrepareToShow() = 0;
44
45  // Shows manual reboot info message.
46  virtual void ShowManualRebootInfo() = 0;
47
48  // Sets current progress in percents.
49  virtual void SetProgress(int progress) = 0;
50
51  // Shows estimated time left message.
52  virtual void ShowEstimatedTimeLeft(bool visible) = 0;
53
54  // Sets current estimation for time left in the downloading stage.
55  virtual void SetEstimatedTimeLeft(const base::TimeDelta& time) = 0;
56
57  // Shows message under progress bar.
58  virtual void ShowProgressMessage(bool visible) = 0;
59
60  // Sets message under progress bar.
61  virtual void SetProgressMessage(ProgressMessage message) = 0;
62
63  // Shows screen curtains.
64  virtual void ShowCurtain(bool visible) = 0;
65};
66
67}  // namespace chromeos
68
69#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_UPDATE_SCREEN_ACTOR_H_
70