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

Unified Diff: chrome/browser/cocoa/browser_window_controller.mm

Issue 46078: Mac bookmark work. ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/cocoa/browser_window_controller.h ('k') | chrome/browser/cocoa/tab_contents_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cocoa/browser_window_controller.mm
===================================================================
--- chrome/browser/cocoa/browser_window_controller.mm (revision 11933)
+++ chrome/browser/cocoa/browser_window_controller.mm (working copy)
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#import "chrome/app/chrome_dll_resource.h" // IDC_*
#import "chrome/browser/browser.h"
#import "chrome/browser/cocoa/browser_window_cocoa.h"
#import "chrome/browser/cocoa/browser_window_controller.h"
@@ -17,7 +18,8 @@
if ((self = [super initWithWindowNibName:@"BrowserWindow"])) {
browser_ = browser;
DCHECK(browser_);
- windowShim_ = new BrowserWindowCocoa(self, [self window]);
+ windowShim_ = new BrowserWindowCocoa(browser, self, [self window]);
+ windowShim_->Init();
}
return self;
}
@@ -40,12 +42,8 @@
// this window's Browser and the tab strip view. The controller will handle
// registering for the appropriate tab notifications from the back-end and
// managing the creation of new tabs.
- tabStripController_ =
- [[TabStripController alloc]
- initWithView:tabStripView_
- tabModel:browser_->tabstrip_model()
- toolbarModel:browser_->toolbar_model()
- commands:browser_->command_updater()];
+ tabStripController_ = [[TabStripController alloc]
+ initWithView:tabStripView_ browser:browser_];
// Place the tab bar above the content box and add it to the view hierarchy
// as a sibling of the content view so it can overlap with the window frame.
@@ -102,6 +100,27 @@
return YES;
}
+// Update a toggle state for an NSMenuItem if modified.
+// Take care to insure |item| looks like a NSMenuItem.
+// Called by validateUserInterfaceItem:.
+- (void)updateToggleStateWithTag:(NSInteger)tag forItem:(id)item {
+ if (![item respondsToSelector:@selector(state)] ||
+ ![item respondsToSelector:@selector(setState:)])
+ return;
+
+ // On Windows this logic happens in bookmark_bar_view.cc. On the
+ // Mac we're a lot more MVC happy so we've moved it into a
+ // controller. To be clear, this simply updates the menu item; it
+ // does not display the bookmark bar itself.
+ if (tag == IDC_SHOW_BOOKMARK_BAR) {
+ bool toggled = windowShim_->IsBookmarkBarVisible();
+ NSInteger oldState = [item state];
+ NSInteger newState = toggled ? NSOnState : NSOffState;
+ if (oldState != newState)
+ [item setState:newState];
+ }
+}
+
// Called to validate menu and toolbar items when this window is key. All the
// items we care about have been set with the |commandDispatch:| action and
// a target of FirstResponder in IB. If it's not one of those, let it
@@ -117,8 +136,15 @@
BOOL enable = NO;
if (action == @selector(commandDispatch:)) {
NSInteger tag = [item tag];
- if (browser_->command_updater()->SupportsCommand(tag))
+ if (browser_->command_updater()->SupportsCommand(tag)) {
+ // Generate return value (enabled state)
enable = browser_->command_updater()->IsCommandEnabled(tag) ? YES : NO;
+
+ // If the item is toggleable, find it's toggle state and
+ // try to update it. This is a little awkward, but the alternative is
+ // to check after a commandDispatch, which seems worse.
+ [self updateToggleStateWithTag:tag forItem:item];
+ }
}
return enable;
}
@@ -175,4 +201,14 @@
[tabStripController_ focusLocationBar];
}
+- (BOOL)isBookmarkBarVisible {
+ return [tabStripController_ isBookmarkBarVisible];
+
+}
+
+- (void)toggleBookmarkBar {
+ [tabStripController_ toggleBookmarkBar];
+}
+
+
@end
« no previous file with comments | « chrome/browser/cocoa/browser_window_controller.h ('k') | chrome/browser/cocoa/tab_contents_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698