123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- // Copyright 2020 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/app_list/app_list_color_provider_impl.h"
- #include "ash/constants/ash_features.h"
- #include "ash/public/cpp/style/color_provider.h"
- #include "ash/shell.h"
- #include "ash/style/ash_color_provider.h"
- #include "ash/style/default_colors.h"
- #include "ash/wm/tablet_mode/tablet_mode_controller.h"
- #include "ui/chromeos/styles/cros_styles.h"
- namespace ash {
- namespace {
- // Helper to check if tablet mode is enabled.
- bool IsTabletModeEnabled() {
- return Shell::Get()->tablet_mode_controller() &&
- Shell::Get()->tablet_mode_controller()->InTabletMode();
- }
- } // namespace
- AppListColorProviderImpl::AppListColorProviderImpl()
- : ash_color_provider_(AshColorProvider::Get()),
- is_dark_light_mode_enabled_(features::IsDarkLightModeEnabled()),
- is_productivity_launcher_enabled_(
- features::IsProductivityLauncherEnabled()),
- is_background_blur_enabled_(features::IsBackgroundBlurEnabled()) {}
- AppListColorProviderImpl::~AppListColorProviderImpl() = default;
- SkColor AppListColorProviderImpl::GetExpandArrowIconBaseColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- AshColorProvider::ContentLayerType::kButtonIconColor);
- }
- return SK_ColorWHITE; // default_color
- }
- SkColor AppListColorProviderImpl::GetExpandArrowIconBackgroundColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetControlsLayerColor(
- AshColorProvider::ControlsLayerType::kControlBackgroundColorInactive);
- }
- return SkColorSetARGB(0xF, 0xFF, 0xFF, 0xFF); // default_color
- }
- SkColor AppListColorProviderImpl::GetAppListBackgroundColor(
- bool is_tablet_mode,
- SkColor default_color) const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetShieldLayerColor(
- is_tablet_mode ? AshColorProvider::ShieldLayerType::kShield40
- : AshColorProvider::ShieldLayerType::kShield80);
- }
- return default_color;
- }
- SkColor AppListColorProviderImpl::GetSearchBoxBackgroundColor() const {
- if (ShouldUseDarkLightColors()) {
- if (IsTabletModeEnabled()) {
- return ash_color_provider_->GetBaseLayerColor(
- is_background_blur_enabled_
- ? AshColorProvider::BaseLayerType::kTransparent80
- : AshColorProvider::BaseLayerType::kTransparent95);
- } else {
- return ash_color_provider_->GetControlsLayerColor(
- AshColorProvider::ControlsLayerType::kControlBackgroundColorInactive);
- }
- }
- return SK_ColorWHITE; // default_color
- }
- SkColor AppListColorProviderImpl::GetSearchBoxCardBackgroundColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetBaseLayerColor(
- is_background_blur_enabled_
- ? AshColorProvider::BaseLayerType::kTransparent80
- : AshColorProvider::BaseLayerType::kTransparent95);
- }
- return SK_ColorWHITE; // default_color
- }
- SkColor AppListColorProviderImpl::GetSearchBoxTextColor(
- SkColor default_color) const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- AshColorProvider::ContentLayerType::kTextColorPrimary);
- }
- return default_color;
- }
- SkColor AppListColorProviderImpl::GetSearchBoxSecondaryTextColor(
- SkColor default_color) const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- AshColorProvider::ContentLayerType::kTextColorSecondary);
- }
- return default_color;
- }
- SkColor AppListColorProviderImpl::GetSearchBoxSuggestionTextColor(
- SkColor default_color) const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- AshColorProvider::ContentLayerType::kTextColorSuggestion);
- }
- return default_color;
- }
- SkColor AppListColorProviderImpl::GetSuggestionChipBackgroundColor() const {
- if (ShouldUseDarkLightColors()) {
- if (IsTabletModeEnabled()) {
- return ash_color_provider_->GetBaseLayerColor(
- AshColorProvider::BaseLayerType::kTransparent80);
- } else {
- return ash_color_provider_->GetControlsLayerColor(
- AshColorProvider::ControlsLayerType::kControlBackgroundColorInactive);
- }
- }
- return SkColorSetA(gfx::kGoogleGrey100, 0x14); // default_color
- }
- SkColor AppListColorProviderImpl::GetSuggestionChipTextColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- AshColorProvider::ContentLayerType::kTextColorPrimary);
- }
- return gfx::kGoogleGrey100; // default_color
- }
- SkColor AppListColorProviderImpl::GetAppListItemTextColor(
- bool is_in_folder) const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- ColorProvider::ContentLayerType::kTextColorPrimary);
- }
- return is_in_folder ? SK_ColorBLACK : SK_ColorWHITE;
- }
- SkColor AppListColorProviderImpl::GetPageSwitcherButtonColor(
- bool is_root_app_grid_page_switcher) const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- ColorProvider::ContentLayerType::kButtonIconColor);
- }
- // default_color
- return is_root_app_grid_page_switcher ? SkColorSetARGB(255, 232, 234, 237)
- : SkColorSetA(SK_ColorBLACK, 138);
- }
- SkColor AppListColorProviderImpl::GetSearchBoxIconColor(
- SkColor default_color) const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- ColorProvider::ContentLayerType::kButtonIconColor);
- }
- return default_color;
- }
- SkColor AppListColorProviderImpl::GetFolderBackgroundColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetBaseLayerColor(
- ColorProvider::BaseLayerType::kTransparent80);
- }
- return SK_ColorWHITE;
- }
- SkColor AppListColorProviderImpl::GetFolderBubbleColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetControlsLayerColor(
- ColorProvider::ControlsLayerType::kControlBackgroundColorInactive);
- }
- return SkColorSetA(gfx::kGoogleGrey100, 0x7A);
- }
- SkColor AppListColorProviderImpl::GetFolderTitleTextColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- ColorProvider::ContentLayerType::kTextColorPrimary);
- }
- return gfx::kGoogleGrey700;
- }
- SkColor AppListColorProviderImpl::GetFolderHintTextColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- ColorProvider::ContentLayerType::kTextColorSecondary);
- }
- return gfx::kGoogleGrey600;
- }
- SkColor AppListColorProviderImpl::GetFolderNameBorderColor(bool active) const {
- if (!active)
- return SK_ColorTRANSPARENT;
- return ash_color_provider_->GetControlsLayerColor(
- AshColorProvider::ControlsLayerType::kFocusRingColor);
- }
- SkColor AppListColorProviderImpl::GetFolderNameSelectionColor() const {
- return ash_color_provider_->GetControlsLayerColor(
- AshColorProvider::ControlsLayerType::kFocusAuraColor);
- }
- SkColor AppListColorProviderImpl::GetFolderNotificationBadgeColor() const {
- if (ShouldUseDarkLightColors()) {
- return cros_styles::ResolveColor(cros_styles::ColorName::kIconColorBlue);
- }
- return cros_styles::ResolveColor(cros_styles::ColorName::kIconColorBlue,
- /*is_dark_mode=*/false);
- }
- SkColor AppListColorProviderImpl::GetContentsBackgroundColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetControlsLayerColor(
- ColorProvider::ControlsLayerType::kControlBackgroundColorInactive);
- }
- return SkColorSetRGB(0xF2, 0xF2, 0xF2); // default_color
- }
- SkColor AppListColorProviderImpl::GetGridBackgroundCardActiveColor() const {
- const SkColor background_color = GetGridBackgroundCardInactiveColor();
- return SkColorSetA(
- background_color,
- SkColorGetA(background_color) +
- 255 * (1.0f + AshColorProvider::Get()
- ->GetInkDropBaseColorAndOpacity(background_color)
- .second));
- }
- SkColor AppListColorProviderImpl::GetGridBackgroundCardInactiveColor() const {
- return AshColorProvider::Get()->GetControlsLayerColor(
- AshColorProvider::ControlsLayerType::kControlBackgroundColorInactive);
- }
- ui::ColorId AppListColorProviderImpl::GetSeparatorColorId() const {
- if (ShouldUseDarkLightColors()) {
- return ui::kColorAshAppListSeparatorLight;
- }
- return ui::kColorAshAppListSeparator; // default_color
- }
- SkColor AppListColorProviderImpl::GetFocusRingColor() const {
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetControlsLayerColor(
- ColorProvider::ControlsLayerType::kFocusRingColor);
- }
- return gfx::kGoogleBlue600; // default_color
- }
- SkColor AppListColorProviderImpl::GetInkDropBaseColor(SkColor bg_color) const {
- return ash_color_provider_->GetInkDropBaseColorAndOpacity(bg_color).first;
- }
- float AppListColorProviderImpl::GetInkDropOpacity(SkColor bg_color) const {
- return ash_color_provider_->GetInkDropBaseColorAndOpacity(bg_color).second;
- }
- SkColor AppListColorProviderImpl::GetSearchResultViewHighlightColor() const {
- // Use highlight colors when Dark Light mode is enabled.
- if (ShouldUseDarkLightColors()) {
- return ash_color_provider_->GetContentLayerColor(
- AshColorProvider::ContentLayerType::kHighlightColorHover);
- }
- // Use inkdrop colors by default.
- return SkColorSetA(GetInkDropBaseColor(GetSearchBoxBackgroundColor()),
- GetInkDropOpacity(GetSearchBoxBackgroundColor()) * 255);
- }
- SkColor AppListColorProviderImpl::GetTextColorURL() const {
- // Use highlight colors when Dark Light mode is enabled.
- if (ShouldUseDarkLightColors()) {
- return AshColorProvider::Get()->GetContentLayerColor(
- AshColorProvider::ContentLayerType::kTextColorURL);
- }
- return gfx::kGoogleBlue600;
- }
- bool AppListColorProviderImpl::ShouldUseDarkLightColors() const {
- return is_dark_light_mode_enabled_ || is_productivity_launcher_enabled_;
- }
- } // namespace ash
|