Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2227)

Unified Diff: ash/common/system/tray/hover_highlight_view.cc

Issue 2734653002: chromeos: Move files in //ash/common to //ash (Closed)
Patch Set: fix a11y tests, fix docs Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/system/tray/hover_highlight_view.h ('k') | ash/common/system/tray/ime_info.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/system/tray/hover_highlight_view.cc
diff --git a/ash/common/system/tray/hover_highlight_view.cc b/ash/common/system/tray/hover_highlight_view.cc
deleted file mode 100644
index 7eb36f2776e31b85508761320042235f3058e07a..0000000000000000000000000000000000000000
--- a/ash/common/system/tray/hover_highlight_view.cc
+++ /dev/null
@@ -1,396 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/common/system/tray/hover_highlight_view.h"
-
-#include "ash/common/material_design/material_design_controller.h"
-#include "ash/common/system/tray/fixed_sized_image_view.h"
-#include "ash/common/system/tray/tray_constants.h"
-#include "ash/common/system/tray/tray_popup_utils.h"
-#include "ash/common/system/tray/tri_view.h"
-#include "ash/common/system/tray/view_click_listener.h"
-#include "ash/resources/vector_icons/vector_icons.h"
-#include "ui/accessibility/ax_node_data.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/canvas.h"
-#include "ui/gfx/font_list.h"
-#include "ui/gfx/paint_vector_icon.h"
-#include "ui/resources/grit/ui_resources.h"
-#include "ui/views/border.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/resources/grit/views_resources.h"
-
-namespace {
-
-const gfx::FontList& GetFontList(bool highlight) {
- return ui::ResourceBundle::GetSharedInstance().GetFontList(
- highlight ? ui::ResourceBundle::BoldFont : ui::ResourceBundle::BaseFont);
-}
-
-} // namespace
-
-namespace ash {
-
-HoverHighlightView::HoverHighlightView(ViewClickListener* listener)
- : ActionableView(nullptr, TrayPopupInkDropStyle::FILL_BOUNDS),
- listener_(listener),
- highlight_color_(kHoverBackgroundColor) {
- set_notify_enter_exit_on_child(true);
- if (MaterialDesignController::IsSystemTrayMenuMaterial())
- SetInkDropMode(InkDropHostView::InkDropMode::ON);
-}
-
-HoverHighlightView::~HoverHighlightView() {}
-
-bool HoverHighlightView::GetTooltipText(const gfx::Point& p,
- base::string16* tooltip) const {
- if (tooltip_.empty())
- return false;
- *tooltip = tooltip_;
- return true;
-}
-
-void HoverHighlightView::AddRightIcon(const gfx::ImageSkia& image,
- int icon_size) {
- DCHECK(!right_view_);
-
- if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
- views::ImageView* right_icon = TrayPopupUtils::CreateMainImageView();
- right_icon->SetImage(image);
- AddRightView(right_icon);
- return;
- }
-
- views::ImageView* right_icon = new FixedSizedImageView(icon_size, icon_size);
- right_icon->SetImage(image);
- AddRightView(right_icon);
-}
-
-void HoverHighlightView::AddRightView(views::View* view) {
- DCHECK(!right_view_);
-
- right_view_ = view;
- right_view_->SetEnabled(enabled());
- if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
- DCHECK(tri_view_);
- tri_view_->AddView(TriView::Container::END, right_view_);
- tri_view_->SetContainerVisible(TriView::Container::END, true);
- return;
- }
- DCHECK(box_layout_);
- AddChildView(right_view_);
-}
-
-// TODO(tdanderson): Ensure all checkable detailed view rows use this
-// mechanism, and share the code that sets the accessible state for
-// a checkbox. See crbug.com/652674.
-void HoverHighlightView::SetRightViewVisible(bool visible) {
- if (!right_view_)
- return;
-
- right_view_->SetVisible(visible);
- Layout();
-}
-
-void HoverHighlightView::AddIconAndLabel(const gfx::ImageSkia& image,
- const base::string16& text,
- bool highlight) {
- if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
- DoAddIconAndLabelMd(image, text,
- TrayPopupItemStyle::FontStyle::DETAILED_VIEW_LABEL);
- return;
- }
-
- box_layout_ = new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 3,
- kTrayPopupPaddingBetweenItems);
- SetLayoutManager(box_layout_);
- DoAddIconAndLabel(image, kTrayPopupDetailsIconWidth, text, highlight);
-}
-
-void HoverHighlightView::AddIconAndLabels(const gfx::ImageSkia& image,
- const base::string16& text,
- const base::string16& sub_text) {
- DCHECK(MaterialDesignController::IsSystemTrayMenuMaterial());
- DoAddIconAndLabelsMd(image, text,
- TrayPopupItemStyle::FontStyle::DETAILED_VIEW_LABEL,
- sub_text);
-}
-
-void HoverHighlightView::AddIconAndLabelCustomSize(const gfx::ImageSkia& image,
- const base::string16& text,
- bool highlight,
- int icon_size,
- int indent,
- int space_between_items) {
- if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
- DoAddIconAndLabelMd(image, text,
- TrayPopupItemStyle::FontStyle::DETAILED_VIEW_LABEL);
- return;
- }
-
- box_layout_ = new views::BoxLayout(views::BoxLayout::kHorizontal, indent, 0,
- space_between_items);
- SetLayoutManager(box_layout_);
- DoAddIconAndLabel(image, icon_size, text, highlight);
-}
-
-void HoverHighlightView::AddIconAndLabelForDefaultView(
- const gfx::ImageSkia& image,
- const base::string16& text,
- bool highlight) {
- if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
- DoAddIconAndLabelMd(image, text,
- TrayPopupItemStyle::FontStyle::DEFAULT_VIEW_LABEL);
- return;
- }
-
- // For non-MD, call AddIconAndLabel() so that |box_layout_| is instantiated
- // and installed as the layout manager.
- AddIconAndLabel(image, text, highlight);
-}
-
-void HoverHighlightView::DoAddIconAndLabel(const gfx::ImageSkia& image,
- int icon_size,
- const base::string16& text,
- bool highlight) {
- DCHECK(!MaterialDesignController::IsSystemTrayMenuMaterial());
- DCHECK(box_layout_);
-
- views::ImageView* image_view = new FixedSizedImageView(icon_size, 0);
- image_view->SetImage(image);
- image_view->SetEnabled(enabled());
- AddChildView(image_view);
-
- text_label_ = new views::Label(text);
- text_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- text_label_->SetFontList(GetFontList(highlight));
- if (text_default_color_)
- text_label_->SetEnabledColor(text_default_color_);
- text_label_->SetEnabled(enabled());
- AddChildView(text_label_);
- box_layout_->SetFlexForView(text_label_, 1);
-
- SetAccessibleName(text);
-}
-
-void HoverHighlightView::DoAddIconAndLabelMd(
- const gfx::ImageSkia& image,
- const base::string16& text,
- TrayPopupItemStyle::FontStyle font_style) {
- DoAddIconAndLabelsMd(image, text, font_style, base::string16());
-}
-
-void HoverHighlightView::DoAddIconAndLabelsMd(
- const gfx::ImageSkia& image,
- const base::string16& text,
- TrayPopupItemStyle::FontStyle font_style,
- const base::string16& sub_text) {
- DCHECK(MaterialDesignController::IsSystemTrayMenuMaterial());
-
- SetLayoutManager(new views::FillLayout);
- tri_view_ = TrayPopupUtils::CreateDefaultRowView();
- AddChildView(tri_view_);
-
- left_icon_ = TrayPopupUtils::CreateMainImageView();
- left_icon_->SetImage(image);
- left_icon_->SetEnabled(enabled());
- tri_view_->AddView(TriView::Container::START, left_icon_);
-
- text_label_ = TrayPopupUtils::CreateDefaultLabel();
- text_label_->SetText(text);
- text_label_->SetEnabled(enabled());
- TrayPopupItemStyle style(font_style);
- style.SetupLabel(text_label_);
-
- tri_view_->AddView(TriView::Container::CENTER, text_label_);
- if (!sub_text.empty()) {
- sub_text_label_ = TrayPopupUtils::CreateDefaultLabel();
- sub_text_label_->SetText(sub_text);
- TrayPopupItemStyle sub_style(TrayPopupItemStyle::FontStyle::CAPTION);
- sub_style.set_color_style(TrayPopupItemStyle::ColorStyle::INACTIVE);
- sub_style.SetupLabel(sub_text_label_);
- tri_view_->AddView(TriView::Container::CENTER, sub_text_label_);
- }
-
- tri_view_->SetContainerVisible(TriView::Container::END, false);
-
- SetAccessibleName(text);
-}
-
-views::Label* HoverHighlightView::AddLabel(const base::string16& text,
- gfx::HorizontalAlignment alignment,
- bool highlight) {
- box_layout_ = new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0);
- SetLayoutManager(box_layout_);
- text_label_ = new views::Label(text);
- int left_margin = kTrayPopupPaddingHorizontal;
- int right_margin = kTrayPopupPaddingHorizontal;
- if (alignment != gfx::ALIGN_CENTER) {
- if (base::i18n::IsRTL())
- right_margin += kTrayPopupDetailsLabelExtraLeftMargin;
- else
- left_margin += kTrayPopupDetailsLabelExtraLeftMargin;
- }
- text_label_->SetBorder(
- views::CreateEmptyBorder(5, left_margin, 5, right_margin));
- text_label_->SetHorizontalAlignment(alignment);
- text_label_->SetFontList(GetFontList(highlight));
- // Do not set alpha value in disable color. It will have issue with elide
- // blending filter in disabled state for rendering label text color.
- text_label_->SetDisabledColor(SkColorSetARGB(255, 127, 127, 127));
- if (text_default_color_)
- text_label_->SetEnabledColor(text_default_color_);
- text_label_->SetEnabled(enabled());
- AddChildView(text_label_);
- box_layout_->SetFlexForView(text_label_, 1);
-
- SetAccessibleName(text);
- return text_label_;
-}
-
-void HoverHighlightView::AddLabelRowMd(const base::string16& text) {
- DCHECK(MaterialDesignController::IsSystemTrayMenuMaterial());
-
- SetLayoutManager(new views::FillLayout);
- tri_view_ = TrayPopupUtils::CreateDefaultRowView();
- AddChildView(tri_view_);
-
- text_label_ = TrayPopupUtils::CreateDefaultLabel();
- text_label_->SetText(text);
-
- TrayPopupItemStyle style(TrayPopupItemStyle::FontStyle::DETAILED_VIEW_LABEL);
- style.SetupLabel(text_label_);
- tri_view_->AddView(TriView::Container::CENTER, text_label_);
-
- SetAccessibleName(text);
-}
-
-void HoverHighlightView::SetExpandable(bool expandable) {
- if (expandable != expandable_) {
- expandable_ = expandable;
- InvalidateLayout();
- }
-}
-
-void HoverHighlightView::SetHighlight(bool highlight) {
- // Do not change the font styling for a highlighted row in material design.
- if (MaterialDesignController::IsSystemTrayMenuMaterial())
- return;
-
- DCHECK(text_label_);
- text_label_->SetFontList(GetFontList(highlight));
- text_label_->InvalidateLayout();
-}
-
-void HoverHighlightView::SetAccessiblityState(
- AccessibilityState accessibility_state) {
- accessibility_state_ = accessibility_state;
- if (accessibility_state_ != AccessibilityState::DEFAULT)
- NotifyAccessibilityEvent(ui::AX_EVENT_CHECKED_STATE_CHANGED, true);
-}
-
-void HoverHighlightView::SetHoverHighlight(bool hover) {
- // We do not show any hover effects for material design.
- if (MaterialDesignController::IsSystemTrayMenuMaterial())
- return;
-
- if (!enabled() && hover)
- return;
- if (hover_ == hover)
- return;
- hover_ = hover;
- if (!text_label_)
- return;
- if (hover_ && text_highlight_color_)
- text_label_->SetEnabledColor(text_highlight_color_);
- if (!hover_ && text_default_color_)
- text_label_->SetEnabledColor(text_default_color_);
- SchedulePaint();
-}
-
-bool HoverHighlightView::PerformAction(const ui::Event& event) {
- if (!listener_)
- return false;
- listener_->OnViewClicked(this);
- return true;
-}
-
-void HoverHighlightView::GetAccessibleNodeData(ui::AXNodeData* node_data) {
- ActionableView::GetAccessibleNodeData(node_data);
-
- if (accessibility_state_ == AccessibilityState::CHECKED_CHECKBOX ||
- accessibility_state_ == AccessibilityState::UNCHECKED_CHECKBOX) {
- node_data->role = ui::AX_ROLE_CHECK_BOX;
- }
-
- if (accessibility_state_ == AccessibilityState::CHECKED_CHECKBOX)
- node_data->AddStateFlag(ui::AX_STATE_CHECKED);
-}
-
-gfx::Size HoverHighlightView::GetPreferredSize() const {
- gfx::Size size = ActionableView::GetPreferredSize();
-
- if (custom_height_)
- size.set_height(custom_height_);
- else if (!expandable_ || size.height() < kTrayPopupItemMinHeight)
- size.set_height(kTrayPopupItemMinHeight);
-
- return size;
-}
-
-int HoverHighlightView::GetHeightForWidth(int width) const {
- return GetPreferredSize().height();
-}
-
-void HoverHighlightView::OnMouseEntered(const ui::MouseEvent& event) {
- SetHoverHighlight(true);
-}
-
-void HoverHighlightView::OnMouseExited(const ui::MouseEvent& event) {
- SetHoverHighlight(false);
-}
-
-void HoverHighlightView::OnGestureEvent(ui::GestureEvent* event) {
- if (event->type() == ui::ET_GESTURE_TAP_DOWN) {
- SetHoverHighlight(true);
- } else if (event->type() == ui::ET_GESTURE_TAP_CANCEL ||
- event->type() == ui::ET_GESTURE_TAP) {
- SetHoverHighlight(false);
- }
- ActionableView::OnGestureEvent(event);
-}
-
-void HoverHighlightView::OnBoundsChanged(const gfx::Rect& previous_bounds) {
- SetHoverHighlight(IsMouseHovered());
-}
-
-void HoverHighlightView::OnEnabledChanged() {
- if (MaterialDesignController::IsSystemTrayMenuMaterial()) {
- if (left_icon_)
- left_icon_->SetEnabled(enabled());
- if (text_label_)
- text_label_->SetEnabled(enabled());
- if (right_view_)
- right_view_->SetEnabled(enabled());
- } else {
- if (!enabled())
- SetHoverHighlight(false);
- for (int i = 0; i < child_count(); ++i)
- child_at(i)->SetEnabled(enabled());
- }
-}
-
-void HoverHighlightView::OnPaintBackground(gfx::Canvas* canvas) {
- canvas->DrawColor(hover_ ? highlight_color_ : default_color_);
-}
-
-void HoverHighlightView::OnFocus() {
- ScrollRectToVisible(gfx::Rect(gfx::Point(), size()));
- ActionableView::OnFocus();
-}
-
-} // namespace ash
« no previous file with comments | « ash/common/system/tray/hover_highlight_view.h ('k') | ash/common/system/tray/ime_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698