1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_VIEWS_TABS_FAKE_TAB_SLOT_CONTROLLER_H_
#define CHROME_BROWSER_UI_VIEWS_TABS_FAKE_TAB_SLOT_CONTROLLER_H_
#include "base/memory/raw_ptr.h"
#include "chrome/browser/ui/views/tabs/tab.h"
#include "chrome/browser/ui/views/tabs/tab_slot_controller.h"
#include "ui/base/models/list_selection_model.h"
#include "ui/base/mojom/menu_source_type.mojom-forward.h"
#include "ui/gfx/color_palette.h"
class TabContainer;
class TabStripController;
class FakeTabSlotController : public TabSlotController {
public:
explicit FakeTabSlotController(
TabStripController* tab_strip_controller_ = nullptr);
FakeTabSlotController(const FakeTabSlotController&) = delete;
FakeTabSlotController& operator=(const FakeTabSlotController&) = delete;
~FakeTabSlotController() override = default;
void set_tab_container(TabContainer* tab_container) {
tab_container_ = tab_container;
}
void set_active_tab(Tab* tab) { active_tab_ = tab; }
void set_paint_throbber_to_layer(bool value) {
paint_throbber_to_layer_ = value;
}
const ui::ListSelectionModel& GetSelectionModel() const override;
Tab* tab_at(int index) const override;
void SelectTab(Tab* tab, const ui::Event& event) override {}
void ExtendSelectionTo(Tab* tab) override {}
void ToggleSelected(Tab* tab) override {}
void AddSelectionFromAnchorTo(Tab* tab) override {}
void CloseTab(Tab* tab, CloseTabSource source) override {}
void ToggleTabAudioMute(Tab* tab) override {}
void ShiftTabNext(Tab* tab) override {}
void ShiftTabPrevious(Tab* tab) override {}
void MoveTabFirst(Tab* tab) override {}
void MoveTabLast(Tab* tab) override {}
void ToggleTabGroupCollapsedState(
const tab_groups::TabGroupId group,
ToggleTabGroupCollapsedStateOrigin origin) override;
void NotifyTabstripBubbleOpened() override {}
void NotifyTabstripBubbleClosed() override {}
void ShowContextMenuForTab(Tab* tab,
const gfx::Point& p,
ui::mojom::MenuSourceType source_type) override {}
bool IsActiveTab(const Tab* tab) const override;
bool IsTabSelected(const Tab* tab) const override;
bool IsTabPinned(const Tab* tab) const override;
bool IsTabFirst(const Tab* tab) const override;
bool IsFocusInTabs() const override;
bool ShouldCompactLeadingEdge() const override;
void MaybeStartDrag(
TabSlotView* source,
const ui::LocatedEvent& event,
const ui::ListSelectionModel& original_selection) override {}
Liveness ContinueDrag(views::View* view,
const ui::LocatedEvent& event) override;
bool EndDrag(EndDragReason reason) override;
Tab* GetTabAt(const gfx::Point& point) override;
Tab* GetAdjacentTab(const Tab* tab, int offset) override;
std::vector<Tab*> GetTabsInSplit(const Tab* tab) override;
void OnMouseEventInTab(views::View* source,
const ui::MouseEvent& event) override {}
void UpdateHoverCard(Tab* tab, HoverCardUpdateType update_type) override {}
bool HoverCardIsShowingForTab(Tab* tab) override;
void ShowHover(Tab* tab, TabStyle::ShowHoverStyle style) override {}
void HideHover(Tab* tab, TabStyle::HideHoverStyle style) override {}
int GetBackgroundOffset() const override;
int GetStrokeThickness() const override;
bool CanPaintThrobberToLayer() const override;
bool HasVisibleBackgroundTabShapes() const override;
SkColor GetTabSeparatorColor() const override;
SkColor GetTabForegroundColor(TabActive active) const override;
std::optional<int> GetCustomBackgroundId(
BrowserFrameActiveState active_state) const override;
std::u16string GetAccessibleTabName(const Tab* tab) const override;
float GetHoverOpacityForTab(float range_parameter) const override;
float GetHoverOpacityForRadialHighlight() const override;
std::u16string GetGroupTitle(
const tab_groups::TabGroupId& group) const override;
std::u16string GetGroupContentString(
const tab_groups::TabGroupId& group) const override;
tab_groups::TabGroupColorId GetGroupColorId(
const tab_groups::TabGroupId& group) const override;
bool IsGroupCollapsed(const tab_groups::TabGroupId& group) const override;
SkColor GetPaintedGroupColor(
const tab_groups::TabGroupColorId& color_id) const override;
void ShiftGroupLeft(const tab_groups::TabGroupId& group) override {}
void ShiftGroupRight(const tab_groups::TabGroupId& group) override {}
Browser* GetBrowser() override;
bool IsFrameCondensed() const override;
TabGroup* GetTabGroup(const tab_groups::TabGroupId& group_id) const override;
#if BUILDFLAG(IS_CHROMEOS)
bool IsLockedForOnTask() override;
// Sets OnTask locked for testing purposes. Only relevant for non-web browser
// scenarios.
void SetLockedForOnTask(bool locked) { on_task_locked_ = locked; }
#endif
void SetTabColors(SkColor fg_color_active, SkColor fg_color_inactive) {
tab_fg_color_active_ = fg_color_active;
tab_fg_color_inactive_ = fg_color_inactive;
}
private:
raw_ptr<TabStripController> tab_strip_controller_;
raw_ptr<TabContainer, DanglingUntriaged> tab_container_;
ui::ListSelectionModel selection_model_;
raw_ptr<Tab, DanglingUntriaged> active_tab_ = nullptr;
bool paint_throbber_to_layer_ = true;
#if BUILDFLAG(IS_CHROMEOS)
bool on_task_locked_ = false;
#endif
SkColor tab_fg_color_active_ = gfx::kPlaceholderColor;
SkColor tab_fg_color_inactive_ = gfx::kPlaceholderColor;
};
#endif // CHROME_BROWSER_UI_VIEWS_TABS_FAKE_TAB_SLOT_CONTROLLER_H_
|