// 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_ENTERPRISE_ENROLLMENT_VIEW_H_ #define CHROME_BROWSER_CHROMEOS_LOGIN_ENTERPRISE_ENROLLMENT_VIEW_H_ #pragma once #include <string> #include "base/basictypes.h" #include "base/compiler_specific.h" #include "chrome/browser/chromeos/login/web_page_view.h" #include "chrome/browser/ui/webui/chromeos/enterprise_enrollment_ui.h" #include "chrome/common/net/gaia/google_service_auth_error.h" #include "views/view.h" class DictionaryValue; namespace views { class GridLayout; class Label; } namespace chromeos { class EnterpriseEnrollmentController; class ScreenObserver; // Implements the UI for the enterprise enrollment screen in OOBE. class EnterpriseEnrollmentView : public views::View, public EnterpriseEnrollmentUI::Controller { public: explicit EnterpriseEnrollmentView(EnterpriseEnrollmentController* controller); virtual ~EnterpriseEnrollmentView(); void set_editable_user(bool editable); // Initialize view controls and layout. void Init(); // Switches to the confirmation screen. void ShowConfirmationScreen(); // Show an authentication error. void ShowAuthError(const GoogleServiceAuthError& error); void ShowAccountError(); void ShowFatalAuthError(); void ShowFatalEnrollmentError(); void ShowNetworkEnrollmentError(); // EnterpriseEnrollmentUI::Controller implementation. virtual void OnAuthSubmitted(const std::string& user, const std::string& password, const std::string& captcha, const std::string& access_code) OVERRIDE; virtual void OnAuthCancelled() OVERRIDE; virtual void OnConfirmationClosed() OVERRIDE; virtual bool GetInitialUser(std::string* user) OVERRIDE; private: // Updates the gaia login box. void UpdateGaiaLogin(const DictionaryValue& args); // Display the given i18n string as error message. void ShowError(int message_id); // Overriden from views::View: virtual void Layout() OVERRIDE; EnterpriseEnrollmentController* controller_; // Controls. WebPageDomView* enrollment_page_view_; bool editable_user_; DISALLOW_COPY_AND_ASSIGN(EnterpriseEnrollmentView); }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_LOGIN_ENTERPRISE_ENROLLMENT_VIEW_H_