// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_GFX_MAC_NSWINDOW_FRAME_CONTROLS_H_
#define UI_GFX_MAC_NSWINDOW_FRAME_CONTROLS_H_

#include "ui/gfx/gfx_export.h"

@class NSWindow;

namespace gfx {

class Size;

// Set whether the window can be fullscreened.
GFX_EXPORT void SetNSWindowCanFullscreen(NSWindow* window,
                                         bool allow_fullscreen);

// Returns whether the window is always-on-top.
GFX_EXPORT bool IsNSWindowAlwaysOnTop(NSWindow* window);

// Sets whether the window is always-on-top. This also sets
// NSWindowCollectionBehaviorManaged because by default always-on-top windows
// are NSWindowCollectionBehaviorTransient which means they will not appear in
// Expose and cannot be moved between workspaces.
GFX_EXPORT void SetNSWindowAlwaysOnTop(NSWindow* window,
                                       bool always_on_top);

// Sets whether the window appears on all workspaces.
GFX_EXPORT void SetNSWindowVisibleOnAllWorkspaces(NSWindow* window,
                                                  bool always_visible);

// Sets the min/max size of the window as well as showing/hiding resize,
// maximize, and fullscreen controls.
// Sizes refer to the content size (inner bounds).
GFX_EXPORT void ApplyNSWindowSizeConstraints(NSWindow* window,
                                             const gfx::Size& min_size,
                                             const gfx::Size& max_size,
                                             bool can_resize,
                                             bool can_fullscreen);

}  // namespace gfx

#endif  // UI_GFX_MAC_NSWINDOW_FRAME_CONTROLS_H_
