OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/user_view.h" | 5 #include "ash/system/user/user_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "ash/multi_profile_uma.h" | 10 #include "ash/multi_profile_uma.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 // Creates the view shown in the user switcher popup ("AddUserMenuOption"). | 74 // Creates the view shown in the user switcher popup ("AddUserMenuOption"). |
75 views::View* CreateAddUserView(AddUserSessionPolicy policy, | 75 views::View* CreateAddUserView(AddUserSessionPolicy policy, |
76 views::ButtonListener* listener) { | 76 views::ButtonListener* listener) { |
77 auto* view = new views::View; | 77 auto* view = new views::View; |
78 const int icon_padding = (kMenuButtonSize - kMenuIconSize) / 2; | 78 const int icon_padding = (kMenuButtonSize - kMenuIconSize) / 2; |
79 auto* layout = | 79 auto* layout = |
80 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, | 80 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, |
81 kTrayPopupLabelHorizontalPadding + icon_padding); | 81 kTrayPopupLabelHorizontalPadding + icon_padding); |
82 layout->set_minimum_cross_axis_size(kTrayPopupItemMinHeight); | 82 layout->set_minimum_cross_axis_size(kTrayPopupItemMinHeight); |
83 view->SetLayoutManager(layout); | 83 view->SetLayoutManager(layout); |
84 view->set_background( | 84 view->set_background(views::Background::CreateThemedSolidBackground( |
85 views::Background::CreateSolidBackground(kBackgroundColor)); | 85 view, ui::NativeTheme::kColorId_BubbleBackground)); |
86 | 86 |
87 int message_id = 0; | 87 int message_id = 0; |
88 switch (policy) { | 88 switch (policy) { |
89 case AddUserSessionPolicy::ALLOWED: { | 89 case AddUserSessionPolicy::ALLOWED: { |
90 message_id = IDS_ASH_STATUS_TRAY_SIGN_IN_ANOTHER_ACCOUNT; | 90 message_id = IDS_ASH_STATUS_TRAY_SIGN_IN_ANOTHER_ACCOUNT; |
91 | 91 |
92 auto* icon = new views::ImageView(); | 92 auto* icon = new views::ImageView(); |
93 icon->SetImage( | 93 icon->SetImage( |
94 gfx::CreateVectorIcon(kSystemMenuNewUserIcon, kMenuIconColor)); | 94 gfx::CreateVectorIcon(kSystemMenuNewUserIcon, kMenuIconColor)); |
95 view->AddChildView(icon); | 95 view->AddChildView(icon); |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 | 357 |
358 // Position the widget on top of the user card view (which is still in the | 358 // Position the widget on top of the user card view (which is still in the |
359 // system menu). The top half of the widget will be transparent to allow | 359 // system menu). The top half of the widget will be transparent to allow |
360 // the active user to show through. | 360 // the active user to show through. |
361 gfx::Rect bounds = user_card_view_->GetBoundsInScreen(); | 361 gfx::Rect bounds = user_card_view_->GetBoundsInScreen(); |
362 bounds.set_width(bounds.width() + kSeparatorWidth); | 362 bounds.set_width(bounds.width() + kSeparatorWidth); |
363 int row_height = bounds.height(); | 363 int row_height = bounds.height(); |
364 | 364 |
365 views::View* container = new AddUserWidgetContents( | 365 views::View* container = new AddUserWidgetContents( |
366 base::Bind(&UserView::RemoveAddUserMenuOption, base::Unretained(this))); | 366 base::Bind(&UserView::RemoveAddUserMenuOption, base::Unretained(this))); |
| 367 views::View* add_user_view = CreateAddUserView(add_user_policy, this); |
367 container->SetBorder(views::CreatePaddedBorder( | 368 container->SetBorder(views::CreatePaddedBorder( |
368 views::CreateSolidSidedBorder(0, 0, 0, kSeparatorWidth, kBackgroundColor), | 369 views::CreateSolidSidedBorder(0, 0, 0, kSeparatorWidth, |
| 370 add_user_view->background()->get_color()), |
369 gfx::Insets(row_height, 0, 0, 0))); | 371 gfx::Insets(row_height, 0, 0, 0))); |
370 views::View* add_user_padding = new views::View(); | 372 views::View* add_user_padding = new views::View(); |
371 add_user_padding->SetBorder(views::CreateSolidSidedBorder( | 373 add_user_padding->SetBorder( |
372 kMenuSeparatorVerticalPadding, 0, 0, 0, kBackgroundColor)); | 374 views::CreateSolidSidedBorder(kMenuSeparatorVerticalPadding, 0, 0, 0, |
373 views::View* add_user_view = CreateAddUserView(add_user_policy, this); | 375 add_user_view->background()->get_color())); |
374 add_user_padding->AddChildView(add_user_view); | 376 add_user_padding->AddChildView(add_user_view); |
375 add_user_padding->SetLayoutManager(new views::FillLayout()); | 377 add_user_padding->SetLayoutManager(new views::FillLayout()); |
376 container->AddChildView(add_user_padding); | 378 container->AddChildView(add_user_padding); |
377 container->SetLayoutManager(new views::FillLayout()); | 379 container->SetLayoutManager(new views::FillLayout()); |
378 add_menu_option_->SetContentsView(container); | 380 add_menu_option_->SetContentsView(container); |
379 | 381 |
380 bounds.set_height(container->GetPreferredSize().height()); | 382 bounds.set_height(container->GetPreferredSize().height()); |
381 add_menu_option_->SetBounds(bounds); | 383 add_menu_option_->SetBounds(bounds); |
382 | 384 |
383 // Show the content. | 385 // Show the content. |
(...skipping 12 matching lines...) Expand all Loading... |
396 return; | 398 return; |
397 focus_manager_->RemoveFocusChangeListener(this); | 399 focus_manager_->RemoveFocusChangeListener(this); |
398 focus_manager_ = nullptr; | 400 focus_manager_ = nullptr; |
399 if (user_card_view_->GetFocusManager()) | 401 if (user_card_view_->GetFocusManager()) |
400 user_card_view_->GetFocusManager()->ClearFocus(); | 402 user_card_view_->GetFocusManager()->ClearFocus(); |
401 add_menu_option_.reset(); | 403 add_menu_option_.reset(); |
402 } | 404 } |
403 | 405 |
404 } // namespace tray | 406 } // namespace tray |
405 } // namespace ash | 407 } // namespace ash |
OLD | NEW |