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

Unified Diff: chrome/browser/ui/cocoa/browser_window_command_handler.mm

Issue 1414033009: Implement a Menu Item to Hide the Toolbar in Fullscreen (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and merge code Created 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/browser_window_command_handler.mm
diff --git a/chrome/browser/ui/cocoa/browser_window_command_handler.mm b/chrome/browser/ui/cocoa/browser_window_command_handler.mm
index 2c13074ac6a60f9a7e10ec388e9ad029fc828ddc..f30b90d2d31ff9444ae7b475456f543c37482422 100644
--- a/chrome/browser/ui/cocoa/browser_window_command_handler.mm
+++ b/chrome/browser/ui/cocoa/browser_window_command_handler.mm
@@ -24,6 +24,16 @@
namespace {
+void SetToggleState(bool toggled, id item) {
+ DCHECK([item respondsToSelector:@selector(state)] &&
+ [item respondsToSelector:@selector(setState:)]);
+
+ NSInteger old_state = [item state];
+ NSInteger new_state = toggled ? NSOnState : NSOffState;
+ if (old_state != new_state)
+ [item setState:new_state];
+}
+
// Update a toggle state for an item if modified. The item may be an NSMenuItem
// or NSButton. Called by -validateUserInterfaceItem:.
void UpdateToggleStateWithTag(NSInteger tag, id item, NSWindow* window) {
@@ -37,11 +47,12 @@ void UpdateToggleStateWithTag(NSInteger tag, id item, NSWindow* window) {
// On Windows this logic happens in bookmark_bar_view.cc. This simply updates
// the menu item; it does not display the bookmark bar itself.
if (tag == IDC_SHOW_BOOKMARK_BAR) {
- bool toggled = browser->window()->IsBookmarkBarVisible();
- NSInteger oldState = [item state];
- NSInteger newState = toggled ? NSOnState : NSOffState;
- if (oldState != newState)
- [item setState:newState];
+ SetToggleState(browser->window()->IsBookmarkBarVisible(), item);
+ return;
+ }
+
+ if (tag == IDC_TOGGLE_FULLSCREEN_TOOLBAR) {
+ SetToggleState(browser->window()->ShouldHideFullscreenToolbar(), item);
return;
}
@@ -61,11 +72,8 @@ void UpdateToggleStateWithTag(NSInteger tag, id item, NSWindow* window) {
const std::string encoding = current_tab->GetEncoding();
- bool toggled = encoding_controller.IsItemChecked(profile, encoding, tag);
- NSInteger oldState = [item state];
- NSInteger newState = toggled ? NSOnState : NSOffState;
- if (oldState != newState)
- [item setState:newState];
+ SetToggleState(encoding_controller.IsItemChecked(profile, encoding, tag),
+ item);
}
NSString* GetTitleForViewsFullscreenMenuItem(Browser* browser) {
@@ -93,12 +101,11 @@ NSString* GetTitleForFullscreenMenuItem(Browser* browser) {
NSString* GetTitleForPresentationModeMenuItem(Browser* browser) {
NSWindow* ns_window = browser->window()->GetNativeWindow();
if (BrowserWindowController* controller = [ns_window windowController]) {
- return l10n_util::GetNSString([controller inPresentationMode]
- ? IDS_EXIT_PRESENTATION_MAC
- : IDS_ENTER_PRESENTATION_MAC);
+ return l10n_util::GetNSString([controller inPresentationMode]
+ ? IDS_EXIT_PRESENTATION_MAC
+ : IDS_ENTER_PRESENTATION_MAC);
}
-
- return GetTitleForViewsFullscreenMenuItem(browser);
+ return GetTitleForFullscreenMenuItem(browser);
}
// Identify the actual Browser to which the command should be dispatched. It
@@ -196,6 +203,15 @@ Browser* FindBrowserForSender(id sender, NSWindow* window) {
[menuItem setHidden:shouldHide];
break;
}
+ case IDC_TOGGLE_FULLSCREEN_TOOLBAR: {
+ // TODO(spqchan): Implement a preferences for this command and replace
+ // the Presentation Mode menu item with item.
+ if (NSMenuItem* menuItem = base::mac::ObjCCast<NSMenuItem>(item)) {
+ [menuItem setHidden:YES];
+ enable = false;
+ }
+ break;
+ }
default:
// Special handling for the contents of the Text Encoding submenu. On
// Mac OS, instead of enabling/disabling the top-level menu item, we
« no previous file with comments | « chrome/browser/ui/cocoa/browser_window_cocoa.mm ('k') | chrome/browser/ui/cocoa/browser_window_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698