Home | History | Annotate | Download | only in login
      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