#include "wx/cocoa/autorelease.h"
#include "wx/cocoa/string.h"
-#import <AppKit/NSView.h>
-#import <AppKit/NSWindow.h>
+#include "wx/cocoa/objc/NSView.h"
+#include "wx/cocoa/objc/NSWindow.h"
#import <AppKit/NSPanel.h>
// ----------------------------------------------------------------------------
// globals
m_cocoaNSWindow = NULL;
m_cocoaNSView = NULL;
+ // NOTE: We may need to deal with the contentView becoming a wx NSView as well.
+ NSWindow *newWindow;
+ // Create a WXNSPanel or a WXNSWindow depending on what type of window is desired.
if(style & wxFRAME_TOOL_WINDOW)
- SetNSWindow([[NSPanel alloc] initWithContentRect:cocoaRect styleMask:cocoaStyle backing:NSBackingStoreBuffered defer:NO]);
+ newWindow = [[WXNSPanel alloc] initWithContentRect:cocoaRect styleMask:cocoaStyle backing:NSBackingStoreBuffered defer:NO];
else
- SetNSWindow([[NSWindow alloc] initWithContentRect:cocoaRect styleMask:cocoaStyle backing:NSBackingStoreBuffered defer:NO]);
+ newWindow = [[WXNSWindow alloc] initWithContentRect:cocoaRect styleMask:cocoaStyle backing:NSBackingStoreBuffered defer:NO];
+ // Make sure the default content view is a WXNSView
+ [newWindow setContentView: [[WXNSView alloc] initWithFrame: [[newWindow contentView] frame]]];
+ // Associate the window and view
+ SetNSWindow(newWindow);
+
// NOTE: SetNSWindow has retained the Cocoa object for this object.
// Because we do not release on close, the following release matches the
// above alloc and thus the retain count will be 1.
[m_cocoaNSWindow setExcludedFromWindowsMenu: YES];
if(style & wxSTAY_ON_TOP)
[m_cocoaNSWindow setLevel:NSFloatingWindowLevel];
- SetTitle(title);
+ [m_cocoaNSWindow setTitle:wxNSStringWithWxString(title)];
return true;
}
[cocoaNSWindow retain];
[m_cocoaNSWindow release];
m_cocoaNSWindow = cocoaNSWindow;
+ // NOTE: We are no longer using posing so we won't get events on the
+ // window's view unless it was explicitly created as the wx view class.
if(m_cocoaNSWindow)
SetNSView([m_cocoaNSWindow contentView]);
else
// wxTopLevelWindowCocoa misc
// ----------------------------------------------------------------------------
-void wxTopLevelWindowCocoa::SetTitle( const wxString& WXUNUSED(title))
+void wxTopLevelWindowCocoa::SetTitle(const wxString& title)
{
[m_cocoaNSWindow setTitle:wxNSStringWithWxString(title)];
}