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_UI_WEBUI_CHROMEOS_LOGIN_UPDATE_SCREEN_HANDLER_H_ 6#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_UPDATE_SCREEN_HANDLER_H_ 7 8#include <string> 9 10#include "base/compiler_specific.h" 11#include "chrome/browser/chromeos/login/screens/update_screen_actor.h" 12#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" 13#include "chrome/browser/ui/webui/chromeos/login/network_dropdown_handler.h" 14 15namespace chromeos { 16 17class UpdateScreenHandler : public UpdateScreenActor, 18 public BaseScreenHandler, 19 public NetworkDropdownHandler::Observer { 20 public: 21 UpdateScreenHandler(); 22 virtual ~UpdateScreenHandler(); 23 24 // BaseScreenHandler implementation: 25 virtual void DeclareLocalizedValues(LocalizedValuesBuilder* builder) OVERRIDE; 26 virtual void Initialize() OVERRIDE; 27 28 // UpdateScreenActor implementation: 29 virtual void SetDelegate(UpdateScreenActor::Delegate* screen) OVERRIDE; 30 virtual void Show() OVERRIDE; 31 virtual void Hide() OVERRIDE; 32 virtual void PrepareToShow() OVERRIDE; 33 virtual void ShowManualRebootInfo() OVERRIDE; 34 virtual void SetProgress(int progress) OVERRIDE; 35 virtual void ShowEstimatedTimeLeft(bool visible) OVERRIDE; 36 virtual void SetEstimatedTimeLeft(const base::TimeDelta& time) OVERRIDE; 37 virtual void ShowProgressMessage(bool visible) OVERRIDE; 38 virtual void SetProgressMessage(ProgressMessage message) OVERRIDE; 39 virtual void ShowCurtain(bool visible) OVERRIDE; 40 41 // WebUIMessageHandler implementation: 42 virtual void RegisterMessages() OVERRIDE; 43 44 private: 45 // NetworkDropdownHandler::Observer implementation: 46 virtual void OnConnectToNetworkRequested() OVERRIDE; 47 48#if !defined(OFFICIAL_BUILD) 49 // Called when user presses Escape to cancel update. 50 void HandleUpdateCancel(); 51#endif 52 53 UpdateScreenActor::Delegate* screen_; 54 55 // Keeps whether screen should be shown right after initialization. 56 bool show_on_init_; 57 58 DISALLOW_COPY_AND_ASSIGN(UpdateScreenHandler); 59}; 60 61} // namespace chromeos 62 63#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_UPDATE_SCREEN_HANDLER_H_ 64