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

Side by Side Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.mm

Issue 7465090: [Mac] Replace the custom bookmark menus with native NSMenus. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Typo Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.h" 5 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.h"
6 6
7 #include "base/sys_string_conversions.h" 7 #include "base/sys_string_conversions.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/app/chrome_command_ids.h" // IDC_BOOKMARK_MENU 9 #include "chrome/app/chrome_command_ids.h" // IDC_BOOKMARK_MENU
10 #import "chrome/browser/app_controller_mac.h" 10 #import "chrome/browser/app_controller_mac.h"
11 #include "chrome/browser/bookmarks/bookmark_model.h" 11 #include "chrome/browser/bookmarks/bookmark_model.h"
12 #include "chrome/browser/bookmarks/bookmark_utils.h" 12 #include "chrome/browser/bookmarks/bookmark_utils.h"
13 #include "chrome/browser/ui/browser.h" 13 #include "chrome/browser/ui/browser.h"
14 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.h" 14 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.h"
15 #include "chrome/browser/ui/cocoa/event_utils.h" 15 #include "chrome/browser/ui/cocoa/event_utils.h"
16 #include "content/browser/user_metrics.h" 16 #include "content/browser/user_metrics.h"
17 #include "ui/base/text/text_elider.h" 17 #include "ui/base/text/text_elider.h"
18 18
19 namespace { 19 namespace {
20 20
21 // Menus more than this many pixels wide will get trimmed 21 // Menus more than this many pixels wide will get trimmed
22 // TODO(jrg): ask UI dudes what a good value is. 22 // TODO(jrg): ask UI dudes what a good value is.
23 const NSUInteger kMaximumMenuPixelsWide = 300; 23 const NSUInteger kMaximumMenuPixelsWide = 300;
24 24
25 } 25 }
26 26
27 @implementation BookmarkMenuCocoaController 27 @implementation BookmarkMenuCocoaController
28 28
29 @synthesize delegate = delegate_;
30
29 + (NSString*)menuTitleForNode:(const BookmarkNode*)node { 31 + (NSString*)menuTitleForNode:(const BookmarkNode*)node {
30 NSFont* nsfont = [NSFont menuBarFontOfSize:0]; // 0 means "default" 32 NSFont* nsfont = [NSFont menuBarFontOfSize:0]; // 0 means "default"
31 gfx::Font font(base::SysNSStringToUTF16([nsfont fontName]), 33 gfx::Font font(base::SysNSStringToUTF16([nsfont fontName]),
32 static_cast<int>([nsfont pointSize])); 34 static_cast<int>([nsfont pointSize]));
33 string16 title = ui::ElideText(node->GetTitle(), 35 string16 title = ui::ElideText(node->GetTitle(),
34 font, 36 font,
35 kMaximumMenuPixelsWide, 37 kMaximumMenuPixelsWide,
36 false); 38 false);
37 return base::SysUTF16ToNSString(title); 39 return base::SysUTF16ToNSString(title);
38 } 40 }
(...skipping 28 matching lines...) Expand all
67 69
68 - (NSMenu*)menu { 70 - (NSMenu*)menu {
69 return menu_; 71 return menu_;
70 } 72 }
71 73
72 - (BOOL)validateMenuItem:(NSMenuItem*)menuItem { 74 - (BOOL)validateMenuItem:(NSMenuItem*)menuItem {
73 AppController* controller = [NSApp delegate]; 75 AppController* controller = [NSApp delegate];
74 return [controller keyWindowIsNotModal]; 76 return [controller keyWindowIsNotModal];
75 } 77 }
76 78
79 // NSMenuDelegate //////////////////////////////////////////////////////////////
80
77 // NSMenu delegate method: called just before menu is displayed. 81 // NSMenu delegate method: called just before menu is displayed.
78 - (void)menuNeedsUpdate:(NSMenu*)menu { 82 - (void)menuNeedsUpdate:(NSMenu*)menu {
79 bridge_->UpdateMenu(menu); 83 bridge_->UpdateMenu(menu);
80 } 84 }
81 85
86 - (void)menuWillOpen:(NSMenu*)menu {
87 if ([delegate_ respondsToSelector:@selector(bookmarkMenuWillOpen:)])
88 [delegate_ bookmarkMenuWillOpen:self];
89 }
90
91 - (void)menuDidClose:(NSMenu*)menu {
92 if ([delegate_ respondsToSelector:@selector(bookmarkMenuDidClose:)])
93 [delegate_ bookmarkMenuDidClose:self];
94 }
95
96 // Private /////////////////////////////////////////////////////////////////////
97
82 // Return the a BookmarkNode that has the given id (called 98 // Return the a BookmarkNode that has the given id (called
83 // "identifier" here to avoid conflict with objc's concept of "id"). 99 // "identifier" here to avoid conflict with objc's concept of "id").
84 - (const BookmarkNode*)nodeForIdentifier:(int)identifier { 100 - (const BookmarkNode*)nodeForIdentifier:(int)identifier {
85 return bridge_->GetBookmarkModel()->GetNodeByID(identifier); 101 return bridge_->GetBookmarkModel()->GetNodeByID(identifier);
86 } 102 }
87 103
88 // Open the URL of the given BookmarkNode in the current tab. 104 // Open the URL of the given BookmarkNode in the current tab.
89 - (void)openURLForNode:(const BookmarkNode*)node { 105 - (void)openURLForNode:(const BookmarkNode*)node {
90 Browser* browser = Browser::GetTabbedBrowser(bridge_->GetProfile(), true); 106 Browser* browser = Browser::GetTabbedBrowser(bridge_->GetProfile(), true);
91 if (!browser) 107 if (!browser)
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 159
144 - (IBAction)openAllBookmarksNewWindow:(id)sender { 160 - (IBAction)openAllBookmarksNewWindow:(id)sender {
145 [self openAll:[sender tag] withDisposition:NEW_WINDOW]; 161 [self openAll:[sender tag] withDisposition:NEW_WINDOW];
146 } 162 }
147 163
148 - (IBAction)openAllBookmarksIncognitoWindow:(id)sender { 164 - (IBAction)openAllBookmarksIncognitoWindow:(id)sender {
149 [self openAll:[sender tag] withDisposition:OFF_THE_RECORD]; 165 [self openAll:[sender tag] withDisposition:OFF_THE_RECORD];
150 } 166 }
151 167
152 @end // BookmarkMenuCocoaController 168 @end // BookmarkMenuCocoaController
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698