| 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 |