Commit c345ab7d authored by minch's avatar minch Committed by Commit bot

Reuse the code within UpdateCheckMark()

Move UpdateCheckMark() from anonymous namespace of tray_accessibility.cc to tray_popup_utils.h
Then, it can be reused by AudioDetailedView and CommonPaletteTool.

BUG=707851

Review-Url: https://codereview.chromium.org/2803893002
Cr-Commit-Position: refs/heads/master@{#463020}
parent 437b4bae
...@@ -110,17 +110,7 @@ HoverHighlightView* AudioDetailedView::AddScrollListItem( ...@@ -110,17 +110,7 @@ HoverHighlightView* AudioDetailedView::AddScrollListItem(
HoverHighlightView* container = new HoverHighlightView(this); HoverHighlightView* container = new HoverHighlightView(this);
container->AddLabelRow(text); container->AddLabelRow(text);
if (checked) { TrayPopupUtils::InitializeAsCheckableRow(container, checked);
gfx::ImageSkia check_mark =
gfx::CreateVectorIcon(kCheckCircleIcon, gfx::kGoogleGreen700);
container->AddRightIcon(check_mark, check_mark.width());
container->SetRightViewVisible(true);
container->SetAccessiblityState(
HoverHighlightView::AccessibilityState::CHECKED_CHECKBOX);
} else {
container->SetAccessiblityState(
HoverHighlightView::AccessibilityState::UNCHECKED_CHECKBOX);
}
scroll_content()->AddChildView(container); scroll_content()->AddChildView(container);
return container; return container;
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "ash/common/system/chromeos/palette/palette_tool_manager.h" #include "ash/common/system/chromeos/palette/palette_tool_manager.h"
#include "ash/common/system/tray/hover_highlight_view.h" #include "ash/common/system/tray/hover_highlight_view.h"
#include "ash/common/system/tray/tray_constants.h" #include "ash/common/system/tray/tray_constants.h"
#include "ash/common/system/tray/tray_popup_utils.h"
#include "ash/common/system/tray/view_click_listener.h" #include "ash/common/system/tray/view_click_listener.h"
#include "ash/resources/grit/ash_resources.h" #include "ash/resources/grit/ash_resources.h"
#include "ash/resources/vector_icons/vector_icons.h" #include "ash/resources/vector_icons/vector_icons.h"
...@@ -51,22 +52,16 @@ void CommonPaletteTool::OnEnable() { ...@@ -51,22 +52,16 @@ void CommonPaletteTool::OnEnable() {
PaletteTool::OnEnable(); PaletteTool::OnEnable();
start_time_ = base::TimeTicks::Now(); start_time_ = base::TimeTicks::Now();
if (highlight_view_) { if (highlight_view_)
highlight_view_->SetRightViewVisible(true); TrayPopupUtils::UpdateCheckMarkVisibility(highlight_view_, true);
highlight_view_->SetAccessiblityState(
HoverHighlightView::AccessibilityState::CHECKED_CHECKBOX);
}
} }
void CommonPaletteTool::OnDisable() { void CommonPaletteTool::OnDisable() {
PaletteTool::OnDisable(); PaletteTool::OnDisable();
AddHistogramTimes(GetToolId(), base::TimeTicks::Now() - start_time_); AddHistogramTimes(GetToolId(), base::TimeTicks::Now() - start_time_);
if (highlight_view_) { if (highlight_view_)
highlight_view_->SetRightViewVisible(false); TrayPopupUtils::UpdateCheckMarkVisibility(highlight_view_, false);
highlight_view_->SetAccessiblityState(
HoverHighlightView::AccessibilityState::UNCHECKED_CHECKBOX);
}
} }
void CommonPaletteTool::OnViewClicked(views::View* sender) { void CommonPaletteTool::OnViewClicked(views::View* sender) {
...@@ -85,23 +80,13 @@ void CommonPaletteTool::OnViewClicked(views::View* sender) { ...@@ -85,23 +80,13 @@ void CommonPaletteTool::OnViewClicked(views::View* sender) {
views::View* CommonPaletteTool::CreateDefaultView(const base::string16& name) { views::View* CommonPaletteTool::CreateDefaultView(const base::string16& name) {
gfx::ImageSkia icon = gfx::ImageSkia icon =
CreateVectorIcon(GetPaletteIcon(), kMenuIconSize, gfx::kChromeIconGrey); CreateVectorIcon(GetPaletteIcon(), kMenuIconSize, gfx::kChromeIconGrey);
gfx::ImageSkia check =
CreateVectorIcon(kCheckCircleIcon, kMenuIconSize, gfx::kGoogleGreen700);
highlight_view_ = new HoverHighlightView(this); highlight_view_ = new HoverHighlightView(this);
highlight_view_->SetBorder(views::CreateEmptyBorder(0, 0, 0, 0)); highlight_view_->SetBorder(views::CreateEmptyBorder(0, 0, 0, 0));
highlight_view_->AddIconAndLabel(icon, name); highlight_view_->AddIconAndLabel(icon, name);
highlight_view_->AddRightIcon(check, kMenuIconSize);
highlight_view_->set_custom_height(kMenuButtonSize); highlight_view_->set_custom_height(kMenuButtonSize);
if (enabled()) { TrayPopupUtils::InitializeAsCheckableRow(highlight_view_, enabled());
highlight_view_->SetAccessiblityState(
HoverHighlightView::AccessibilityState::CHECKED_CHECKBOX);
} else {
highlight_view_->SetRightViewVisible(false);
highlight_view_->SetAccessiblityState(
HoverHighlightView::AccessibilityState::UNCHECKED_CHECKBOX);
}
return highlight_view_; return highlight_view_;
} }
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "ash/common/ash_view_ids.h" #include "ash/common/ash_view_ids.h"
#include "ash/common/session/session_controller.h" #include "ash/common/session/session_controller.h"
#include "ash/common/system/tray/fixed_sized_image_view.h" #include "ash/common/system/tray/fixed_sized_image_view.h"
#include "ash/common/system/tray/hover_highlight_view.h"
#include "ash/common/system/tray/size_range_layout.h" #include "ash/common/system/tray/size_range_layout.h"
#include "ash/common/system/tray/tray_constants.h" #include "ash/common/system/tray/tray_constants.h"
#include "ash/common/system/tray/tray_popup_item_style.h" #include "ash/common/system/tray/tray_popup_item_style.h"
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
#include "ash/shell.h" #include "ash/shell.h"
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/color_palette.h"
#include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/paint_vector_icon.h"
#include "ui/views/animation/flood_fill_ink_drop_ripple.h" #include "ui/views/animation/flood_fill_ink_drop_ripple.h"
#include "ui/views/animation/ink_drop_highlight.h" #include "ui/views/animation/ink_drop_highlight.h"
...@@ -434,4 +436,20 @@ bool TrayPopupUtils::CanOpenWebUISettings(LoginStatus status) { ...@@ -434,4 +436,20 @@ bool TrayPopupUtils::CanOpenWebUISettings(LoginStatus status) {
!Shell::Get()->session_controller()->IsInSecondaryLoginScreen(); !Shell::Get()->session_controller()->IsInSecondaryLoginScreen();
} }
void TrayPopupUtils::InitializeAsCheckableRow(HoverHighlightView* container,
bool checked) {
gfx::ImageSkia check_mark =
CreateVectorIcon(kCheckCircleIcon, gfx::kGoogleGreen700);
container->AddRightIcon(check_mark, check_mark.width());
UpdateCheckMarkVisibility(container, checked);
}
void TrayPopupUtils::UpdateCheckMarkVisibility(HoverHighlightView* container,
bool visible) {
container->SetRightViewVisible(visible);
container->SetAccessiblityState(
visible ? HoverHighlightView::AccessibilityState::CHECKED_CHECKBOX
: HoverHighlightView::AccessibilityState::UNCHECKED_CHECKBOX);
}
} // namespace ash } // namespace ash
...@@ -32,6 +32,7 @@ class ToggleButton; ...@@ -32,6 +32,7 @@ class ToggleButton;
} // namespace views } // namespace views
namespace ash { namespace ash {
class HoverHighlightView;
// Factory/utility functions used by the system menu. // Factory/utility functions used by the system menu.
class TrayPopupUtils { class TrayPopupUtils {
...@@ -203,6 +204,15 @@ class TrayPopupUtils { ...@@ -203,6 +204,15 @@ class TrayPopupUtils {
// account flow. // account flow.
static bool CanOpenWebUISettings(LoginStatus status); static bool CanOpenWebUISettings(LoginStatus status);
// Initializes a row in the system menu as checkable and update the check mark
// status of this row.
static void InitializeAsCheckableRow(HoverHighlightView* container,
bool checked);
// Updates the visibility and a11y state of the checkable row |container|.
static void UpdateCheckMarkVisibility(HoverHighlightView* container,
bool visible);
private: private:
// Returns the effective ink drop insets for |host| according to the // Returns the effective ink drop insets for |host| according to the
// |ink_drop_style|. // |ink_drop_style|.
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/color_palette.h"
#include "ui/gfx/image/image.h" #include "ui/gfx/image/image.h"
#include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/paint_vector_icon.h"
#include "ui/resources/grit/ui_resources.h" #include "ui/resources/grit/ui_resources.h"
...@@ -94,20 +93,6 @@ LoginStatus GetCurrentLoginStatus() { ...@@ -94,20 +93,6 @@ LoginStatus GetCurrentLoginStatus() {
return Shell::Get()->system_tray_delegate()->GetUserLoginStatus(); return Shell::Get()->system_tray_delegate()->GetUserLoginStatus();
} }
void UpdateCheckMark(HoverHighlightView* container, bool checked) {
if (checked) {
gfx::ImageSkia check_mark =
CreateVectorIcon(kCheckCircleIcon, gfx::kGoogleGreen700);
container->AddRightIcon(check_mark, check_mark.width());
container->SetRightViewVisible(true);
container->SetAccessiblityState(
HoverHighlightView::AccessibilityState::CHECKED_CHECKBOX);
} else {
container->SetAccessiblityState(
HoverHighlightView::AccessibilityState::UNCHECKED_CHECKBOX);
}
}
} // namespace } // namespace
namespace tray { namespace tray {
...@@ -316,7 +301,7 @@ HoverHighlightView* AccessibilityDetailedView::AddScrollListItem( ...@@ -316,7 +301,7 @@ HoverHighlightView* AccessibilityDetailedView::AddScrollListItem(
HoverHighlightView* container = new HoverHighlightView(this); HoverHighlightView* container = new HoverHighlightView(this);
gfx::ImageSkia image = CreateVectorIcon(icon, kMenuIconColor); gfx::ImageSkia image = CreateVectorIcon(icon, kMenuIconColor);
container->AddIconAndLabel(image, text); container->AddIconAndLabel(image, text);
UpdateCheckMark(container, checked); TrayPopupUtils::InitializeAsCheckableRow(container, checked);
scroll_content()->AddChildView(container); scroll_content()->AddChildView(container);
return container; return container;
} }
...@@ -326,9 +311,7 @@ HoverHighlightView* AccessibilityDetailedView::AddScrollListItemWithoutIcon( ...@@ -326,9 +311,7 @@ HoverHighlightView* AccessibilityDetailedView::AddScrollListItemWithoutIcon(
bool checked) { bool checked) {
HoverHighlightView* container = new HoverHighlightView(this); HoverHighlightView* container = new HoverHighlightView(this);
container->AddLabelRow(text); container->AddLabelRow(text);
TrayPopupUtils::InitializeAsCheckableRow(container, checked);
UpdateCheckMark(container, checked);
scroll_content()->AddChildView(container); scroll_content()->AddChildView(container);
return container; return container;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment