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#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_DISPLAY_HOST_H_ 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_DISPLAY_HOST_H_ 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#pragma once 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <string> 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/chromeos/login/background_view.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/chromeos/customization_document.h" 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/chromeos/login/login_display.h" 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "googleurl/src/gurl.h" 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "ui/gfx/native_widget_types.h" 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace chromeos { 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// An interface that defines OOBE/login screen host. 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Host encapsulates implementation specific background window (views/WebUI), 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// OOBE/login controllers, views/WebUI UI implementation (such as LoginDisplay). 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass LoginDisplayHost { 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public: 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual ~LoginDisplayHost() {} 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Creates UI implementation specific login display instance (views/WebUI). 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual LoginDisplay* CreateLoginDisplay( 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen LoginDisplay::Delegate* delegate) const = 0; 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Returns corresponding native window. 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // TODO(nkostylev): Might be refactored, move to views-specific code. 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual gfx::NativeWindow GetNativeWindow() const = 0; 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Called when browsing session starts so 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // LoginDisplayHost instance may delete itself. 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnSessionStart() = 0; 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // TODO(nkostylev): Refactor enum. 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Sets current step on OOBE progress bar. 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void SetOobeProgress(BackgroundView::LoginStep step) = 0; 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Toggles OOBE progress bar visibility, the bar is hidden by default. 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void SetOobeProgressBarVisible(bool visible) = 0; 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Enable/disable shutdown button. 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void SetShutdownButtonEnabled(bool enable) = 0; 47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Toggles whether status area is enabled. 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void SetStatusAreaEnabled(bool enable) = 0; 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Toggles status area visibility. 52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void SetStatusAreaVisible(bool visible) = 0; 53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Creates and shows a background window. 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void ShowBackground() = 0; 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Starts out-of-box-experience flow or shows other screen handled by 58ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Wizard controller i.e. camera, recovery. 59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // One could specify start screen with |first_screen_name|. 60ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void StartWizard( 61ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& first_screen_name, 62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const GURL& start_url) = 0; 63ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 64ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Starts sign in screen. 65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void StartSignInScreen() = 0; 66ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}; 67ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 68ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} // namespace chromeos 69ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 70ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_DISPLAY_HOST_H_ 71