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

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

Issue 680053003: Standardize usage of virtual/override/final specifiers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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/chevron_menu_button.h" 5 #include "chrome/browser/ui/views/toolbar/chevron_menu_button.h"
6 6
7 #include "base/memory/scoped_vector.h" 7 #include "base/memory/scoped_vector.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/extensions/extension_action.h" 10 #include "chrome/browser/extensions/extension_action.h"
(...skipping 25 matching lines...) Expand all
36 class IconUpdater : public ExtensionActionIconFactory::Observer { 36 class IconUpdater : public ExtensionActionIconFactory::Observer {
37 public: 37 public:
38 IconUpdater(views::MenuItemView* menu_item_view, 38 IconUpdater(views::MenuItemView* menu_item_view,
39 ExtensionActionViewController* view_controller) 39 ExtensionActionViewController* view_controller)
40 : menu_item_view_(menu_item_view), 40 : menu_item_view_(menu_item_view),
41 view_controller_(view_controller) { 41 view_controller_(view_controller) {
42 DCHECK(menu_item_view); 42 DCHECK(menu_item_view);
43 DCHECK(view_controller); 43 DCHECK(view_controller);
44 view_controller->set_icon_observer(this); 44 view_controller->set_icon_observer(this);
45 } 45 }
46 virtual ~IconUpdater() { 46 ~IconUpdater() override { view_controller_->set_icon_observer(NULL); }
47 view_controller_->set_icon_observer(NULL);
48 }
49 47
50 // BrowserActionView::IconObserver: 48 // BrowserActionView::IconObserver:
51 virtual void OnIconUpdated() override { 49 void OnIconUpdated() override {
52 menu_item_view_->SetIcon(view_controller_->GetIconWithBadge()); 50 menu_item_view_->SetIcon(view_controller_->GetIconWithBadge());
53 } 51 }
54 52
55 private: 53 private:
56 // The menu item view whose icon might be updated. 54 // The menu item view whose icon might be updated.
57 views::MenuItemView* menu_item_view_; 55 views::MenuItemView* menu_item_view_;
58 56
59 // The view controller to be observed. When its icon changes, update the 57 // The view controller to be observed. When its icon changes, update the
60 // corresponding menu item view's icon. 58 // corresponding menu item view's icon.
61 ExtensionActionViewController* view_controller_; 59 ExtensionActionViewController* view_controller_;
62 60
63 DISALLOW_COPY_AND_ASSIGN(IconUpdater); 61 DISALLOW_COPY_AND_ASSIGN(IconUpdater);
64 }; 62 };
65 63
66 } // namespace 64 } // namespace
67 65
68 // This class handles the overflow menu for browser actions. 66 // This class handles the overflow menu for browser actions.
69 class ChevronMenuButton::MenuController : public views::MenuDelegate { 67 class ChevronMenuButton::MenuController : public views::MenuDelegate {
70 public: 68 public:
71 MenuController(ChevronMenuButton* owner, 69 MenuController(ChevronMenuButton* owner,
72 BrowserActionsContainer* browser_actions_container, 70 BrowserActionsContainer* browser_actions_container,
73 bool for_drop); 71 bool for_drop);
74 virtual ~MenuController(); 72 ~MenuController() override;
75 73
76 // Shows the overflow menu. 74 // Shows the overflow menu.
77 void RunMenu(views::Widget* widget); 75 void RunMenu(views::Widget* widget);
78 76
79 // Closes the overflow menu (and its context menu if open as well). 77 // Closes the overflow menu (and its context menu if open as well).
80 void CloseMenu(); 78 void CloseMenu();
81 79
82 private: 80 private:
83 // views::MenuDelegate: 81 // views::MenuDelegate:
84 virtual bool IsCommandEnabled(int id) const override; 82 bool IsCommandEnabled(int id) const override;
85 virtual void ExecuteCommand(int id) override; 83 void ExecuteCommand(int id) override;
86 virtual bool ShowContextMenu(views::MenuItemView* source, 84 bool ShowContextMenu(views::MenuItemView* source,
87 int id, 85 int id,
88 const gfx::Point& p, 86 const gfx::Point& p,
89 ui::MenuSourceType source_type) override; 87 ui::MenuSourceType source_type) override;
90 virtual void DropMenuClosed(views::MenuItemView* menu) override; 88 void DropMenuClosed(views::MenuItemView* menu) override;
91 // These drag functions offer support for dragging icons into the overflow 89 // These drag functions offer support for dragging icons into the overflow
92 // menu. 90 // menu.
93 virtual bool GetDropFormats( 91 bool GetDropFormats(
94 views::MenuItemView* menu, 92 views::MenuItemView* menu,
95 int* formats, 93 int* formats,
96 std::set<ui::OSExchangeData::CustomFormat>* custom_formats) override; 94 std::set<ui::OSExchangeData::CustomFormat>* custom_formats) override;
97 virtual bool AreDropTypesRequired(views::MenuItemView* menu) override; 95 bool AreDropTypesRequired(views::MenuItemView* menu) override;
98 virtual bool CanDrop(views::MenuItemView* menu, 96 bool CanDrop(views::MenuItemView* menu,
99 const ui::OSExchangeData& data) override; 97 const ui::OSExchangeData& data) override;
100 virtual int GetDropOperation(views::MenuItemView* item, 98 int GetDropOperation(views::MenuItemView* item,
101 const ui::DropTargetEvent& event, 99 const ui::DropTargetEvent& event,
102 DropPosition* position) override; 100 DropPosition* position) override;
103 virtual int OnPerformDrop(views::MenuItemView* menu, 101 int OnPerformDrop(views::MenuItemView* menu,
104 DropPosition position, 102 DropPosition position,
105 const ui::DropTargetEvent& event) override; 103 const ui::DropTargetEvent& event) override;
106 // These three drag functions offer support for dragging icons out of the 104 // These three drag functions offer support for dragging icons out of the
107 // overflow menu. 105 // overflow menu.
108 virtual bool CanDrag(views::MenuItemView* menu) override; 106 bool CanDrag(views::MenuItemView* menu) override;
109 virtual void WriteDragData(views::MenuItemView* sender, 107 void WriteDragData(views::MenuItemView* sender,
110 ui::OSExchangeData* data) override; 108 ui::OSExchangeData* data) override;
111 virtual int GetDragOperations(views::MenuItemView* sender) override; 109 int GetDragOperations(views::MenuItemView* sender) override;
112 110
113 // Returns the offset into |views_| for the given |id|. 111 // Returns the offset into |views_| for the given |id|.
114 size_t IndexForId(int id) const; 112 size_t IndexForId(int id) const;
115 113
116 // The owning ChevronMenuButton. 114 // The owning ChevronMenuButton.
117 ChevronMenuButton* owner_; 115 ChevronMenuButton* owner_;
118 116
119 // A pointer to the browser action container. 117 // A pointer to the browser action container.
120 BrowserActionsContainer* browser_actions_container_; 118 BrowserActionsContainer* browser_actions_container_;
121 119
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 void ChevronMenuButton::ShowOverflowMenu(bool for_drop) { 428 void ChevronMenuButton::ShowOverflowMenu(bool for_drop) {
431 DCHECK(!menu_controller_); 429 DCHECK(!menu_controller_);
432 menu_controller_.reset(new MenuController( 430 menu_controller_.reset(new MenuController(
433 this, browser_actions_container_, for_drop)); 431 this, browser_actions_container_, for_drop));
434 menu_controller_->RunMenu(GetWidget()); 432 menu_controller_->RunMenu(GetWidget());
435 } 433 }
436 434
437 void ChevronMenuButton::MenuDone() { 435 void ChevronMenuButton::MenuDone() {
438 menu_controller_.reset(); 436 menu_controller_.reset();
439 } 437 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698