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

Side by Side Diff: chrome/browser/gtk/bookmark_context_menu.cc

Issue 211056: GTK: Dismiss the bookmark folder menu(s) when a context menu item is executed... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/gtk/bookmark_context_menu.h ('k') | chrome/browser/gtk/bookmark_manager_gtk.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/gtk/bookmark_context_menu.h" 5 #include "chrome/browser/gtk/bookmark_context_menu.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "chrome/browser/bookmarks/bookmark_editor.h" 9 #include "chrome/browser/bookmarks/bookmark_editor.h"
10 #include "chrome/browser/bookmarks/bookmark_manager.h" 10 #include "chrome/browser/bookmarks/bookmark_manager.h"
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 208
209 // BookmarkContextMenu ------------------------------------------- 209 // BookmarkContextMenu -------------------------------------------
210 210
211 BookmarkContextMenu::BookmarkContextMenu( 211 BookmarkContextMenu::BookmarkContextMenu(
212 gfx::NativeView wnd, 212 gfx::NativeView wnd,
213 Profile* profile, 213 Profile* profile,
214 Browser* browser, 214 Browser* browser,
215 PageNavigator* navigator, 215 PageNavigator* navigator,
216 const BookmarkNode* parent, 216 const BookmarkNode* parent,
217 const std::vector<const BookmarkNode*>& selection, 217 const std::vector<const BookmarkNode*>& selection,
218 ConfigurationType configuration) 218 ConfigurationType configuration,
219 Delegate* delegate)
219 : wnd_(wnd), 220 : wnd_(wnd),
220 profile_(profile), 221 profile_(profile),
221 browser_(browser), 222 browser_(browser),
222 navigator_(navigator), 223 navigator_(navigator),
223 parent_(parent), 224 parent_(parent),
224 selection_(selection), 225 selection_(selection),
225 model_(profile->GetBookmarkModel()), 226 model_(profile->GetBookmarkModel()),
226 configuration_(configuration) { 227 configuration_(configuration),
228 delegate_(delegate) {
227 DCHECK(profile_); 229 DCHECK(profile_);
228 DCHECK(model_->IsLoaded()); 230 DCHECK(model_->IsLoaded());
229 CreateMenuObject(); 231 CreateMenuObject();
230 232
231 if (configuration != BOOKMARK_MANAGER_ORGANIZE_MENU) { 233 if (configuration != BOOKMARK_MANAGER_ORGANIZE_MENU) {
232 if (selection.size() == 1 && selection[0]->is_url()) { 234 if (selection.size() == 1 && selection[0]->is_url()) {
233 AppendItem(IDS_BOOMARK_BAR_OPEN_ALL, IDS_BOOMARK_BAR_OPEN_IN_NEW_TAB); 235 AppendItem(IDS_BOOMARK_BAR_OPEN_ALL, IDS_BOOMARK_BAR_OPEN_IN_NEW_TAB);
234 AppendItem(IDS_BOOMARK_BAR_OPEN_ALL_NEW_WINDOW, 236 AppendItem(IDS_BOOMARK_BAR_OPEN_ALL_NEW_WINDOW,
235 IDS_BOOMARK_BAR_OPEN_IN_NEW_WINDOW); 237 IDS_BOOMARK_BAR_OPEN_IN_NEW_WINDOW);
236 AppendItem(IDS_BOOMARK_BAR_OPEN_ALL_INCOGNITO, 238 AppendItem(IDS_BOOMARK_BAR_OPEN_ALL_INCOGNITO,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 } 289 }
288 290
289 model_->AddObserver(this); 291 model_->AddObserver(this);
290 } 292 }
291 293
292 BookmarkContextMenu::~BookmarkContextMenu() { 294 BookmarkContextMenu::~BookmarkContextMenu() {
293 if (model_) 295 if (model_)
294 model_->RemoveObserver(this); 296 model_->RemoveObserver(this);
295 } 297 }
296 298
299 void BookmarkContextMenu::DelegateDestroyed() {
300 delegate_ = NULL;
301 }
302
297 void BookmarkContextMenu::ExecuteCommand(int id) { 303 void BookmarkContextMenu::ExecuteCommand(int id) {
304 if (delegate_)
305 delegate_->WillExecuteCommand();
306
298 switch (id) { 307 switch (id) {
299 case IDS_BOOMARK_BAR_OPEN_ALL: 308 case IDS_BOOMARK_BAR_OPEN_ALL:
300 case IDS_BOOMARK_BAR_OPEN_ALL_INCOGNITO: 309 case IDS_BOOMARK_BAR_OPEN_ALL_INCOGNITO:
301 case IDS_BOOMARK_BAR_OPEN_ALL_NEW_WINDOW: { 310 case IDS_BOOMARK_BAR_OPEN_ALL_NEW_WINDOW: {
302 PageNavigator* navigator = browser_ ? 311 PageNavigator* navigator = browser_ ?
303 browser_->GetSelectedTabContents() : navigator_; 312 browser_->GetSelectedTabContents() : navigator_;
304 WindowOpenDisposition initial_disposition; 313 WindowOpenDisposition initial_disposition;
305 if (id == IDS_BOOMARK_BAR_OPEN_ALL) { 314 if (id == IDS_BOOMARK_BAR_OPEN_ALL) {
306 initial_disposition = NEW_FOREGROUND_TAB; 315 initial_disposition = NEW_FOREGROUND_TAB;
307 UserMetrics::RecordAction(L"BookmarkBar_ContextMenu_OpenAll", 316 UserMetrics::RecordAction(L"BookmarkBar_ContextMenu_OpenAll",
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 if (NodeHasURLs(selection_[i])) 558 if (NodeHasURLs(selection_[i]))
550 return true; 559 return true;
551 } 560 }
552 return false; 561 return false;
553 } 562 }
554 563
555 const BookmarkNode* BookmarkContextMenu::GetParentForNewNodes() const { 564 const BookmarkNode* BookmarkContextMenu::GetParentForNewNodes() const {
556 return (selection_.size() == 1 && selection_[0]->is_folder()) ? 565 return (selection_.size() == 1 && selection_[0]->is_folder()) ?
557 selection_[0] : parent_; 566 selection_[0] : parent_;
558 } 567 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/bookmark_context_menu.h ('k') | chrome/browser/gtk/bookmark_manager_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698