+ wxASSERT(win==m_wxCocoaInterface);
+ wxCHECK_RET(win,wxT("notificationDidResignKey received but no wxWindow exists"));
+ win->CocoaDelegate_windowDidResignKey();
+}
+
+- (void)windowDidBecomeMain: (NSNotification *)notification
+{
+ wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
+ wxASSERT(win==m_wxCocoaInterface);
+ wxCHECK_RET(win,wxT("notificationDidBecomeMain received but no wxWindow exists"));
+ win->CocoaDelegate_windowDidBecomeMain();
+}
+
+- (void)windowDidResignMain: (NSNotification *)notification
+{
+ wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
+ wxASSERT(win==m_wxCocoaInterface);
+ wxCHECK_RET(win,wxT("notificationDidResignMain received but no wxWindow exists"));
+ win->CocoaDelegate_windowDidResignMain();
+}
+
+- (BOOL)windowShouldClose: (id)sender
+{
+ wxLogTrace(wxTRACE_COCOA,wxT("windowShouldClose"));
+ wxCocoaNSWindow *tlw = wxCocoaNSWindow::GetFromCocoa(sender);
+ wxASSERT(tlw==m_wxCocoaInterface);
+ if(tlw && !tlw->CocoaDelegate_windowShouldClose())
+ {
+ wxLogTrace(wxTRACE_COCOA,wxT("Window will not be closed"));
+ return NO;
+ }
+ wxLogTrace(wxTRACE_COCOA,wxT("Window will be closed"));
+ return YES;
+}
+
+- (void)windowWillClose: (NSNotification *)notification
+{
+ wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
+ wxASSERT(win==m_wxCocoaInterface);
+ wxCHECK_RET(win,wxT("windowWillClose received but no wxWindow exists"));
+ win->CocoaDelegate_windowWillClose();
+}
+
+// Menu item handlers
+- (void)wxMenuItemAction: (NSMenuItem *)sender
+{
+ wxASSERT(m_wxCocoaInterface);
+ m_wxCocoaInterface->CocoaDelegate_wxMenuItemAction(sender);
+}
+
+- (BOOL)validateMenuItem: (NSMenuItem *)sender
+{
+ wxASSERT(m_wxCocoaInterface);
+ return m_wxCocoaInterface->CocoaDelegate_validateMenuItem(sender);