• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_SHEET_INFO_H_
6 #define CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_SHEET_INFO_H_
7 
8 #import <Cocoa/Cocoa.h>
9 
10 #include "base/mac/scoped_nsobject.h"
11 
12 @protocol ConstrainedWindowSheet;
13 
14 // Information about a single sheet managed by
15 // ConstrainedWindowSheetController. Note, this is a private class not meant for
16 // public use.
17 @interface ConstrainedWindowSheetInfo : NSObject {
18  @private
19   base::scoped_nsprotocol<id<ConstrainedWindowSheet>> sheet_;
20   base::scoped_nsobject<NSView> parentView_;
21   base::scoped_nsobject<NSWindow> overlayWindow_;
22   BOOL sheetDidShow_;
23 }
24 
25 @property(nonatomic, readonly) id<ConstrainedWindowSheet> sheet;
26 @property(nonatomic, readonly) NSView* parentView;
27 @property(nonatomic, readonly) NSWindow* overlayWindow;
28 @property(nonatomic, assign) BOOL sheetDidShow;
29 
30 // Initializes a info object with for the given |sheet| and associated
31 // |parentView| and |overlayWindow|.
32 - (id)initWithSheet:(id<ConstrainedWindowSheet>)sheet
33          parentView:(NSView*)parentView
34       overlayWindow:(NSWindow*)overlayWindow;
35 
36 // Hides the sheet and the associated overlay window. Hiding is done in such
37 // a way as to not disturb the window cycle order.
38 - (void)hideSheet;
39 
40 // Shows the sheet and the associated overlay window.
41 - (void)showSheet;
42 
43 @end
44 
45 #endif  // CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_SHEET_INFO_H_
46