| 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/common/system/user/user_view.h" | 5 #include "ash/common/system/user/user_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "ash/common/multi_profile_uma.h" | 10 #include "ash/common/multi_profile_uma.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 } | 61 } |
| 62 | 62 |
| 63 bool IsMultiProfileSupportedAndUserActive() { | 63 bool IsMultiProfileSupportedAndUserActive() { |
| 64 return WmShell::Get()->delegate()->IsMultiProfilesEnabled() && | 64 return WmShell::Get()->delegate()->IsMultiProfilesEnabled() && |
| 65 !WmShell::Get()->GetSessionStateDelegate()->IsUserSessionBlocked(); | 65 !WmShell::Get()->GetSessionStateDelegate()->IsUserSessionBlocked(); |
| 66 } | 66 } |
| 67 | 67 |
| 68 // Creates the view shown in the user switcher popup ("AddUserMenuOption"). | 68 // Creates the view shown in the user switcher popup ("AddUserMenuOption"). |
| 69 views::View* CreateAddUserView(AddUserSessionPolicy policy, | 69 views::View* CreateAddUserView(AddUserSessionPolicy policy, |
| 70 views::ButtonListener* listener) { | 70 views::ButtonListener* listener) { |
| 71 auto view = new views::View; | 71 auto* view = new views::View; |
| 72 const int icon_padding = (kMenuButtonSize - kMenuIconSize) / 2; | 72 const int icon_padding = (kMenuButtonSize - kMenuIconSize) / 2; |
| 73 auto layout = | 73 auto* layout = |
| 74 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, | 74 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, |
| 75 kTrayPopupLabelHorizontalPadding + icon_padding); | 75 kTrayPopupLabelHorizontalPadding + icon_padding); |
| 76 layout->set_minimum_cross_axis_size( | 76 layout->set_minimum_cross_axis_size( |
| 77 GetTrayConstant(TRAY_POPUP_ITEM_MIN_HEIGHT)); | 77 GetTrayConstant(TRAY_POPUP_ITEM_MIN_HEIGHT)); |
| 78 view->SetLayoutManager(layout); | 78 view->SetLayoutManager(layout); |
| 79 view->set_background( | 79 view->set_background( |
| 80 views::Background::CreateSolidBackground(kBackgroundColor)); | 80 views::Background::CreateSolidBackground(kBackgroundColor)); |
| 81 | 81 |
| 82 int message_id = 0; | 82 int message_id = 0; |
| 83 switch (policy) { | 83 switch (policy) { |
| 84 case AddUserSessionPolicy::ALLOWED: { | 84 case AddUserSessionPolicy::ALLOWED: { |
| 85 message_id = IDS_ASH_STATUS_TRAY_SIGN_IN_ANOTHER_ACCOUNT; | 85 message_id = IDS_ASH_STATUS_TRAY_SIGN_IN_ANOTHER_ACCOUNT; |
| 86 | 86 |
| 87 auto icon = new views::ImageView(); | 87 auto* icon = new views::ImageView(); |
| 88 icon->SetImage( | 88 icon->SetImage( |
| 89 gfx::CreateVectorIcon(kSystemMenuNewUserIcon, kMenuIconColor)); | 89 gfx::CreateVectorIcon(kSystemMenuNewUserIcon, kMenuIconColor)); |
| 90 view->AddChildView(icon); | 90 view->AddChildView(icon); |
| 91 break; | 91 break; |
| 92 } | 92 } |
| 93 case AddUserSessionPolicy::ERROR_NOT_ALLOWED_PRIMARY_USER: | 93 case AddUserSessionPolicy::ERROR_NOT_ALLOWED_PRIMARY_USER: |
| 94 message_id = IDS_ASH_STATUS_TRAY_MESSAGE_NOT_ALLOWED_PRIMARY_USER; | 94 message_id = IDS_ASH_STATUS_TRAY_MESSAGE_NOT_ALLOWED_PRIMARY_USER; |
| 95 break; | 95 break; |
| 96 case AddUserSessionPolicy::ERROR_MAXIMUM_USERS_REACHED: | 96 case AddUserSessionPolicy::ERROR_MAXIMUM_USERS_REACHED: |
| 97 message_id = IDS_ASH_STATUS_TRAY_MESSAGE_CANNOT_ADD_USER; | 97 message_id = IDS_ASH_STATUS_TRAY_MESSAGE_CANNOT_ADD_USER; |
| 98 break; | 98 break; |
| 99 case AddUserSessionPolicy::ERROR_NO_ELIGIBLE_USERS: | 99 case AddUserSessionPolicy::ERROR_NO_ELIGIBLE_USERS: |
| 100 message_id = IDS_ASH_STATUS_TRAY_MESSAGE_OUT_OF_USERS; | 100 message_id = IDS_ASH_STATUS_TRAY_MESSAGE_OUT_OF_USERS; |
| 101 break; | 101 break; |
| 102 } | 102 } |
| 103 | 103 |
| 104 auto command_label = new views::Label(l10n_util::GetStringUTF16(message_id)); | 104 auto* command_label = new views::Label(l10n_util::GetStringUTF16(message_id)); |
| 105 command_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 105 command_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 106 command_label->SetMultiLine(true); | 106 command_label->SetMultiLine(true); |
| 107 | 107 |
| 108 TrayPopupItemStyle label_style( | 108 TrayPopupItemStyle label_style( |
| 109 TrayPopupItemStyle::FontStyle::DETAILED_VIEW_LABEL); | 109 TrayPopupItemStyle::FontStyle::DETAILED_VIEW_LABEL); |
| 110 int vertical_padding = kMenuSeparatorVerticalPadding; | 110 int vertical_padding = kMenuSeparatorVerticalPadding; |
| 111 if (policy != AddUserSessionPolicy::ALLOWED) { | 111 if (policy != AddUserSessionPolicy::ALLOWED) { |
| 112 label_style.set_font_style(TrayPopupItemStyle::FontStyle::CAPTION); | 112 label_style.set_font_style(TrayPopupItemStyle::FontStyle::CAPTION); |
| 113 label_style.set_color_style(TrayPopupItemStyle::ColorStyle::INACTIVE); | 113 label_style.set_color_style(TrayPopupItemStyle::ColorStyle::INACTIVE); |
| 114 vertical_padding += kMenuSeparatorVerticalPadding; | 114 vertical_padding += kMenuSeparatorVerticalPadding; |
| 115 } | 115 } |
| 116 label_style.SetupLabel(command_label); | 116 label_style.SetupLabel(command_label); |
| 117 view->AddChildView(command_label); | 117 view->AddChildView(command_label); |
| 118 view->SetBorder(views::CreateEmptyBorder(vertical_padding, icon_padding, | 118 view->SetBorder(views::CreateEmptyBorder(vertical_padding, icon_padding, |
| 119 vertical_padding, | 119 vertical_padding, |
| 120 kTrayPopupLabelHorizontalPadding)); | 120 kTrayPopupLabelHorizontalPadding)); |
| 121 if (policy == AddUserSessionPolicy::ALLOWED) { | 121 if (policy == AddUserSessionPolicy::ALLOWED) { |
| 122 auto button = | 122 auto* button = |
| 123 new ButtonFromView(view, listener, TrayPopupInkDropStyle::INSET_BOUNDS); | 123 new ButtonFromView(view, listener, TrayPopupInkDropStyle::INSET_BOUNDS); |
| 124 button->SetAccessibleName( | 124 button->SetAccessibleName( |
| 125 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SIGN_IN_ANOTHER_ACCOUNT)); | 125 l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SIGN_IN_ANOTHER_ACCOUNT)); |
| 126 return button; | 126 return button; |
| 127 } | 127 } |
| 128 | 128 |
| 129 return view; | 129 return view; |
| 130 } | 130 } |
| 131 | 131 |
| 132 class UserViewMouseWatcherHost : public views::MouseWatcherHost { | 132 class UserViewMouseWatcherHost : public views::MouseWatcherHost { |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 add_user_enabled_(true), | 214 add_user_enabled_(true), |
| 215 focus_manager_(nullptr) { | 215 focus_manager_(nullptr) { |
| 216 CHECK_NE(LoginStatus::NOT_LOGGED_IN, login); | 216 CHECK_NE(LoginStatus::NOT_LOGGED_IN, login); |
| 217 // The logout button must be added before the user card so that the user card | 217 // The logout button must be added before the user card so that the user card |
| 218 // can correctly calculate the remaining available width. | 218 // can correctly calculate the remaining available width. |
| 219 // Note that only the current multiprofile user gets a button. | 219 // Note that only the current multiprofile user gets a button. |
| 220 if (IsActiveUser()) | 220 if (IsActiveUser()) |
| 221 AddLogoutButton(login); | 221 AddLogoutButton(login); |
| 222 AddUserCard(login); | 222 AddUserCard(login); |
| 223 | 223 |
| 224 auto layout = new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0); | 224 auto* layout = new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0); |
| 225 SetLayoutManager(layout); | 225 SetLayoutManager(layout); |
| 226 layout->set_cross_axis_alignment( | 226 layout->set_cross_axis_alignment( |
| 227 views::BoxLayout::CROSS_AXIS_ALIGNMENT_CENTER); | 227 views::BoxLayout::CROSS_AXIS_ALIGNMENT_CENTER); |
| 228 layout->SetFlexForView(user_card_view_, 1); | 228 layout->SetFlexForView(user_card_view_, 1); |
| 229 | 229 |
| 230 if (IsActiveUser()) | 230 if (IsActiveUser()) |
| 231 SetBorder(base::MakeUnique<ActiveUserBorder>()); | 231 SetBorder(base::MakeUnique<ActiveUserBorder>()); |
| 232 } | 232 } |
| 233 | 233 |
| 234 UserView::~UserView() { | 234 UserView::~UserView() { |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 return; | 400 return; |
| 401 focus_manager_->RemoveFocusChangeListener(this); | 401 focus_manager_->RemoveFocusChangeListener(this); |
| 402 focus_manager_ = nullptr; | 402 focus_manager_ = nullptr; |
| 403 if (user_card_view_->GetFocusManager()) | 403 if (user_card_view_->GetFocusManager()) |
| 404 user_card_view_->GetFocusManager()->ClearFocus(); | 404 user_card_view_->GetFocusManager()->ClearFocus(); |
| 405 add_menu_option_.reset(); | 405 add_menu_option_.reset(); |
| 406 } | 406 } |
| 407 | 407 |
| 408 } // namespace tray | 408 } // namespace tray |
| 409 } // namespace ash | 409 } // namespace ash |
| OLD | NEW |