blob: 319d88467e7a44fe4e382096efafebe987a604c4 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_TOOLBAR_BUTTON_PROVIDER_H_
#define CHROME_BROWSER_UI_VIEWS_FRAME_TOOLBAR_BUTTON_PROVIDER_H_
class AppMenuButton;
class BrowserActionsContainer;
class PageActionIconContainerView;
namespace views {
class AccessiblePaneView;
}
// An interface implemented by a view contains and provides access to toolbar
// buttons in a BrowserView.
class ToolbarButtonProvider {
public:
// Gets the browser actions container.
virtual BrowserActionsContainer* GetBrowserActionsContainer() = 0;
// Gets the page action icon container.
virtual PageActionIconContainerView* GetPageActionIconContainerView() = 0;
// Gets the app menu button.
virtual AppMenuButton* GetAppMenuButton() = 0;
// Gives the toolbar focus.
virtual void FocusToolbar() = 0;
// Returns the toolbar as an AccessiblePaneView.
virtual views::AccessiblePaneView* GetAsAccessiblePaneView() = 0;
// TODO(calamity): Move other buttons and button actions into here.
protected:
virtual ~ToolbarButtonProvider() {}
};
#endif // CHROME_BROWSER_UI_VIEWS_FRAME_TOOLBAR_BUTTON_PROVIDER_H_