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

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

Issue 2099103002: Give Ash material design tray items the correct size and layout (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: for review Created 4 years, 5 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
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/common/ash_switches.h" 7 #include "ash/common/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/common/system/tray/system_tray_delegate.h" 10 #include "ash/common/system/tray/system_tray_delegate.h"
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 (need_label != (label_ != nullptr))) { 154 (need_label != (label_ != nullptr))) {
155 layout_view_->RemoveAllChildViews(true); 155 layout_view_->RemoveAllChildViews(true);
156 if (need_label) { 156 if (need_label) {
157 label_ = new views::Label; 157 label_ = new views::Label;
158 SetupLabelForTray(label_); 158 SetupLabelForTray(label_);
159 layout_view_->AddChildView(label_); 159 layout_view_->AddChildView(label_);
160 } else { 160 } else {
161 label_ = nullptr; 161 label_ = nullptr;
162 } 162 }
163 if (need_avatar) { 163 if (need_avatar) {
164 avatar_ = new tray::RoundedImageView(kTrayAvatarCornerRadius, true); 164 avatar_ = new tray::RoundedImageView(kTrayRoundedBorderRadius, true);
165 layout_view_->AddChildView(avatar_); 165 layout_view_->AddChildView(avatar_);
166 } else { 166 } else {
167 avatar_ = nullptr; 167 avatar_ = nullptr;
168 } 168 }
169 } 169 }
170 170
171 if (delegate->IsUserSupervised()) { 171 if (delegate->IsUserSupervised()) {
172 label_->SetText( 172 label_->SetText(
173 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SUPERVISED_LABEL)); 173 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SUPERVISED_LABEL));
174 } else if (status == LoginStatus::GUEST) { 174 } else if (status == LoginStatus::GUEST) {
175 label_->SetText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_GUEST_LABEL)); 175 label_->SetText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_GUEST_LABEL));
176 } 176 }
177 177
178 if (avatar_) { 178 if (avatar_) {
179 avatar_->SetCornerRadii(0, kTrayAvatarCornerRadius, kTrayAvatarCornerRadius, 179 avatar_->SetCornerRadii(0, kTrayRoundedBorderRadius,
180 0); 180 kTrayRoundedBorderRadius, 0);
181 avatar_->SetBorder(views::Border::NullBorder()); 181 avatar_->SetBorder(views::Border::NullBorder());
182 } 182 }
183 UpdateAvatarImage(status); 183 UpdateAvatarImage(status);
184 184
185 // Update layout after setting label_ and avatar_ with new login status. 185 // Update layout after setting label_ and avatar_ with new login status.
186 UpdateLayoutOfItem(); 186 UpdateLayoutOfItem();
187 } 187 }
188 188
189 void TrayUser::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) { 189 void TrayUser::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) {
190 // Inactive users won't have a layout. 190 // Inactive users won't have a layout.
191 if (!layout_view_) 191 if (!layout_view_)
192 return; 192 return;
193 if (IsHorizontalAlignment(alignment)) { 193 if (IsHorizontalAlignment(alignment)) {
194 if (avatar_) { 194 if (avatar_) {
195 avatar_->SetBorder(views::Border::NullBorder()); 195 avatar_->SetBorder(views::Border::NullBorder());
196 avatar_->SetCornerRadii(0, kTrayAvatarCornerRadius, 196 avatar_->SetCornerRadii(0, kTrayRoundedBorderRadius,
197 kTrayAvatarCornerRadius, 0); 197 kTrayRoundedBorderRadius, 0);
198 } 198 }
199 if (label_) { 199 if (label_) {
200 // If label_ hasn't figured out its size yet, do that first. 200 // If label_ hasn't figured out its size yet, do that first.
201 if (label_->GetContentsBounds().height() == 0) 201 if (label_->GetContentsBounds().height() == 0)
202 label_->SizeToPreferredSize(); 202 label_->SizeToPreferredSize();
203 int height = label_->GetContentsBounds().height(); 203 int height = label_->GetContentsBounds().height();
204 int vertical_pad = (kTrayItemSize - height) / 2; 204 int vertical_pad = (kTrayItemSize - height) / 2;
205 int remainder = height % 2; 205 int remainder = height % 2;
206 label_->SetBorder(views::Border::CreateEmptyBorder( 206 label_->SetBorder(views::Border::CreateEmptyBorder(
207 vertical_pad + remainder, 207 vertical_pad + remainder,
208 kTrayLabelItemHorizontalPaddingBottomAlignment, vertical_pad, 208 kTrayLabelItemHorizontalPaddingBottomAlignment, vertical_pad,
209 kTrayLabelItemHorizontalPaddingBottomAlignment)); 209 kTrayLabelItemHorizontalPaddingBottomAlignment));
210 } 210 }
211 layout_view_->SetLayoutManager(new views::BoxLayout( 211 layout_view_->SetLayoutManager(new views::BoxLayout(
212 views::BoxLayout::kHorizontal, 0, 0, kUserLabelToIconPadding)); 212 views::BoxLayout::kHorizontal, 0, 0, kUserLabelToIconPadding));
213 } else { 213 } else {
214 if (avatar_) { 214 if (avatar_) {
215 avatar_->SetBorder(views::Border::NullBorder()); 215 avatar_->SetBorder(views::Border::NullBorder());
216 avatar_->SetCornerRadii(0, 0, kTrayAvatarCornerRadius, 216 avatar_->SetCornerRadii(0, 0, kTrayRoundedBorderRadius,
217 kTrayAvatarCornerRadius); 217 kTrayRoundedBorderRadius);
218 } 218 }
219 if (label_) { 219 if (label_) {
220 label_->SetBorder(views::Border::CreateEmptyBorder( 220 label_->SetBorder(views::Border::CreateEmptyBorder(
221 kTrayLabelItemVerticalPaddingVerticalAlignment, 221 kTrayLabelItemVerticalPaddingVerticalAlignment,
222 kTrayLabelItemHorizontalPaddingBottomAlignment, 222 kTrayLabelItemHorizontalPaddingBottomAlignment,
223 kTrayLabelItemVerticalPaddingVerticalAlignment, 223 kTrayLabelItemVerticalPaddingVerticalAlignment,
224 kTrayLabelItemHorizontalPaddingBottomAlignment)); 224 kTrayLabelItemHorizontalPaddingBottomAlignment));
225 } 225 }
226 layout_view_->SetLayoutManager(new views::BoxLayout( 226 layout_view_->SetLayoutManager(new views::BoxLayout(
227 views::BoxLayout::kVertical, 0, 0, kUserLabelToIconPadding)); 227 views::BoxLayout::kVertical, 0, 0, kUserLabelToIconPadding));
(...skipping 24 matching lines...) Expand all
252 SessionStateDelegate* session_state_delegate = 252 SessionStateDelegate* session_state_delegate =
253 WmShell::Get()->GetSessionStateDelegate(); 253 WmShell::Get()->GetSessionStateDelegate();
254 if (!avatar_ || 254 if (!avatar_ ||
255 user_index_ >= session_state_delegate->NumberOfLoggedInUsers()) 255 user_index_ >= session_state_delegate->NumberOfLoggedInUsers())
256 return; 256 return;
257 257
258 const user_manager::UserInfo* user_info = 258 const user_manager::UserInfo* user_info =
259 session_state_delegate->GetUserInfo(user_index_); 259 session_state_delegate->GetUserInfo(user_index_);
260 CHECK(user_info); 260 CHECK(user_info);
261 avatar_->SetImage(user_info->GetImage(), 261 avatar_->SetImage(user_info->GetImage(),
262 gfx::Size(kTrayAvatarSize, kTrayAvatarSize)); 262 gfx::Size(kTrayItemSize, kTrayItemSize));
263 263
264 // Unit tests might come here with no images for some users. 264 // Unit tests might come here with no images for some users.
265 if (avatar_->size().IsEmpty()) 265 if (avatar_->size().IsEmpty())
266 avatar_->SetSize(gfx::Size(kTrayAvatarSize, kTrayAvatarSize)); 266 avatar_->SetSize(gfx::Size(kTrayItemSize, kTrayItemSize));
267 } 267 }
268 268
269 void TrayUser::UpdateLayoutOfItem() { 269 void TrayUser::UpdateLayoutOfItem() {
270 UpdateAfterShelfAlignmentChange(system_tray()->shelf_alignment()); 270 UpdateAfterShelfAlignmentChange(system_tray()->shelf_alignment());
271 } 271 }
272 272
273 } // namespace ash 273 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698