| Index: chrome/browser/ui/toolbar/toolbar_actions_bar.h
|
| diff --git a/chrome/browser/ui/toolbar/toolbar_actions_bar.h b/chrome/browser/ui/toolbar/toolbar_actions_bar.h
|
| index 838699e24ba59e98db85a5b9c442c20596776d48..71a3a88f8ec30c567c5b121d78bf1acfb35e9960 100644
|
| --- a/chrome/browser/ui/toolbar/toolbar_actions_bar.h
|
| +++ b/chrome/browser/ui/toolbar/toolbar_actions_bar.h
|
| @@ -5,6 +5,7 @@
|
| #ifndef CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_ACTIONS_BAR_H_
|
| #define CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_ACTIONS_BAR_H_
|
|
|
| +#include "base/callback.h"
|
| #include "base/macros.h"
|
| #include "base/memory/scoped_vector.h"
|
| #include "base/memory/weak_ptr.h"
|
| @@ -97,6 +98,10 @@ class ToolbarActionsBar : public extensions::ExtensionToolbarModel::Observer {
|
| // Returns the number of icons that should be displayed.
|
| size_t GetIconCount() const;
|
|
|
| + // Returns the actions in the proper order; this may differ from the
|
| + // underlying order in the case of actions being popped out to show a popup.
|
| + std::vector<ToolbarActionViewController*> GetActions() const;
|
| +
|
| // Creates the toolbar actions.
|
| void CreateActions();
|
|
|
| @@ -122,6 +127,21 @@ class ToolbarActionsBar : public extensions::ExtensionToolbarModel::Observer {
|
| int dropped_index,
|
| DragType drag_type);
|
|
|
| + // Notifies the ToolbarActionsBar that the delegate finished animating.
|
| + void OnAnimationEnded();
|
| +
|
| + // Returns true if the given |action| is visible.
|
| + bool IsActionVisible(const ToolbarActionViewController* action) const;
|
| +
|
| + // Pops out a given |action|, ensuring it is visible.
|
| + // |closure| will be called once any animation is complete.
|
| + void PopOutAction(ToolbarActionViewController* action,
|
| + const base::Closure& closure);
|
| +
|
| + // Undoes the current "pop out"; i.e., moves the popped out action back into
|
| + // overflow.
|
| + void UndoPopOut();
|
| +
|
| // Sets the active popup owner to be |popup_owner|.
|
| void SetPopupOwner(ToolbarActionViewController* popup_owner);
|
|
|
| @@ -132,7 +152,10 @@ class ToolbarActionsBar : public extensions::ExtensionToolbarModel::Observer {
|
| ToolbarActionViewController* GetMainControllerForAction(
|
| ToolbarActionViewController* action);
|
|
|
| - const std::vector<ToolbarActionViewController*>& toolbar_actions() const {
|
| + // Returns the underlying toolbar actions, but does not order them. Primarily
|
| + // for use in testing.
|
| + const std::vector<ToolbarActionViewController*>& toolbar_actions_unordered()
|
| + const {
|
| return toolbar_actions_.get();
|
| }
|
| bool enabled() const { return model_ != nullptr; }
|
| @@ -145,6 +168,9 @@ class ToolbarActionsBar : public extensions::ExtensionToolbarModel::Observer {
|
| return platform_settings_;
|
| }
|
| ToolbarActionViewController* popup_owner() { return popup_owner_; }
|
| + ToolbarActionViewController* popped_out_action() {
|
| + return popped_out_action_;
|
| + }
|
| bool in_overflow_mode() const { return main_bar_ != nullptr; }
|
|
|
| ToolbarActionsBarDelegate* delegate_for_test() { return delegate_; }
|
| @@ -250,6 +276,14 @@ class ToolbarActionsBar : public extensions::ExtensionToolbarModel::Observer {
|
| // be displayed, and, if there is, shown that bubble.
|
| bool checked_extension_bubble_;
|
|
|
| + // The action, if any, which is currently "popped out" of the overflow in
|
| + // order to show a popup.
|
| + ToolbarActionViewController* popped_out_action_;
|
| +
|
| + // The task to alert the |popped_out_action_| that animation has finished, and
|
| + // it is fully popped out.
|
| + base::Closure popped_out_closure_;
|
| +
|
| base::WeakPtrFactory<ToolbarActionsBar> weak_ptr_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ToolbarActionsBar);
|
|
|