OLD | NEW |
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/chevron_menu_button.h" | 5 #include "chrome/browser/ui/views/toolbar/chevron_menu_button.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 // The owning ChevronMenuButton. | 128 // The owning ChevronMenuButton. |
129 ChevronMenuButton* owner_; | 129 ChevronMenuButton* owner_; |
130 | 130 |
131 // A pointer to the browser action container. | 131 // A pointer to the browser action container. |
132 BrowserActionsContainer* browser_actions_container_; | 132 BrowserActionsContainer* browser_actions_container_; |
133 | 133 |
134 // The overflow menu for the menu button. Owned by |menu_runner_|. | 134 // The overflow menu for the menu button. Owned by |menu_runner_|. |
135 views::MenuItemView* menu_; | 135 views::MenuItemView* menu_; |
136 | 136 |
137 // Resposible for running the menu. | 137 // Resposible for running the menu. |
138 scoped_ptr<views::MenuRunner> menu_runner_; | 138 std::unique_ptr<views::MenuRunner> menu_runner_; |
139 | 139 |
140 // The index into the ToolbarActionView vector, indicating where to start | 140 // The index into the ToolbarActionView vector, indicating where to start |
141 // picking browser actions to draw. | 141 // picking browser actions to draw. |
142 int start_index_; | 142 int start_index_; |
143 | 143 |
144 // Whether this controller is being used for drop. | 144 // Whether this controller is being used for drop. |
145 bool for_drop_; | 145 bool for_drop_; |
146 | 146 |
147 // The vector keeps all icon updaters associated with menu item views in the | 147 // The vector keeps all icon updaters associated with menu item views in the |
148 // controller. The icon updater will update the menu item view's icon when | 148 // controller. The icon updater will update the menu item view's icon when |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 int id, | 223 int id, |
224 const gfx::Point& p, | 224 const gfx::Point& p, |
225 ui::MenuSourceType source_type) { | 225 ui::MenuSourceType source_type) { |
226 ToolbarActionView* view = browser_actions_container_->GetToolbarActionViewAt( | 226 ToolbarActionView* view = browser_actions_container_->GetToolbarActionViewAt( |
227 start_index_ + id - 1); | 227 start_index_ + id - 1); |
228 ExtensionActionViewController* view_controller = | 228 ExtensionActionViewController* view_controller = |
229 static_cast<ExtensionActionViewController*>(view->view_controller()); | 229 static_cast<ExtensionActionViewController*>(view->view_controller()); |
230 if (!view_controller->extension()->ShowConfigureContextMenus()) | 230 if (!view_controller->extension()->ShowConfigureContextMenus()) |
231 return false; | 231 return false; |
232 | 232 |
233 scoped_ptr<extensions::ExtensionContextMenuModel> context_menu_contents( | 233 std::unique_ptr<extensions::ExtensionContextMenuModel> context_menu_contents( |
234 new extensions::ExtensionContextMenuModel( | 234 new extensions::ExtensionContextMenuModel( |
235 view_controller->extension(), view_controller->browser(), | 235 view_controller->extension(), view_controller->browser(), |
236 extensions::ExtensionContextMenuModel::OVERFLOWED, view_controller)); | 236 extensions::ExtensionContextMenuModel::OVERFLOWED, view_controller)); |
237 views::MenuRunner context_menu_runner(context_menu_contents.get(), | 237 views::MenuRunner context_menu_runner(context_menu_contents.get(), |
238 views::MenuRunner::HAS_MNEMONICS | | 238 views::MenuRunner::HAS_MNEMONICS | |
239 views::MenuRunner::IS_NESTED | | 239 views::MenuRunner::IS_NESTED | |
240 views::MenuRunner::CONTEXT_MENU); | 240 views::MenuRunner::CONTEXT_MENU); |
241 | 241 |
242 // We can ignore the result as we delete ourself. | 242 // We can ignore the result as we delete ourself. |
243 // This blocks until the user chooses something or dismisses the menu. | 243 // This blocks until the user chooses something or dismisses the menu. |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 } | 370 } |
371 | 371 |
372 ChevronMenuButton::~ChevronMenuButton() { | 372 ChevronMenuButton::~ChevronMenuButton() { |
373 } | 373 } |
374 | 374 |
375 void ChevronMenuButton::CloseMenu() { | 375 void ChevronMenuButton::CloseMenu() { |
376 if (menu_controller_) | 376 if (menu_controller_) |
377 menu_controller_->CloseMenu(); | 377 menu_controller_->CloseMenu(); |
378 } | 378 } |
379 | 379 |
380 scoped_ptr<views::LabelButtonBorder> ChevronMenuButton::CreateDefaultBorder() | 380 std::unique_ptr<views::LabelButtonBorder> |
381 const { | 381 ChevronMenuButton::CreateDefaultBorder() const { |
382 // The chevron resource was designed to not have any insets. | 382 // The chevron resource was designed to not have any insets. |
383 scoped_ptr<views::LabelButtonBorder> border = | 383 std::unique_ptr<views::LabelButtonBorder> border = |
384 views::MenuButton::CreateDefaultBorder(); | 384 views::MenuButton::CreateDefaultBorder(); |
385 border->set_insets(gfx::Insets()); | 385 border->set_insets(gfx::Insets()); |
386 return border; | 386 return border; |
387 } | 387 } |
388 | 388 |
389 bool ChevronMenuButton::GetDropFormats( | 389 bool ChevronMenuButton::GetDropFormats( |
390 int* formats, | 390 int* formats, |
391 std::set<ui::Clipboard::FormatType>* format_types) { | 391 std::set<ui::Clipboard::FormatType>* format_types) { |
392 return BrowserActionDragData::GetDropFormats(format_types); | 392 return BrowserActionDragData::GetDropFormats(format_types); |
393 } | 393 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 // We should never try to show an overflow menu when one is already visible. | 441 // We should never try to show an overflow menu when one is already visible. |
442 DCHECK(!menu_controller_); | 442 DCHECK(!menu_controller_); |
443 menu_controller_.reset(new MenuController( | 443 menu_controller_.reset(new MenuController( |
444 this, browser_actions_container_, for_drop)); | 444 this, browser_actions_container_, for_drop)); |
445 menu_controller_->RunMenu(GetWidget()); | 445 menu_controller_->RunMenu(GetWidget()); |
446 } | 446 } |
447 | 447 |
448 void ChevronMenuButton::MenuDone() { | 448 void ChevronMenuButton::MenuDone() { |
449 menu_controller_.reset(); | 449 menu_controller_.reset(); |
450 } | 450 } |
OLD | NEW |