// ============================================================================
@interface wxNSWindowDelegate : NSObject
{
// ============================================================================
@interface wxNSWindowDelegate : NSObject
{
- (void)windowDidBecomeKey: (NSNotification *)notification;
- (void)windowDidResignKey: (NSNotification *)notification;
- (void)windowDidBecomeMain: (NSNotification *)notification;
- (void)windowDidResignMain: (NSNotification *)notification;
- (BOOL)windowShouldClose: (id)sender;
- (void)windowWillClose: (NSNotification *)notification;
- (void)windowDidBecomeKey: (NSNotification *)notification;
- (void)windowDidResignKey: (NSNotification *)notification;
- (void)windowDidBecomeMain: (NSNotification *)notification;
- (void)windowDidResignMain: (NSNotification *)notification;
- (BOOL)windowShouldClose: (id)sender;
- (void)windowWillClose: (NSNotification *)notification;
+- (id)init
+{
+ m_wxCocoaInterface = NULL;
+ return [super init];
+}
+
+- (void)setWxCocoaInterface: (wxCocoaNSWindow *)wxCocoaInterface
+{
+ m_wxCocoaInterface = wxCocoaInterface;
+}
+
+- (wxCocoaNSWindow *)wxCocoaInterface
+{
+ return m_wxCocoaInterface;
+}
+
+// Delegate message handlers
- (void)windowDidBecomeKey: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
- (void)windowDidBecomeKey: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
win->CocoaDelegate_windowDidBecomeKey();
}
- (void)windowDidResignKey: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
win->CocoaDelegate_windowDidBecomeKey();
}
- (void)windowDidResignKey: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
win->CocoaDelegate_windowDidResignKey();
}
- (void)windowDidBecomeMain: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
win->CocoaDelegate_windowDidResignKey();
}
- (void)windowDidBecomeMain: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
win->CocoaDelegate_windowDidBecomeMain();
}
- (void)windowDidResignMain: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
win->CocoaDelegate_windowDidBecomeMain();
}
- (void)windowDidResignMain: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
return YES;
}
- (void)windowWillClose: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
return YES;
}
- (void)windowWillClose: (NSNotification *)notification
{
wxCocoaNSWindow *win = wxCocoaNSWindow::GetFromCocoa([notification object]);
+// 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);
+}
+
@end //implementation wxNSWindowDelegate
// ============================================================================
@end //implementation wxNSWindowDelegate
// ============================================================================
-struct objc_object *wxCocoaNSWindow::sm_cocoaDelegate = [[wxNSWindowDelegate alloc] init];
+wxCocoaNSWindow::wxCocoaNSWindow()
+{
+ m_cocoaDelegate = [[wxNSWindowDelegate alloc] init];
+ [m_cocoaDelegate setWxCocoaInterface: this];
+}
+
+wxCocoaNSWindow::~wxCocoaNSWindow()
+{
+ [m_cocoaDelegate setWxCocoaInterface: NULL];
+ [m_cocoaDelegate release];
+}
{
[cocoaNSWindow setReleasedWhenClosed: NO];
sm_cocoaHash.insert(wxCocoaNSWindowHash::value_type(cocoaNSWindow,this));
{
[cocoaNSWindow setReleasedWhenClosed: NO];
sm_cocoaHash.insert(wxCocoaNSWindowHash::value_type(cocoaNSWindow,this));