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

Side by Side Diff: chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc

Issue 431173002: Create ExtensionActionView class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge conflict 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/extensions/browser_action_overflow_menu_contro ller.h" 5 #include "chrome/browser/ui/views/extensions/browser_action_overflow_menu_contro ller.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/extensions/extension_action.h" 9 #include "chrome/browser/extensions/extension_action.h"
10 #include "chrome/browser/extensions/extension_action_manager.h" 10 #include "chrome/browser/extensions/extension_action_manager.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 size_t command_id = 1; // Menu id 0 is reserved, start with 1. 80 size_t command_id = 1; // Menu id 0 is reserved, start with 1.
81 for (size_t i = start_index; i < views_->size(); ++i) { 81 for (size_t i = start_index; i < views_->size(); ++i) {
82 BrowserActionView* view = (*views_)[i]; 82 BrowserActionView* view = (*views_)[i];
83 views::MenuItemView* menu_item = menu_->AppendMenuItemWithIcon( 83 views::MenuItemView* menu_item = menu_->AppendMenuItemWithIcon(
84 command_id, 84 command_id,
85 base::UTF8ToUTF16(view->button()->extension()->name()), 85 base::UTF8ToUTF16(view->button()->extension()->name()),
86 view->GetIconWithBadge()); 86 view->GetIconWithBadge());
87 87
88 // Set the tooltip for this item. 88 // Set the tooltip for this item.
89 base::string16 tooltip = base::UTF8ToUTF16( 89 base::string16 tooltip = base::UTF8ToUTF16(
90 extensions::ExtensionActionManager::Get(owner_->profile())-> 90 view->button()->extension_action()->GetTitle(
91 GetBrowserAction(*view->button()->extension())-> 91 view->button()->view_controller()->GetCurrentTabId()));
92 GetTitle(owner_->GetCurrentTabId()));
93 menu_->SetTooltip(tooltip, command_id); 92 menu_->SetTooltip(tooltip, command_id);
94 93
95 icon_updaters_.push_back(new IconUpdater(menu_item, view->button())); 94 icon_updaters_.push_back(new IconUpdater(menu_item, view->button()));
96 95
97 ++command_id; 96 ++command_id;
98 } 97 }
99 } 98 }
100 99
101 BrowserActionOverflowMenuController::~BrowserActionOverflowMenuController() { 100 BrowserActionOverflowMenuController::~BrowserActionOverflowMenuController() {
102 if (observer_) 101 if (observer_)
(...skipping 21 matching lines...) Expand all
124 123
125 void BrowserActionOverflowMenuController::CancelMenu() { 124 void BrowserActionOverflowMenuController::CancelMenu() {
126 menu_->Cancel(); 125 menu_->Cancel();
127 } 126 }
128 127
129 void BrowserActionOverflowMenuController::NotifyBrowserActionViewsDeleting() { 128 void BrowserActionOverflowMenuController::NotifyBrowserActionViewsDeleting() {
130 icon_updaters_.clear(); 129 icon_updaters_.clear();
131 } 130 }
132 131
133 bool BrowserActionOverflowMenuController::IsCommandEnabled(int id) const { 132 bool BrowserActionOverflowMenuController::IsCommandEnabled(int id) const {
134 BrowserActionView* view = (*views_)[start_index_ + id - 1]; 133 BrowserActionButton* button = (*views_)[start_index_ + id - 1]->button();
135 return view->button()->IsEnabled(owner_->GetCurrentTabId()); 134 return button->IsEnabled(button->view_controller()->GetCurrentTabId());
136 } 135 }
137 136
138 void BrowserActionOverflowMenuController::ExecuteCommand(int id) { 137 void BrowserActionOverflowMenuController::ExecuteCommand(int id) {
139 BrowserActionView* view = (*views_)[start_index_ + id - 1]; 138 BrowserActionView* view = (*views_)[start_index_ + id - 1];
140 view->button()->ExecuteBrowserAction(); 139 view->button()->view_controller()->ExecuteActionByUser();
141 } 140 }
142 141
143 bool BrowserActionOverflowMenuController::ShowContextMenu( 142 bool BrowserActionOverflowMenuController::ShowContextMenu(
144 views::MenuItemView* source, 143 views::MenuItemView* source,
145 int id, 144 int id,
146 const gfx::Point& p, 145 const gfx::Point& p,
147 ui::MenuSourceType source_type) { 146 ui::MenuSourceType source_type) {
148 BrowserActionButton* button = (*views_)[start_index_ + id - 1]->button(); 147 BrowserActionButton* button = (*views_)[start_index_ + id - 1]->button();
149 if (!button->extension()->ShowConfigureContextMenus()) 148 if (!button->extension()->ShowConfigureContextMenus())
150 return false; 149 return false;
151 150
152 scoped_refptr<ExtensionContextMenuModel> context_menu_contents = 151 scoped_refptr<ExtensionContextMenuModel> context_menu_contents =
153 new ExtensionContextMenuModel(button->extension(), browser_, button); 152 new ExtensionContextMenuModel(
153 button->extension(), browser_, button->view_controller());
154 views::MenuRunner context_menu_runner(context_menu_contents.get(), 154 views::MenuRunner context_menu_runner(context_menu_contents.get(),
155 views::MenuRunner::HAS_MNEMONICS | 155 views::MenuRunner::HAS_MNEMONICS |
156 views::MenuRunner::IS_NESTED | 156 views::MenuRunner::IS_NESTED |
157 views::MenuRunner::CONTEXT_MENU); 157 views::MenuRunner::CONTEXT_MENU);
158 158
159 // We can ignore the result as we delete ourself. 159 // We can ignore the result as we delete ourself.
160 // This blocks until the user choses something or dismisses the menu. 160 // This blocks until the user choses something or dismisses the menu.
161 ignore_result(context_menu_runner.RunMenuAt(menu_button_->GetWidget(), 161 ignore_result(context_menu_runner.RunMenuAt(menu_button_->GetWidget(),
162 NULL, 162 NULL,
163 gfx::Rect(p, gfx::Size()), 163 gfx::Rect(p, gfx::Size()),
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 258
259 BrowserActionView* BrowserActionOverflowMenuController::ViewForId( 259 BrowserActionView* BrowserActionOverflowMenuController::ViewForId(
260 int id, size_t* index) { 260 int id, size_t* index) {
261 // The index of the view being dragged (GetCommand gives a 1-based index into 261 // The index of the view being dragged (GetCommand gives a 1-based index into
262 // the overflow menu). 262 // the overflow menu).
263 size_t view_index = owner_->VisibleBrowserActions() + id - 1; 263 size_t view_index = owner_->VisibleBrowserActions() + id - 1;
264 if (index) 264 if (index)
265 *index = view_index; 265 *index = view_index;
266 return owner_->GetBrowserActionViewAt(view_index); 266 return owner_->GetBrowserActionViewAt(view_index);
267 } 267 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698