Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(195)

Side by Side Diff: chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc

Issue 556293003: Allow the user to drag an extension to the overflow menu, even when its empty (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h" 5 #include "chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "chrome/browser/ui/views/frame/browser_view.h" 10 #include "chrome/browser/ui/views/frame/browser_view.h"
(...skipping 26 matching lines...) Expand all
37 weak_factory_(this) { 37 weak_factory_(this) {
38 BrowserActionsContainer* main = 38 BrowserActionsContainer* main =
39 BrowserView::GetBrowserViewForBrowser(browser_) 39 BrowserView::GetBrowserViewForBrowser(browser_)
40 ->toolbar()->browser_actions(); 40 ->toolbar()->browser_actions();
41 container_ = new BrowserActionsContainer( 41 container_ = new BrowserActionsContainer(
42 browser_, 42 browser_,
43 NULL, // No owner view, means no extra keybindings are registered. 43 NULL, // No owner view, means no extra keybindings are registered.
44 main); 44 main);
45 container_->Init(); 45 container_->Init();
46 AddChildView(container_); 46 AddChildView(container_);
47 // We Layout() the container here so that we know the number of actions
48 // that will be visible in ShouldShow().
49 container_->Layout();
47 50
48 // If we were opened for a drop command, we have to wait for the drop to 51 // If we were opened for a drop command, we have to wait for the drop to
49 // finish so we can close the wrench menu. 52 // finish so we can close the wrench menu.
50 if (wrench_menu_->for_drop()) { 53 if (wrench_menu_->for_drop()) {
51 browser_actions_container_observer_.Add(container_); 54 browser_actions_container_observer_.Add(container_);
52 browser_actions_container_observer_.Add(main); 55 browser_actions_container_observer_.Add(main);
53 } 56 }
54 } 57 }
55 58
56 ExtensionToolbarMenuView::~ExtensionToolbarMenuView() { 59 ExtensionToolbarMenuView::~ExtensionToolbarMenuView() {
57 } 60 }
58 61
62 bool ExtensionToolbarMenuView::ShouldShow() {
63 return wrench_menu_->for_drop() ||
64 container_->VisibleBrowserActionsAfterAnimation();
65 }
66
59 gfx::Size ExtensionToolbarMenuView::GetPreferredSize() const { 67 gfx::Size ExtensionToolbarMenuView::GetPreferredSize() const {
60 return container_->GetPreferredSize(); 68 return container_->GetPreferredSize();
61 } 69 }
62 70
63 int ExtensionToolbarMenuView::GetHeightForWidth(int width) const { 71 int ExtensionToolbarMenuView::GetHeightForWidth(int width) const {
64 const views::MenuConfig& menu_config = 72 const views::MenuConfig& menu_config =
65 static_cast<const views::MenuItemView*>(parent())->GetMenuConfig(); 73 static_cast<const views::MenuItemView*>(parent())->GetMenuConfig();
66 int end_padding = menu_config.arrow_to_edge_padding - 74 int end_padding = menu_config.arrow_to_edge_padding -
67 BrowserActionsContainer::kItemSpacing; 75 BrowserActionsContainer::kItemSpacing;
68 width -= start_padding() + end_padding; 76 width -= start_padding() + end_padding;
(...skipping 17 matching lines...) Expand all
86 base::MessageLoop::current()->PostDelayedTask( 94 base::MessageLoop::current()->PostDelayedTask(
87 FROM_HERE, 95 FROM_HERE,
88 base::Bind(&ExtensionToolbarMenuView::CloseWrenchMenu, 96 base::Bind(&ExtensionToolbarMenuView::CloseWrenchMenu,
89 weak_factory_.GetWeakPtr()), 97 weak_factory_.GetWeakPtr()),
90 base::TimeDelta::FromMilliseconds(kCloseMenuDelay)); 98 base::TimeDelta::FromMilliseconds(kCloseMenuDelay));
91 } 99 }
92 100
93 void ExtensionToolbarMenuView::CloseWrenchMenu() { 101 void ExtensionToolbarMenuView::CloseWrenchMenu() {
94 wrench_menu_->CloseMenu(); 102 wrench_menu_->CloseMenu();
95 } 103 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h ('k') | chrome/browser/ui/views/toolbar/wrench_menu.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698