1 // Copyright (c) 2011 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_VIEWS_LOGIN_DISPLAY_HOST_H_ 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_VIEWS_LOGIN_DISPLAY_HOST_H_ 7 #pragma once 8 9 #include <string> 10 11 #include "chrome/browser/chromeos/login/background_view.h" 12 #include "chrome/browser/chromeos/login/base_login_display_host.h" 13 #include "ui/gfx/rect.h" 14 15 namespace chromeos { 16 17 // Views-specific implementation of the OOBE/login screen host. 18 // Uses ViewsLoginDisplay as the login screen UI implementation, 19 // BackgroundView as the background UI implementation. 20 // In its current implementation BackgroundView encapsulates StatusAreaView. 21 class ViewsLoginDisplayHost : public chromeos::BaseLoginDisplayHost { 22 public: 23 explicit ViewsLoginDisplayHost(const gfx::Rect& background_bounds); 24 virtual ~ViewsLoginDisplayHost(); 25 26 // LoginDisplayHost implementation: 27 virtual LoginDisplay* CreateLoginDisplay(LoginDisplay::Delegate* delegate) 28 const; 29 virtual gfx::NativeWindow GetNativeWindow() const; 30 virtual void SetOobeProgress(BackgroundView::LoginStep step); 31 virtual void SetOobeProgressBarVisible(bool visible); 32 virtual void SetShutdownButtonEnabled(bool enable); 33 virtual void SetStatusAreaEnabled(bool enable); 34 virtual void SetStatusAreaVisible(bool visible); 35 virtual void ShowBackground(); 36 37 private: 38 // Background view/window. 39 BackgroundView* background_view_; 40 views::Widget* background_window_; 41 42 DISALLOW_COPY_AND_ASSIGN(ViewsLoginDisplayHost); 43 }; 44 45 } // namespace chromeos 46 47 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_VIEWS_LOGIN_DISPLAY_HOST_H_ 48