OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |