1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_ACTION_VIEW_DELEGATE_H_
6 #define CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_ACTION_VIEW_DELEGATE_H_
8 class ToolbarActionViewController
;
14 // The view for a ToolbarAction, which is controlled by a
15 // ToolbarActionViewController.
16 class ToolbarActionViewDelegate
{
18 // In some cases (such as when an action is shown in a menu), a substitute
19 // ToolbarActionViewController should be used for showing popups. This
20 // returns the preferred controller.
21 virtual ToolbarActionViewController
* GetPreferredPopupViewController() = 0;
23 // Returns the current web contents.
24 virtual content::WebContents
* GetCurrentWebContents() const = 0;
26 // Updates the view to reflect current state.
27 virtual void UpdateState() = 0;
29 // Called when a popup is shown. If |by_user| is true, then this was through
30 // a direct user action (as oppposed to, e.g., an API call).
31 virtual void OnPopupShown(bool by_user
) {}
33 // Called when a popup is closed.
34 virtual void OnPopupClosed() {}
37 virtual ~ToolbarActionViewDelegate() {}
40 #endif // CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_ACTION_VIEW_DELEGATE_H_