]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/app.mm
Fixed and refactored wxPropertyGridManager decsription text box painting
[wxWidgets.git] / src / cocoa / app.mm
index 6bafffa5551566c20e02015f0271d159f499c326..7cde079e142917a574313be12d6a5faead69f77f 100644 (file)
@@ -15,7 +15,6 @@
 #include "wx/app.h"
 
 #ifndef WX_PRECOMP
-    #include "wx/dc.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/dc.h"
+
 #import <AppKit/NSApplication.h>
 #import <Foundation/NSRunLoop.h>
 #import <Foundation/NSThread.h>
@@ -162,7 +163,7 @@ void wxApp::CleanUp()
 {
     wxAutoNSAutoreleasePool pool;
 
-    wxDC::CocoaShutdownTextSystem();
+    wxCocoaDCImpl::CocoaShutdownTextSystem();
     wxMenuBarManager::DestroyInstance();
 
     [[NSNotificationCenter defaultCenter] removeObserver:sg_cocoaAppObserver];
@@ -188,7 +189,9 @@ wxApp::wxApp()
 #endif // __WXDEBUG__
 
     argc = 0;
+#if !wxUSE_UNICODE
     argv = NULL;
+#endif
     m_cocoaApp = NULL;
     m_cocoaAppDelegate = NULL;
 }
@@ -255,7 +258,7 @@ bool wxApp::OnInitGui()
     if(!sm_isEmbedded)
         wxMenuBarManager::CreateInstance();
 
-    wxDC::CocoaInitializeTextSystem();
+    wxCocoaDCImpl::CocoaInitializeTextSystem();
     return true;
 }
 
@@ -292,18 +295,15 @@ void wxApp::Exit()
 }
 
 // Yield to other processes
-bool wxApp::Yield(bool onlyIfNeeded)
+bool wxApp::DoYield(bool onlyIfNeeded, long eventsToProcess)
 {
-    // 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 (m_isInsideYield)
     {
         if ( !onlyIfNeeded )
         {
@@ -313,11 +313,14 @@ bool wxApp::Yield(bool onlyIfNeeded)
         return false;
     }
 
-    s_inYield = true;
+    m_isInsideYield = true;
+    m_eventsToProcessInsideYield = eventsToProcess;
 
     // Run the event loop until it is out of events
     while(1)
     {
+        // TODO: implement event filtering using the eventsToProcess mask
+
         wxAutoNSAutoreleasePool pool;
         /*  NOTE: It may be better to use something like
             NSEventTrackingRunLoopMode since we don't necessarily want all
@@ -355,7 +358,7 @@ bool wxApp::Yield(bool onlyIfNeeded)
     wxLog::Resume();
 #endif // wxUSE_LOG
 
-    s_inYield = false;
+    m_isInsideYield = false;
 
     return true;
 }