| 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" |
| (...skipping 1989 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2000 | 2000 |
| 2001 - (void)handleLionToggleFullscreen { | 2001 - (void)handleLionToggleFullscreen { |
| 2002 DCHECK(base::mac::IsOSLionOrLater()); | 2002 DCHECK(base::mac::IsOSLionOrLater()); |
| 2003 chrome::ExecuteCommand(browser_.get(), IDC_FULLSCREEN); | 2003 chrome::ExecuteCommand(browser_.get(), IDC_FULLSCREEN); |
| 2004 } | 2004 } |
| 2005 | 2005 |
| 2006 // On Lion, this method is called by either the Lion fullscreen button or the | 2006 // On Lion, this method is called by either the Lion fullscreen button or the |
| 2007 // "Enter Full Screen" menu item. On Snow Leopard, this function is never | 2007 // "Enter Full Screen" menu item. On Snow Leopard, this function is never |
| 2008 // called by the UI directly, but it provides the implementation for | 2008 // called by the UI directly, but it provides the implementation for |
| 2009 // |-setPresentationMode:|. | 2009 // |-setPresentationMode:|. |
| 2010 - (void)setFullscreen:(BOOL)fullscreen | 2010 - (void)setFullscreen:(BOOL)fullscreen { |
| 2011 url:(const GURL&)url | |
| 2012 bubbleType:(FullscreenExitBubbleType)bubbleType { | |
| 2013 if (fullscreen == [self isFullscreen]) | 2011 if (fullscreen == [self isFullscreen]) |
| 2014 return; | 2012 return; |
| 2015 | 2013 |
| 2016 if (!chrome::IsCommandEnabled(browser_.get(), IDC_FULLSCREEN)) | 2014 if (!chrome::IsCommandEnabled(browser_.get(), IDC_FULLSCREEN)) |
| 2017 return; | 2015 return; |
| 2018 | 2016 |
| 2019 if (base::mac::IsOSLionOrLater()) { | 2017 if (base::mac::IsOSLionOrLater()) { |
| 2020 enteredPresentationModeFromFullscreen_ = YES; | 2018 enteredPresentationModeFromFullscreen_ = YES; |
| 2021 if ([[self window] isKindOfClass:[FramedBrowserWindow class]]) | 2019 if ([[self window] isKindOfClass:[FramedBrowserWindow class]]) |
| 2022 [static_cast<FramedBrowserWindow*>([self window]) toggleSystemFullScreen]; | 2020 [static_cast<FramedBrowserWindow*>([self window]) toggleSystemFullScreen]; |
| 2023 } else { | 2021 } else { |
| 2024 if (fullscreen) | 2022 if (fullscreen) |
| 2025 [self enterFullscreenForSnowLeopard]; | 2023 [self enterFullscreenForSnowLeopard]; |
| 2026 else | 2024 else |
| 2027 [self exitFullscreenForSnowLeopard]; | 2025 [self exitFullscreenForSnowLeopard]; |
| 2028 } | 2026 } |
| 2029 } | 2027 } |
| 2030 | 2028 |
| 2031 - (void)enterFullscreenForURL:(const GURL&)url | 2029 - (void)enterFullscreen { |
| 2032 bubbleType:(FullscreenExitBubbleType)bubbleType { | 2030 [self setFullscreen:YES]; |
| 2033 [self setFullscreen:YES url:url bubbleType:bubbleType]; | |
| 2034 } | 2031 } |
| 2035 | 2032 |
| 2036 - (void)exitFullscreen { | 2033 - (void)exitFullscreen { |
| 2037 // url: and bubbleType: are ignored when leaving fullscreen. | 2034 [self setFullscreen:NO]; |
| 2038 [self setFullscreen:NO url:GURL() bubbleType:FEB_TYPE_NONE]; | |
| 2039 } | 2035 } |
| 2040 | 2036 |
| 2041 - (void)updateFullscreenExitBubbleURL:(const GURL&)url | 2037 - (void)updateFullscreenExitBubbleURL:(const GURL&)url |
| 2042 bubbleType:(FullscreenExitBubbleType)bubbleType { | 2038 bubbleType:(FullscreenExitBubbleType)bubbleType { |
| 2043 fullscreenUrl_ = url; | 2039 fullscreenUrl_ = url; |
| 2044 fullscreenBubbleType_ = bubbleType; | 2040 fullscreenBubbleType_ = bubbleType; |
| 2045 [self showFullscreenExitBubbleIfNecessary]; | 2041 [self showFullscreenExitBubbleIfNecessary]; |
| 2046 } | 2042 } |
| 2047 | 2043 |
| 2048 - (BOOL)isFullscreen { | 2044 - (BOOL)isFullscreen { |
| 2049 return (fullscreenWindow_.get() != nil) || | 2045 return (fullscreenWindow_.get() != nil) || |
| 2050 ([[self window] styleMask] & NSFullScreenWindowMask) || | 2046 ([[self window] styleMask] & NSFullScreenWindowMask) || |
| 2051 enteringFullscreen_; | 2047 enteringFullscreen_; |
| 2052 } | 2048 } |
| 2053 | 2049 |
| 2054 // On Lion, this function is called by either the presentation mode toggle | 2050 // On Lion, this function is called by either the presentation mode toggle |
| 2055 // button or the "Enter Presentation Mode" menu item. In the latter case, this | 2051 // button or the "Enter Presentation Mode" menu item. In the latter case, this |
| 2056 // function also triggers the Lion machinery to enter fullscreen mode as well as | 2052 // function also triggers the Lion machinery to enter fullscreen mode as well as |
| 2057 // set presentation mode. On Snow Leopard, this function is called by the | 2053 // set presentation mode. On Snow Leopard, this function is called by the |
| 2058 // "Enter Presentation Mode" menu item, and triggering presentation mode always | 2054 // "Enter Presentation Mode" menu item, and triggering presentation mode always |
| 2059 // moves the user into fullscreen mode. | 2055 // moves the user into fullscreen mode. |
| 2060 - (void)setPresentationMode:(BOOL)presentationMode | 2056 - (void)setPresentationMode:(BOOL)presentationMode |
| 2061 url:(const GURL&)url | 2057 url:(const GURL&)url |
| 2062 bubbleType:(FullscreenExitBubbleType)bubbleType { | 2058 bubbleType:(FullscreenExitBubbleType)bubbleType { |
| 2063 fullscreenUrl_ = url; | 2059 fullscreenUrl_ = url; |
| 2064 fullscreenBubbleType_ = bubbleType; | 2060 fullscreenBubbleType_ = bubbleType; |
| 2065 | 2061 |
| 2066 // Presentation mode on Snow Leopard maps directly to fullscreen mode. | 2062 // Presentation mode on Snow Leopard maps directly to fullscreen mode. |
| 2067 if (base::mac::IsOSSnowLeopard()) { | 2063 if (base::mac::IsOSSnowLeopard()) { |
| 2068 [self setFullscreen:presentationMode url:url bubbleType:bubbleType]; | 2064 [self setFullscreen:presentationMode]; |
| 2069 return; | 2065 return; |
| 2070 } | 2066 } |
| 2071 | 2067 |
| 2072 if (presentationMode) { | 2068 if (presentationMode) { |
| 2073 BOOL fullscreen = [self isFullscreen]; | 2069 BOOL fullscreen = [self isFullscreen]; |
| 2074 enteredPresentationModeFromFullscreen_ = fullscreen; | 2070 enteredPresentationModeFromFullscreen_ = fullscreen; |
| 2075 enteringPresentationMode_ = YES; | 2071 enteringPresentationMode_ = YES; |
| 2076 | 2072 |
| 2077 if (fullscreen) { | 2073 if (fullscreen) { |
| 2078 // If already in fullscreen mode, just toggle the presentation mode | 2074 // If already in fullscreen mode, just toggle the presentation mode |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2244 | 2240 |
| 2245 - (BOOL)supportsBookmarkBar { | 2241 - (BOOL)supportsBookmarkBar { |
| 2246 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; | 2242 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; |
| 2247 } | 2243 } |
| 2248 | 2244 |
| 2249 - (BOOL)isTabbedWindow { | 2245 - (BOOL)isTabbedWindow { |
| 2250 return browser_->is_type_tabbed(); | 2246 return browser_->is_type_tabbed(); |
| 2251 } | 2247 } |
| 2252 | 2248 |
| 2253 @end // @implementation BrowserWindowController(WindowType) | 2249 @end // @implementation BrowserWindowController(WindowType) |
| OLD | NEW |