From 6ad7440ae5b67f69e3ba7b255f192c8732db621d Mon Sep 17 00:00:00 2001 From: michi_cc Date: Sun, 4 Oct 2009 21:39:08 +0000 Subject: (svn r17716) -Codechange: [OSX] Invoke a (semi-)private Objective-C method in a way that does not rely on the SDK version. --- src/video/cocoa/cocoa_v.mm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 64624aa89..530e1ddb1 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -44,13 +44,6 @@ * Read http://developer.apple.com/releasenotes/Cocoa/Objective-C++.html for more information. */ -/* Disables a warning. This is needed since the method exists but has been dropped from the header, supposedly as of 10.4. */ -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4) -@interface NSApplication(NSAppleMenu) -- (void)setAppleMenu:(NSMenu *)menu; -@end -#endif - @interface OTTDMain : NSObject @end @@ -116,8 +109,10 @@ static void setApplicationMenu() [ menuItem setSubmenu:appleMenu ]; [ [ NSApp mainMenu ] addItem:menuItem ]; - /* Tell the application object that this is now the application menu */ - [ NSApp setAppleMenu:appleMenu ]; + /* Tell the application object that this is now the application menu. + * This interesting Objective-C construct is used because not all SDK + * versions define this method publicly. */ + [ NSApp performSelector:@selector(setAppleMenu:) withObject:appleMenu ]; /* Finally give up our references to the objects */ [ appleMenu release ]; -- cgit v1.2.3-70-g09d2