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

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

Issue 2461693003: MD cros - Fix padding in system tray (Closed)
Patch Set: nit + rebase Created 4 years, 1 month 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/common/system/user/tray_user.h" 5 #include "ash/common/system/user/tray_user.h"
6 6
7 #include "ash/common/material_design/material_design_controller.h" 7 #include "ash/common/material_design/material_design_controller.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.h" 10 #include "ash/common/system/tray/system_tray.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 } 71 }
72 72
73 void TrayUser::UpdateAfterLoginStatusChangeForTest(LoginStatus status) { 73 void TrayUser::UpdateAfterLoginStatusChangeForTest(LoginStatus status) {
74 UpdateAfterLoginStatusChange(status); 74 UpdateAfterLoginStatusChange(status);
75 } 75 }
76 76
77 views::View* TrayUser::CreateTrayView(LoginStatus status) { 77 views::View* TrayUser::CreateTrayView(LoginStatus status) {
78 CHECK(layout_view_ == nullptr); 78 CHECK(layout_view_ == nullptr);
79 79
80 layout_view_ = new views::View; 80 layout_view_ = new views::View;
81 layout_view_->SetLayoutManager(new views::BoxLayout(
82 views::BoxLayout::kHorizontal, 0, 0, kUserLabelToIconPadding));
83 UpdateAfterLoginStatusChange(status); 81 UpdateAfterLoginStatusChange(status);
84 return layout_view_; 82 return layout_view_;
85 } 83 }
86 84
87 views::View* TrayUser::CreateDefaultView(LoginStatus status) { 85 views::View* TrayUser::CreateDefaultView(LoginStatus status) {
88 if (status == LoginStatus::NOT_LOGGED_IN) 86 if (status == LoginStatus::NOT_LOGGED_IN)
89 return nullptr; 87 return nullptr;
90 const SessionStateDelegate* session_state_delegate = 88 const SessionStateDelegate* session_state_delegate =
91 WmShell::Get()->GetSessionStateDelegate(); 89 WmShell::Get()->GetSessionStateDelegate();
92 90
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 need_label = true; 142 need_label = true;
145 break; 143 break;
146 case LoginStatus::KIOSK_APP: 144 case LoginStatus::KIOSK_APP:
147 case LoginStatus::ARC_KIOSK_APP: 145 case LoginStatus::ARC_KIOSK_APP:
148 case LoginStatus::NOT_LOGGED_IN: 146 case LoginStatus::NOT_LOGGED_IN:
149 break; 147 break;
150 } 148 }
151 149
152 if ((need_avatar != (avatar_ != nullptr)) || 150 if ((need_avatar != (avatar_ != nullptr)) ||
153 (need_label != (label_ != nullptr))) { 151 (need_label != (label_ != nullptr))) {
154 layout_view_->RemoveAllChildViews(true); 152 delete label_;
153 delete avatar_;
154
155 if (need_label) { 155 if (need_label) {
156 label_ = new views::Label; 156 label_ = new views::Label;
157 SetupLabelForTray(label_); 157 SetupLabelForTray(label_);
158 layout_view_->AddChildView(label_); 158 layout_view_->AddChildView(label_);
159 } else { 159 } else {
160 label_ = nullptr; 160 label_ = nullptr;
161 } 161 }
162 if (need_avatar) { 162 if (need_avatar) {
163 avatar_ = new tray::RoundedImageView(kTrayRoundedBorderRadius, true); 163 avatar_ = new tray::RoundedImageView(kTrayRoundedBorderRadius, true);
164 layout_view_->AddChildView(avatar_); 164 layout_view_->AddChildView(avatar_);
165 } else { 165 } else {
166 avatar_ = nullptr; 166 avatar_ = nullptr;
167 } 167 }
168 } 168 }
169 169
170 if (delegate->IsUserSupervised()) { 170 if (delegate->IsUserSupervised()) {
171 label_->SetText( 171 label_->SetText(
172 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SUPERVISED_LABEL)); 172 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SUPERVISED_LABEL));
173 } else if (status == LoginStatus::GUEST) { 173 } else if (status == LoginStatus::GUEST) {
174 label_->SetText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_GUEST_LABEL)); 174 label_->SetText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_GUEST_LABEL));
175 } 175 }
176 176
177 if (avatar_) {
178 avatar_->SetCornerRadii(0, kTrayRoundedBorderRadius,
179 kTrayRoundedBorderRadius, 0);
180 const int distance_to_avatar =
181 MaterialDesignController::IsShelfMaterial()
182 ? GetTrayConstant(TRAY_IMAGE_ITEM_PADDING)
183 : 0;
184 const bool is_horizontal =
185 IsHorizontalAlignment(system_tray()->shelf_alignment());
186 avatar_->SetBorder(views::Border::CreateEmptyBorder(
187 is_horizontal ? 0 : distance_to_avatar,
188 is_horizontal ? distance_to_avatar : 0, 0, 0));
189 }
190 UpdateAvatarImage(status); 177 UpdateAvatarImage(status);
191 178
192 // Update layout after setting label_ and avatar_ with new login status. 179 // Update layout after setting label_ and avatar_ with new login status.
193 UpdateLayoutOfItem(); 180 UpdateLayoutOfItem();
194 } 181 }
195 182
196 void TrayUser::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) { 183 void TrayUser::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) {
197 // Inactive users won't have a layout. 184 // Inactive users won't have a layout.
198 if (!layout_view_) 185 if (!layout_view_)
199 return; 186 return;
200 const int distance_to_avatar = MaterialDesignController::IsShelfMaterial()
201 ? GetTrayConstant(TRAY_IMAGE_ITEM_PADDING)
202 : 0;
203 if (IsHorizontalAlignment(alignment)) { 187 if (IsHorizontalAlignment(alignment)) {
204 if (avatar_) { 188 if (avatar_) {
205 avatar_->SetBorder(
206 views::Border::CreateEmptyBorder(0, distance_to_avatar, 0, 0));
207 avatar_->SetCornerRadii(0, kTrayRoundedBorderRadius, 189 avatar_->SetCornerRadii(0, kTrayRoundedBorderRadius,
208 kTrayRoundedBorderRadius, 0); 190 kTrayRoundedBorderRadius, 0);
209 } 191 }
210 if (label_) { 192 if (label_) {
211 // If label_ hasn't figured out its size yet, do that first. 193 // If label_ hasn't figured out its size yet, do that first.
212 if (label_->GetContentsBounds().height() == 0) 194 if (label_->GetContentsBounds().height() == 0)
213 label_->SizeToPreferredSize(); 195 label_->SizeToPreferredSize();
214 int height = label_->GetContentsBounds().height(); 196 int height = label_->GetContentsBounds().height();
215 int vertical_pad = (kTrayItemSize - height) / 2; 197 int vertical_pad = (kTrayItemSize - height) / 2;
216 int remainder = height % 2; 198 int remainder = height % 2;
217 label_->SetBorder(views::Border::CreateEmptyBorder( 199 label_->SetBorder(views::Border::CreateEmptyBorder(
218 vertical_pad + remainder, 200 vertical_pad + remainder,
219 kTrayLabelItemHorizontalPaddingBottomAlignment, vertical_pad, 201 kTrayLabelItemHorizontalPaddingBottomAlignment, vertical_pad,
220 kTrayLabelItemHorizontalPaddingBottomAlignment)); 202 kTrayLabelItemHorizontalPaddingBottomAlignment));
221 } 203 }
222 layout_view_->SetLayoutManager(new views::BoxLayout( 204 layout_view_->SetLayoutManager(new views::BoxLayout(
223 views::BoxLayout::kHorizontal, 0, 0, kUserLabelToIconPadding)); 205 views::BoxLayout::kHorizontal, 0, 0, kUserLabelToIconPadding));
224 } else { 206 } else {
225 if (avatar_) { 207 if (avatar_) {
226 avatar_->SetBorder(
227 views::Border::CreateEmptyBorder(distance_to_avatar, 0, 0, 0));
228 avatar_->SetCornerRadii(0, 0, kTrayRoundedBorderRadius, 208 avatar_->SetCornerRadii(0, 0, kTrayRoundedBorderRadius,
229 kTrayRoundedBorderRadius); 209 kTrayRoundedBorderRadius);
230 } 210 }
231 if (label_) { 211 if (label_) {
232 label_->SetBorder(views::Border::CreateEmptyBorder( 212 label_->SetBorder(views::Border::CreateEmptyBorder(
233 kTrayLabelItemVerticalPaddingVerticalAlignment, 213 kTrayLabelItemVerticalPaddingVerticalAlignment,
234 kTrayLabelItemHorizontalPaddingBottomAlignment, 214 kTrayLabelItemHorizontalPaddingBottomAlignment,
235 kTrayLabelItemVerticalPaddingVerticalAlignment, 215 kTrayLabelItemVerticalPaddingVerticalAlignment,
236 kTrayLabelItemHorizontalPaddingBottomAlignment)); 216 kTrayLabelItemHorizontalPaddingBottomAlignment));
237 } 217 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 // Unit tests might come here with no images for some users. 256 // Unit tests might come here with no images for some users.
277 if (avatar_->size().IsEmpty()) 257 if (avatar_->size().IsEmpty())
278 avatar_->SetSize(gfx::Size(kTrayItemSize, kTrayItemSize)); 258 avatar_->SetSize(gfx::Size(kTrayItemSize, kTrayItemSize));
279 } 259 }
280 260
281 void TrayUser::UpdateLayoutOfItem() { 261 void TrayUser::UpdateLayoutOfItem() {
282 UpdateAfterShelfAlignmentChange(system_tray()->shelf_alignment()); 262 UpdateAfterShelfAlignmentChange(system_tray()->shelf_alignment());
283 } 263 }
284 264
285 } // namespace ash 265 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/system/tray/tray_background_view.cc ('k') | ash/common/system/user/tray_user_separator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698