| OLD | NEW | 
|---|
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "chrome/browser/chromeos/login/screen_lock_view.h" | 5 #include "chrome/browser/chromeos/login/screen_lock_view.h" | 
| 6 | 6 | 
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" | 
| 8 #include "app/resource_bundle.h" | 8 #include "app/resource_bundle.h" | 
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" | 
| 10 #include "chrome/browser/chromeos/login/helper.h" |  | 
| 11 #include "chrome/browser/chromeos/login/rounded_rect_painter.h" | 10 #include "chrome/browser/chromeos/login/rounded_rect_painter.h" | 
| 12 #include "chrome/browser/chromeos/login/screen_locker.h" | 11 #include "chrome/browser/chromeos/login/screen_locker.h" | 
| 13 #include "chrome/browser/chromeos/login/user_manager.h" | 12 #include "chrome/browser/chromeos/login/user_manager.h" | 
| 14 #include "chrome/browser/chromeos/login/user_view.h" | 13 #include "chrome/browser/chromeos/login/user_view.h" | 
| 15 #include "chrome/browser/chromeos/login/username_view.h" | 14 #include "chrome/browser/chromeos/login/username_view.h" | 
| 16 #include "chrome/browser/chromeos/login/wizard_accessibility_helper.h" | 15 #include "chrome/browser/chromeos/login/wizard_accessibility_helper.h" | 
| 17 #include "chrome/browser/chromeos/login/textfield_with_margin.h" | 16 #include "chrome/browser/chromeos/login/textfield_with_margin.h" | 
| 18 #include "chrome/browser/chromeos/views/copy_background.h" | 17 #include "chrome/browser/chromeos/views/copy_background.h" | 
| 19 #include "chrome/browser/profiles/profile_manager.h" | 18 #include "chrome/browser/profiles/profile_manager.h" | 
| 20 #include "chrome/common/notification_service.h" | 19 #include "chrome/common/notification_service.h" | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 60 | 59 | 
| 61 ScreenLockView::ScreenLockView(ScreenLocker* screen_locker) | 60 ScreenLockView::ScreenLockView(ScreenLocker* screen_locker) | 
| 62     : user_view_(NULL), | 61     : user_view_(NULL), | 
| 63       password_field_(NULL), | 62       password_field_(NULL), | 
| 64       screen_locker_(screen_locker), | 63       screen_locker_(screen_locker), | 
| 65       main_(NULL), | 64       main_(NULL), | 
| 66       username_(NULL) { | 65       username_(NULL) { | 
| 67   DCHECK(screen_locker_); | 66   DCHECK(screen_locker_); | 
| 68 } | 67 } | 
| 69 | 68 | 
|  | 69 ScreenLockView::~ScreenLockView() { | 
|  | 70 } | 
|  | 71 | 
| 70 gfx::Size ScreenLockView::GetPreferredSize() { | 72 gfx::Size ScreenLockView::GetPreferredSize() { | 
| 71   return main_->GetPreferredSize(); | 73   return main_->GetPreferredSize(); | 
| 72 } | 74 } | 
| 73 | 75 | 
| 74 void ScreenLockView::Layout() { | 76 void ScreenLockView::Layout() { | 
| 75   int username_height = login::kSelectedLabelHeight; | 77   int username_height = login::kSelectedLabelHeight; | 
| 76   main_->SetBounds(0, 0, width(), height()); | 78   main_->SetBounds(0, 0, width(), height()); | 
| 77   username_->SetBounds( | 79   username_->SetBounds( | 
| 78       kBorderSize, | 80       kBorderSize, | 
| 79       login::kUserImageSize - username_height + kBorderSize, | 81       login::kUserImageSize - username_height + kBorderSize, | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 93   // Use rounded rect background. | 95   // Use rounded rect background. | 
| 94   views::Painter* painter = | 96   views::Painter* painter = | 
| 95       CreateWizardPainter(&BorderDefinition::kUserBorder); | 97       CreateWizardPainter(&BorderDefinition::kUserBorder); | 
| 96 | 98 | 
| 97   main_->set_background( | 99   main_->set_background( | 
| 98       views::Background::CreateBackgroundPainter(true, painter)); | 100       views::Background::CreateBackgroundPainter(true, painter)); | 
| 99   main_->set_border(CreateWizardBorder(&BorderDefinition::kUserBorder)); | 101   main_->set_border(CreateWizardBorder(&BorderDefinition::kUserBorder)); | 
| 100 | 102 | 
| 101   // Password field. | 103   // Password field. | 
| 102   password_field_ = new PasswordField(); | 104   password_field_ = new PasswordField(); | 
|  | 105 | 
| 103   password_field_->SetController(this); | 106   password_field_->SetController(this); | 
| 104   password_field_->set_background(new CopyBackground(main_)); | 107   password_field_->set_background(new CopyBackground(main_)); | 
| 105 | 108 | 
|  | 109   // Setup ThrobberView's host view. | 
|  | 110   set_host_view(password_field_); | 
|  | 111 | 
| 106   // User icon. | 112   // User icon. | 
| 107   UserManager::User user = screen_locker_->user(); | 113   UserManager::User user = screen_locker_->user(); | 
| 108   user_view_->SetImage(user.image(), user.image()); | 114   user_view_->SetImage(user.image(), user.image()); | 
| 109 | 115 | 
| 110   // User name. | 116   // User name. | 
| 111   std::wstring text = UTF8ToWide(user.GetDisplayName()); | 117   std::wstring text = UTF8ToWide(user.GetDisplayName()); | 
| 112 | 118 | 
| 113   ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 119   ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 
| 114   const gfx::Font& font = rb.GetFont(ResourceBundle::MediumBoldFont); | 120   const gfx::Font& font = rb.GetFont(ResourceBundle::MediumBoldFont); | 
| 115 | 121 | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 153 void ScreenLockView::SetSignoutEnabled(bool enabled) { | 159 void ScreenLockView::SetSignoutEnabled(bool enabled) { | 
| 154   user_view_->SetSignoutEnabled(enabled); | 160   user_view_->SetSignoutEnabled(enabled); | 
| 155 } | 161 } | 
| 156 | 162 | 
| 157 gfx::Rect ScreenLockView::GetPasswordBoundsRelativeTo(const views::View* view) { | 163 gfx::Rect ScreenLockView::GetPasswordBoundsRelativeTo(const views::View* view) { | 
| 158   gfx::Point p; | 164   gfx::Point p; | 
| 159   views::View::ConvertPointToView(password_field_, view, &p); | 165   views::View::ConvertPointToView(password_field_, view, &p); | 
| 160   return gfx::Rect(p, size()); | 166   return gfx::Rect(p, size()); | 
| 161 } | 167 } | 
| 162 | 168 | 
|  | 169 | 
| 163 void ScreenLockView::SetEnabled(bool enabled) { | 170 void ScreenLockView::SetEnabled(bool enabled) { | 
| 164   views::View::SetEnabled(enabled); | 171   views::View::SetEnabled(enabled); | 
| 165 | 172 | 
| 166   if (!enabled) { | 173   if (!enabled) { | 
| 167     user_view_->StartThrobber(); |  | 
| 168     // TODO(oshima): Re-enabling does not move the focus to the view | 174     // TODO(oshima): Re-enabling does not move the focus to the view | 
| 169     // that had a focus (issue http://crbug.com/43131). | 175     // that had a focus (issue http://crbug.com/43131). | 
| 170     // Clear focus on the textfield so that re-enabling can set focus | 176     // Clear focus on the textfield so that re-enabling can set focus | 
| 171     // back to the text field. | 177     // back to the text field. | 
| 172     // FocusManager may be null if the view does not have | 178     // FocusManager may be null if the view does not have | 
| 173     // associated Widget yet. | 179     // associated Widget yet. | 
| 174     if (password_field_->GetFocusManager()) | 180     if (password_field_->GetFocusManager()) | 
| 175       password_field_->GetFocusManager()->ClearFocus(); | 181       password_field_->GetFocusManager()->ClearFocus(); | 
| 176   } else { |  | 
| 177     user_view_->StopThrobber(); |  | 
| 178   } | 182   } | 
| 179   password_field_->SetEnabled(enabled); | 183   password_field_->SetEnabled(enabled); | 
| 180 } | 184 } | 
| 181 | 185 | 
| 182 void ScreenLockView::OnSignout() { | 186 void ScreenLockView::OnSignout() { | 
| 183   screen_locker_->Signout(); | 187   screen_locker_->Signout(); | 
| 184 } | 188 } | 
| 185 | 189 | 
| 186 bool ScreenLockView::HandleKeystroke( | 190 bool ScreenLockView::HandleKeystroke( | 
| 187     views::Textfield* sender, | 191     views::Textfield* sender, | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 206     return; | 210     return; | 
| 207   user_view_->SetImage(user->image(), user->image()); | 211   user_view_->SetImage(user->image(), user->image()); | 
| 208 } | 212 } | 
| 209 | 213 | 
| 210 void ScreenLockView::ViewHierarchyChanged(bool is_add, | 214 void ScreenLockView::ViewHierarchyChanged(bool is_add, | 
| 211                                           views::View* parent, | 215                                           views::View* parent, | 
| 212                                           views::View* child) { | 216                                           views::View* child) { | 
| 213   if (is_add && this == child) | 217   if (is_add && this == child) | 
| 214     WizardAccessibilityHelper::GetInstance()->MaybeEnableAccessibility(this); | 218     WizardAccessibilityHelper::GetInstance()->MaybeEnableAccessibility(this); | 
| 215 } | 219 } | 
|  | 220 | 
| 216 }  // namespace chromeos | 221 }  // namespace chromeos | 
| OLD | NEW | 
|---|