// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_DISPLAY_HOST_H_ #define CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_DISPLAY_HOST_H_ #pragma once #include #include "chrome/browser/chromeos/login/background_view.h" #include "chrome/browser/chromeos/customization_document.h" #include "chrome/browser/chromeos/login/login_display.h" #include "googleurl/src/gurl.h" #include "ui/gfx/native_widget_types.h" namespace chromeos { // An interface that defines OOBE/login screen host. // Host encapsulates implementation specific background window (views/WebUI), // OOBE/login controllers, views/WebUI UI implementation (such as LoginDisplay). class LoginDisplayHost { public: virtual ~LoginDisplayHost() {} // Creates UI implementation specific login display instance (views/WebUI). virtual LoginDisplay* CreateLoginDisplay( LoginDisplay::Delegate* delegate) const = 0; // Returns corresponding native window. // TODO(nkostylev): Might be refactored, move to views-specific code. virtual gfx::NativeWindow GetNativeWindow() const = 0; // Called when browsing session starts so // LoginDisplayHost instance may delete itself. virtual void OnSessionStart() = 0; // TODO(nkostylev): Refactor enum. // Sets current step on OOBE progress bar. virtual void SetOobeProgress(BackgroundView::LoginStep step) = 0; // Toggles OOBE progress bar visibility, the bar is hidden by default. virtual void SetOobeProgressBarVisible(bool visible) = 0; // Enable/disable shutdown button. virtual void SetShutdownButtonEnabled(bool enable) = 0; // Toggles whether status area is enabled. virtual void SetStatusAreaEnabled(bool enable) = 0; // Toggles status area visibility. virtual void SetStatusAreaVisible(bool visible) = 0; // Creates and shows a background window. virtual void ShowBackground() = 0; // Starts out-of-box-experience flow or shows other screen handled by // Wizard controller i.e. camera, recovery. // One could specify start screen with |first_screen_name|. virtual void StartWizard( const std::string& first_screen_name, const GURL& start_url) = 0; // Starts sign in screen. virtual void StartSignInScreen() = 0; }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_DISPLAY_HOST_H_