Chromium Code Reviews| Index: ash/common/system/tray_accessibility.cc |
| diff --git a/ash/common/system/tray_accessibility.cc b/ash/common/system/tray_accessibility.cc |
| index 273a93937a0aff907e732b51e109e1b83d867279..0e4084a27b057bc2b066b6a6b265353497944135 100644 |
| --- a/ash/common/system/tray_accessibility.cc |
| +++ b/ash/common/system/tray_accessibility.cc |
| @@ -23,8 +23,10 @@ |
| #include "grit/ash_strings.h" |
| #include "ui/base/l10n/l10n_util.h" |
| #include "ui/base/resource/resource_bundle.h" |
| +#include "ui/gfx/color_palette.h" |
| #include "ui/gfx/image/image.h" |
| #include "ui/gfx/paint_vector_icon.h" |
| +#include "ui/gfx/vector_icons_public.h" |
| #include "ui/views/controls/image_view.h" |
| #include "ui/views/controls/label.h" |
| #include "ui/views/layout/box_layout.h" |
| @@ -151,7 +153,10 @@ AccessibilityDetailedView::AccessibilityDetailedView(SystemTrayItem* owner, |
| Reset(); |
| AppendAccessibilityList(); |
| - AppendHelpEntries(); |
| + |
| + if (!MaterialDesignController::IsSystemTrayMenuMaterial()) |
| + AppendHelpEntries(); |
| + |
| CreateTitleRow(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_TITLE); |
| Layout(); |
| @@ -161,12 +166,15 @@ void AccessibilityDetailedView::AppendAccessibilityList() { |
| CreateScrollableList(); |
| ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); |
| + // Generate entries in Accessibility detailed view menu for MD and non-MD, |
|
tdanderson
2016/09/21 17:59:32
nit: I don't think this comment adds much informat
yiyix
2016/09/21 19:02:26
Done.
|
| + // respectively. |
| AccessibilityDelegate* delegate = WmShell::Get()->accessibility_delegate(); |
| spoken_feedback_enabled_ = delegate->IsSpokenFeedbackEnabled(); |
| spoken_feedback_view_ = |
| AddScrollListItem(bundle.GetLocalizedString( |
| IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SPOKEN_FEEDBACK), |
| - spoken_feedback_enabled_, spoken_feedback_enabled_); |
| + spoken_feedback_enabled_, spoken_feedback_enabled_, |
| + kSystemMenuAccessibilityChromevoxIcon); |
| // Large Cursor item is shown only in Login screen. |
| if (login_ == LoginStatus::NOT_LOGGED_IN) { |
| @@ -174,33 +182,38 @@ void AccessibilityDetailedView::AppendAccessibilityList() { |
| large_cursor_view_ = |
| AddScrollListItem(bundle.GetLocalizedString( |
| IDS_ASH_STATUS_TRAY_ACCESSIBILITY_LARGE_CURSOR), |
| - large_cursor_enabled_, large_cursor_enabled_); |
| + large_cursor_enabled_, large_cursor_enabled_, |
| + kSystemMenuAccessibilityLargeCursorIcon); |
| } |
| high_contrast_enabled_ = delegate->IsHighContrastEnabled(); |
| high_contrast_view_ = AddScrollListItem( |
| bundle.GetLocalizedString( |
| IDS_ASH_STATUS_TRAY_ACCESSIBILITY_HIGH_CONTRAST_MODE), |
| - high_contrast_enabled_, high_contrast_enabled_); |
| + high_contrast_enabled_, high_contrast_enabled_, |
| + kSystemMenuAccessibilityContrastIcon); |
| screen_magnifier_enabled_ = delegate->IsMagnifierEnabled(); |
| screen_magnifier_view_ = |
| AddScrollListItem(bundle.GetLocalizedString( |
| IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SCREEN_MAGNIFIER), |
| - screen_magnifier_enabled_, screen_magnifier_enabled_); |
| + screen_magnifier_enabled_, screen_magnifier_enabled_, |
| + kSystemMenuAccessibilityScreenMagnifierIcon); |
| // Don't show autoclick option at login screen. |
| if (login_ != LoginStatus::NOT_LOGGED_IN) { |
| autoclick_enabled_ = delegate->IsAutoclickEnabled(); |
| autoclick_view_ = AddScrollListItem( |
| bundle.GetLocalizedString(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_AUTOCLICK), |
| - autoclick_enabled_, autoclick_enabled_); |
| + autoclick_enabled_, autoclick_enabled_, |
| + kSystemMenuAccessibilityAutoClickIcon); |
| } |
| virtual_keyboard_enabled_ = delegate->IsVirtualKeyboardEnabled(); |
| virtual_keyboard_view_ = |
| AddScrollListItem(bundle.GetLocalizedString( |
| IDS_ASH_STATUS_TRAY_ACCESSIBILITY_VIRTUAL_KEYBOARD), |
| - virtual_keyboard_enabled_, virtual_keyboard_enabled_); |
| + virtual_keyboard_enabled_, virtual_keyboard_enabled_, |
| + kSystemMenuKeyboardIcon); |
| } |
| void AccessibilityDetailedView::AppendHelpEntries() { |
| @@ -237,55 +250,70 @@ void AccessibilityDetailedView::AppendHelpEntries() { |
| HoverHighlightView* AccessibilityDetailedView::AddScrollListItem( |
| const base::string16& text, |
| bool highlight, |
| - bool checked) { |
| + bool checked, |
| + const gfx::VectorIcon& icon) { |
| HoverHighlightView* container = new HoverHighlightView(this); |
| - container->AddCheckableLabel(text, highlight, checked); |
| + if (MaterialDesignController::IsSystemTrayMenuMaterial()) { |
| + gfx::ImageSkia image = CreateVectorIcon(icon, kMenuIconColor); |
| + const int padding = (kMenuButtonSize - image.width()) / 2; |
| + container->AddIconAndLabelCustomSize(image, text, highlight, |
| + image.width() + kMenuIconMargin * 2, |
| + padding, padding); |
| + gfx::ImageSkia check_mark = |
| + CreateVectorIcon(gfx::VectorIconId::CHECK_CIRCLE, gfx::kGoogleGreen700); |
| + container->AddRightIcon(check_mark, check_mark.width()); |
| + container->SetRightIconVisible(checked); |
| + } else { |
| + container->AddCheckableLabel(text, highlight, checked); |
| + } |
| scroll_content()->AddChildView(container); |
| return container; |
| } |
| void AccessibilityDetailedView::HandleViewClicked(views::View* view) { |
| AccessibilityDelegate* delegate = WmShell::Get()->accessibility_delegate(); |
| + UserMetricsAction user_action; |
| if (view == spoken_feedback_view_) { |
| - WmShell::Get()->RecordUserMetricsAction( |
| - delegate->IsSpokenFeedbackEnabled() |
| - ? ash::UMA_STATUS_AREA_DISABLE_SPOKEN_FEEDBACK |
| - : ash::UMA_STATUS_AREA_ENABLE_SPOKEN_FEEDBACK); |
| + user_action = delegate->IsSpokenFeedbackEnabled() |
| + ? ash::UMA_STATUS_AREA_DISABLE_SPOKEN_FEEDBACK |
| + : ash::UMA_STATUS_AREA_ENABLE_SPOKEN_FEEDBACK; |
| delegate->ToggleSpokenFeedback(A11Y_NOTIFICATION_NONE); |
| } else if (view == high_contrast_view_) { |
| - WmShell::Get()->RecordUserMetricsAction( |
| - delegate->IsHighContrastEnabled() |
| - ? ash::UMA_STATUS_AREA_DISABLE_HIGH_CONTRAST |
| - : ash::UMA_STATUS_AREA_ENABLE_HIGH_CONTRAST); |
| + user_action = delegate->IsHighContrastEnabled() |
| + ? ash::UMA_STATUS_AREA_DISABLE_HIGH_CONTRAST |
| + : ash::UMA_STATUS_AREA_ENABLE_HIGH_CONTRAST; |
| delegate->ToggleHighContrast(); |
| } else if (view == screen_magnifier_view_) { |
| - WmShell::Get()->RecordUserMetricsAction( |
| - delegate->IsMagnifierEnabled() ? ash::UMA_STATUS_AREA_DISABLE_MAGNIFIER |
| - : ash::UMA_STATUS_AREA_ENABLE_MAGNIFIER); |
| + user_action = delegate->IsMagnifierEnabled() |
| + ? ash::UMA_STATUS_AREA_DISABLE_MAGNIFIER |
| + : ash::UMA_STATUS_AREA_ENABLE_MAGNIFIER; |
| delegate->SetMagnifierEnabled(!delegate->IsMagnifierEnabled()); |
| } else if (large_cursor_view_ && view == large_cursor_view_) { |
| - WmShell::Get()->RecordUserMetricsAction( |
| - delegate->IsLargeCursorEnabled() |
| - ? ash::UMA_STATUS_AREA_DISABLE_LARGE_CURSOR |
| - : ash::UMA_STATUS_AREA_ENABLE_LARGE_CURSOR); |
| + user_action = delegate->IsLargeCursorEnabled() |
| + ? ash::UMA_STATUS_AREA_DISABLE_LARGE_CURSOR |
| + : ash::UMA_STATUS_AREA_ENABLE_LARGE_CURSOR; |
| delegate->SetLargeCursorEnabled(!delegate->IsLargeCursorEnabled()); |
| } else if (autoclick_view_ && view == autoclick_view_) { |
| - WmShell::Get()->RecordUserMetricsAction( |
| - delegate->IsAutoclickEnabled() |
| - ? ash::UMA_STATUS_AREA_DISABLE_AUTO_CLICK |
| - : ash::UMA_STATUS_AREA_ENABLE_AUTO_CLICK); |
| + user_action = delegate->IsAutoclickEnabled() |
| + ? ash::UMA_STATUS_AREA_DISABLE_AUTO_CLICK |
| + : ash::UMA_STATUS_AREA_ENABLE_AUTO_CLICK; |
| delegate->SetAutoclickEnabled(!delegate->IsAutoclickEnabled()); |
| } else if (virtual_keyboard_view_ && view == virtual_keyboard_view_) { |
| - WmShell::Get()->RecordUserMetricsAction( |
| - delegate->IsVirtualKeyboardEnabled() |
| - ? ash::UMA_STATUS_AREA_DISABLE_VIRTUAL_KEYBOARD |
| - : ash::UMA_STATUS_AREA_ENABLE_VIRTUAL_KEYBOARD); |
| + user_action = delegate->IsVirtualKeyboardEnabled() |
| + ? ash::UMA_STATUS_AREA_DISABLE_VIRTUAL_KEYBOARD |
| + : ash::UMA_STATUS_AREA_ENABLE_VIRTUAL_KEYBOARD; |
| delegate->SetVirtualKeyboardEnabled(!delegate->IsVirtualKeyboardEnabled()); |
| + } else { |
| + return; |
| } |
| + WmShell::Get()->RecordUserMetricsAction(user_action); |
| } |
| void AccessibilityDetailedView::HandleButtonPressed(views::Button* sender, |
| const ui::Event& event) { |
| + if (MaterialDesignController::UseMaterialDesignSystemIcons()) { |
|
tdanderson
2016/09/21 17:59:32
nit: {} not needed
|
| + return; |
| + } |
| SystemTrayDelegate* tray_delegate = WmShell::Get()->system_tray_delegate(); |
| if (sender == help_view_) |
| tray_delegate->ShowAccessibilityHelp(); |