# HG changeset patch # User michi_cc # Date 2009-10-04 21:39:08 # Node ID f3616256bed2996889afdbc0bc2df1efa35d1923 # Parent a1e05d392144e5f5c922d70cfb3fa3cc5a2cb606 (svn r17716) -Codechange: [OSX] Invoke a (semi-)private Objective-C method in a way that does not rely on the SDK version. diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm --- 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 ];