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

Side by Side Diff: chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc

Issue 331993009: MacViews: Run native Cocoa context menus to support Services. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add VIEWS_EXPORT for unit test access Created 6 years, 5 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
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/bookmarks/bookmark_context_menu.h" 5 #include "chrome/browser/ui/views/bookmarks/bookmark_context_menu.h"
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/app/chrome_command_ids.h" 9 #include "chrome/app/chrome_command_ids.h"
10 #include "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
(...skipping 27 matching lines...) Expand all
38 Profile* profile, 38 Profile* profile,
39 PageNavigator* page_navigator, 39 PageNavigator* page_navigator,
40 const BookmarkNode* parent, 40 const BookmarkNode* parent,
41 const std::vector<const BookmarkNode*>& selection, 41 const std::vector<const BookmarkNode*>& selection,
42 bool close_on_remove) 42 bool close_on_remove)
43 : controller_(new BookmarkContextMenuController( 43 : controller_(new BookmarkContextMenuController(
44 parent_widget ? parent_widget->GetNativeWindow() : NULL, this, 44 parent_widget ? parent_widget->GetNativeWindow() : NULL, this,
45 browser, profile, page_navigator, parent, selection)), 45 browser, profile, page_navigator, parent, selection)),
46 parent_widget_(parent_widget), 46 parent_widget_(parent_widget),
47 menu_(new views::MenuItemView(this)), 47 menu_(new views::MenuItemView(this)),
48 menu_runner_(new views::MenuRunner(menu_)), 48 menu_runner_(new views::MenuRunner(menu_,
49 views::MenuRunner::HAS_MNEMONICS |
50 views::MenuRunner::IS_NESTED |
51 views::MenuRunner::CONTEXT_MENU)),
49 observer_(NULL), 52 observer_(NULL),
50 close_on_remove_(close_on_remove) { 53 close_on_remove_(close_on_remove) {
51
52 ui::SimpleMenuModel* menu_model = controller_->menu_model(); 54 ui::SimpleMenuModel* menu_model = controller_->menu_model();
53 for (int i = 0; i < menu_model->GetItemCount(); ++i) { 55 for (int i = 0; i < menu_model->GetItemCount(); ++i) {
54 views::MenuModelAdapter::AppendMenuItemFromModel( 56 views::MenuModelAdapter::AppendMenuItemFromModel(
55 menu_model, i, menu_, menu_model->GetCommandIdAt(i)); 57 menu_model, i, menu_, menu_model->GetCommandIdAt(i));
56 } 58 }
57 } 59 }
58 60
59 BookmarkContextMenu::~BookmarkContextMenu() { 61 BookmarkContextMenu::~BookmarkContextMenu() {
60 } 62 }
61 63
62 void BookmarkContextMenu::RunMenuAt(const gfx::Point& point, 64 void BookmarkContextMenu::RunMenuAt(const gfx::Point& point,
63 ui::MenuSourceType source_type) { 65 ui::MenuSourceType source_type) {
64 content::NotificationService::current()->Notify( 66 content::NotificationService::current()->Notify(
65 chrome::NOTIFICATION_BOOKMARK_CONTEXT_MENU_SHOWN, 67 chrome::NOTIFICATION_BOOKMARK_CONTEXT_MENU_SHOWN,
66 content::Source<BookmarkContextMenu>(this), 68 content::Source<BookmarkContextMenu>(this),
67 content::NotificationService::NoDetails()); 69 content::NotificationService::NoDetails());
68 // width/height don't matter here. 70 // width/height don't matter here.
69 if (menu_runner_->RunMenuAt( 71 if (menu_runner_->RunMenuAt(parent_widget_,
70 parent_widget_, 72 NULL,
71 NULL, 73 gfx::Rect(point.x(), point.y(), 0, 0),
72 gfx::Rect(point.x(), point.y(), 0, 0), 74 views::MENU_ANCHOR_TOPLEFT,
73 views::MENU_ANCHOR_TOPLEFT, 75 source_type) == views::MenuRunner::MENU_DELETED) {
74 source_type,
75 (views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::IS_NESTED |
76 views::MenuRunner::CONTEXT_MENU)) ==
77 views::MenuRunner::MENU_DELETED) {
78 return; 76 return;
79 } 77 }
80 } 78 }
81 79
82 void BookmarkContextMenu::SetPageNavigator(PageNavigator* navigator) { 80 void BookmarkContextMenu::SetPageNavigator(PageNavigator* navigator) {
83 controller_->set_navigator(navigator); 81 controller_->set_navigator(navigator);
84 } 82 }
85 83
86 //////////////////////////////////////////////////////////////////////////////// 84 ////////////////////////////////////////////////////////////////////////////////
87 // BookmarkContextMenu, views::MenuDelegate implementation: 85 // BookmarkContextMenu, views::MenuDelegate implementation:
(...skipping 26 matching lines...) Expand all
114 int command_id, 112 int command_id,
115 const std::vector<const BookmarkNode*>& bookmarks) { 113 const std::vector<const BookmarkNode*>& bookmarks) {
116 if (observer_ && IsRemoveBookmarksCommand(command_id)) 114 if (observer_ && IsRemoveBookmarksCommand(command_id))
117 observer_->WillRemoveBookmarks(bookmarks); 115 observer_->WillRemoveBookmarks(bookmarks);
118 } 116 }
119 117
120 void BookmarkContextMenu::DidExecuteCommand(int command_id) { 118 void BookmarkContextMenu::DidExecuteCommand(int command_id) {
121 if (observer_ && IsRemoveBookmarksCommand(command_id)) 119 if (observer_ && IsRemoveBookmarksCommand(command_id))
122 observer_->DidRemoveBookmarks(); 120 observer_->DidRemoveBookmarks();
123 } 121 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698