summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-16 15:42:55 +0000
committerviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-16 15:42:55 +0000
commit4bca7a27e869803a35c71b242519427469b292f6 (patch)
tree25aed81af687c8666ea45da347dfda8104374ae5 /chrome/browser
parent05a7d775f0205e93e752beec3982b2be592a5050 (diff)
downloadchromium_src-4bca7a27e869803a35c71b242519427469b292f6.zip
chromium_src-4bca7a27e869803a35c71b242519427469b292f6.tar.gz
chromium_src-4bca7a27e869803a35c71b242519427469b292f6.tar.bz2
Mac: toggle between "Enter/Exit Full Screen" in menus.
BUG=24390 TEST=When *not* fullscreen, menu items (under View in main menu and in app menu) should be "Enter Full Screen"; when fullscreen, they should be "Exit Full Screen"; menu items should still work; keyboard shortcuts should still work. Review URL: http://codereview.chromium.org/1011002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41726 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/browser_window.h2
-rw-r--r--chrome/browser/cocoa/browser_window_controller.mm10
-rw-r--r--chrome/browser/cocoa/toolbar_controller.mm15
3 files changed, 26 insertions, 1 deletions
diff --git a/chrome/browser/browser_window.h b/chrome/browser/browser_window.h
index d4cf1309..80ec716 100644
--- a/chrome/browser/browser_window.h
+++ b/chrome/browser/browser_window.h
@@ -21,7 +21,9 @@ class StatusBubble;
class TabContents;
class TabContentsContainer;
class TemplateURL;
+#if !defined(OS_MACOSX)
class ToolbarView;
+#endif
struct NativeWebKeyboardEvent;
namespace gfx {
diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm
index 61fad98..6986885 100644
--- a/chrome/browser/cocoa/browser_window_controller.mm
+++ b/chrome/browser/cocoa/browser_window_controller.mm
@@ -51,6 +51,7 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/tab_contents/tab_contents_view.h"
#include "chrome/browser/tabs/tab_strip_model.h"
+#include "grit/generated_resources.h"
#include "grit/locale_settings.h"
@@ -864,9 +865,16 @@
// command updater doesn't know.
enable &= browser_->CanRestoreTab();
break;
- case IDC_FULLSCREEN:
+ case IDC_FULLSCREEN: {
enable &= [self supportsFullscreen];
+ if ([static_cast<NSObject*>(item) isKindOfClass:[NSMenuItem class]]) {
+ NSString* menuTitle = l10n_util::GetNSString(
+ [self isFullscreen] ? IDS_EXIT_FULLSCREEN_MAC :
+ IDS_ENTER_FULLSCREEN_MAC);
+ [static_cast<NSMenuItem*>(item) setTitle:menuTitle];
+ }
break;
+ }
case IDC_SYNC_BOOKMARKS:
enable &= ProfileSyncService::IsSyncEnabled();
sync_ui_util::UpdateSyncItem(item, enable, browser_->profile());
diff --git a/chrome/browser/cocoa/toolbar_controller.mm b/chrome/browser/cocoa/toolbar_controller.mm
index 6ea0d2b..cb62cef 100644
--- a/chrome/browser/cocoa/toolbar_controller.mm
+++ b/chrome/browser/cocoa/toolbar_controller.mm
@@ -14,6 +14,7 @@
#include "chrome/browser/app_menu_model.h"
#include "chrome/browser/autocomplete/autocomplete_edit_view.h"
#include "chrome/browser/browser.h"
+#include "chrome/browser/browser_window.h"
#include "chrome/browser/bubble_positioner.h"
#import "chrome/browser/cocoa/autocomplete_text_field.h"
#import "chrome/browser/cocoa/autocomplete_text_field_editor.h"
@@ -128,6 +129,20 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
virtual void ExecuteCommand(int command_id) {
browser_->ExecuteCommand(command_id);
}
+ virtual bool IsLabelForCommandIdDynamic(int command_id) const {
+ // On Mac, switch between "Enter Full Screen" and "Exit Full Screen".
+ return (command_id == IDC_FULLSCREEN);
+ }
+ virtual string16 GetLabelForCommandId(int command_id) const {
+ if (command_id == IDC_FULLSCREEN) {
+ int string_id = IDS_ENTER_FULLSCREEN_MAC; // Default to Enter.
+ // Note: On startup, |window()| may be NULL.
+ if (browser_->window() && browser_->window()->IsFullscreen())
+ string_id = IDS_EXIT_FULLSCREEN_MAC;
+ return l10n_util::GetStringUTF16(string_id);
+ }
+ return menus::SimpleMenuModel::Delegate::GetLabelForCommandId(command_id);
+ }
private:
Browser* browser_;