Commit ba05a830 authored by Peter Boström's avatar Peter Boström Committed by Commit Bot

Use internal ButtonListener for ExtensionsMenuView

Removes view::ButtonListener from class hierarchy.

Bug: None
Change-Id: If85024b175c5944b5facd4a5aeccc8065b189b71
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1846565
Commit-Queue: Peter Boström <pbos@chromium.org>
Reviewed-by: default avatarCharlene Yan <cyan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#703928}
parent 1374d791
......@@ -35,6 +35,15 @@ constexpr int EXTENSIONS_SETTINGS_ID = 42;
constexpr gfx::Size ExtensionsMenuView::kExtensionsMenuIconSize;
ExtensionsMenuView::ButtonListener::ButtonListener(Browser* browser)
: browser_(browser) {}
void ExtensionsMenuView::ButtonListener::ButtonPressed(views::Button* sender,
const ui::Event& event) {
DCHECK_EQ(sender->GetID(), EXTENSIONS_SETTINGS_ID);
chrome::ShowExtensions(browser_, std::string());
}
ExtensionsMenuView::ExtensionsMenuView(
views::View* anchor_view,
Browser* browser,
......@@ -44,7 +53,8 @@ ExtensionsMenuView::ExtensionsMenuView(
browser_(browser),
extensions_container_(extensions_container),
model_(ToolbarActionsModel::Get(browser_->profile())),
model_observer_(this) {
model_observer_(this),
button_listener_(browser_) {
model_observer_.Add(model_);
set_margins(gfx::Insets(0));
......@@ -61,12 +71,6 @@ ExtensionsMenuView::~ExtensionsMenuView() {
extensions_menu_items_.clear();
}
void ExtensionsMenuView::ButtonPressed(views::Button* sender,
const ui::Event& event) {
DCHECK_EQ(sender->GetID(), EXTENSIONS_SETTINGS_ID);
chrome::ShowExtensions(browser_, std::string());
}
base::string16 ExtensionsMenuView::GetWindowTitle() const {
return l10n_util::GetStringUTF16(IDS_EXTENSIONS_MENU_TITLE);
}
......@@ -110,7 +114,7 @@ void ExtensionsMenuView::Repopulate() {
GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_DefaultIconColor)));
auto footer = std::make_unique<HoverButton>(
this, std::move(icon_view),
&button_listener_, std::move(icon_view),
l10n_util::GetStringUTF16(IDS_MANAGE_EXTENSION), base::string16());
footer->SetID(EXTENSIONS_SETTINGS_ID);
manage_extensions_button_for_testing_ = footer.get();
......
......@@ -20,11 +20,9 @@ class ImageView;
class ExtensionsContainer;
class ExtensionsMenuItemView;
// This bubble view displays a list of user extensions.
// TODO(pbos): Once there's more functionality in here (getting to
// chrome://extensions, pinning, extension settings), update this comment.
class ExtensionsMenuView : public views::ButtonListener,
public views::BubbleDialogDelegateView,
// This bubble view displays a list of user extensions and a button to get to
// managing the user's extensions (chrome://extensions).
class ExtensionsMenuView : public views::BubbleDialogDelegateView,
public ToolbarActionsModel::Observer {
public:
static constexpr gfx::Size kExtensionsMenuIconSize = gfx::Size(28, 28);
......@@ -42,9 +40,6 @@ class ExtensionsMenuView : public views::ButtonListener,
static ExtensionsMenuView* GetExtensionsMenuViewForTesting();
static std::unique_ptr<views::ImageView> CreateFixedSizeIconView();
// views::ButtonListener:
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
// views::BubbleDialogDelegateView:
base::string16 GetWindowTitle() const override;
bool ShouldShowCloseButton() const override;
......@@ -78,6 +73,17 @@ class ExtensionsMenuView : public views::ButtonListener,
}
private:
class ButtonListener : public views::ButtonListener {
public:
explicit ButtonListener(Browser* browser);
// views::ButtonListener:
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
private:
Browser* const browser_;
};
void Repopulate();
std::unique_ptr<views::View> CreateExtensionButtonsContainer();
......@@ -86,6 +92,7 @@ class ExtensionsMenuView : public views::ButtonListener,
ToolbarActionsModel* const model_;
ScopedObserver<ToolbarActionsModel, ToolbarActionsModel::Observer>
model_observer_;
ButtonListener button_listener_;
std::vector<ExtensionsMenuItemView*> extensions_menu_items_;
views::Button* manage_extensions_button_for_testing_ = nullptr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment