]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/app.mm
Fix HMENU to wxMenu translation in wxMSW code.
[wxWidgets.git] / src / cocoa / app.mm
index 6bafffa5551566c20e02015f0271d159f499c326..f05ea8c419eee68be381d237b349e8d70909df08 100644 (file)
@@ -7,7 +7,7 @@
 // RCS-ID:      $Id$
 // Copyright:   (c) David Elliott
 //              Software 2000 Ltd.
 // RCS-ID:      $Id$
 // Copyright:   (c) David Elliott
 //              Software 2000 Ltd.
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/wxprec.h"
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/wxprec.h"
@@ -15,7 +15,6 @@
 #include "wx/app.h"
 
 #ifndef WX_PRECOMP
 #include "wx/app.h"
 
 #ifndef WX_PRECOMP
-    #include "wx/dc.h"
     #include "wx/intl.h"
     #include "wx/log.h"
     #include "wx/module.h"
     #include "wx/intl.h"
     #include "wx/log.h"
     #include "wx/module.h"
@@ -26,6 +25,8 @@
 #include "wx/cocoa/mbarman.h"
 #include "wx/cocoa/NSApplication.h"
 
 #include "wx/cocoa/mbarman.h"
 #include "wx/cocoa/NSApplication.h"
 
+#include "wx/cocoa/dc.h"
+
 #import <AppKit/NSApplication.h>
 #import <Foundation/NSRunLoop.h>
 #import <Foundation/NSThread.h>
 #import <AppKit/NSApplication.h>
 #import <Foundation/NSRunLoop.h>
 #import <Foundation/NSThread.h>
