Automated Commit: Committing new LKGM version 7479.0.0 for chromeos.
[chromium-blink-merge.git] / ui / views / cocoa / views_nswindow_delegate.h
blob7dc64b662366a1cd4dafa54627f7bcc339e2f133
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"
11 #include "ui/views/views_export.h"
13 namespace views {
14 class NativeWidgetMac;
15 class BridgedNativeWidget;
18 // The delegate set on the NSWindow when a views::BridgedNativeWidget is
19 // initialized.
20 VIEWS_EXPORT
21 @interface ViewsNSWindowDelegate : NSObject<NSWindowDelegate> {
22 @private
23 views::BridgedNativeWidget* parent_; // Weak. Owns this.
24 base::scoped_nsobject<NSCursor> cursor_;
27 // The NativeWidgetMac that created the window this is attached to. Returns
28 // NULL if not created by NativeWidgetMac.
29 @property(nonatomic, readonly) views::NativeWidgetMac* nativeWidgetMac;
31 // If set, the cursor set in -[NSResponder updateCursor:] when the window is
32 // reached along the responder chain.
33 @property(retain, nonatomic) NSCursor* cursor;
35 // Initialize with the given |parent|.
36 - (id)initWithBridgedNativeWidget:(views::BridgedNativeWidget*)parent;
38 // Notify that the window is about to be reordered on screen. This ensures a
39 // paint will occur, even if Cocoa has not yet updated the window visibility.
40 - (void)onWindowOrderWillChange:(NSWindowOrderingMode)orderingMode;
42 // Notify that the window has been reordered in (or removed from) the window
43 // server's screen list. This is a substitute for -[NSWindowDelegate
44 // windowDidExpose:], which is only sent for nonretained windows (those without
45 // a backing store). |notification| is optional and can be set when redirecting
46 // a notification such as NSApplicationDidHideNotification.
47 - (void)onWindowOrderChanged:(NSNotification*)notification;
49 // Notify when -[NSWindow display] is being called on the window.
50 - (void)onWindowWillDisplay;
52 // Called on the delegate of a modal sheet when its modal session ends.
53 - (void)sheetDidEnd:(NSWindow*)sheet
54 returnCode:(NSInteger)returnCode
55 contextInfo:(void*)contextInfo;
57 // Redeclare methods defined in the protocol NSWindowDelegate which are only
58 // available on OSX 10.7+.
59 - (void)windowDidFailToEnterFullScreen:(NSWindow*)window;
60 - (void)windowDidFailToExitFullScreen:(NSWindow*)window;
62 // Called when the application receives a mouse-down, but before the event
63 // is processed by NSWindows. Returns NO if the event should be processed as-is,
64 // or YES if the event should be reposted to handle window dragging. Events are
65 // reposted at the CGSessionEventTap level because window dragging happens there
66 // before the application receives the event.
67 - (BOOL)shouldRepostPendingLeftMouseDown:(NSPoint)locationInWindow;
69 @end
71 #endif // UI_VIEWS_COCOA_VIEWS_NSWINDOW_DELEGATE_H_