root/chrome/browser/ui/cocoa/constrained_window/constrained_window_sheet_info.h

/* [<][>][^][v][top][bottom][index][help] */
// Copyright (c) 2012 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 CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_SHEET_INFO_H_
#define CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_SHEET_INFO_H_

#import <Cocoa/Cocoa.h>

#include "base/mac/scoped_nsobject.h"

@protocol ConstrainedWindowSheet;

// Information about a single sheet managed by
// ConstrainedWindowSheetController. Note, this is a private class not meant for
// public use.
@interface ConstrainedWindowSheetInfo : NSObject {
 @private
  base::scoped_nsprotocol<id<ConstrainedWindowSheet>> sheet_;
  base::scoped_nsobject<NSView> parentView_;
  base::scoped_nsobject<NSWindow> overlayWindow_;
  BOOL sheetDidShow_;
}

@property(nonatomic, readonly) id<ConstrainedWindowSheet> sheet;
@property(nonatomic, readonly) NSView* parentView;
@property(nonatomic, readonly) NSWindow* overlayWindow;
@property(nonatomic, assign) BOOL sheetDidShow;

// Initializes a info object with for the given |sheet| and associated
// |parentView| and |overlayWindow|.
- (id)initWithSheet:(id<ConstrainedWindowSheet>)sheet
         parentView:(NSView*)parentView
      overlayWindow:(NSWindow*)overlayWindow;

// Hides the sheet and the associated overlay window. Hiding is done in such
// a way as to not disturb the window cycle order.
- (void)hideSheet;

// Shows the sheet and the associated overlay window.
- (void)showSheet;

@end

#endif  // CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_SHEET_INFO_H_

/* [<][>][^][v][top][bottom][index][help] */