]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/utils.cpp
Fix for non-CG mode
[wxWidgets.git] / src / mac / carbon / utils.cpp
index c777fce3443264dc154bf7385fd267326edd7574..9afe0b6d5b7ccbc762b6abae2e6160780d6e7a75 100644 (file)
@@ -61,6 +61,7 @@
 #include "wx/mac/private/timer.h"
 #endif // wxUSE_GUI
 
+#include "wx/evtloop.h"
 #include "wx/mac/private.h"
 
 #if defined(__MWERKS__) && wxUSE_UNICODE
@@ -305,7 +306,13 @@ WXDLLEXPORT bool wxGetEnv(const wxString& var, wxString *value)
 }
 
 // set the env var name to the given value, return true on success
-WXDLLEXPORT bool wxSetEnv(const wxString& var, const wxChar *value)
+WXDLLEXPORT bool wxSetEnv(const wxString& var, const wxString& value)
+{
+    // TODO : under classic there is no environement support, under X yes
+    return false;
+}
+
+WXDLLEXPORT bool wxUnsetEnv(const wxString& var)
 {
     // TODO : under classic there is no environement support, under X yes
     return false;
@@ -380,6 +387,11 @@ wxPortId wxGUIAppTraits::GetToolkitVersion(int *verMaj, int *verMin) const
     return wxPORT_MAC;
 }
 
+wxEventLoopBase* wxGUIAppTraits::CreateEventLoop()
+{
+    return new wxEventLoop;
+}
+
 wxTimerImpl* wxGUIAppTraits::CreateTimerImpl(wxTimer *timer)
 {
     return new wxCarbonTimerImpl(timer);
@@ -796,7 +808,10 @@ void wxMacControl::Dispose()
     wxASSERT_MSG( IsValidControlHandle(m_controlRef) , wxT("Invalid Control Handle (maybe already released) in Dispose") );
 
     // we cannot check the ref count here anymore, as autorelease objects might delete their refs later
-    CFRelease(m_controlRef);
+    // we can have situations when being embedded, where the control gets deleted behind our back, so only
+    // CFRelease if we are safe
+    if ( IsValidControlHandle(m_controlRef) )
+        CFRelease(m_controlRef);
     m_controlRef = NULL;
 }