to true but a plugin can set it to false to cause wxCocoa to not initialize
things like the application delegate or the menubar manager.
* Fix call to [NSNotificationCenter removeObserver:] to use the correct object.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46116
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
bool IsInAssert() const { return m_isInAssert; }
#endif // __WXDEBUG__
bool IsInAssert() const { return m_isInAssert; }
#endif // __WXDEBUG__
+ // Set true _before_ initializing wx to force embedded mode (no app delegate, etc.)
+ static bool sm_isEmbedded;
private:
#ifdef __WXDEBUG__
bool m_isInAssert;
private:
#ifdef __WXDEBUG__
bool m_isInAssert;
#import <Foundation/NSNotification.h>
#import <AppKit/NSCell.h>
#import <Foundation/NSNotification.h>
#import <AppKit/NSCell.h>
+bool wxApp::sm_isEmbedded = false; // Normally we're not a plugin
+
// wxNSApplicationObserver singleton.
static wxObjcAutoRefFromAlloc<wxNSApplicationObserver*> sg_cocoaAppObserver = [[wxNSApplicationObserver alloc] init];
// wxNSApplicationObserver singleton.
static wxObjcAutoRefFromAlloc<wxNSApplicationObserver*> sg_cocoaAppObserver = [[wxNSApplicationObserver alloc] init];
wxDC::CocoaShutdownTextSystem();
wxMenuBarManager::DestroyInstance();
wxDC::CocoaShutdownTextSystem();
wxMenuBarManager::DestroyInstance();
- [m_cocoaApp setDelegate:nil];
- [[NSNotificationCenter defaultCenter] removeObserver:m_cocoaAppDelegate];
- [m_cocoaAppDelegate release];
- m_cocoaAppDelegate = NULL;
+ [[NSNotificationCenter defaultCenter] removeObserver:sg_cocoaAppObserver];
+ if(!sm_isEmbedded)
+ {
+ [m_cocoaApp setDelegate:nil];
+ [m_cocoaAppDelegate release];
+ m_cocoaAppDelegate = NULL;
+ }
// Create the app using the sharedApplication method
m_cocoaApp = [NSApplication sharedApplication];
// Create the app using the sharedApplication method
m_cocoaApp = [NSApplication sharedApplication];
- // Enable response to application delegate messages
- m_cocoaAppDelegate = [[wxNSApplicationDelegate alloc] init];
- [m_cocoaApp setDelegate:m_cocoaAppDelegate];
+ if(!sm_isEmbedded)
+ {
+ // Enable response to application delegate messages
+ m_cocoaAppDelegate = [[wxNSApplicationDelegate alloc] init];
+ [m_cocoaApp setDelegate:m_cocoaAppDelegate];
+ }
// Enable response to "delegate" messages on the notification observer
[[NSNotificationCenter defaultCenter] addObserver:sg_cocoaAppObserver
// Enable response to "delegate" messages on the notification observer
[[NSNotificationCenter defaultCenter] addObserver:sg_cocoaAppObserver
selector:@selector(controlTintChanged:)
name:NSControlTintDidChangeNotification object:nil];
selector:@selector(controlTintChanged:)
name:NSControlTintDidChangeNotification object:nil];
- wxMenuBarManager::CreateInstance();
+ if(!sm_isEmbedded)
+ wxMenuBarManager::CreateInstance();
wxDC::CocoaInitializeTextSystem();
return true;
wxDC::CocoaInitializeTextSystem();
return true;