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 |