#include "chrome/browser/ui/views/tabs/tab_strip_scroll_container.h"
#include <memory>
#include <memory>
#include "base/functional/bind.h"
#include "base/memory/raw_ptr.h"
#include "cc/paint/paint_shader.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/ui/color/chrome_color_id.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/views/tabs/tab_strip.h"
#include "chrome/browser/ui/views/tabs/tab_strip_controller.h"
#include "chrome/browser/ui/views/tabs/tab_strip_scrolling_overflow_indicator_strategy.h"
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/gfx/canvas.h"
#include "ui/views/animation/ink_drop.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/button/image_button_factory.h"
#include "ui/views/controls/highlight_path_generator.h"
#include "ui/views/controls/scroll_view.h"
#include "ui/views/layout/fill_layout.h"
#include "ui/views/layout/flex_layout.h"
#include "ui/views/layout/flex_layout_types.h"
#include "ui/views/layout/layout_types.h"
#include "ui/views/view.h"
namespace {
SkColor4f GetCurrentFrameColor(TabStrip* tab_strip) { … }
SkColor4f GetShadowColor(TabStrip* tab_strip) { … }
gfx::Size TabScrollContainerFlexRule(const views::View* tab_strip,
const views::View* view,
const views::SizeBounds& size_bounds) { … }
std::unique_ptr<views::ImageButton> CreateScrollButton(
views::Button::PressedCallback callback) { … }
enum ScrollButtonPositionType { … };
}
TabStripScrollContainer::TabStripScrollContainer(
std::unique_ptr<TabStrip> tab_strip) { … }
TabStripScrollContainer::~TabStripScrollContainer() = default;
void TabStripScrollContainer::OnViewPreferredSizeChanged(views::View* view) { … }
void TabStripScrollContainer::OnContentsScrolledCallback() { … }
int TabStripScrollContainer::GetTabStripAvailableWidth() const { … }
void TabStripScrollContainer::ScrollTowardsLeadingTab() { … }
void TabStripScrollContainer::ScrollTowardsTrailingTab() { … }
void TabStripScrollContainer::FrameColorsChanged() { … }
void TabStripScrollContainer::MaybeUpdateScrollButtonState() { … }
bool TabStripScrollContainer::IsRectInWindowCaption(const gfx::Rect& rect) { … }
void TabStripScrollContainer::OnThemeChanged() { … }
void TabStripScrollContainer::AddedToWidget() { … }
void TabStripScrollContainer::RemovedFromWidget() { … }
BEGIN_METADATA(…)