Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(121)

Side by Side Diff: ash/system/user/tray_user.cc

Issue 2041233005: Moves ash::user::LoginStatus to ash/common (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/system/user/tray_user.h ('k') | ash/system/user/tray_user_separator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ash/system/user/tray_user.h" 5 #include "ash/system/user/tray_user.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/common/session/session_state_delegate.h" 8 #include "ash/common/session/session_state_delegate.h"
9 #include "ash/common/shelf/wm_shelf_util.h" 9 #include "ash/common/shelf/wm_shelf_util.h"
10 #include "ash/shelf/shelf_layout_manager.h" 10 #include "ash/shelf/shelf_layout_manager.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 } else { 65 } else {
66 return layout_view_->size(); 66 return layout_view_->size();
67 } 67 }
68 } 68 }
69 69
70 gfx::Rect TrayUser::GetUserPanelBoundsInScreenForTest() const { 70 gfx::Rect TrayUser::GetUserPanelBoundsInScreenForTest() const {
71 DCHECK(user_); 71 DCHECK(user_);
72 return user_->GetBoundsInScreenOfUserButtonForTest(); 72 return user_->GetBoundsInScreenOfUserButtonForTest();
73 } 73 }
74 74
75 void TrayUser::UpdateAfterLoginStatusChangeForTest(user::LoginStatus status) { 75 void TrayUser::UpdateAfterLoginStatusChangeForTest(LoginStatus status) {
76 UpdateAfterLoginStatusChange(status); 76 UpdateAfterLoginStatusChange(status);
77 } 77 }
78 78
79 views::View* TrayUser::CreateTrayView(user::LoginStatus status) { 79 views::View* TrayUser::CreateTrayView(LoginStatus status) {
80 CHECK(layout_view_ == nullptr); 80 CHECK(layout_view_ == nullptr);
81 81
82 layout_view_ = new views::View; 82 layout_view_ = new views::View;
83 layout_view_->SetLayoutManager( 83 layout_view_->SetLayoutManager(
84 new views::BoxLayout(views::BoxLayout::kHorizontal, 84 new views::BoxLayout(views::BoxLayout::kHorizontal,
85 0, 0, kUserLabelToIconPadding)); 85 0, 0, kUserLabelToIconPadding));
86 UpdateAfterLoginStatusChange(status); 86 UpdateAfterLoginStatusChange(status);
87 return layout_view_; 87 return layout_view_;
88 } 88 }
89 89
90 views::View* TrayUser::CreateDefaultView(user::LoginStatus status) { 90 views::View* TrayUser::CreateDefaultView(LoginStatus status) {
91 if (status == user::LOGGED_IN_NONE) 91 if (status == LoginStatus::NOT_LOGGED_IN)
92 return nullptr; 92 return nullptr;
93 const SessionStateDelegate* session_state_delegate = 93 const SessionStateDelegate* session_state_delegate =
94 Shell::GetInstance()->session_state_delegate(); 94 Shell::GetInstance()->session_state_delegate();
95 95
96 // If the screen is locked or a system modal dialog box is shown, show only 96 // If the screen is locked or a system modal dialog box is shown, show only
97 // the currently active user. 97 // the currently active user.
98 if (user_index_ && (session_state_delegate->IsUserSessionBlocked() || 98 if (user_index_ && (session_state_delegate->IsUserSessionBlocked() ||
99 Shell::GetInstance()->IsSystemModalWindowOpen())) 99 Shell::GetInstance()->IsSystemModalWindowOpen()))
100 return nullptr; 100 return nullptr;
101 101
(...skipping 12 matching lines...) Expand all
114 void TrayUser::DestroyTrayView() { 114 void TrayUser::DestroyTrayView() {
115 layout_view_ = nullptr; 115 layout_view_ = nullptr;
116 avatar_ = nullptr; 116 avatar_ = nullptr;
117 label_ = nullptr; 117 label_ = nullptr;
118 } 118 }
119 119
120 void TrayUser::DestroyDefaultView() { 120 void TrayUser::DestroyDefaultView() {
121 user_ = nullptr; 121 user_ = nullptr;
122 } 122 }
123 123
124 void TrayUser::UpdateAfterLoginStatusChange(user::LoginStatus status) { 124 void TrayUser::UpdateAfterLoginStatusChange(LoginStatus status) {
125 // Only the active user is represented in the tray. 125 // Only the active user is represented in the tray.
126 if (!layout_view_) 126 if (!layout_view_)
127 return; 127 return;
128 if (user_index_ > 0) 128 if (user_index_ > 0)
129 return; 129 return;
130 bool need_label = false; 130 bool need_label = false;
131 bool need_avatar = false; 131 bool need_avatar = false;
132 SystemTrayDelegate* delegate = Shell::GetInstance()->system_tray_delegate(); 132 SystemTrayDelegate* delegate = Shell::GetInstance()->system_tray_delegate();
133 if (delegate->IsUserSupervised()) 133 if (delegate->IsUserSupervised())
134 need_label = true; 134 need_label = true;
135 switch (status) { 135 switch (status) {
136 case user::LOGGED_IN_LOCKED: 136 case LoginStatus::LOCKED:
137 case user::LOGGED_IN_USER: 137 case LoginStatus::USER:
138 case user::LOGGED_IN_OWNER: 138 case LoginStatus::OWNER:
139 case user::LOGGED_IN_PUBLIC: 139 case LoginStatus::PUBLIC:
140 need_avatar = true; 140 need_avatar = true;
141 break; 141 break;
142 case user::LOGGED_IN_SUPERVISED: 142 case LoginStatus::SUPERVISED:
143 need_avatar = true; 143 need_avatar = true;
144 need_label = true; 144 need_label = true;
145 break; 145 break;
146 case user::LOGGED_IN_GUEST: 146 case LoginStatus::GUEST:
147 need_label = true; 147 need_label = true;
148 break; 148 break;
149 case user::LOGGED_IN_KIOSK_APP: 149 case LoginStatus::KIOSK_APP:
150 case user::LOGGED_IN_NONE: 150 case LoginStatus::NOT_LOGGED_IN:
151 break; 151 break;
152 } 152 }
153 153
154 if ((need_avatar != (avatar_ != nullptr)) || 154 if ((need_avatar != (avatar_ != nullptr)) ||
155 (need_label != (label_ != nullptr))) { 155 (need_label != (label_ != nullptr))) {
156 layout_view_->RemoveAllChildViews(true); 156 layout_view_->RemoveAllChildViews(true);
157 if (need_label) { 157 if (need_label) {
158 label_ = new views::Label; 158 label_ = new views::Label;
159 SetupLabelForTray(label_); 159 SetupLabelForTray(label_);
160 layout_view_->AddChildView(label_); 160 layout_view_->AddChildView(label_);
161 } else { 161 } else {
162 label_ = nullptr; 162 label_ = nullptr;
163 } 163 }
164 if (need_avatar) { 164 if (need_avatar) {
165 avatar_ = new tray::RoundedImageView(kTrayAvatarCornerRadius, true); 165 avatar_ = new tray::RoundedImageView(kTrayAvatarCornerRadius, true);
166 layout_view_->AddChildView(avatar_); 166 layout_view_->AddChildView(avatar_);
167 } else { 167 } else {
168 avatar_ = nullptr; 168 avatar_ = nullptr;
169 } 169 }
170 } 170 }
171 171
172 if (delegate->IsUserSupervised()) { 172 if (delegate->IsUserSupervised()) {
173 label_->SetText( 173 label_->SetText(
174 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SUPERVISED_LABEL)); 174 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SUPERVISED_LABEL));
175 } else if (status == user::LOGGED_IN_GUEST) { 175 } else if (status == LoginStatus::GUEST) {
176 label_->SetText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_GUEST_LABEL)); 176 label_->SetText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_GUEST_LABEL));
177 } 177 }
178 178
179 if (avatar_) { 179 if (avatar_) {
180 avatar_->SetCornerRadii( 180 avatar_->SetCornerRadii(
181 0, kTrayAvatarCornerRadius, kTrayAvatarCornerRadius, 0); 181 0, kTrayAvatarCornerRadius, kTrayAvatarCornerRadius, 0);
182 avatar_->SetBorder(views::Border::NullBorder()); 182 avatar_->SetBorder(views::Border::NullBorder());
183 } 183 }
184 UpdateAvatarImage(status); 184 UpdateAvatarImage(status);
185 185
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 return; 245 return;
246 246
247 // Enforce a layout change that newly added items become visible. 247 // Enforce a layout change that newly added items become visible.
248 UpdateLayoutOfItem(); 248 UpdateLayoutOfItem();
249 249
250 // Update the user item. 250 // Update the user item.
251 UpdateAvatarImage( 251 UpdateAvatarImage(
252 Shell::GetInstance()->system_tray_delegate()->GetUserLoginStatus()); 252 Shell::GetInstance()->system_tray_delegate()->GetUserLoginStatus());
253 } 253 }
254 254
255 void TrayUser::UpdateAvatarImage(user::LoginStatus status) { 255 void TrayUser::UpdateAvatarImage(LoginStatus status) {
256 SessionStateDelegate* session_state_delegate = 256 SessionStateDelegate* session_state_delegate =
257 Shell::GetInstance()->session_state_delegate(); 257 Shell::GetInstance()->session_state_delegate();
258 if (!avatar_ || 258 if (!avatar_ ||
259 user_index_ >= session_state_delegate->NumberOfLoggedInUsers()) 259 user_index_ >= session_state_delegate->NumberOfLoggedInUsers())
260 return; 260 return;
261 261
262 const user_manager::UserInfo* user_info = 262 const user_manager::UserInfo* user_info =
263 session_state_delegate->GetUserInfo(user_index_); 263 session_state_delegate->GetUserInfo(user_index_);
264 CHECK(user_info); 264 CHECK(user_info);
265 avatar_->SetImage(user_info->GetImage(), 265 avatar_->SetImage(user_info->GetImage(),
266 gfx::Size(kTrayAvatarSize, kTrayAvatarSize)); 266 gfx::Size(kTrayAvatarSize, kTrayAvatarSize));
267 267
268 // Unit tests might come here with no images for some users. 268 // Unit tests might come here with no images for some users.
269 if (avatar_->size().IsEmpty()) 269 if (avatar_->size().IsEmpty())
270 avatar_->SetSize(gfx::Size(kTrayAvatarSize, kTrayAvatarSize)); 270 avatar_->SetSize(gfx::Size(kTrayAvatarSize, kTrayAvatarSize));
271 } 271 }
272 272
273 void TrayUser::UpdateLayoutOfItem() { 273 void TrayUser::UpdateLayoutOfItem() {
274 UpdateAfterShelfAlignmentChange(system_tray()->shelf_alignment()); 274 UpdateAfterShelfAlignmentChange(system_tray()->shelf_alignment());
275 } 275 }
276 276
277 } // namespace ash 277 } // namespace ash
OLDNEW
« no previous file with comments | « ash/system/user/tray_user.h ('k') | ash/system/user/tray_user_separator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698