diff options
author | finnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-06 17:56:32 +0000 |
---|---|---|
committer | finnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-06 17:56:32 +0000 |
commit | 842cd6c6d12fb66b49e6e342499e1f77c1bbb0fc (patch) | |
tree | 884eca3aeea1a6b2840616cefe299bfb291c3048 /chrome/browser/chromeos/login | |
parent | 2b5b8bac901de2dfcec20e5b01944d9e1cd4a2fd (diff) | |
download | chromium_src-842cd6c6d12fb66b49e6e342499e1f77c1bbb0fc.zip chromium_src-842cd6c6d12fb66b49e6e342499e1f77c1bbb0fc.tar.gz chromium_src-842cd6c6d12fb66b49e6e342499e1f77c1bbb0fc.tar.bz2 |
Added OOBE update screen stub.
Moved OOBE views classes to the chromeos namespace.
BUG=35249
TEST=run out/Debug/chrome --login-manager --login-screen=update
TBR=denisromanov
(Checking in patch for Denis Romanov, previously reviewed here:
http://codereview.chromium.org/669089/show)
Review URL: http://codereview.chromium.org/669241
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40842 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/login')
-rw-r--r-- | chrome/browser/chromeos/login/account_screen.cc | 1 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/account_screen.h | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/login_manager_view.cc | 37 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/login_manager_view.h | 18 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/network_selection_view.cc | 52 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/network_selection_view.h | 30 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/update_view.cc | 82 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/update_view.h | 42 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/view_screen.h | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/wizard_controller.cc | 9 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/wizard_controller.h | 2 |
11 files changed, 212 insertions, 70 deletions
diff --git a/chrome/browser/chromeos/login/account_screen.cc b/chrome/browser/chromeos/login/account_screen.cc index 0b14bfb..e50c068 100644 --- a/chrome/browser/chromeos/login/account_screen.cc +++ b/chrome/browser/chromeos/login/account_screen.cc @@ -19,7 +19,6 @@ const char kCreateAccountPageUrl[] = } // namespace - /////////////////////////////////////////////////////////////////////////////// // AccountScreen, public: AccountScreen::AccountScreen(WizardScreenDelegate* delegate) diff --git a/chrome/browser/chromeos/login/account_screen.h b/chrome/browser/chromeos/login/account_screen.h index ad3ac58..00b9d57 100644 --- a/chrome/browser/chromeos/login/account_screen.h +++ b/chrome/browser/chromeos/login/account_screen.h @@ -51,5 +51,3 @@ class AccountScreen : public ViewScreen<AccountCreationView>, }; #endif // CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_SCREEN_H_ - - diff --git a/chrome/browser/chromeos/login/login_manager_view.cc b/chrome/browser/chromeos/login/login_manager_view.cc index a714a4d..db57896 100644 --- a/chrome/browser/chromeos/login/login_manager_view.cc +++ b/chrome/browser/chromeos/login/login_manager_view.cc @@ -64,7 +64,9 @@ const bool kStubOutLogin = false; } // namespace -LoginManagerView::LoginManagerView(chromeos::ScreenObserver* observer) +namespace chromeos { + +LoginManagerView::LoginManagerView(ScreenObserver* observer) : username_field_(NULL), password_field_(NULL), os_version_label_(NULL), @@ -90,8 +92,8 @@ LoginManagerView::~LoginManagerView() { void LoginManagerView::Init() { // Use rounded rect background. - views::Painter* painter = chromeos::CreateWizardPainter( - &chromeos::BorderDefinition::kScreenBorder); + views::Painter* painter = CreateWizardPainter( + &BorderDefinition::kScreenBorder); set_background( views::Background::CreateBackgroundPainter(true, painter)); @@ -147,8 +149,7 @@ void LoginManagerView::Init() { UpdateLocalizedStrings(); // Restore previously logged in user. - std::vector<chromeos::UserManager::User> users = - chromeos::UserManager::Get()->GetUsers(); + std::vector<UserManager::User> users = UserManager::Get()->GetUsers(); if (users.size() > 0) { username_field_->SetText(UTF8ToUTF16(users[0].email())); } @@ -157,7 +158,7 @@ void LoginManagerView::Init() { // Controller to handle events from textfields username_field_->SetController(this); password_field_->SetController(this); - if (chromeos::LoginLibrary::EnsureLoaded()) { + if (LoginLibrary::EnsureLoaded()) { loader_.GetVersion( &consumer_, NewCallback(this, &LoginManagerView::OnOSVersion)); } else if (!kStubOutLogin) { @@ -245,8 +246,8 @@ void LoginManagerView::Layout() { y += (setViewBounds(sign_in_button_, x, y, max_width, false) + kRowPad); y += (setViewBounds(error_label_, x, y, max_width, true) + kRowPad); - int padding = chromeos::BorderDefinition::kScreenBorder.shadow + - chromeos::BorderDefinition::kScreenBorder.corner_radius / 2; + int padding = BorderDefinition::kScreenBorder.shadow + + BorderDefinition::kScreenBorder.corner_radius / 2; setViewBounds( os_version_label_, padding, @@ -273,7 +274,7 @@ void LoginManagerView::ButtonPressed( void LoginManagerView::OnLoginFailure() { LOG(INFO) << "LoginManagerView: OnLoginFailure()"; - chromeos::NetworkLibrary* network = chromeos::NetworkLibrary::Get(); + NetworkLibrary* network = NetworkLibrary::Get(); // Check networking after trying to login in case user is // cached locally or the local admin account. if (!network || !network->EnsureLoaded()) @@ -288,7 +289,7 @@ void LoginManagerView::OnLoginSuccess(const std::string& username) { LOG(INFO) << "LoginManagerView: OnLoginSuccess()"; // TODO(cmasone): something sensible if errors occur. SetupSession(username); - chromeos::UserManager::Get()->UserLoggedIn(username); + UserManager::Get()->UserLoggedIn(username); // Now launch the initial browser window. BrowserInit browser_init; @@ -301,7 +302,7 @@ void LoginManagerView::OnLoginSuccess(const std::string& username) { Profile* profile = profile_manager->GetDefaultProfile(user_data_dir); int return_code; - chromeos::ExternalCookieHandler::GetCookies(command_line, profile); + ExternalCookieHandler::GetCookies(command_line, profile); LOG(INFO) << "OnLoginSuccess: Preparing to launch browser"; browser_init.LaunchBrowser(command_line, profile, @@ -312,10 +313,10 @@ void LoginManagerView::OnLoginSuccess(const std::string& username) { void LoginManagerView::SetupSession(const std::string& username) { if (observer_) { - observer_->OnExit(chromeos::ScreenObserver::LOGIN_SIGN_IN_SELECTED); + observer_->OnExit(ScreenObserver::LOGIN_SIGN_IN_SELECTED); } - if (chromeos::LoginLibrary::EnsureLoaded()) - chromeos::LoginLibrary::Get()->StartSession(username, ""); + if (LoginLibrary::EnsureLoaded()) + LoginLibrary::Get()->StartSession(username, ""); } void LoginManagerView::Login() { @@ -345,7 +346,7 @@ void LoginManagerView::ShowError(int error_id) { bool LoginManagerView::HandleKeystroke(views::Textfield* s, const views::Textfield::Keystroke& keystroke) { - if (!kStubOutLogin && !chromeos::LoginLibrary::EnsureLoaded()) + if (!kStubOutLogin && !LoginLibrary::EnsureLoaded()) return false; if (keystroke.GetKeyboardCode() == base::VKEY_TAB) { @@ -365,7 +366,7 @@ bool LoginManagerView::HandleKeystroke(views::Textfield* s, } else if (keystroke.GetKeyboardCode() == base::VKEY_ESCAPE) { // TODO(nkostylev): Implement non-textfield dependent keystroke handler. if (observer_) { - observer_->OnExit(chromeos::ScreenObserver::LOGIN_BACK); + observer_->OnExit(ScreenObserver::LOGIN_BACK); } return true; } @@ -374,7 +375,9 @@ bool LoginManagerView::HandleKeystroke(views::Textfield* s, } void LoginManagerView::OnOSVersion( - chromeos::VersionLoader::Handle handle, + VersionLoader::Handle handle, std::string version) { os_version_label_->SetText(ASCIIToWide(version)); } + +} // namespace chromeos diff --git a/chrome/browser/chromeos/login/login_manager_view.h b/chrome/browser/chromeos/login/login_manager_view.h index 5dfbe50..8d91a2b 100644 --- a/chrome/browser/chromeos/login/login_manager_view.h +++ b/chrome/browser/chromeos/login/login_manager_view.h @@ -16,21 +16,21 @@ #include "views/view.h" #include "views/widget/widget_gtk.h" -namespace chromeos { -class ScreenObserver; -} // namespace chromeos - namespace views { class Label; class NativeButton; } // namespace views +namespace chromeos { + +class ScreenObserver; + class LoginManagerView : public views::View, public LoginStatusConsumer, public views::Textfield::Controller, public views::ButtonListener { public: - explicit LoginManagerView(chromeos::ScreenObserver* observer); + explicit LoginManagerView(ScreenObserver* observer); virtual ~LoginManagerView(); void Init(); @@ -83,7 +83,7 @@ class LoginManagerView : public views::View, void SetupSession(const std::string& username); // Callback from chromeos::VersionLoader giving the version. - void OnOSVersion(chromeos::VersionLoader::Handle handle, + void OnOSVersion(VersionLoader::Handle handle, std::string version); // Attempt to login with the current field values. @@ -105,13 +105,13 @@ class LoginManagerView : public views::View, views::NativeButton* sign_in_button_; // Handles asynchronously loading the version. - chromeos::VersionLoader loader_; + VersionLoader loader_; // Used to request the version. CancelableRequestConsumer consumer_; // Notifications receiver. - chromeos::ScreenObserver* observer_; + ScreenObserver* observer_; // String ID for the current error message. // Set to -1 if no messages is shown. @@ -128,4 +128,6 @@ class LoginManagerView : public views::View, DISALLOW_COPY_AND_ASSIGN(LoginManagerView); }; +} // namespace chromeos + #endif // CHROME_BROWSER_CHROMEOS_LOGIN_LOGIN_MANAGER_VIEW_H_ diff --git a/chrome/browser/chromeos/login/network_selection_view.cc b/chrome/browser/chromeos/login/network_selection_view.cc index 47bfcc5..cee8acb 100644 --- a/chrome/browser/chromeos/login/network_selection_view.cc +++ b/chrome/browser/chromeos/login/network_selection_view.cc @@ -40,14 +40,15 @@ const SkColor kWelcomeColor = 0x0054A4; } // namespace -NetworkSelectionView::NetworkSelectionView(chromeos::ScreenObserver* observer) +namespace chromeos { + +NetworkSelectionView::NetworkSelectionView(ScreenObserver* observer) : network_combobox_(NULL), welcome_label_(NULL), select_network_label_(NULL), connecting_network_label_(NULL), observer_(observer), network_notification_(false) { - ChangeNetworkNotification(true); } NetworkSelectionView::~NetworkSelectionView() { @@ -58,8 +59,8 @@ NetworkSelectionView::~NetworkSelectionView() { void NetworkSelectionView::Init() { // TODO(nkostylev): Add UI language and logo. // Use rounded rect background. - views::Painter* painter = chromeos::CreateWizardPainter( - &chromeos::BorderDefinition::kScreenBorder); + views::Painter* painter = CreateWizardPainter( + &BorderDefinition::kScreenBorder); set_background( views::Background::CreateBackgroundPainter(true, painter)); @@ -173,7 +174,7 @@ std::wstring NetworkSelectionView::GetItemAt(int index) { l10n_util::GetString(IDS_STATUSBAR_NO_NETWORKS_MESSAGE) : l10n_util::GetString(IDS_NETWORK_SELECTION_NONE); } - chromeos::NetworkList::NetworkItem* network = + NetworkList::NetworkItem* network = networks_.GetNetworkAt(index - 1); return network ? UTF16ToWide(network->label) : std::wstring(); } @@ -196,20 +197,20 @@ void NetworkSelectionView::ItemChanged(views::Combobox* sender, if (networks_.IsEmpty()) return; - chromeos::NetworkList::NetworkItem* network = + NetworkList::NetworkItem* network = networks_.GetNetworkAt(new_index - 1); if (network) { - if (chromeos::NetworkList::NETWORK_WIFI == network->network_type) { + if (NetworkList::NETWORK_WIFI == network->network_type) { if (network->wifi_network.encrypted) { OpenPasswordDialog(network->wifi_network); return; } else { - chromeos::NetworkLibrary::Get()->ConnectToWifiNetwork( + NetworkLibrary::Get()->ConnectToWifiNetwork( network->wifi_network, string16()); } - } else if (chromeos::NetworkList::NETWORK_CELLULAR == + } else if (NetworkList::NETWORK_CELLULAR == network->network_type) { - chromeos::NetworkLibrary::Get()->ConnectToCellularNetwork( + NetworkLibrary::Get()->ConnectToCellularNetwork( network->cellular_network); } } @@ -220,7 +221,7 @@ void NetworkSelectionView::ItemChanged(views::Combobox* sender, void NetworkSelectionView::ButtonPressed(views::Button* sender, const views::Event& event) { if (observer_) { - observer_->OnExit(chromeos::ScreenObserver::NETWORK_OFFLINE); + observer_->OnExit(ScreenObserver::NETWORK_OFFLINE); ChangeNetworkNotification(false); } } @@ -230,12 +231,12 @@ void NetworkSelectionView::ButtonPressed(views::Button* sender, bool NetworkSelectionView::OnPasswordDialogAccept(const std::string& ssid, const string16& password) { - chromeos::NetworkList::NetworkItem* network = - networks_.GetNetworkById(chromeos::NetworkList::NETWORK_WIFI, + NetworkList::NetworkItem* network = + networks_.GetNetworkById(NetworkList::NETWORK_WIFI, ASCIIToUTF16(ssid)); if (network && - chromeos::NetworkList::NETWORK_WIFI == network->network_type) { - chromeos::NetworkLibrary::Get()->ConnectToWifiNetwork(network->wifi_network, + NetworkList::NETWORK_WIFI == network->network_type) { + NetworkLibrary::Get()->ConnectToWifiNetwork(network->wifi_network, password); } return true; @@ -245,12 +246,11 @@ bool NetworkSelectionView::OnPasswordDialogAccept(const std::string& ssid, // NetworkLibrary::Observer implementation: void NetworkSelectionView::NetworkChanged( - chromeos::NetworkLibrary* network_lib) { + NetworkLibrary* network_lib) { // Save network selection in case it would be available after refresh. - chromeos::NetworkList::NetworkType network_type = - chromeos::NetworkList::NETWORK_EMPTY; + NetworkList::NetworkType network_type = NetworkList::NETWORK_EMPTY; string16 network_id; - chromeos::NetworkList::NetworkItem* network = GetSelectedNetwork(); + NetworkList::NetworkItem* network = GetSelectedNetwork(); if (network) { network_type = network->network_type; network_id = network->label; @@ -268,27 +268,27 @@ void NetworkSelectionView::NetworkChanged( SelectNetwork(network_type, network_id); } -void NetworkSelectionView::NetworkTraffic(chromeos::NetworkLibrary* cros, +void NetworkSelectionView::NetworkTraffic(NetworkLibrary* cros, int traffic_type) { } //////////////////////////////////////////////////////////////////////////////// // NetworkSelectionView, private: -chromeos::NetworkList::NetworkItem* NetworkSelectionView::GetSelectedNetwork() { +NetworkList::NetworkItem* NetworkSelectionView::GetSelectedNetwork() { return networks_.GetNetworkAt(network_combobox_->selected_item() - 1); } void NetworkSelectionView::NotifyOnConnection() { if (observer_) { - observer_->OnExit(chromeos::ScreenObserver::NETWORK_CONNECTED); + observer_->OnExit(ScreenObserver::NETWORK_CONNECTED); ChangeNetworkNotification(false); } } -void NetworkSelectionView::OpenPasswordDialog(chromeos::WifiNetwork network) { +void NetworkSelectionView::OpenPasswordDialog(WifiNetwork network) { // TODO(nkostylev): Reuse this code in network menu button. - chromeos::PasswordDialogView* dialog = new chromeos::PasswordDialogView( + PasswordDialogView* dialog = new PasswordDialogView( this, network.ssid); views::Window* window = views::Window::CreateChromeWindow( GetWindow()->GetNativeWindow(), gfx::Rect(), dialog); @@ -301,7 +301,7 @@ void NetworkSelectionView::OpenPasswordDialog(chromeos::WifiNetwork network) { } void NetworkSelectionView::SelectNetwork( - chromeos::NetworkList::NetworkType type, const string16& id) { + NetworkList::NetworkType type, const string16& id) { int index = networks_.GetNetworkIndexById(type, id); if (index >= 0) { network_combobox_->SetSelectedItem(index + 1); @@ -326,3 +326,5 @@ void NetworkSelectionView::ChangeNetworkNotification(bool subscribe) { else chromeos::NetworkLibrary::Get()->RemoveObserver(this); } + +} // namespace chromeos diff --git a/chrome/browser/chromeos/login/network_selection_view.h b/chrome/browser/chromeos/login/network_selection_view.h index cd928d9..904757e 100644 --- a/chrome/browser/chromeos/login/network_selection_view.h +++ b/chrome/browser/chromeos/login/network_selection_view.h @@ -18,24 +18,24 @@ #include "views/widget/widget_gtk.h" #include "views/window/window_delegate.h" -namespace chromeos { -class ScreenObserver; -} // namespace chromeos - namespace views { class Label; class NativeButton; } // namespace views +namespace chromeos { + +class ScreenObserver; + // View for the network selection/initial welcome screen. class NetworkSelectionView : public views::View, public ComboboxModel, public views::Combobox::Listener, public views::ButtonListener, - public chromeos::PasswordDialogDelegate, - public chromeos::NetworkLibrary::Observer { + public PasswordDialogDelegate, + public NetworkLibrary::Observer { public: - explicit NetworkSelectionView(chromeos::ScreenObserver* observer); + explicit NetworkSelectionView(ScreenObserver* observer); virtual ~NetworkSelectionView(); void Init(); @@ -64,21 +64,21 @@ class NetworkSelectionView : public views::View, const string16& password); // NetworkLibrary::Observer implementation: - virtual void NetworkChanged(chromeos::NetworkLibrary* network_lib); - virtual void NetworkTraffic(chromeos::NetworkLibrary* cros, int traffic_type); + virtual void NetworkChanged(NetworkLibrary* network_lib); + virtual void NetworkTraffic(NetworkLibrary* cros, int traffic_type); private: // Returns currently selected network in the combobox. - chromeos::NetworkList::NetworkItem* GetSelectedNetwork(); + NetworkList::NetworkItem* GetSelectedNetwork(); // Notifies wizard on successful connection. void NotifyOnConnection(); // Opens password dialog for the encrypted networks. - void OpenPasswordDialog(chromeos::WifiNetwork network); + void OpenPasswordDialog(WifiNetwork network); // Selects network by type and id. - void SelectNetwork(chromeos::NetworkList::NetworkType type, + void SelectNetwork(NetworkList::NetworkType type, const string16& id); // Shows network connecting status or network selection otherwise. @@ -95,16 +95,18 @@ class NetworkSelectionView : public views::View, views::NativeButton* offline_button_; // Notifications receiver. - chromeos::ScreenObserver* observer_; + ScreenObserver* observer_; // True if subscribed to network change notification. bool network_notification_; // Cached networks. - chromeos::NetworkList networks_; + NetworkList networks_; string16 network_id_; DISALLOW_COPY_AND_ASSIGN(NetworkSelectionView); }; +} // namespace chromeos + #endif // CHROME_BROWSER_CHROMEOS_LOGIN_NETWORK_SELECTION_VIEW_H_ diff --git a/chrome/browser/chromeos/login/update_view.cc b/chrome/browser/chromeos/login/update_view.cc new file mode 100644 index 0000000..259fe63 --- /dev/null +++ b/chrome/browser/chromeos/login/update_view.cc @@ -0,0 +1,82 @@ +// Copyright (c) 2010 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. + +#include "chrome/browser/chromeos/login/update_view.h" + +#include <string> + +#include "app/l10n_util.h" +#include "app/resource_bundle.h" +#include "chrome/browser/chromeos/login/rounded_rect_painter.h" +#include "grit/chromium_strings.h" +#include "grit/generated_resources.h" +#include "views/border.h" +#include "views/controls/label.h" +#include "views/widget/widget.h" +#include "views/window/window.h" +#include "views/window/window_gtk.h" + +using views::Background; +using views::Label; +using views::View; +using views::Widget; + +namespace { + +// Y offset for the 'installing updates' label. +const int kInstallingUpdatesLabelY = 200; +// Labels colour. +const SkColor kLabelColor = 0xFF000000; + +} // namespace + +namespace chromeos { + +UpdateView::UpdateView(chromeos::ScreenObserver* observer) + : installing_updates_label_(NULL), + observer_(observer) { +} + +UpdateView::~UpdateView() { +} + +void UpdateView::Init() { + // Use rounded-rect background. + views::Painter* painter = chromeos::CreateWizardPainter( + &chromeos::BorderDefinition::kScreenBorder); + set_background(views::Background::CreateBackgroundPainter(true, painter)); + + // Set UI elements' apperance. + ResourceBundle& res_bundle = ResourceBundle::GetSharedInstance(); + gfx::Font base_font = res_bundle.GetFont(ResourceBundle::BaseFont); + installing_updates_label_ = new views::Label(); + installing_updates_label_->SetColor(kLabelColor); + installing_updates_label_->SetFont(base_font); + + UpdateLocalizedStrings(); + AddChildView(installing_updates_label_); +} + +void UpdateView::UpdateLocalizedStrings() { + installing_updates_label_->SetText( + l10n_util::GetStringF(IDS_INSTALLING_UPDATE, + l10n_util::GetString(IDS_PRODUCT_OS_NAME))); +} + +//////////////////////////////////////////////////////////////////////////////// +// views::View: implementation: + +void UpdateView::Layout() { + int x = (width() - + installing_updates_label_->GetPreferredSize().width()) / 2; + int y = kInstallingUpdatesLabelY; + installing_updates_label_->SetBounds( + x, + y, + installing_updates_label_->GetPreferredSize().width(), + installing_updates_label_->GetPreferredSize().height()); + SchedulePaint(); +} + +} // namespace chromeos diff --git a/chrome/browser/chromeos/login/update_view.h b/chrome/browser/chromeos/login/update_view.h new file mode 100644 index 0000000..398bba4 --- /dev/null +++ b/chrome/browser/chromeos/login/update_view.h @@ -0,0 +1,42 @@ +// Copyright (c) 2010 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_UPDATE_VIEW_H_ +#define CHROME_BROWSER_CHROMEOS_LOGIN_UPDATE_VIEW_H_ + +#include "views/view.h" + +namespace views { +class Label; +} // namespace views + +namespace chromeos { + +class ScreenObserver; + +// View for the network selection/initial welcome screen. +class UpdateView : public views::View { + public: + explicit UpdateView(chromeos::ScreenObserver* observer); + virtual ~UpdateView(); + + void Init(); + void UpdateLocalizedStrings(); + + // views::View implementation: + virtual void Layout(); + + private: + // Dialog controls. + views::Label* installing_updates_label_; + + // Notifications receiver. + chromeos::ScreenObserver* observer_; + + DISALLOW_COPY_AND_ASSIGN(UpdateView); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_LOGIN_UPDATE_VIEW_H_ diff --git a/chrome/browser/chromeos/login/view_screen.h b/chrome/browser/chromeos/login/view_screen.h index ce324da..38b5795 100644 --- a/chrome/browser/chromeos/login/view_screen.h +++ b/chrome/browser/chromeos/login/view_screen.h @@ -7,6 +7,7 @@ #include "chrome/browser/chromeos/login/login_manager_view.h" #include "chrome/browser/chromeos/login/network_selection_view.h" +#include "chrome/browser/chromeos/login/update_view.h" #include "chrome/browser/chromeos/login/wizard_screen.h" template <class V> @@ -81,8 +82,8 @@ void ViewScreen<V>::InitView() { view_->SetVisible(false); } -typedef DefaultViewScreen<LoginManagerView> LoginScreen; -typedef DefaultViewScreen<NetworkSelectionView> NetworkScreen; +typedef DefaultViewScreen<chromeos::LoginManagerView> LoginScreen; +typedef DefaultViewScreen<chromeos::NetworkSelectionView> NetworkScreen; +typedef DefaultViewScreen<chromeos::UpdateView> UpdateScreen; #endif // CHROME_BROWSER_CHROMEOS_LOGIN_VIEW_SCREEN_H_ - diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc index db8319c..6574a98 100644 --- a/chrome/browser/chromeos/login/wizard_controller.cc +++ b/chrome/browser/chromeos/login/wizard_controller.cc @@ -25,6 +25,7 @@ const int kWizardScreenHeight = 416; const char kNetworkScreenName[] = "network"; const char kLoginScreenName[] = "login"; const char kAccountScreenName[] = "account"; +const char kUpdateScreenName[] = "update"; } // namespace @@ -96,6 +97,8 @@ void WizardController::ShowFirstScreen(const std::string& first_screen_name) { SetCurrentScreen(GetLoginScreen()); } else if (first_screen_name == kAccountScreenName) { SetCurrentScreen(GetAccountScreen()); + } else if (first_screen_name == kUpdateScreenName) { + SetCurrentScreen(GetUpdateScreen()); } else { if (chromeos::UserManager::Get()->GetUsers().empty()) { SetCurrentScreen(GetNetworkScreen()); @@ -152,6 +155,12 @@ AccountScreen* WizardController::GetAccountScreen() { return account_screen_.get(); } +UpdateScreen* WizardController::GetUpdateScreen() { + if (!update_screen_.get()) + update_screen_.reset(new UpdateScreen(this)); + return update_screen_.get(); +} + void WizardController::SetCurrentScreen(WizardScreen* new_current) { if (current_screen_) current_screen_->Hide(); diff --git a/chrome/browser/chromeos/login/wizard_controller.h b/chrome/browser/chromeos/login/wizard_controller.h index 8a7cd5d..cd29187 100644 --- a/chrome/browser/chromeos/login/wizard_controller.h +++ b/chrome/browser/chromeos/login/wizard_controller.h @@ -67,6 +67,7 @@ class WizardController : public views::WindowDelegate, NetworkScreen* GetNetworkScreen(); LoginScreen* GetLoginScreen(); AccountScreen* GetAccountScreen(); + UpdateScreen* GetUpdateScreen(); // Switches from one screen to another. void SetCurrentScreen(WizardScreen* screen); @@ -81,6 +82,7 @@ class WizardController : public views::WindowDelegate, scoped_ptr<NetworkScreen> network_screen_; scoped_ptr<LoginScreen> login_screen_; scoped_ptr<AccountScreen> account_screen_; + scoped_ptr<UpdateScreen> update_screen_; // Screen that's currently active. WizardScreen* current_screen_; |