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

Side by Side Diff: chrome/browser/cocoa/bookmark_bar_controller.h

Issue 373022: Enable and implement last 2 items in bookmark bar context menu: "Open... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month 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) 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 #ifndef CHROME_BROWSER_COCOA_BOOKMARK_BAR_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_COCOA_BOOKMARK_BAR_CONTROLLER_H_
6 #define CHROME_BROWSER_COCOA_BOOKMARK_BAR_CONTROLLER_H_ 6 #define CHROME_BROWSER_COCOA_BOOKMARK_BAR_CONTROLLER_H_
7 7
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 #include <map> 9 #include <map>
10 10
(...skipping 24 matching lines...) Expand all
35 const CGFloat kDefaultBookmarkWidth = 150.0; 35 const CGFloat kDefaultBookmarkWidth = 150.0;
36 const CGFloat kBookmarkVerticalPadding = 2.0; 36 const CGFloat kBookmarkVerticalPadding = 2.0;
37 const CGFloat kBookmarkHorizontalPadding = 1.0; 37 const CGFloat kBookmarkHorizontalPadding = 1.0;
38 38
39 const CGFloat kNoBookmarksHorizontalOffset = 5.0; 39 const CGFloat kNoBookmarksHorizontalOffset = 5.0;
40 const CGFloat kNoBookmarksVerticalOffset = 20.0; 40 const CGFloat kNoBookmarksVerticalOffset = 20.0;
41 const CGFloat kNoBookmarksNTPVerticalOffset = 27.0; 41 const CGFloat kNoBookmarksNTPVerticalOffset = 27.0;
42 42
43 } // namespace 43 } // namespace
44 44
45 // The interface for an object which can open URLs for a bookmark.
46 @protocol BookmarkURLOpener
47 - (void)openBookmarkURL:(const GURL&)url
48 disposition:(WindowOpenDisposition)disposition;
49 @end
50
51 // A controller for the bookmark bar in the browser window. Handles showing 45 // A controller for the bookmark bar in the browser window. Handles showing
52 // and hiding based on the preference in the given profile. 46 // and hiding based on the preference in the given profile.
53 @interface BookmarkBarController : 47 @interface BookmarkBarController :
54 NSViewController<BookmarkBarToolbarViewController> { 48 NSViewController<BookmarkBarToolbarViewController> {
55 @private 49 @private
56 Browser* browser_; // weak; owned by its window 50 Browser* browser_; // weak; owned by its window
57 BookmarkModel* bookmarkModel_; // weak; part of the profile owned by the 51 BookmarkModel* bookmarkModel_; // weak; part of the profile owned by the
58 // top-level Browser object. 52 // top-level Browser object.
59 53
60 // Our initial view width, which is applied in awakeFromNib. 54 // Our initial view width, which is applied in awakeFromNib.
(...skipping 23 matching lines...) Expand all
84 // BookmarkModelObserver) 78 // BookmarkModelObserver)
85 scoped_ptr<BookmarkBarBridge> bridge_; 79 scoped_ptr<BookmarkBarBridge> bridge_;
86 80
87 // Delegate that is alerted about whether it should be compressed because 81 // Delegate that is alerted about whether it should be compressed because
88 // it's right next to us. 82 // it's right next to us.
89 id<ToolbarCompressable> compressDelegate_; // weak 83 id<ToolbarCompressable> compressDelegate_; // weak
90 84
91 // Delegate that can resize us. 85 // Delegate that can resize us.
92 id<ViewResizer> resizeDelegate_; // weak 86 id<ViewResizer> resizeDelegate_; // weak
93 87
94 // Delegate that can open URLs for us.
95 id<BookmarkURLOpener> urlDelegate_; // weak
96
97 // Lets us get TabSelectedAt notifications. 88 // Lets us get TabSelectedAt notifications.
98 scoped_ptr<TabStripModelObserverBridge> tabObserver_; 89 scoped_ptr<TabStripModelObserverBridge> tabObserver_;
99 90
100 IBOutlet BookmarkBarView* buttonView_; 91 IBOutlet BookmarkBarView* buttonView_;
101 IBOutlet MenuButton* offTheSideButton_; // aka the chevron 92 IBOutlet MenuButton* offTheSideButton_; // aka the chevron
102 IBOutlet NSMenu* buttonContextMenu_; 93 IBOutlet NSMenu* buttonContextMenu_;
103 94
104 // "Other bookmarks" button on the right side. 95 // "Other bookmarks" button on the right side.
105 scoped_nsobject<NSButton> otherBookmarksButton_; 96 scoped_nsobject<NSButton> otherBookmarksButton_;
106 } 97 }
107 98
108 // Initializes the bookmark bar controller with the given browser 99 // Initializes the bookmark bar controller with the given browser
109 // profile and delegates. 100 // profile and delegates.
110 - (id)initWithBrowser:(Browser*)browser 101 - (id)initWithBrowser:(Browser*)browser
111 initialWidth:(float)initialWidth 102 initialWidth:(float)initialWidth
112 compressDelegate:(id<ToolbarCompressable>)compressDelegate 103 compressDelegate:(id<ToolbarCompressable>)compressDelegate
113 resizeDelegate:(id<ViewResizer>)resizeDelegate 104 resizeDelegate:(id<ViewResizer>)resizeDelegate;
114 urlDelegate:(id<BookmarkURLOpener>)urlDelegate;
115 105
116 // Returns the backdrop to the bookmark bar. 106 // Returns the backdrop to the bookmark bar.
117 - (BackgroundGradientView*)backgroundGradientView; 107 - (BackgroundGradientView*)backgroundGradientView;
118 108
119 // Tell the bar to show itself if needed (e.g. if the kShowBookmarkBar 109 // Tell the bar to show itself if needed (e.g. if the kShowBookmarkBar
120 // is set). Called once after the controller is first created. 110 // is set). Called once after the controller is first created.
121 - (void)showIfNeeded; 111 - (void)showIfNeeded;
122 112
123 // Update the visible state of the bookmark bar based on the current value of 113 // Update the visible state of the bookmark bar based on the current value of
124 // -[BookmarkBarController isAlwaysVisible]. 114 // -[BookmarkBarController isAlwaysVisible].
(...skipping 27 matching lines...) Expand all
152 - (IBAction)openFolderMenuFromButton:(id)sender; 142 - (IBAction)openFolderMenuFromButton:(id)sender;
153 // From a context menu over the button, ... 143 // From a context menu over the button, ...
154 - (IBAction)openBookmarkInNewForegroundTab:(id)sender; 144 - (IBAction)openBookmarkInNewForegroundTab:(id)sender;
155 - (IBAction)openBookmarkInNewWindow:(id)sender; 145 - (IBAction)openBookmarkInNewWindow:(id)sender;
156 - (IBAction)openBookmarkInIncognitoWindow:(id)sender; 146 - (IBAction)openBookmarkInIncognitoWindow:(id)sender;
157 - (IBAction)editBookmark:(id)sender; 147 - (IBAction)editBookmark:(id)sender;
158 - (IBAction)copyBookmark:(id)sender; 148 - (IBAction)copyBookmark:(id)sender;
159 - (IBAction)deleteBookmark:(id)sender; 149 - (IBAction)deleteBookmark:(id)sender;
160 // From a context menu over the bar, ... 150 // From a context menu over the bar, ...
161 - (IBAction)openAllBookmarks:(id)sender; 151 - (IBAction)openAllBookmarks:(id)sender;
152 - (IBAction)openAllBookmarksNewWindow:(id)sender;
153 - (IBAction)openAllBookmarksIncognitoWindow:(id)sender;
162 // Or from a context menu over either the bar or a button. 154 // Or from a context menu over either the bar or a button.
163 - (IBAction)addPage:(id)sender; 155 - (IBAction)addPage:(id)sender;
164 - (IBAction)addFolder:(id)sender; 156 - (IBAction)addFolder:(id)sender;
165 157
166 @end 158 @end
167 159
168 // Redirects from BookmarkBarBridge, the C++ object which glues us to 160 // Redirects from BookmarkBarBridge, the C++ object which glues us to
169 // the rest of Chromium. Internal to BookmarkBarController. 161 // the rest of Chromium. Internal to BookmarkBarController.
170 @interface BookmarkBarController(BridgeRedirect) 162 @interface BookmarkBarController(BridgeRedirect)
171 - (void)loaded:(BookmarkModel*)model; 163 - (void)loaded:(BookmarkModel*)model;
172 - (void)beingDeleted:(BookmarkModel*)model; 164 - (void)beingDeleted:(BookmarkModel*)model;
173 - (void)nodeMoved:(BookmarkModel*)model 165 - (void)nodeMoved:(BookmarkModel*)model
174 oldParent:(const BookmarkNode*)oldParent oldIndex:(int)oldIndex 166 oldParent:(const BookmarkNode*)oldParent oldIndex:(int)oldIndex
175 newParent:(const BookmarkNode*)newParent newIndex:(int)newIndex; 167 newParent:(const BookmarkNode*)newParent newIndex:(int)newIndex;
176 - (void)nodeAdded:(BookmarkModel*)model 168 - (void)nodeAdded:(BookmarkModel*)model
177 parent:(const BookmarkNode*)oldParent index:(int)index; 169 parent:(const BookmarkNode*)oldParent index:(int)index;
178 - (void)nodeRemoved:(BookmarkModel*)model 170 - (void)nodeRemoved:(BookmarkModel*)model
179 parent:(const BookmarkNode*)oldParent index:(int)index; 171 parent:(const BookmarkNode*)oldParent index:(int)index;
180 - (void)nodeChanged:(BookmarkModel*)model 172 - (void)nodeChanged:(BookmarkModel*)model
181 node:(const BookmarkNode*)node; 173 node:(const BookmarkNode*)node;
182 - (void)nodeFavIconLoaded:(BookmarkModel*)model 174 - (void)nodeFavIconLoaded:(BookmarkModel*)model
183 node:(const BookmarkNode*)node; 175 node:(const BookmarkNode*)node;
184 - (void)nodeChildrenReordered:(BookmarkModel*)model 176 - (void)nodeChildrenReordered:(BookmarkModel*)model
185 node:(const BookmarkNode*)node; 177 node:(const BookmarkNode*)node;
186 @end 178 @end
187 179
188 180
189 // These APIs should only be used by unit tests (or used internally). 181 // These APIs should only be used by unit tests (or used internally).
190 @interface BookmarkBarController(InternalOrTestingAPI) 182 @interface BookmarkBarController(InternalOrTestingAPI)
191 // Set the delegate for a unit test. 183 - (void)openURL:(GURL)url disposition:(WindowOpenDisposition)disposition;
192 - (void)setUrlDelegate:(id<BookmarkURLOpener>)urlDelegate;
193 - (NSCell*)cellForBookmarkNode:(const BookmarkNode*)node; 184 - (NSCell*)cellForBookmarkNode:(const BookmarkNode*)node;
194 - (void)clearBookmarkBar; 185 - (void)clearBookmarkBar;
195 - (BookmarkBarView*)buttonView; 186 - (BookmarkBarView*)buttonView;
196 - (NSArray*)buttons; 187 - (NSArray*)buttons;
197 - (NSRect)frameForBookmarkButtonFromCell:(NSCell*)cell xOffset:(int*)xOffset; 188 - (NSRect)frameForBookmarkButtonFromCell:(NSCell*)cell xOffset:(int*)xOffset;
198 - (void)checkForBookmarkButtonGrowth:(NSButton*)button; 189 - (void)checkForBookmarkButtonGrowth:(NSButton*)button;
199 - (void)frameDidChange; 190 - (void)frameDidChange;
200 - (BOOL)offTheSideButtonIsHidden; 191 - (BOOL)offTheSideButtonIsHidden;
201 - (NSMenu *)menuForFolderNode:(const BookmarkNode*)node; 192 - (NSMenu *)menuForFolderNode:(const BookmarkNode*)node;
202 - (int64)nodeIdFromMenuTag:(int32)tag; 193 - (int64)nodeIdFromMenuTag:(int32)tag;
203 - (int32)menuTagFromNodeId:(int64)menuid; 194 - (int32)menuTagFromNodeId:(int64)menuid;
204 - (void)buildOffTheSideMenu; 195 - (void)buildOffTheSideMenu;
205 - (NSMenu*)offTheSideMenu; 196 - (NSMenu*)offTheSideMenu;
206 - (NSButton*)offTheSideButton; 197 - (NSButton*)offTheSideButton;
207 - (NSButton*)otherBookmarksButton; 198 - (NSButton*)otherBookmarksButton;
208 @end 199 @end
209 200
210 #endif // CHROME_BROWSER_COCOA_BOOKMARK_BAR_CONTROLLER_H_ 201 #endif // CHROME_BROWSER_COCOA_BOOKMARK_BAR_CONTROLLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm ('k') | chrome/browser/cocoa/bookmark_bar_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698