Migrate views::ScrollView
to ui::ColorVariant
Bug: b:394420459 Change-Id: I94ede48731d1c7c5f978c2e00ba0cc274e1dbe4e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6435440 Reviewed-by: Xiyuan Xia <xiyuan@chromium.org> Reviewed-by: Elly FJ <ellyjones@chromium.org> Commit-Queue: Zoraiz Naeem <zoraiznaeem@chromium.org> Cr-Commit-Position: refs/heads/main@{#1444493}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
34904d59cb
commit
03f62ceebe
ash
chrome/browser/ui
ash
quick_answers
views
ui/views/controls
@ -376,7 +376,7 @@ class MahiScrollView : public views::ScrollView,
|
||||
explicit MahiScrollView(MahiUiController* ui_controller)
|
||||
: MahiUiController::Delegate(ui_controller) {
|
||||
SetEventTargeter(std::make_unique<views::ViewTargeter>(this));
|
||||
SetBackgroundThemeColorId(cros_tokens::kCrosSysSystemOnBase);
|
||||
SetBackgroundColor(cros_tokens::kCrosSysSystemOnBase);
|
||||
ClipHeightTo(/*min_height=*/0, /*max_height=*/INT_MAX);
|
||||
SetDrawOverflowIndicator(false);
|
||||
auto scroll_bar = std::make_unique<RoundedScrollBar>(
|
||||
|
@ -511,7 +511,7 @@ TabAppSelectionView::TabAppSelectionView(const base::Token& group_id,
|
||||
// std::nullopt and apply a rounded rectangle background above on the whole
|
||||
// view. We still need to set the viewport rounded corner radius to clip the
|
||||
// child backgrounds when they are hovered over.
|
||||
scroll_view_->SetBackgroundThemeColorId(std::nullopt);
|
||||
scroll_view_->SetBackgroundColor(std::nullopt);
|
||||
scroll_view_->SetBorder(std::make_unique<views::HighlightBorder>(
|
||||
kTabAppItemsContainerCornerRadius,
|
||||
views::HighlightBorder::Type::kHighlightBorderOnShadow));
|
||||
|
@ -200,7 +200,7 @@ void RichAnswersView::SetUpBaseView() {
|
||||
views::ScrollView* scroll_view = AddChildView(
|
||||
views::Builder<views::ScrollView>()
|
||||
.ClipHeightTo(kMinimumRichCardHeight, kMaximumRichCardHeight)
|
||||
.SetBackgroundThemeColorId(ui::kColorPrimaryBackground)
|
||||
.SetBackgroundColor(ui::kColorPrimaryBackground)
|
||||
.SetHorizontalScrollBarMode(
|
||||
views::ScrollView::ScrollBarMode::kDisabled)
|
||||
.SetDrawOverflowIndicator(false)
|
||||
|
@ -1081,7 +1081,7 @@ void PopupViewViews::CreateSuggestionViews() {
|
||||
|
||||
std::unique_ptr<views::ScrollView> scroll_view =
|
||||
views::Builder<views::ScrollView>()
|
||||
.SetBackgroundThemeColorId(ui::kColorDropdownBackground)
|
||||
.SetBackgroundColor(ui::kColorDropdownBackground)
|
||||
.SetHorizontalScrollBarMode(
|
||||
views::ScrollView::ScrollBarMode::kDisabled)
|
||||
.SetDrawOverflowIndicator(false)
|
||||
|
@ -280,7 +280,7 @@ bool ShouldSelectTab(DesktopMediaList::Type type,
|
||||
|
||||
std::unique_ptr<views::ScrollView> CreateScrollView(bool audio_requested) {
|
||||
auto scroll_view = std::make_unique<views::ScrollView>();
|
||||
scroll_view->SetBackgroundThemeColorId(ui::kColorSysSurface4);
|
||||
scroll_view->SetBackgroundColor(ui::kColorSysSurface4);
|
||||
// The overflow indicator is disabled to reduce clutter next to the
|
||||
// separator to the audio control when audio is requested or the bottom of
|
||||
// the dialog when audio is not requested.
|
||||
|
@ -57,7 +57,7 @@ std::unique_ptr<views::ScrollView> FileSystemAccessScrollPanel::Create(
|
||||
// accessibility.
|
||||
auto scroll_view = std::make_unique<views::ScrollView>();
|
||||
scroll_view->SetDrawOverflowIndicator(false);
|
||||
scroll_view->SetBackgroundThemeColorId(ui::kColorSubtleEmphasisBackground);
|
||||
scroll_view->SetBackgroundColor(ui::kColorSubtleEmphasisBackground);
|
||||
int line_container_height =
|
||||
file_list_container->children().empty()
|
||||
? 0
|
||||
|
@ -408,7 +408,7 @@ class IntentPickerAppListView
|
||||
scrollable_view->AddChildViewAt(std::move(app_button), i);
|
||||
}
|
||||
|
||||
SetBackgroundThemeColorId(ui::kColorBubbleBackground);
|
||||
SetBackgroundColor(ui::kColorBubbleBackground);
|
||||
SetContents(std::move(scrollable_view));
|
||||
DCHECK(!contents()->children().empty());
|
||||
const int row_height =
|
||||
|
@ -105,7 +105,7 @@ void SharingHubBubbleViewImpl::Init() {
|
||||
|
||||
scroll_view_ = AddChildView(std::make_unique<views::ScrollView>());
|
||||
scroll_view_->ClipHeightTo(0, kActionButtonHeight * kMaximumButtons);
|
||||
scroll_view_->SetBackgroundThemeColorId(ui::kColorMenuBackground);
|
||||
scroll_view_->SetBackgroundColor(ui::kColorMenuBackground);
|
||||
|
||||
PopulateScrollView(controller_->GetFirstPartyActions());
|
||||
}
|
||||
|
@ -19,8 +19,8 @@
|
||||
#include "ui/base/metadata/metadata_header_macros.h"
|
||||
#include "ui/base/metadata/metadata_impl_macros.h"
|
||||
#include "ui/base/ui_base_features.h"
|
||||
#include "ui/color/color_id.h"
|
||||
#include "ui/color/color_provider.h"
|
||||
#include "ui/color/color_variant.h"
|
||||
#include "ui/compositor/compositor.h"
|
||||
#include "ui/compositor/layer.h"
|
||||
#include "ui/compositor/layer_type.h"
|
||||
@ -433,27 +433,16 @@ void ScrollView::SetViewportRoundedCornerRadius(
|
||||
contents_viewport_->layer()->SetRoundedCornerRadius(radii);
|
||||
}
|
||||
|
||||
void ScrollView::SetBackgroundColor(const std::optional<SkColor>& color) {
|
||||
if (background_color_ == color && !background_color_id_) {
|
||||
void ScrollView::SetBackgroundColor(
|
||||
const std::optional<ui::ColorVariant>& color) {
|
||||
if (background_color_ == color) {
|
||||
return;
|
||||
}
|
||||
background_color_ = color;
|
||||
background_color_id_ = std::nullopt;
|
||||
UpdateBackground();
|
||||
OnPropertyChanged(&background_color_, kPropertyEffectsPaint);
|
||||
}
|
||||
|
||||
void ScrollView::SetBackgroundThemeColorId(
|
||||
const std::optional<ui::ColorId>& color_id) {
|
||||
if (background_color_id_ == color_id && !background_color_) {
|
||||
return;
|
||||
}
|
||||
background_color_id_ = color_id;
|
||||
background_color_ = std::nullopt;
|
||||
UpdateBackground();
|
||||
OnPropertyChanged(&background_color_id_, kPropertyEffectsPaint);
|
||||
}
|
||||
|
||||
gfx::Rect ScrollView::GetVisibleRect() const {
|
||||
if (!contents_) {
|
||||
return gfx::Rect();
|
||||
@ -1294,10 +1283,9 @@ void ScrollView::UpdateBorder() {
|
||||
return;
|
||||
}
|
||||
|
||||
SetBorder(CreateSolidBorder(
|
||||
1, GetColorProvider()->GetColor(
|
||||
draw_focus_indicator_ ? ui::kColorFocusableBorderFocused
|
||||
: ui::kColorFocusableBorderUnfocused)));
|
||||
SetBorder(CreateSolidBorder(1, draw_focus_indicator_
|
||||
? ui::kColorFocusableBorderFocused
|
||||
: ui::kColorFocusableBorderUnfocused));
|
||||
}
|
||||
|
||||
void ScrollView::UpdateBackground() {
|
||||
@ -1305,7 +1293,7 @@ void ScrollView::UpdateBackground() {
|
||||
return;
|
||||
}
|
||||
|
||||
const std::optional<SkColor> background_color = GetBackgroundColor();
|
||||
const std::optional<ui::ColorVariant> background_color = GetBackgroundColor();
|
||||
|
||||
auto create_background = [background_color]() {
|
||||
return background_color ? CreateSolidBackground(background_color.value())
|
||||
@ -1330,14 +1318,8 @@ void ScrollView::UpdateBackground() {
|
||||
}
|
||||
}
|
||||
|
||||
std::optional<SkColor> ScrollView::GetBackgroundColor() const {
|
||||
return background_color_id_
|
||||
? GetColorProvider()->GetColor(background_color_id_.value())
|
||||
: background_color_;
|
||||
}
|
||||
|
||||
std::optional<ui::ColorId> ScrollView::GetBackgroundThemeColorId() const {
|
||||
return background_color_id_;
|
||||
std::optional<ui::ColorVariant> ScrollView::GetBackgroundColor() const {
|
||||
return background_color_;
|
||||
}
|
||||
|
||||
void ScrollView::PositionOverflowIndicators() {
|
||||
@ -1388,8 +1370,7 @@ BEGIN_METADATA(ScrollView)
|
||||
ADD_READONLY_PROPERTY_METADATA(int, MinHeight)
|
||||
ADD_READONLY_PROPERTY_METADATA(int, MaxHeight)
|
||||
ADD_PROPERTY_METADATA(bool, AllowKeyboardScrolling)
|
||||
ADD_PROPERTY_METADATA(std::optional<SkColor>, BackgroundColor)
|
||||
ADD_PROPERTY_METADATA(std::optional<ui::ColorId>, BackgroundThemeColorId)
|
||||
ADD_PROPERTY_METADATA(std::optional<ui::ColorVariant>, BackgroundColor)
|
||||
ADD_PROPERTY_METADATA(bool, DrawOverflowIndicator)
|
||||
ADD_PROPERTY_METADATA(bool, HasFocusIndicator)
|
||||
ADD_PROPERTY_METADATA(ScrollView::ScrollBarMode, HorizontalScrollBarMode)
|
||||
|
@ -12,7 +12,7 @@
|
||||
#include "base/callback_list.h"
|
||||
#include "base/gtest_prod_util.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "ui/color/color_id.h"
|
||||
#include "ui/color/color_variant.h"
|
||||
#include "ui/compositor/layer_type.h"
|
||||
#include "ui/views/controls/focus_ring.h"
|
||||
#include "ui/views/controls/scrollbar/scroll_bar.h"
|
||||
@ -127,18 +127,14 @@ class VIEWS_EXPORT ScrollView : public View, public ScrollBarController {
|
||||
// rounded corners to the `contents_viewport_` layer. See `ScrollWithLayers`.
|
||||
void SetViewportRoundedCornerRadius(const gfx::RoundedCornersF& radii);
|
||||
|
||||
// The background color can be configured in two distinct ways:
|
||||
// . By way of SetBackgroundThemeColorId(). This is the default and when
|
||||
// called the background color comes from the theme (and changes if the
|
||||
// theme changes).
|
||||
// . By way of setting an explicit color, i.e. SetBackgroundColor(). Use
|
||||
// std::nullopt if you don't want any color, but be warned this
|
||||
// Specify the background color:
|
||||
// . Set a ColorId. This is the default and when called the background color
|
||||
// comes from the theme (and changes if the theme changes).
|
||||
// . Set an explicit color.
|
||||
// . Use std::nullopt if you don't want any color, but be warned this
|
||||
// produces awful results when layers are used with subpixel rendering.
|
||||
std::optional<SkColor> GetBackgroundColor() const;
|
||||
void SetBackgroundColor(const std::optional<SkColor>& color);
|
||||
|
||||
std::optional<ui::ColorId> GetBackgroundThemeColorId() const;
|
||||
void SetBackgroundThemeColorId(const std::optional<ui::ColorId>& color_id);
|
||||
std::optional<ui::ColorVariant> GetBackgroundColor() const;
|
||||
void SetBackgroundColor(const std::optional<ui::ColorVariant>& color);
|
||||
|
||||
// Returns the visible region of the content View.
|
||||
gfx::Rect GetVisibleRect() const;
|
||||
@ -153,8 +149,6 @@ class VIEWS_EXPORT ScrollView : public View, public ScrollBarController {
|
||||
// |contents_| origin offset.
|
||||
gfx::PointF CurrentOffset() const;
|
||||
|
||||
bool GetUseColorId() const { return !!background_color_id_; }
|
||||
|
||||
ScrollBarMode GetHorizontalScrollBarMode() const {
|
||||
return horizontal_scroll_bar_mode_;
|
||||
}
|
||||
@ -368,8 +362,8 @@ class VIEWS_EXPORT ScrollView : public View, public ScrollBarController {
|
||||
int max_height_ = -1;
|
||||
|
||||
// See description of SetBackgroundColor() for details.
|
||||
std::optional<SkColor> background_color_;
|
||||
std::optional<ui::ColorId> background_color_id_ = ui::kColorDialogBackground;
|
||||
std::optional<ui::ColorVariant> background_color_ =
|
||||
ui::kColorDialogBackground;
|
||||
|
||||
// How to handle the case when the contents overflow the viewport.
|
||||
ScrollBarMode horizontal_scroll_bar_mode_ = ScrollBarMode::kEnabled;
|
||||
@ -416,13 +410,12 @@ VIEW_BUILDER_VIEW_TYPE_PROPERTY(View, Contents)
|
||||
VIEW_BUILDER_PROPERTY(ui::LayerType, ContentsLayerType)
|
||||
VIEW_BUILDER_VIEW_TYPE_PROPERTY(View, Header)
|
||||
VIEW_BUILDER_PROPERTY(bool, AllowKeyboardScrolling)
|
||||
VIEW_BUILDER_PROPERTY(std::optional<ui::ColorId>, BackgroundThemeColorId)
|
||||
VIEW_BUILDER_PROPERTY(std::optional<ui::ColorVariant>, BackgroundColor)
|
||||
VIEW_BUILDER_METHOD(ClipHeightTo, int, int)
|
||||
VIEW_BUILDER_PROPERTY(ScrollView::ScrollBarMode, HorizontalScrollBarMode)
|
||||
VIEW_BUILDER_PROPERTY(ScrollView::ScrollBarMode, VerticalScrollBarMode)
|
||||
VIEW_BUILDER_PROPERTY(bool, TreatAllScrollEventsAsHorizontal)
|
||||
VIEW_BUILDER_PROPERTY(bool, DrawOverflowIndicator)
|
||||
VIEW_BUILDER_PROPERTY(std::optional<SkColor>, BackgroundColor)
|
||||
VIEW_BUILDER_VIEW_PROPERTY(ScrollBar, HorizontalScrollBar)
|
||||
VIEW_BUILDER_VIEW_PROPERTY(ScrollBar, VerticalScrollBar)
|
||||
VIEW_BUILDER_PROPERTY(bool, HasFocusIndicator)
|
||||
|
Reference in New Issue
Block a user