extension_toolbar_menu_view.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef CHROME_BROWSER_UI_VIEWS_TOOLBAR_EXTENSION_TOOLBAR_MENU_VIEW_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROME_BROWSER_UI_VIEWS_TOOLBAR_EXTENSION_TOOLBAR_MENU_VIEW_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/memory/weak_ptr.h" 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/scoped_observer.h" 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/browser/ui/views/toolbar/browser_actions_container_observer.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/views/view.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass Browser; 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass BrowserActionsContainer; 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class WrenchMenu; 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// ExtensionToolbarMenuView is the view containing the extension actions that 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// overflowed from the BrowserActionsContainer, and is contained in and owned by 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// the wrench menu. 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// In the event that the WrenchMenu was opened for an Extension Action drag-and- 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// drop, this will also close the menu upon completion. 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class ExtensionToolbarMenuView : public views::View, 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public BrowserActionsContainerObserver { 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ExtensionToolbarMenuView(Browser* browser, WrenchMenu* wrench_menu); 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~ExtensionToolbarMenuView(); 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // views::View: 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual gfx::Size GetPreferredSize() const OVERRIDE; 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void Layout() OVERRIDE; 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // BrowserActionsContainerObserver: 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void OnBrowserActionDragDone() OVERRIDE; 355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // The associated browser. 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch Browser* browser_; 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // The WrenchMenu, which may need to be closed after a drag-and-drop. 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) WrenchMenu* wrench_menu_; 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // The overflow BrowserActionsContainer which is nested in this view. 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch BrowserActionsContainer* container_; 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ScopedObserver<BrowserActionsContainer, BrowserActionsContainerObserver> 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) browser_actions_container_observer_; 475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(ExtensionToolbarMenuView); 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_EXTENSION_TOOLBAR_MENU_VIEW_H_ 52