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

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: Fixed some issues 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 260c95cde6a68417a1c1a38d1f8114b019f1f025..a86cb4970d1172151dcb0723e001f028f047aa76 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 oldState = [item state];
+ NSInteger newState = toggled ? NSOnState : NSOffState;
+ if (oldState != newState)
+ [item setState:newState];
+}
+
// 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) {
@@ -88,17 +96,14 @@ NSString* GetTitleForFullscreenMenuItem(Browser* browser) {
return GetTitleForViewsFullscreenMenuItem(browser);
}
-// Get the text for the "Enter/Exit Presentation Mode" menu item.
-// TODO(jackhou): Remove the dependency on BrowserWindowController(Private).
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
@@ -163,7 +168,12 @@ Browser* FindBrowserForSender(id sender, NSWindow* window) {
}
case IDC_PRESENTATION_MODE: {
if (NSMenuItem* menuItem = base::mac::ObjCCast<NSMenuItem>(item)) {
- [menuItem setTitle:GetTitleForPresentationModeMenuItem(browser)];
+ if (chrome::mac::SupportsSystemFullscreen()) {
+ [menuItem setHidden:YES];
+ enable = NO;
+ } else {
+ [menuItem setTitle:GetTitleForPresentationModeMenuItem(browser)];
+ }
}
break;
}
@@ -196,6 +206,16 @@ Browser* FindBrowserForSender(id sender, NSWindow* window) {
[menuItem setHidden:shouldHide];
break;
}
+ case IDC_TOGGLE_FULLSCREEN_TOOLBAR: {
Robert Sesek 2015/11/04 21:57:16 Maybe make this item unconditionally disabled or h
spqchan 2015/11/04 23:59:21 Done.
+ NSMenuItem* menuItem = base::mac::ObjCCast<NSMenuItem>(item);
+ if (chrome::mac::SupportsSystemFullscreen()) {
+ BOOL isFullscreenToolbarHidden = NO;
Robert Sesek 2015/11/04 21:57:16 Should there be a TODO for this?
spqchan 2015/11/04 23:59:21 Done.
+ [menuItem setState:isFullscreenToolbarHidden];
+ } else {
+ [menuItem setHidden:YES];
+ }
+ 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