1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file.
4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/chromeos/login/views_login_display_host.h"
6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/chromeos/login/views_login_display.h"
8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/chromeos/login/wizard_accessibility_helper.h"
9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace chromeos {
11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// ViewsLoginDisplayHost -------------------------------------------------------
13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenViewsLoginDisplayHost::ViewsLoginDisplayHost(const gfx::Rect& background_bounds)
15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    : BaseLoginDisplayHost(background_bounds),
16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      background_view_(NULL),
17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      background_window_(NULL) {
18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenViewsLoginDisplayHost::~ViewsLoginDisplayHost() {
21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (background_window_)
22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    background_window_->Close();
23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// LoginDisplayHost implementation -----------------------------------------
26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenLoginDisplay* ViewsLoginDisplayHost::CreateLoginDisplay(
28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    LoginDisplay::Delegate* delegate) const {
29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  chromeos::WizardAccessibilityHelper::GetInstance()->Init();
30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  return new ViewsLoginDisplay(delegate, background_bounds());
31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsengfx::NativeWindow ViewsLoginDisplayHost::GetNativeWindow() const {
34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (background_view_)
35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    return background_view_->GetNativeWindow();
36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  else
37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    return NULL;
38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ViewsLoginDisplayHost::SetOobeProgress(BackgroundView::LoginStep step) {
41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (background_view_)
42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    background_view_->SetOobeProgress(step);
43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ViewsLoginDisplayHost::SetOobeProgressBarVisible(bool visible) {
46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (background_view_)
47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    background_view_->SetOobeProgressBarVisible(visible);
48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ViewsLoginDisplayHost::SetShutdownButtonEnabled(bool enable) {
51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (background_view_)
52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    background_view_->EnableShutdownButton(enable);
53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ViewsLoginDisplayHost::SetStatusAreaEnabled(bool enable) {
56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (background_view_)
57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    background_view_->SetStatusAreaEnabled(enable);
58ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
60ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ViewsLoginDisplayHost::SetStatusAreaVisible(bool visible) {
61ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (background_view_)
62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    background_view_->SetStatusAreaVisible(visible);
63ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
64ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ViewsLoginDisplayHost::ShowBackground() {
66ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (background_window_) {
67ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    background_window_->Show();
68ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen    return;
69ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  }
70ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  background_window_ =
71ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      BackgroundView::CreateWindowContainingView(background_bounds(),
72ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                                                 GURL(),
73ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                                                 &background_view_);
74ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  background_window_->Show();
75ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
76ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
77ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}  // namespace chromeos
78ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
79