Chromium Code Reviews| Index: chrome/browser/ui/views/toolbar/toolbar_action_view.h |
| diff --git a/chrome/browser/ui/views/toolbar/toolbar_action_view.h b/chrome/browser/ui/views/toolbar/toolbar_action_view.h |
| index 73e607ea9ff9a132d245481fefa992bf65612711..af1c3335ede6ca4fdae8fa541ba766fac5e2d7fa 100644 |
| --- a/chrome/browser/ui/views/toolbar/toolbar_action_view.h |
| +++ b/chrome/browser/ui/views/toolbar/toolbar_action_view.h |
| @@ -9,6 +9,7 @@ |
| #include "chrome/browser/ui/views/toolbar/toolbar_action_view_delegate_views.h" |
| #include "content/public/browser/notification_observer.h" |
| #include "content/public/browser/notification_registrar.h" |
| +#include "ui/views/animation/ink_drop_host.h" |
| #include "ui/views/context_menu_controller.h" |
| #include "ui/views/controls/button/menu_button.h" |
| #include "ui/views/controls/button/menu_button_listener.h" |
| @@ -39,7 +40,8 @@ class ToolbarActionView : public views::MenuButton, |
| public ToolbarActionViewDelegateViews, |
| public views::MenuButtonListener, |
| public views::ContextMenuController, |
| - public content::NotificationObserver { |
| + public content::NotificationObserver, |
| + public views::InkDropHost { |
| public: |
| // Need DragController here because ToolbarActionView could be |
| // dragged/dropped. |
| @@ -65,6 +67,9 @@ class ToolbarActionView : public views::MenuButton, |
| ~Delegate() override {} |
| }; |
| + // Callback type used for testing. |
| + using ContextMenuCallback = base::Callback<void(ToolbarActionView*)>; |
| + |
| ToolbarActionView(ToolbarActionViewController* view_controller, |
| Profile* profile, |
| Delegate* delegate); |
| @@ -72,6 +77,9 @@ class ToolbarActionView : public views::MenuButton, |
| // views::MenuButton: |
| void GetAccessibleState(ui::AXViewState* state) override; |
| + scoped_ptr<views::LabelButtonBorder> CreateDefaultBorder() const override; |
| + void OnMouseEntered(const ui::MouseEvent& event) override; |
| + bool ShouldEnterPushedState(const ui::Event& event) override; |
| // views::MenuButtonListener: |
| void OnMenuButtonClicked(views::View* sender, |
| @@ -82,14 +90,13 @@ class ToolbarActionView : public views::MenuButton, |
| const content::NotificationSource& source, |
| const content::NotificationDetails& details) override; |
| - // views::MenuButton: |
| - scoped_ptr<views::LabelButtonBorder> CreateDefaultBorder() const override; |
| - void OnMouseEntered(const ui::MouseEvent& event) override; |
| - bool ShouldEnterPushedState(const ui::Event& event) override; |
| - |
| - // ToolbarActionViewDelegate: (public because called by others). |
| - void UpdateState() override; |
| + // ToolbarActionViewDelegateViews: |
|
Peter Kasting
2015/11/24 22:27:16
Nit: This should be between the MenuButton and Men
varkha
2015/11/25 18:53:23
Done.
|
| content::WebContents* GetCurrentWebContents() const override; |
| + void UpdateState() override; |
| + |
| + // views::InkDropHost: |
| + void AddInkDropLayer(ui::Layer* ink_drop_layer) override; |
| + void RemoveInkDropLayer(ui::Layer* ink_drop_layer) override; |
| ToolbarActionViewController* view_controller() { |
| return view_controller_; |
| @@ -100,7 +107,6 @@ class ToolbarActionView : public views::MenuButton, |
| bool wants_to_run_for_testing() const { return wants_to_run_; } |
| - using ContextMenuCallback = base::Callback<void(ToolbarActionView*)>; |
| // Set a callback to be called directly before the context menu is shown. |
| // The toolbar action opening the menu will be passed in. |
| static void set_context_menu_callback_for_testing( |
| @@ -111,9 +117,12 @@ class ToolbarActionView : public views::MenuButton, |
| private: |
| // views::MenuButton: |
| gfx::Size GetPreferredSize() const override; |
| + bool OnMousePressed(const ui::MouseEvent& event) override; |
| + void OnGestureEvent(ui::GestureEvent* event) override; |
| void OnDragDone() override; |
| void ViewHierarchyChanged( |
| const ViewHierarchyChangedDetails& details) override; |
| + views::InkDropDelegate* GetInkDropDelegate() const override; |
| // ToolbarActionViewDelegateViews: |
| views::View* GetAsView() override; |
| @@ -128,6 +137,9 @@ class ToolbarActionView : public views::MenuButton, |
| const gfx::Point& point, |
| ui::MenuSourceType source_type) override; |
| + // views::InkDropHost: |
| + gfx::Point CalculateInkDropCenter() const override; |
| + |
| // Shows the context menu (if one exists) for the toolbar action. |
| void DoShowContextMenu(ui::MenuSourceType source_type); |
| @@ -172,6 +184,9 @@ class ToolbarActionView : public views::MenuButton, |
| content::NotificationRegistrar registrar_; |
| + // Animation delegate for the ink drop ripple effect. |
| + scoped_ptr<views::InkDropDelegate> ink_drop_delegate_; |
| + |
| base::WeakPtrFactory<ToolbarActionView> weak_factory_; |
| DISALLOW_COPY_AND_ASSIGN(ToolbarActionView); |