1 // Copyright 2014 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.
5 #ifndef UI_VIEWS_COCOA_VIEWS_NSWINDOW_DELEGATE_H_
6 #define UI_VIEWS_COCOA_VIEWS_NSWINDOW_DELEGATE_H_
8 #import <Cocoa/Cocoa.h>
10 #import "base/mac/scoped_nsobject.h"
13 class NativeWidgetMac
;
14 class BridgedNativeWidget
;
17 // The delegate set on the NSWindow when a views::BridgedNativeWidget is
19 @interface ViewsNSWindowDelegate
: NSObject
<NSWindowDelegate
> {
21 views::BridgedNativeWidget
* parent_
; // Weak. Owns this.
22 base::scoped_nsobject
<NSCursor
> cursor_
;
25 // The NativeWidgetMac that created the window this is attached to. Returns
26 // NULL if not created by NativeWidgetMac.
27 @
property(nonatomic
, readonly
) views::NativeWidgetMac
* nativeWidgetMac
;
29 // If set, the cursor set in -[NSResponder updateCursor:] when the window is
30 // reached along the responder chain.
31 @
property(retain
, nonatomic
) NSCursor
* cursor
;
33 // Initialize with the given |parent|.
34 - (id
)initWithBridgedNativeWidget
:(views::BridgedNativeWidget
*)parent
;
36 // Notify that the window is about to be reordered on screen. This ensures a
37 // paint will occur, even if Cocoa has not yet updated the window visibility.
38 - (void)onWindowOrderWillChange
:(NSWindowOrderingMode
)orderingMode
;
40 // Notify that the window has been reordered in (or removed from) the window
41 // server's screen list. This is a substitute for -[NSWindowDelegate
42 // windowDidExpose:], which is only sent for nonretained windows (those without
43 // a backing store). |notification| is optional and can be set when redirecting
44 // a notification such as NSApplicationDidHideNotification.
45 - (void)onWindowOrderChanged
:(NSNotification
*)notification
;
47 // Notify when -[NSWindow display] is being called on the window.
48 - (void)onWindowWillDisplay
;
50 // Called on the delegate of a modal sheet when its modal session ends.
51 - (void)sheetDidEnd
:(NSWindow
*)sheet
52 returnCode
:(NSInteger
)returnCode
53 contextInfo
:(void*)contextInfo
;
57 #endif // UI_VIEWS_COCOA_VIEWS_NSWINDOW_DELEGATE_H_