diff --git a/include/wx/cocoa/NSApplication.h b/include/wx/cocoa/NSApplication.h index 35ead1e8f5..40cc6364e4 100644 --- a/include/wx/cocoa/NSApplication.h +++ b/include/wx/cocoa/NSApplication.h @@ -25,6 +25,9 @@ - (void)applicationDidBecomeActive:(NSNotification *)notification; - (void)applicationWillResignActive:(NSNotification *)notification; - (void)applicationDidResignActive:(NSNotification *)notification; + +// Other notifications +- (void)controlTintChanged:(NSNotification *)notification; @end // interface wxNSApplicationDelegate : NSObject #endif //ndef _WX_COCOA_NSAPPLICATION_H__ diff --git a/src/cocoa/app.mm b/src/cocoa/app.mm index 2e01d10558..f8f064934f 100644 --- a/src/cocoa/app.mm +++ b/src/cocoa/app.mm @@ -34,6 +34,8 @@ #import #import #import +#import +#import // ======================================================================== // wxPoseAsInitializer @@ -146,6 +148,11 @@ WX_IMPLEMENT_POSER(wxPoserNSApplication); wxTheApp->CocoaDelegate_applicationDidResignActive(); } +- (void)controlTintChanged:(NSNotification *)notification +{ + wxLogDebug("TODO: send EVT_SYS_COLOUR_CHANGED as appropriate"); +} + @end // implementation wxNSApplicationDelegate : NSObject // ======================================================================== @@ -199,6 +206,8 @@ void wxApp::CleanUp() wxMenuBarManager::DestroyInstance(); [m_cocoaApp setDelegate:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:m_cocoaAppDelegate + name:NSControlTintDidChangeNotification object:nil]; [m_cocoaAppDelegate release]; m_cocoaAppDelegate = NULL; @@ -252,11 +261,13 @@ bool wxApp::OnInitGui() m_cocoaApp = [NSApplication sharedApplication]; m_cocoaAppDelegate = [[wxNSApplicationDelegate alloc] init]; [m_cocoaApp setDelegate:m_cocoaAppDelegate]; + [[NSNotificationCenter defaultCenter] addObserver:m_cocoaAppDelegate + selector:@selector(controlTintChanged:) + name:NSControlTintDidChangeNotification object:nil]; wxMenuBarManager::CreateInstance(); wxDC::CocoaInitializeTextSystem(); -// [ m_cocoaApp setDelegate:m_cocoaApp ]; return TRUE; }