1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef UI_BASE_COCOA_FULLSCREEN_WINDOW_MANAGER_H_
6#define UI_BASE_COCOA_FULLSCREEN_WINDOW_MANAGER_H_
7
8#import <Cocoa/Cocoa.h>
9
10#include "base/mac/mac_util.h"
11#include "base/mac/scoped_nsobject.h"
12#include "ui/base/ui_base_export.h"
13
14// A utility class to manage the fullscreen mode for a given window. This class
15// also updates the window frame if the screen changes.
16UI_BASE_EXPORT
17@interface FullscreenWindowManager : NSObject {
18 @private
19  base::scoped_nsobject<NSWindow> window_;
20  // Explicitly keep track of the screen we want to position the window in.
21  // This is better than using -[NSWindow screen] because that might change if
22  // the screen changes to a low resolution.
23  base::scoped_nsobject<NSScreen> desiredScreen_;
24  base::mac::FullScreenMode fullscreenMode_;
25  BOOL fullscreenActive_;
26}
27
28- (id)initWithWindow:(NSWindow*)window
29       desiredScreen:(NSScreen*)desiredScreen;
30
31// Enables fullscreen mode which causes the menubar and dock to be hidden as
32// needed.
33- (void)enterFullscreenMode;
34
35// Exists fullscreen mode which stops hiding the menubar and dock.
36- (void)exitFullscreenMode;
37
38@end
39
40#endif  // UI_BASE_COCOA_FULLSCREEN_WINDOW_MANAGER_H_
41