OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 #import "chrome/browser/ui/cocoa/browser_window_controller.h" | 5 #import "chrome/browser/ui/cocoa/browser_window_controller.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <numeric> | 8 #include <numeric> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
11 #include "base/mac/bundle_locations.h" | 11 #include "base/mac/bundle_locations.h" |
12 #include "base/mac/mac_util.h" | 12 #include "base/mac/mac_util.h" |
13 #include "base/strings/sys_string_conversions.h" | 13 #include "base/strings/sys_string_conversions.h" |
14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
15 #include "chrome/app/chrome_command_ids.h" // IDC_* | 15 #include "chrome/app/chrome_command_ids.h" // IDC_* |
16 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 16 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
17 #include "chrome/browser/browser_process.h" | 17 #include "chrome/browser/browser_process.h" |
18 #include "chrome/browser/devtools/devtools_window.h" | 18 #include "chrome/browser/devtools/devtools_window.h" |
| 19 #include "chrome/browser/fullscreen.h" |
19 #include "chrome/browser/profiles/avatar_menu_model.h" | 20 #include "chrome/browser/profiles/avatar_menu_model.h" |
20 #include "chrome/browser/profiles/profile.h" | 21 #include "chrome/browser/profiles/profile.h" |
21 #include "chrome/browser/profiles/profile_info_cache.h" | 22 #include "chrome/browser/profiles/profile_info_cache.h" |
22 #include "chrome/browser/profiles/profile_manager.h" | 23 #include "chrome/browser/profiles/profile_manager.h" |
23 #include "chrome/browser/signin/signin_ui_util.h" | 24 #include "chrome/browser/signin/signin_ui_util.h" |
24 #include "chrome/browser/themes/theme_service.h" | 25 #include "chrome/browser/themes/theme_service.h" |
25 #include "chrome/browser/themes/theme_service_factory.h" | 26 #include "chrome/browser/themes/theme_service_factory.h" |
26 #include "chrome/browser/ui/bookmarks/bookmark_editor.h" | 27 #include "chrome/browser/ui/bookmarks/bookmark_editor.h" |
27 #include "chrome/browser/ui/browser.h" | 28 #include "chrome/browser/ui/browser.h" |
28 #include "chrome/browser/ui/browser_command_controller.h" | 29 #include "chrome/browser/ui/browser_command_controller.h" |
(...skipping 1082 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1111 enable &= !![[static_cast<NSMenuItem*>(item) keyEquivalent] length]; | 1112 enable &= !![[static_cast<NSMenuItem*>(item) keyEquivalent] length]; |
1112 break; | 1113 break; |
1113 case IDC_FULLSCREEN: { | 1114 case IDC_FULLSCREEN: { |
1114 if ([static_cast<NSObject*>(item) isKindOfClass:[NSMenuItem class]]) { | 1115 if ([static_cast<NSObject*>(item) isKindOfClass:[NSMenuItem class]]) { |
1115 NSString* menuTitle = l10n_util::GetNSString( | 1116 NSString* menuTitle = l10n_util::GetNSString( |
1116 [self isFullscreen] && ![self inPresentationMode] ? | 1117 [self isFullscreen] && ![self inPresentationMode] ? |
1117 IDS_EXIT_FULLSCREEN_MAC : | 1118 IDS_EXIT_FULLSCREEN_MAC : |
1118 IDS_ENTER_FULLSCREEN_MAC); | 1119 IDS_ENTER_FULLSCREEN_MAC); |
1119 [static_cast<NSMenuItem*>(item) setTitle:menuTitle]; | 1120 [static_cast<NSMenuItem*>(item) setTitle:menuTitle]; |
1120 | 1121 |
1121 if (base::mac::IsOSSnowLeopard()) | 1122 if (!chrome::mac::SupportsSystemFullscreen()) |
1122 [static_cast<NSMenuItem*>(item) setHidden:YES]; | 1123 [static_cast<NSMenuItem*>(item) setHidden:YES]; |
1123 } | 1124 } |
1124 break; | 1125 break; |
1125 } | 1126 } |
1126 case IDC_PRESENTATION_MODE: { | 1127 case IDC_PRESENTATION_MODE: { |
1127 if ([static_cast<NSObject*>(item) isKindOfClass:[NSMenuItem class]]) { | 1128 if ([static_cast<NSObject*>(item) isKindOfClass:[NSMenuItem class]]) { |
1128 NSString* menuTitle = l10n_util::GetNSString( | 1129 NSString* menuTitle = l10n_util::GetNSString( |
1129 [self inPresentationMode] ? IDS_EXIT_PRESENTATION_MAC : | 1130 [self inPresentationMode] ? IDS_EXIT_PRESENTATION_MAC : |
1130 IDS_ENTER_PRESENTATION_MAC); | 1131 IDS_ENTER_PRESENTATION_MAC); |
1131 [static_cast<NSMenuItem*>(item) setTitle:menuTitle]; | 1132 [static_cast<NSMenuItem*>(item) setTitle:menuTitle]; |
(...skipping 889 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2021 // "Enter Full Screen" menu item. On Snow Leopard, this function is never | 2022 // "Enter Full Screen" menu item. On Snow Leopard, this function is never |
2022 // called by the UI directly, but it provides the implementation for | 2023 // called by the UI directly, but it provides the implementation for |
2023 // |-setPresentationMode:|. | 2024 // |-setPresentationMode:|. |
2024 - (void)setFullscreen:(BOOL)fullscreen { | 2025 - (void)setFullscreen:(BOOL)fullscreen { |
2025 if (fullscreen == [self isFullscreen]) | 2026 if (fullscreen == [self isFullscreen]) |
2026 return; | 2027 return; |
2027 | 2028 |
2028 if (!chrome::IsCommandEnabled(browser_.get(), IDC_FULLSCREEN)) | 2029 if (!chrome::IsCommandEnabled(browser_.get(), IDC_FULLSCREEN)) |
2029 return; | 2030 return; |
2030 | 2031 |
2031 if (base::mac::IsOSLionOrLater()) { | 2032 if (chrome::mac::SupportsSystemFullscreen()) { |
2032 enteredPresentationModeFromFullscreen_ = YES; | 2033 enteredPresentationModeFromFullscreen_ = YES; |
2033 if ([[self window] isKindOfClass:[FramedBrowserWindow class]]) | 2034 if ([[self window] isKindOfClass:[FramedBrowserWindow class]]) |
2034 [static_cast<FramedBrowserWindow*>([self window]) toggleSystemFullScreen]; | 2035 [static_cast<FramedBrowserWindow*>([self window]) toggleSystemFullScreen]; |
2035 } else { | 2036 } else { |
2036 if (fullscreen) | 2037 if (fullscreen) |
2037 [self enterFullscreenForSnowLeopard]; | 2038 [self enterFullscreenForSnowLeopard]; |
2038 else | 2039 else |
2039 [self exitFullscreenForSnowLeopard]; | 2040 [self exitFullscreenForSnowLeopard]; |
2040 } | 2041 } |
2041 } | 2042 } |
(...skipping 24 matching lines...) Expand all Loading... |
2066 // function also triggers the Lion machinery to enter fullscreen mode as well as | 2067 // function also triggers the Lion machinery to enter fullscreen mode as well as |
2067 // set presentation mode. On Snow Leopard, this function is called by the | 2068 // set presentation mode. On Snow Leopard, this function is called by the |
2068 // "Enter Presentation Mode" menu item, and triggering presentation mode always | 2069 // "Enter Presentation Mode" menu item, and triggering presentation mode always |
2069 // moves the user into fullscreen mode. | 2070 // moves the user into fullscreen mode. |
2070 - (void)setPresentationMode:(BOOL)presentationMode | 2071 - (void)setPresentationMode:(BOOL)presentationMode |
2071 url:(const GURL&)url | 2072 url:(const GURL&)url |
2072 bubbleType:(FullscreenExitBubbleType)bubbleType { | 2073 bubbleType:(FullscreenExitBubbleType)bubbleType { |
2073 fullscreenUrl_ = url; | 2074 fullscreenUrl_ = url; |
2074 fullscreenBubbleType_ = bubbleType; | 2075 fullscreenBubbleType_ = bubbleType; |
2075 | 2076 |
2076 // Presentation mode on Snow Leopard maps directly to fullscreen mode. | 2077 // Presentation mode on systems without fullscreen support maps directly to |
2077 if (base::mac::IsOSSnowLeopard()) { | 2078 // fullscreen mode. |
| 2079 if (!chrome::mac::SupportsSystemFullscreen()) { |
2078 [self setFullscreen:presentationMode]; | 2080 [self setFullscreen:presentationMode]; |
2079 return; | 2081 return; |
2080 } | 2082 } |
2081 | 2083 |
2082 if (presentationMode) { | 2084 if (presentationMode) { |
2083 BOOL fullscreen = [self isFullscreen]; | 2085 BOOL fullscreen = [self isFullscreen]; |
2084 enteredPresentationModeFromFullscreen_ = fullscreen; | 2086 enteredPresentationModeFromFullscreen_ = fullscreen; |
2085 enteringPresentationMode_ = YES; | 2087 enteringPresentationMode_ = YES; |
2086 | 2088 |
2087 if (fullscreen) { | 2089 if (fullscreen) { |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2261 | 2263 |
2262 - (BOOL)supportsBookmarkBar { | 2264 - (BOOL)supportsBookmarkBar { |
2263 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; | 2265 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; |
2264 } | 2266 } |
2265 | 2267 |
2266 - (BOOL)isTabbedWindow { | 2268 - (BOOL)isTabbedWindow { |
2267 return browser_->is_type_tabbed(); | 2269 return browser_->is_type_tabbed(); |
2268 } | 2270 } |
2269 | 2271 |
2270 @end // @implementation BrowserWindowController(WindowType) | 2272 @end // @implementation BrowserWindowController(WindowType) |
OLD | NEW |