blob: b65806414a3ea2a96c1af5c175fe7e14bc268b0a [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/tabs/tab_group_theme.h"
#include <array>
#include "base/containers/fixed_flat_map.h"
#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/ui/color/chrome_color_id.h"
using TP = ThemeProperties;
using TabGroupColorId = tab_groups::TabGroupColorId;
ui::ColorId GetTabGroupTabStripColorId(TabGroupColorId group_color_id,
bool active_frame) {
static constexpr auto group_id_map =
base::MakeFixedFlatMap<TabGroupColorId, std::array<int, 2>>({
{TabGroupColorId::kGrey,
{kColorTabGroupTabStripFrameInactiveGrey,
kColorTabGroupTabStripFrameActiveGrey}},
{TabGroupColorId::kBlue,
{kColorTabGroupTabStripFrameInactiveBlue,
kColorTabGroupTabStripFrameActiveBlue}},
{TabGroupColorId::kRed,
{kColorTabGroupTabStripFrameInactiveRed,
kColorTabGroupTabStripFrameActiveRed}},
{TabGroupColorId::kYellow,
{kColorTabGroupTabStripFrameInactiveYellow,
kColorTabGroupTabStripFrameActiveYellow}},
{TabGroupColorId::kGreen,
{kColorTabGroupTabStripFrameInactiveGreen,
kColorTabGroupTabStripFrameActiveGreen}},
{TabGroupColorId::kPink,
{kColorTabGroupTabStripFrameInactivePink,
kColorTabGroupTabStripFrameActivePink}},
{TabGroupColorId::kPurple,
{kColorTabGroupTabStripFrameInactivePurple,
kColorTabGroupTabStripFrameActivePurple}},
{TabGroupColorId::kCyan,
{kColorTabGroupTabStripFrameInactiveCyan,
kColorTabGroupTabStripFrameActiveCyan}},
{TabGroupColorId::kOrange,
{kColorTabGroupTabStripFrameInactiveOrange,
kColorTabGroupTabStripFrameActiveOrange}},
});
return group_id_map.at(group_color_id)[active_frame];
}
ui::ColorId GetThumbnailTabStripTabGroupColorId(TabGroupColorId group_color_id,
bool active_frame) {
static constexpr auto group_id_map =
base::MakeFixedFlatMap<TabGroupColorId, std::array<ui::ColorId, 2>>({
{TabGroupColorId::kGrey,
{kColorThumbnailTabStripTabGroupFrameInactiveGrey,
kColorThumbnailTabStripTabGroupFrameActiveGrey}},
{TabGroupColorId::kBlue,
{kColorThumbnailTabStripTabGroupFrameInactiveBlue,
kColorThumbnailTabStripTabGroupFrameActiveBlue}},
{TabGroupColorId::kRed,
{kColorThumbnailTabStripTabGroupFrameInactiveRed,
kColorThumbnailTabStripTabGroupFrameActiveRed}},
{TabGroupColorId::kYellow,
{kColorThumbnailTabStripTabGroupFrameInactiveYellow,
kColorThumbnailTabStripTabGroupFrameActiveYellow}},
{TabGroupColorId::kGreen,
{kColorThumbnailTabStripTabGroupFrameInactiveGreen,
kColorThumbnailTabStripTabGroupFrameActiveGreen}},
{TabGroupColorId::kPink,
{kColorThumbnailTabStripTabGroupFrameInactivePink,
kColorThumbnailTabStripTabGroupFrameActivePink}},
{TabGroupColorId::kPurple,
{kColorThumbnailTabStripTabGroupFrameInactivePurple,
kColorThumbnailTabStripTabGroupFrameActivePurple}},
{TabGroupColorId::kCyan,
{kColorThumbnailTabStripTabGroupFrameInactiveCyan,
kColorThumbnailTabStripTabGroupFrameActiveCyan}},
{TabGroupColorId::kOrange,
{kColorThumbnailTabStripTabGroupFrameInactiveOrange,
kColorThumbnailTabStripTabGroupFrameActiveOrange}},
});
return group_id_map.at(group_color_id)[active_frame];
}
ui::ColorId GetTabGroupDialogColorId(TabGroupColorId group_color_id) {
static constexpr auto group_id_map =
base::MakeFixedFlatMap<TabGroupColorId, int>({
{TabGroupColorId::kGrey, kColorTabGroupDialogGrey},
{TabGroupColorId::kBlue, kColorTabGroupDialogBlue},
{TabGroupColorId::kRed, kColorTabGroupDialogRed},
{TabGroupColorId::kYellow, kColorTabGroupDialogYellow},
{TabGroupColorId::kGreen, kColorTabGroupDialogGreen},
{TabGroupColorId::kPink, kColorTabGroupDialogPink},
{TabGroupColorId::kPurple, kColorTabGroupDialogPurple},
{TabGroupColorId::kCyan, kColorTabGroupDialogCyan},
{TabGroupColorId::kOrange, kColorTabGroupDialogOrange},
});
return group_id_map.at(group_color_id);
}
ui::ColorId GetSavedTabGroupForegroundColorId(TabGroupColorId group_color_id) {
static constexpr auto group_id_map =
base::MakeFixedFlatMap<TabGroupColorId, int>({
{TabGroupColorId::kGrey, kColorSavedTabGroupForegroundGrey},
{TabGroupColorId::kBlue, kColorSavedTabGroupForegroundBlue},
{TabGroupColorId::kRed, kColorSavedTabGroupForegroundRed},
{TabGroupColorId::kYellow, kColorSavedTabGroupForegroundYellow},
{TabGroupColorId::kGreen, kColorSavedTabGroupForegroundGreen},
{TabGroupColorId::kPink, kColorSavedTabGroupForegroundPink},
{TabGroupColorId::kPurple, kColorSavedTabGroupForegroundPurple},
{TabGroupColorId::kCyan, kColorSavedTabGroupForegroundCyan},
{TabGroupColorId::kOrange, kColorSavedTabGroupForegroundOrange},
});
return group_id_map.at(group_color_id);
}
ui::ColorId GetSavedTabGroupOutlineColorId(TabGroupColorId group_color_id) {
static constexpr auto group_id_map =
base::MakeFixedFlatMap<TabGroupColorId, int>({
{TabGroupColorId::kGrey, kColorSavedTabGroupOutlineGrey},
{TabGroupColorId::kBlue, kColorSavedTabGroupOutlineBlue},
{TabGroupColorId::kRed, kColorSavedTabGroupOutlineRed},
{TabGroupColorId::kYellow, kColorSavedTabGroupOutlineYellow},
{TabGroupColorId::kGreen, kColorSavedTabGroupOutlineGreen},
{TabGroupColorId::kPink, kColorSavedTabGroupOutlinePink},
{TabGroupColorId::kPurple, kColorSavedTabGroupOutlinePurple},
{TabGroupColorId::kCyan, kColorSavedTabGroupOutlineCyan},
{TabGroupColorId::kOrange, kColorSavedTabGroupOutlineOrange},
});
return group_id_map.at(group_color_id);
}
ui::ColorId GetTabGroupContextMenuColorId(TabGroupColorId group_color_id) {
static constexpr auto group_id_map =
base::MakeFixedFlatMap<TabGroupColorId, ui::ColorId>({
{TabGroupColorId::kGrey, kColorTabGroupContextMenuGrey},
{TabGroupColorId::kBlue, kColorTabGroupContextMenuBlue},
{TabGroupColorId::kRed, kColorTabGroupContextMenuRed},
{TabGroupColorId::kYellow, kColorTabGroupContextMenuYellow},
{TabGroupColorId::kGreen, kColorTabGroupContextMenuGreen},
{TabGroupColorId::kPink, kColorTabGroupContextMenuPink},
{TabGroupColorId::kPurple, kColorTabGroupContextMenuPurple},
{TabGroupColorId::kCyan, kColorTabGroupContextMenuCyan},
{TabGroupColorId::kOrange, kColorTabGroupContextMenuOrange},
});
return group_id_map.at(group_color_id);
}
ui::ColorId GetTabGroupBookmarkColorId(
tab_groups::TabGroupColorId group_color_id) {
static constexpr auto group_id_map =
base::MakeFixedFlatMap<TabGroupColorId, int>({
{TabGroupColorId::kGrey, kColorTabGroupBookmarkBarGrey},
{TabGroupColorId::kBlue, kColorTabGroupBookmarkBarBlue},
{TabGroupColorId::kRed, kColorTabGroupBookmarkBarRed},
{TabGroupColorId::kYellow, kColorTabGroupBookmarkBarYellow},
{TabGroupColorId::kGreen, kColorTabGroupBookmarkBarGreen},
{TabGroupColorId::kPink, kColorTabGroupBookmarkBarPink},
{TabGroupColorId::kPurple, kColorTabGroupBookmarkBarPurple},
{TabGroupColorId::kCyan, kColorTabGroupBookmarkBarCyan},
{TabGroupColorId::kOrange, kColorTabGroupBookmarkBarOrange},
});
return group_id_map.at(group_color_id);
}