+WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(NSWindow)
+
+struct objc_object *wxCocoaNSWindow::sm_cocoaDelegate = [[wxNSWindowDelegate alloc] init];
+
+void wxCocoaNSWindow::AssociateNSWindow(WX_NSWindow cocoaNSWindow)
+{
+ if(cocoaNSWindow)
+ {
+ [cocoaNSWindow setReleasedWhenClosed: NO];
+ sm_cocoaHash.insert(wxCocoaNSWindowHash::value_type(cocoaNSWindow,this));
+ [cocoaNSWindow setDelegate: sm_cocoaDelegate];
+ }
+}
+
+void wxCocoaNSWindow::DisassociateNSWindow(WX_NSWindow cocoaNSWindow)
+{
+ if(cocoaNSWindow)
+ {
+ [cocoaNSWindow setDelegate: nil];
+ sm_cocoaHash.erase(cocoaNSWindow);
+ }
+}
+
+wxMenuBar* wxCocoaNSWindow::GetAppMenuBar(wxCocoaNSWindow *win)
+{
+ return NULL;
+}
+
+// ============================================================================
+// @class wxPoserNSWindow
+// ============================================================================
+@interface wxPoserNSWindow : NSWindow
+{
+}
+
+- (BOOL)canBecomeMainWindow;
+@end // wxPoserNSwindow
+
+WX_IMPLEMENT_POSER(wxPoserNSWindow);
+@implementation wxPoserNSWindow : NSWindow
+
+- (BOOL)canBecomeMainWindow
+{
+ bool canBecome = false;