Commit 3f90bc7e authored by Elaine Chien's avatar Elaine Chien Committed by Commit Bot

Add View Builder support and metadata to reload button

Bug: 1130078
Change-Id: Ic4a7e8812d14e68c2221d49e4cb23937c1e64d1e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2451293
Commit-Queue: Elaine Chien <elainec@chromium.org>
Auto-Submit: Elaine Chien <elainec@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#814020}
parent 4c3160e0
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "ui/base/window_open_disposition.h" #include "ui/base/window_open_disposition.h"
#include "ui/gfx/color_palette.h" #include "ui/gfx/color_palette.h"
#include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/paint_vector_icon.h"
#include "ui/views/metadata/metadata_impl_macros.h"
#include "ui/views/metrics.h" #include "ui/views/metrics.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
...@@ -39,9 +40,6 @@ const gfx::VectorIcon& GetIconForMode(bool is_reload) { ...@@ -39,9 +40,6 @@ const gfx::VectorIcon& GetIconForMode(bool is_reload) {
// ReloadButton --------------------------------------------------------------- // ReloadButton ---------------------------------------------------------------
// static
const char ReloadButton::kViewClassName[] = "ReloadButton";
ReloadButton::ReloadButton(CommandUpdater* command_updater) ReloadButton::ReloadButton(CommandUpdater* command_updater)
: ToolbarButton(base::BindRepeating(&ReloadButton::ButtonPressed, : ToolbarButton(base::BindRepeating(&ReloadButton::ButtonPressed,
base::Unretained(this)), base::Unretained(this)),
...@@ -91,6 +89,14 @@ void ReloadButton::ChangeMode(Mode mode, bool force) { ...@@ -91,6 +89,14 @@ void ReloadButton::ChangeMode(Mode mode, bool force) {
} }
} }
bool ReloadButton::GetMenuEnabled() const {
return menu_enabled_;
}
void ReloadButton::SetMenuEnabled(bool enable) {
menu_enabled_ = enable;
}
void ReloadButton::OnThemeChanged() { void ReloadButton::OnThemeChanged() {
ToolbarButton::OnThemeChanged(); ToolbarButton::OnThemeChanged();
UpdateIcon(); UpdateIcon();
...@@ -118,10 +124,6 @@ base::string16 ReloadButton::GetTooltipText(const gfx::Point& p) const { ...@@ -118,10 +124,6 @@ base::string16 ReloadButton::GetTooltipText(const gfx::Point& p) const {
visible_mode_ == Mode::kReload ? reload_tooltip : IDS_TOOLTIP_STOP); visible_mode_ == Mode::kReload ? reload_tooltip : IDS_TOOLTIP_STOP);
} }
const char* ReloadButton::GetClassName() const {
return kViewClassName;
}
void ReloadButton::GetAccessibleNodeData(ui::AXNodeData* node_data) { void ReloadButton::GetAccessibleNodeData(ui::AXNodeData* node_data) {
if (menu_enabled_) if (menu_enabled_)
ToolbarButton::GetAccessibleNodeData(node_data); ToolbarButton::GetAccessibleNodeData(node_data);
...@@ -227,3 +229,7 @@ void ReloadButton::OnStopToReloadTimer() { ...@@ -227,3 +229,7 @@ void ReloadButton::OnStopToReloadTimer() {
DCHECK(!IsMenuShowing()); DCHECK(!IsMenuShowing());
ChangeMode(intended_mode_, true); ChangeMode(intended_mode_, true);
} }
BEGIN_METADATA(ReloadButton, ToolbarButton)
ADD_PROPERTY_METADATA(bool, MenuEnabled)
END_METADATA
...@@ -6,8 +6,11 @@ ...@@ -6,8 +6,11 @@
#define CHROME_BROWSER_UI_VIEWS_TOOLBAR_RELOAD_BUTTON_H_ #define CHROME_BROWSER_UI_VIEWS_TOOLBAR_RELOAD_BUTTON_H_
#include "base/timer/timer.h" #include "base/timer/timer.h"
#include "chrome/browser/ui/views/chrome_views_export.h"
#include "chrome/browser/ui/views/toolbar/toolbar_button.h" #include "chrome/browser/ui/views/toolbar/toolbar_button.h"
#include "ui/base/models/simple_menu_model.h" #include "ui/base/models/simple_menu_model.h"
#include "ui/views/metadata/metadata_header_macros.h"
#include "ui/views/metadata/view_factory.h"
class CommandUpdater; class CommandUpdater;
...@@ -24,10 +27,9 @@ class CommandUpdater; ...@@ -24,10 +27,9 @@ class CommandUpdater;
class ReloadButton : public ToolbarButton, class ReloadButton : public ToolbarButton,
public ui::SimpleMenuModel::Delegate { public ui::SimpleMenuModel::Delegate {
public: public:
enum class Mode { kReload = 0, kStop }; METADATA_HEADER(ReloadButton);
// The button's class name. enum class Mode { kReload = 0, kStop };
static const char kViewClassName[];
explicit ReloadButton(CommandUpdater* command_updater); explicit ReloadButton(CommandUpdater* command_updater);
ReloadButton(const ReloadButton&) = delete; ReloadButton(const ReloadButton&) = delete;
...@@ -39,8 +41,9 @@ class ReloadButton : public ToolbarButton, ...@@ -39,8 +41,9 @@ class ReloadButton : public ToolbarButton,
void ChangeMode(Mode mode, bool force); void ChangeMode(Mode mode, bool force);
Mode visible_mode() const { return visible_mode_; } Mode visible_mode() const { return visible_mode_; }
// Enable reload drop-down menu. // Gets/Sets whether reload drop-down menu is enabled.
void set_menu_enabled(bool enable) { menu_enabled_ = enable; } bool GetMenuEnabled() const;
void SetMenuEnabled(bool enable);
// views::View: // views::View:
void OnThemeChanged() override; void OnThemeChanged() override;
...@@ -48,7 +51,6 @@ class ReloadButton : public ToolbarButton, ...@@ -48,7 +51,6 @@ class ReloadButton : public ToolbarButton,
// ToolbarButton: // ToolbarButton:
void OnMouseExited(const ui::MouseEvent& event) override; void OnMouseExited(const ui::MouseEvent& event) override;
base::string16 GetTooltipText(const gfx::Point& p) const override; base::string16 GetTooltipText(const gfx::Point& p) const override;
const char* GetClassName() const override;
void GetAccessibleNodeData(ui::AXNodeData* node_data) override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
bool ShouldShowMenu() override; bool ShouldShowMenu() override;
void ShowDropDownMenu(ui::MenuSourceType source_type) override; void ShowDropDownMenu(ui::MenuSourceType source_type) override;
...@@ -105,4 +107,8 @@ class ReloadButton : public ToolbarButton, ...@@ -105,4 +107,8 @@ class ReloadButton : public ToolbarButton,
int testing_reload_count_ = 0; int testing_reload_count_ = 0;
}; };
BEGIN_VIEW_BUILDER(CHROME_VIEWS_EXPORT, ReloadButton, ToolbarButton)
VIEW_BUILDER_PROPERTY(bool, MenuEnabled)
END_VIEW_BUILDER(VIEWS_EXPORT, ReloadButton)
#endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_RELOAD_BUTTON_H_ #endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_RELOAD_BUTTON_H_
...@@ -353,7 +353,7 @@ void ToolbarView::Update(WebContents* tab) { ...@@ -353,7 +353,7 @@ void ToolbarView::Update(WebContents* tab) {
extensions_container_->UpdateAllIcons(); extensions_container_->UpdateAllIcons();
if (reload_) if (reload_)
reload_->set_menu_enabled(chrome::IsDebuggerAttachedToCurrentTab(browser_)); reload_->SetMenuEnabled(chrome::IsDebuggerAttachedToCurrentTab(browser_));
if (toolbar_account_icon_container_) if (toolbar_account_icon_container_)
toolbar_account_icon_container_->UpdateAllIcons(); toolbar_account_icon_container_->UpdateAllIcons();
......
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