@@ -115,7 +116,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
     // application (otherwise applications would need to handle it)
     if ( argc > 1 )
     {
     // application (otherwise applications would need to handle it)
     if ( argc > 1 )
     {
-        static const wxChar *ARG_PSN = _T("-psn_");
+        static const wxChar *ARG_PSN = wxT("-psn_");
         if ( wxStrncmp(argv[1], ARG_PSN, wxStrlen(ARG_PSN)) == 0 )
         {
             // remove this argument
         if ( wxStrncmp(argv[1], ARG_PSN, wxStrlen(ARG_PSN)) == 0 )
         {
             // remove this argument
@@ -162,7 +163,7 @@ void wxApp::CleanUp()
 {
     wxAutoNSAutoreleasePool pool;
 
 {
     wxAutoNSAutoreleasePool pool;
 
-    wxDC::CocoaShutdownTextSystem();
+    wxCocoaDCImpl::CocoaShutdownTextSystem();
     wxMenuBarManager::DestroyInstance();
 
     [[NSNotificationCenter defaultCenter] removeObserver:sg_cocoaAppObserver];
     wxMenuBarManager::DestroyInstance();
 
     [[NSNotificationCenter defaultCenter] removeObserver:sg_cocoaAppObserver];
@@ -183,12 +184,10 @@ wxApp::wxApp()
 {
     m_topWindow = NULL;
 
 {
     m_topWindow = NULL;
 
-#ifdef __WXDEBUG__
-    m_isInAssert = false;
-#endif // __WXDEBUG__
-
     argc = 0;
     argc = 0;
+#if !wxUSE_UNICODE
     argv = NULL;
     argv = NULL;
+#endif
     m_cocoaApp = NULL;
     m_cocoaAppDelegate = NULL;
 }
     m_cocoaApp = NULL;
     m_cocoaAppDelegate = NULL;
 }
@@ -255,7 +254,7 @@ bool wxApp::OnInitGui()
     if(!sm_isEmbedded)
         wxMenuBarManager::CreateInstance();
 
     if(!sm_isEmbedded)
         wxMenuBarManager::CreateInstance();
 
-    wxDC::CocoaInitializeTextSystem();
+    wxCocoaDCImpl::CocoaInitializeTextSystem();
     return true;
 }
 
     return true;
 }
 
@@ -291,75 +290,6 @@ void wxApp::Exit()
     wxAppConsole::Exit();
 }
 
     wxAppConsole::Exit();
 }
 
-// Yield to other processes
-bool wxApp::Yield(bool onlyIfNeeded)
-{
-    // MT-FIXME
-    static bool s_inYield = false;
-
-#if wxUSE_LOG
-    // disable log flushing from here because a call to wxYield() shouldn't
-    // normally result in message boxes popping up &c
-    wxLog::Suspend();
-#endif // wxUSE_LOG
-
-    if (s_inYield)
-    {
-        if ( !onlyIfNeeded )
-        {
-            wxFAIL_MSG( wxT("wxYield called recursively" ) );
-        }
-
-        return false;
-    }
-
-    s_inYield = true;
-
-    // Run the event loop until it is out of events
-    while(1)
-    {
-        wxAutoNSAutoreleasePool pool;
-        /*  NOTE: It may be better to use something like
-            NSEventTrackingRunLoopMode since we don't necessarily want all
-            timers/sources/observers to run, only those which would
-            run while tracking events.  However, it should be noted that
-            NSEventTrackingRunLoopMode is in the common set of modes
-            so it may not effectively make much of a difference.
-         */
-        NSEvent *event = [GetNSApplication()
-                nextEventMatchingMask:NSAnyEventMask
-                untilDate:[NSDate distantPast]
-                inMode:NSDefaultRunLoopMode
-                dequeue: YES];
-        if(!event)
-            break;
-        [GetNSApplication() sendEvent: event];
-    }
-
-    /*
-        Because we just told NSApplication to avoid blocking it will in turn
-        run the CFRunLoop with a timeout of 0 seconds.  In that case, our
-        run loop observer on kCFRunLoopBeforeWaiting never fires because
-        no waiting occurs.  Therefore, no idle events are sent.
-
-        Believe it or not, this is actually desirable because we do not want
-        to process idle from here.  However, we do want to process pending
-        events because some user code expects to do work in a thread while
-        the main thread waits and then notify the main thread by posting
-        an event.
-     */
-    ProcessPendingEvents();
-
-#if wxUSE_LOG
-    // let the logs be flashed again
-    wxLog::Resume();
-#endif // wxUSE_LOG
-
-    s_inYield = false;
-
-    return true;
-}
-
 void wxApp::WakeUpIdle()
 {
     /*  When called from the main thread the NSAutoreleasePool managed by
 void wxApp::WakeUpIdle()
 {
     /*  When called from the main thread the NSAutoreleasePool managed by
@@ -389,7 +319,7 @@ void wxApp::WakeUpIdle()
         done without exiting the runloop.
 
         Be careful if you decide to change the implementation of this method
         done without exiting the runloop.
 
         Be careful if you decide to change the implementation of this method
-        as wxEventLoop::Exit depends on the current behavior.
+        as wxEventLoop::Exit depends on the current behaviour.
      */
     [m_cocoaApp postEvent:[NSEvent otherEventWithType:NSApplicationDefined
             location:NSZeroPoint modifierFlags:NSAnyEventMask
      */
     [m_cocoaApp postEvent:[NSEvent otherEventWithType:NSApplicationDefined
             location:NSZeroPoint modifierFlags:NSAnyEventMask
@@ -532,15 +462,6 @@ void wxApp::CF_ObserveMainRunLoopBeforeWaiting(CFRunLoopObserverRef observer, in
     }
 }
 
     }
 }
 
-#ifdef __WXDEBUG__
-void wxApp::OnAssert(const wxChar *file, int line, const wxChar* cond, const wxChar *msg)
-{
-    m_isInAssert = true;
-    wxAppBase::OnAssert(file, line, cond, msg);
-    m_isInAssert = false;
-}
-#endif // __WXDEBUG__
-
 /*  A note about Cocoa's event loops vs. run loops:
 
     It's important to understand that Cocoa has a two-level event loop.  The
 /*  A note about Cocoa's event loops vs. run loops:
 
     It's important to understand that Cocoa has a two-level event loop.  The