]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/mbarman.mm
Add ProcessPendingEvents to wxApp::Yield which makes the code almost identical
[wxWidgets.git] / src / cocoa / mbarman.mm
index fa6f666c5fed0a5a010595dc97b818fcba962991..35e158a1bd72cdf64e4636f9fa5fb74c87d90307 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     2003/09/04
 // RCS-ID:      $Id$
 // Copyright:   (c) 2003 David Elliott
-// Licence:     wxWindows licence
+// Licence:     wxWidgets licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/wxprec.h"
@@ -20,6 +20,7 @@
 
 #include "wx/cocoa/mbarman.h"
 #include "wx/cocoa/autorelease.h"
+#include "wx/cocoa/objc/objc_uniquifying.h"
 
 #import <Foundation/NSString.h>
 #import <Foundation/NSNotification.h>
 #import <AppKit/NSApplication.h>
 #import <AppKit/NSWindow.h>
 
+#define wxUSE_FSCRIPT 0
+#if wxUSE_FSCRIPT
+    #import <FScript/FScriptMenuItem.h>
+#endif
+
+// Declare setAppleMenu: in an NSApplication category since Tiger and later
+// releases support it but don't declare it as it's considered deprecated.
+@interface NSApplication(wxDeprecatedMethodsWeWantToUse)
+- (void)setAppleMenu:(NSMenu *)menu;
+@end
+
 // ============================================================================
 // wxMenuBarManagerObserver
 // ============================================================================
@@ -45,6 +57,7 @@
 - (void)windowWillClose: (NSNotification *)notification;
 #endif // 0
 @end // interface wxMenuBarManagerObserver : NSObject
+WX_DECLARE_GET_OBJC_CLASS(wxMenuBarManagerObserver,NSObject)
 
 @implementation wxMenuBarManagerObserver : NSObject
 - (id)init
 #endif // 0
 
 @end // implementation wxMenuBarManagerObserver : NSObject
+WX_IMPLEMENT_GET_OBJC_CLASS(wxMenuBarManagerObserver,NSObject)
 
 // ============================================================================
 // wxMenuBarManager
 // ============================================================================
 wxMenuBarManager *wxMenuBarManager::sm_mbarmanInstance = NULL;
 
+static void AddFScriptItem(NSMenu *menu)
+#if wxUSE_FSCRIPT
+{
+    NSMenuItem *item = [[FScriptMenuItem alloc] init];
+    [menu addItem: item];
+    [item release];
+}
+#else
+{}
+#endif
+
 wxMenuBarManager::wxMenuBarManager()
 {
-    m_observer = [[wxMenuBarManagerObserver alloc]
+    m_observer = [[WX_GET_OBJC_CLASS(wxMenuBarManagerObserver) alloc]
             initWithWxMenuBarManager:this];
     [[NSNotificationCenter defaultCenter] addObserver:m_observer
             selector:@selector(windowDidBecomeKey:)
@@ -140,6 +165,7 @@ wxMenuBarManager::wxMenuBarManager()
 
 /**/[m_menuApp addItemWithTitle:@"Preferences..." action:nil keyEquivalent:@""];
 /**/[m_menuApp addItem: [NSMenuItem separatorItem]];
+/**/AddFScriptItem(m_menuApp);
 /**/menuitem = [[NSMenuItem alloc] initWithTitle: @"Services" action:nil keyEquivalent:@""];
     [menuitem setSubmenu:m_menuServices];
     [m_menuApp addItem: menuitem];