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

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

Issue 399173004: Adjust BrowserActionsContainer drag and drop to work for overflow (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Latest master Created 6 years, 4 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
« no previous file with comments | « chrome/browser/ui/views/toolbar/browser_actions_container.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/ui/views/frame/browser_view.h" 7 #include "chrome/browser/ui/views/frame/browser_view.h"
8 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h" 8 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
9 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" 9 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
10 #include "chrome/browser/ui/views/toolbar/wrench_menu.h" 10 #include "chrome/browser/ui/views/toolbar/wrench_menu.h"
11 #include "ui/views/controls/menu/menu_item_view.h" 11 #include "ui/views/controls/menu/menu_item_view.h"
12 12
13 namespace {
14
15 // Bottom padding to make sure we have enough room for the icons.
16 // TODO(devlin): Figure out why the bottom few pixels of the last row in the
17 // overflow menu are cut off (so we can remove this).
18 const int kVerticalPadding = 8;
19
20 } // namespace
21
22 ExtensionToolbarMenuView::ExtensionToolbarMenuView(Browser* browser, 13 ExtensionToolbarMenuView::ExtensionToolbarMenuView(Browser* browser,
23 WrenchMenu* wrench_menu) 14 WrenchMenu* wrench_menu)
24 : browser_(browser), 15 : browser_(browser),
25 wrench_menu_(wrench_menu), 16 wrench_menu_(wrench_menu),
26 container_(NULL), 17 container_(NULL),
27 browser_actions_container_observer_(this) { 18 browser_actions_container_observer_(this) {
28 BrowserActionsContainer* main = 19 BrowserActionsContainer* main =
29 BrowserView::GetBrowserViewForBrowser(browser_) 20 BrowserView::GetBrowserViewForBrowser(browser_)
30 ->toolbar()->browser_actions(); 21 ->toolbar()->browser_actions();
31 container_ = new BrowserActionsContainer( 22 container_ = new BrowserActionsContainer(
32 browser_, 23 browser_,
33 NULL, // No owner view, means no extra keybindings are registered. 24 NULL, // No owner view, means no extra keybindings are registered.
34 main); 25 main);
35 container_->Init(); 26 container_->Init();
36 AddChildView(container_); 27 AddChildView(container_);
37 28
38 // If we were opened for a drop command, we have to wait for the drop to 29 // If we were opened for a drop command, we have to wait for the drop to
39 // finish so we can close the wrench menu. 30 // finish so we can close the wrench menu.
40 if (wrench_menu_->for_drop()) { 31 if (wrench_menu_->for_drop()) {
41 browser_actions_container_observer_.Add(container_); 32 browser_actions_container_observer_.Add(container_);
42 browser_actions_container_observer_.Add(main); 33 browser_actions_container_observer_.Add(main);
43 } 34 }
44 } 35 }
45 36
46 ExtensionToolbarMenuView::~ExtensionToolbarMenuView() { 37 ExtensionToolbarMenuView::~ExtensionToolbarMenuView() {
47 } 38 }
48 39
49 gfx::Size ExtensionToolbarMenuView::GetPreferredSize() const { 40 gfx::Size ExtensionToolbarMenuView::GetPreferredSize() const {
50 gfx::Size sz = container_->GetPreferredSize(); 41 return container_->GetPreferredSize();
51 if (sz.height() == 0)
52 return sz;
53
54 sz.Enlarge(0, kVerticalPadding);
55 return sz;
56 } 42 }
57 43
58 void ExtensionToolbarMenuView::Layout() { 44 void ExtensionToolbarMenuView::Layout() {
59 // All buttons are given the same width. 45 // All buttons are given the same width.
60 gfx::Size sz = container_->GetPreferredSize(); 46 gfx::Size sz = GetPreferredSize();
61 int height = sz.height() + kVerticalPadding / 2; 47 SetBounds(views::MenuItemView::label_start(), 0, sz.width(), sz.height());
62 SetBounds(views::MenuItemView::label_start(), 0, sz.width(), height); 48 container_->SetBounds(0, 0, sz.width(), sz.height());
63 container_->SetBounds(0, 0, sz.width(), height);
64 } 49 }
65 50
66 void ExtensionToolbarMenuView::OnBrowserActionDragDone() { 51 void ExtensionToolbarMenuView::OnBrowserActionDragDone() {
67 DCHECK(wrench_menu_->for_drop()); 52 DCHECK(wrench_menu_->for_drop());
68 wrench_menu_->CloseMenu(); 53 wrench_menu_->CloseMenu();
69 } 54 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/toolbar/browser_actions_container.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698