X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/aa992c594e2bc490ff2ccd34bd8b4963150c33ff..d4b73b1b8e585418459362c9bf9173aa21da8c41:/src/cocoa/NSWindow.mm diff --git a/src/cocoa/NSWindow.mm b/src/cocoa/NSWindow.mm index 45cf2bfa0a..aef1f0ead5 100644 --- a/src/cocoa/NSWindow.mm +++ b/src/cocoa/NSWindow.mm @@ -39,7 +39,10 @@ - (void)windowDidBecomeKey: (NSNotification *)notification; - (void)windowDidResignKey: (NSNotification *)notification; +- (void)windowDidBecomeMain: (NSNotification *)notification; +- (void)windowDidResignMain: (NSNotification *)notification; - (BOOL)windowShouldClose: (id)sender; +- (void)windowWillClose: (NSNotification *)notification; @end //interface wxNSWindowDelegate @implementation wxNSWindowDelegate : NSObject @@ -58,6 +61,20 @@ win->CocoaDelegate_windowDidResignKey(); } +- (void)windowDidBecomeMain: (NSNotification *)notification +{ + wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]); + wxCHECK_RET(win,"notificationDidBecomeMain received but no wxWindow exists"); + win->CocoaDelegate_windowDidBecomeMain(); +} + +- (void)windowDidResignMain: (NSNotification *)notification +{ + wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]); + wxCHECK_RET(win,"notificationDidResignMain received but no wxWindow exists"); + win->CocoaDelegate_windowDidResignMain(); +} + - (BOOL)windowShouldClose: (id)sender { wxLogDebug("windowShouldClose"); @@ -71,6 +88,13 @@ return YES; } +- (void)windowWillClose: (NSNotification *)notification +{ + wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]); + wxCHECK_RET(win,"windowWillClose received but no wxWindow exists"); + win->CocoaDelegate_windowWillClose(); +} + @end //implementation wxNSWindowDelegate // ============================================================================ @@ -100,6 +124,11 @@ void wxCocoaNSWindow::DisassociateNSWindow(WX_NSWindow cocoaNSWindow) } } +wxMenuBar* wxCocoaNSWindow::GetAppMenuBar(wxCocoaNSWindow *win) +{ + return NULL; +} + // ============================================================================ // @class wxPoserNSWindow // ============================================================================ @@ -107,19 +136,19 @@ void wxCocoaNSWindow::DisassociateNSWindow(WX_NSWindow cocoaNSWindow) { } -- (void)close; +- (BOOL)canBecomeMainWindow; @end // wxPoserNSwindow WX_IMPLEMENT_POSER(wxPoserNSWindow); @implementation wxPoserNSWindow : NSWindow -- (void)close +- (BOOL)canBecomeMainWindow { - wxLogDebug("close"); + bool canBecome = false; wxCocoaNSWindow *tlw = wxCocoaNSWindow::GetFromCocoa(self); - if(tlw) - tlw->Cocoa_close(); - [super close]; + if(!tlw || !tlw->Cocoa_canBecomeMainWindow(canBecome)) + canBecome = [super canBecomeMainWindow]; + return canBecome; } @end // implementation wxPoserNSWindow