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..559a10db11ab4998680373d4507df7bba823b572 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,12 @@ AccessibilityDetailedView::AccessibilityDetailedView(SystemTrayItem* owner, |
| Reset(); |
| AppendAccessibilityList(); |
| - AppendHelpEntries(); |
| + |
| + // The help option row is shown in non MD only. Note that the row will be |
| + // integrated with the title row in MD design. |
| + if (!ash::MaterialDesignController::IsSystemTrayMenuMaterial()) |
| + AppendHelpEntries(); |
|
tdanderson
2016/09/15 16:13:26
This initializes two members that are now non-MD-o
yiyix
2016/09/19 20:24:55
Good call.
|
| + |
| CreateTitleRow(IDS_ASH_STATUS_TRAY_ACCESSIBILITY_TITLE); |
| Layout(); |
| @@ -161,46 +168,101 @@ void AccessibilityDetailedView::AppendAccessibilityList() { |
| CreateScrollableList(); |
| ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); |
| + // Generate entries in Accessibility detailed view menu for MD and non-MD, |
| + // 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_); |
| - |
| - // Large Cursor item is shown only in Login screen. |
| - if (login_ == LoginStatus::NOT_LOGGED_IN) { |
| - large_cursor_enabled_ = delegate->IsLargeCursorEnabled(); |
| - large_cursor_view_ = |
| - AddScrollListItem(bundle.GetLocalizedString( |
| - IDS_ASH_STATUS_TRAY_ACCESSIBILITY_LARGE_CURSOR), |
| - large_cursor_enabled_, large_cursor_enabled_); |
| - } |
| - |
| 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_); |
| screen_magnifier_enabled_ = delegate->IsMagnifierEnabled(); |
| - screen_magnifier_view_ = |
| - AddScrollListItem(bundle.GetLocalizedString( |
| - IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SCREEN_MAGNIFIER), |
| - screen_magnifier_enabled_, screen_magnifier_enabled_); |
| - |
| - // 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_); |
| - } |
| - |
| virtual_keyboard_enabled_ = delegate->IsVirtualKeyboardEnabled(); |
| - virtual_keyboard_view_ = |
| - AddScrollListItem(bundle.GetLocalizedString( |
| - IDS_ASH_STATUS_TRAY_ACCESSIBILITY_VIRTUAL_KEYBOARD), |
| - virtual_keyboard_enabled_, virtual_keyboard_enabled_); |
| + |
| + if (ash::MaterialDesignController::IsSystemTrayMenuMaterial()) { |
|
tdanderson
2016/09/15 16:13:26
This feels like a lot of repeated code. Can you in
yiyix
2016/09/19 20:24:55
Done.
|
| + gfx::ImageSkia image = CreateVectorIcon( |
| + kSystemMenuAccessibilityChromevoxIcon, kMenuIconSize, kMenuIconColor); |
| + spoken_feedback_view_ = AddScrollListItemMD( |
| + bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SPOKEN_FEEDBACK), |
| + spoken_feedback_enabled_, spoken_feedback_enabled_, image); |
| + |
| + image = CreateVectorIcon(kSystemMenuAccessibilityContrastIcon, |
| + kMenuIconSize, kMenuIconColor); |
|
tdanderson
2016/09/15 16:13:26
Since the icon size is specified in the .icon file
yiyix
2016/09/19 20:24:55
Done.
|
| + high_contrast_view_ = AddScrollListItemMD( |
| + bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_HIGH_CONTRAST_MODE), |
| + high_contrast_enabled_, high_contrast_enabled_, image); |
| + |
| + image = CreateVectorIcon(kSystemMenuAccessibilityScreenMagnifierIcon, |
| + kMenuIconSize, kMenuIconColor); |
| + screen_magnifier_view_ = AddScrollListItemMD( |
| + bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SCREEN_MAGNIFIER), |
| + screen_magnifier_enabled_, screen_magnifier_enabled_, image); |
| + |
| + // "Large Cursor" item is shown only in Login screen. |
| + if (login_ == LoginStatus::NOT_LOGGED_IN) { |
| + large_cursor_enabled_ = delegate->IsLargeCursorEnabled(); |
| + image = CreateVectorIcon(kSystemMenuAccessibilityLargeCursorIcon, |
| + kMenuIconSize, kMenuIconColor); |
| + large_cursor_view_ = AddScrollListItemMD( |
| + bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_LARGE_CURSOR), |
| + large_cursor_enabled_, large_cursor_enabled_, image); |
| + } |
| + |
| + // Don't show "Auto Click" option at login screen. |
| + if (login_ != LoginStatus::NOT_LOGGED_IN) { |
| + image = CreateVectorIcon(kSystemMenuAccessibilityAutoClickIcon, |
| + kMenuIconSize, kMenuIconColor); |
| + autoclick_enabled_ = delegate->IsAutoclickEnabled(); |
| + autoclick_view_ = |
| + AddScrollListItemMD(bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_AUTOCLICK), |
| + autoclick_enabled_, autoclick_enabled_, image); |
| + } |
| + |
| + image = CreateVectorIcon(kSystemMenuKeyboardIcon, kMenuIconSize, |
| + kMenuIconColor); |
| + virtual_keyboard_view_ = AddScrollListItemMD( |
| + bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_VIRTUAL_KEYBOARD), |
| + virtual_keyboard_enabled_, virtual_keyboard_enabled_, image); |
| + |
| + } else { |
| + spoken_feedback_view_ = AddScrollListItem( |
| + bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SPOKEN_FEEDBACK), |
| + spoken_feedback_enabled_, spoken_feedback_enabled_); |
| + high_contrast_view_ = AddScrollListItem( |
| + bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_HIGH_CONTRAST_MODE), |
| + high_contrast_enabled_, high_contrast_enabled_); |
| + screen_magnifier_view_ = AddScrollListItem( |
| + bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SCREEN_MAGNIFIER), |
| + screen_magnifier_enabled_, screen_magnifier_enabled_); |
| + virtual_keyboard_view_ = AddScrollListItem( |
| + bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_VIRTUAL_KEYBOARD), |
| + virtual_keyboard_enabled_, virtual_keyboard_enabled_); |
| + |
| + // Large Cursor item is shown only in Login screen. |
| + if (login_ == LoginStatus::NOT_LOGGED_IN) { |
| + large_cursor_enabled_ = delegate->IsLargeCursorEnabled(); |
| + large_cursor_view_ = |
| + AddScrollListItem(bundle.GetLocalizedString( |
| + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_LARGE_CURSOR), |
| + large_cursor_enabled_, large_cursor_enabled_); |
| + } |
| + |
| + // 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_); |
| + } |
| + } |
| } |
| void AccessibilityDetailedView::AppendHelpEntries() { |
| @@ -244,6 +306,23 @@ HoverHighlightView* AccessibilityDetailedView::AddScrollListItem( |
| return container; |
| } |
| +HoverHighlightView* AccessibilityDetailedView::AddScrollListItemMD( |
| + const base::string16& text, |
| + bool highlight, |
| + bool checked, |
| + const gfx::ImageSkia& image) { |
| + HoverHighlightView* container = new HoverHighlightView(this); |
| + container->AddIconAndLabelCustomSize( |
| + image, text, highlight, kMenuIconSize + kMenuIconMargin + kMenuIconMargin, |
|
tdanderson
2016/09/15 16:13:26
Prefer using kMenuIconSize + 2 * kMenuIconMargin i
yiyix
2016/09/19 20:24:55
Done.
|
| + kIconPadding, kIconPadding); |
| + gfx::ImageSkia check = CreateVectorIcon(gfx::VectorIconId::CHECK_CIRCLE, |
| + kMenuIconSize, gfx::kGoogleGreen700); |
| + container->AddRightIcon(check, kMenuIconSize); |
|
tdanderson
2016/09/15 16:13:26
I don't think AddRightIcon() actually needs to hav
yiyix
2016/09/19 20:24:55
Done.
|
| + container->SetRightIconVisible(checked); |
| + scroll_content()->AddChildView(container); |
| + return container; |
| +} |
| + |
| void AccessibilityDetailedView::HandleViewClicked(views::View* view) { |
| AccessibilityDelegate* delegate = WmShell::Get()->accessibility_delegate(); |
| if (view == spoken_feedback_view_) { |