Chromium Code Reviews| Index: chrome/browser/cocoa/browser_window_controller.mm |
| diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm |
| index d9373a89fd637c7bd50bcae21f6a3091fa6ac655..f216b6f66d56901e7effbca494e5b718662cfe49 100644 |
| --- a/chrome/browser/cocoa/browser_window_controller.mm |
| +++ b/chrome/browser/cocoa/browser_window_controller.mm |
| @@ -8,6 +8,7 @@ |
| #include "app/l10n_util.h" |
| #include "app/l10n_util_mac.h" |
| +#include "app/menus/simple_menu_model.h" |
| #include "base/mac_util.h" |
| #include "base/nsimage_cache_mac.h" |
| #include "base/scoped_nsdisable_screen_updates.h" |
| @@ -38,6 +39,7 @@ |
| #import "chrome/browser/cocoa/fullscreen_window.h" |
| #import "chrome/browser/cocoa/infobar_container_controller.h" |
| #import "chrome/browser/cocoa/location_bar/autocomplete_text_field_editor.h" |
| +#import "chrome/browser/cocoa/menu_controller.h" |
| #import "chrome/browser/cocoa/sad_tab_controller.h" |
| #import "chrome/browser/cocoa/status_bubble_mac.h" |
| #import "chrome/browser/cocoa/tab_contents_controller.h" |
| @@ -142,6 +144,40 @@ |
| @end |
| +// BrowserWindowPopupMenuController subclasses MenuController to |
|
viettrungluu
2010/08/20 17:02:00
Why is this in browser_window_controller.mm?
|
| +// provide menu items for the popup context menu. |
| +@interface BrowserWindowPopupMenuController : MenuController { |
| + scoped_ptr<menus::SimpleMenuModel> popupModel_; |
|
viettrungluu
2010/08/20 17:02:00
@private
|
| +} |
| + |
| +- (id)initWithDelegate:(menus::SimpleMenuModel::Delegate*)delegate; |
| +@end |
| + |
| +@implementation BrowserWindowPopupMenuController |
| +- (menus::SimpleMenuModel*)newModelFor:(menus::SimpleMenuModel::Delegate*)delegate { |
|
viettrungluu
2010/08/20 17:02:00
80 chars
|
| + menus::SimpleMenuModel* result = new menus::SimpleMenuModel(delegate); |
| + result->AddItemWithStringId(IDC_COPY_URL, |
| + IDS_APP_MENU_COPY_URL); |
| + result->AddItemWithStringId(IDC_SHOW_AS_TAB, |
| + IDS_SHOW_AS_TAB); |
| + result->AddSeparator(); |
| + result->AddItemWithStringId(IDC_RELOAD, IDS_APP_MENU_RELOAD); |
| + result->AddItemWithStringId(IDC_FORWARD, |
| + IDS_CONTENT_CONTEXT_FORWARD); |
| + result->AddItemWithStringId(IDC_BACK, |
| + IDS_CONTENT_CONTEXT_BACK); |
| + return result; |
| +} |
| + |
| +- (id)initWithDelegate:(menus::SimpleMenuModel::Delegate*)delegate { |
| + if ((self = [super init]) != nil) { |
|
viettrungluu
2010/08/20 17:02:00
'!= nil' not needed
|
| + popupModel_.reset([self newModelFor:delegate]); |
| + [self setModel: popupModel_.get()]; |
|
viettrungluu
2010/08/20 17:02:00
no space after ':'
|
| + } |
| + |
| + return self; |
| +} |
| +@end |
| // IncognitoImageView subclasses NSImageView to allow mouse events to pass |
| // through it so you can drag the window by dragging on the spy guy |
| @@ -1640,6 +1676,14 @@ willAnimateFromState:(bookmarks::VisualState)oldState |
| [sheet orderOut:self]; |
| } |
| +- (NSMenu*)popupContextMenu { |
|
viettrungluu
2010/08/20 17:02:00
Should you check that this is a popup window?
|
| + if (!popupMenuController_) { |
| + popupMenuController_.reset( |
| + [[BrowserWindowPopupMenuController alloc] initWithDelegate:windowShim_.get()]); |
|
viettrungluu
2010/08/20 17:02:00
80 chars
|
| + } |
| + |
| + return [popupMenuController_ menu]; |
| +} |
| @end // @implementation BrowserWindowController |