X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad3628fa86caa8eb9ded43eacb115f44558eb1ee..f239a20092359e3c914adb79bd39f3f5d2b2e06f:/src/cocoa/NSWindow.mm?ds=inline diff --git a/src/cocoa/NSWindow.mm b/src/cocoa/NSWindow.mm index 2a75aac9c0..fa11d3ad5d 100644 --- a/src/cocoa/NSWindow.mm +++ b/src/cocoa/NSWindow.mm @@ -6,7 +6,7 @@ // Created: 2003/03/16 // RCS-ID: $Id$ // Copyright: (c) 2003 David Elliott -// Licence: wxWidgets licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -23,9 +23,10 @@ #include "wx/menuitem.h" #endif // WX_PRECOMP -#include "wx/cocoa/ObjcPose.h" #include "wx/cocoa/NSWindow.h" +#include "wx/cocoa/objc/objc_uniquifying.h" + #import #import #include "wx/cocoa/objc/NSWindow.h" @@ -54,6 +55,7 @@ - (void)wxMenuItemAction: (NSMenuItem *)menuItem; - (BOOL)validateMenuItem: (NSMenuItem *)menuItem; @end //interface wxNSWindowDelegate +WX_DECLARE_GET_OBJC_CLASS(wxNSWindowDelegate,NSObject) @implementation wxNSWindowDelegate : NSObject @@ -142,6 +144,7 @@ } @end //implementation wxNSWindowDelegate +WX_IMPLEMENT_GET_OBJC_CLASS(wxNSWindowDelegate,NSObject) // ============================================================================ // class wxCocoaNSWindow @@ -152,7 +155,7 @@ WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(NSWindow) wxCocoaNSWindow::wxCocoaNSWindow(wxTopLevelWindowCocoa *tlw) : m_wxTopLevelWindowCocoa(tlw) { - m_cocoaDelegate = [[wxNSWindowDelegate alloc] init]; + m_cocoaDelegate = [[WX_GET_OBJC_CLASS(wxNSWindowDelegate) alloc] init]; [m_cocoaDelegate setWxCocoaInterface: this]; } @@ -187,10 +190,35 @@ wxMenuBar* wxCocoaNSWindow::GetAppMenuBar(wxCocoaNSWindow *win) } // ============================================================================ -// @class wxPoserNSWindow +// @class WXNSWindow +// ============================================================================ +@implementation WXNSWindow : NSWindow + +- (BOOL)canBecomeKeyWindow +{ + bool canBecome = false; + wxCocoaNSWindow *tlw = wxCocoaNSWindow::GetFromCocoa(self); + if(!tlw || !tlw->Cocoa_canBecomeKeyWindow(canBecome)) + canBecome = [super canBecomeKeyWindow]; + return canBecome; +} + +- (BOOL)canBecomeMainWindow +{ + bool canBecome = false; + wxCocoaNSWindow *tlw = wxCocoaNSWindow::GetFromCocoa(self); + if(!tlw || !tlw->Cocoa_canBecomeMainWindow(canBecome)) + canBecome = [super canBecomeMainWindow]; + return canBecome; +} + +@end // implementation WXNSWindow +WX_IMPLEMENT_GET_OBJC_CLASS(WXNSWindow,NSWindow) + +// ============================================================================ +// @class WXNSPanel // ============================================================================ -WX_IMPLEMENT_POSER(wxPoserNSWindow); -@implementation wxPoserNSWindow : NSWindow +@implementation WXNSPanel : NSPanel - (BOOL)canBecomeKeyWindow { @@ -210,4 +238,5 @@ WX_IMPLEMENT_POSER(wxPoserNSWindow); return canBecome; } -@end // implementation wxPoserNSWindow +@end // implementation WXNSPanel +WX_IMPLEMENT_GET_OBJC_CLASS(WXNSPanel,NSPanel)