]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/utils_osx.cpp
Fix for accessing m_peer during initialization.
[wxWidgets.git] / src / osx / utils_osx.cpp
index 963451ea4acb116d15593463a240f1e9f4c3f1ef..6318dd92eb409d43cf1d70123ac2051cc7dfba79 100644 (file)
@@ -17,6 +17,7 @@
 #ifndef WX_PRECOMP
     #include "wx/intl.h"
     #include "wx/app.h"
+    #include "wx/log.h"
     #if wxUSE_GUI
         #include "wx/toplevel.h"
         #include "wx/font.h"
@@ -45,9 +46,7 @@
 #include <Carbon/Carbon.h>
 #endif
 
-#if wxUSE_GUI
-    #include "wx/osx/private/timer.h"
-#endif // wxUSE_GUI
+#include "wx/osx/private/timer.h"
 
 #include "wx/evtloop.h"
 
 #endif
 #endif
 
-//
-// TODO BEGIN move to utils_osx.cpp
-//
-
-#if wxUSE_BASE
-
-extern bool WXDLLEXPORT wxIsDebuggerRunning()
-{
-    // TODO : try to find out ...
-    return false;
-}
-
-#if wxOSX_USE_COCOA_OR_CARBON
-
-// have a fast version for mac code that returns the version as a return value
-
-long UMAGetSystemVersion() 
-{ 
-    static SInt32 sUMASystemVersion = 0 ;
-    if ( sUMASystemVersion == 0 )
-    {
-        verify_noerr(Gestalt(gestaltSystemVersion, &sUMASystemVersion));
-    }
-    return sUMASystemVersion ; 
-}
-
-// our OS version is the same in non GUI and GUI cases
-wxOperatingSystemId wxGetOsVersion(int *majorVsn, int *minorVsn)
-{
-    SInt32 theSystem;
-    Gestalt(gestaltSystemVersion, &theSystem);
-
-    if ( majorVsn != NULL )
-        *majorVsn = (theSystem >> 8);
-
-    if ( minorVsn != NULL )
-        *minorVsn = (theSystem & 0xFF);
-
-    return wxOS_MAC_OSX_DARWIN;
-}
-
-#include <sys/utsname.h>
-
-wxString wxGetOsDescription()
-{
-    struct utsname name;
-    uname(&name);
-    return wxString::Format(_T("Mac OS X (%s %s %s)"),
-            wxString::FromAscii(name.sysname).c_str(),
-            wxString::FromAscii(name.release).c_str(),
-            wxString::FromAscii(name.machine).c_str());
-}
-
-#endif // wxOSX_USE_COCOA_OR_CARBON
-
-
-//---------------------------------------------------------------------------
-// wxMac Specific utility functions
-//---------------------------------------------------------------------------
-
-void wxMacStringToPascal( const wxString&from , StringPtr to )
-{
-    wxCharBuffer buf = from.mb_str( wxConvLocal );
-    int len = strlen(buf);
-
-    if ( len > 255 )
-        len = 255;
-    to[0] = len;
-    memcpy( (char*) &to[1] , buf , len );
-}
-
-wxString wxMacMakeStringFromPascal( ConstStringPtr from )
-{
-    return wxString( (char*) &from[1] , wxConvLocal , from[0] );
-}
-
-#endif // wxUSE_BASE
-
-#if wxUSE_GUI
-
 // Check whether this window wants to process messages, e.g. Stop button
 // in long calculations.
 bool wxCheckForInterrupt(wxWindow *WXUNUSED(wnd))
@@ -169,6 +88,49 @@ void wxDisplaySize(int *width, int *height)
     if ( height )
         *height = (int)bounds.size.height;
 }
+
+#if wxUSE_GUI
+
+// ----------------------------------------------------------------------------
+// Launch document with default app
+// ----------------------------------------------------------------------------
+
+bool wxLaunchDefaultApplication(const wxString& document, int flags)
+{
+    wxUnusedVar(flags);
+
+    static const char * const OPEN_CMD = "/usr/bin/open";
+    if ( wxFileExists(OPEN_CMD) &&
+            wxExecute(wxString(OPEN_CMD) + " " + document) )
+        return true;
+
+    return false;
+}
+
+// ----------------------------------------------------------------------------
+// Launch default browser
+// ----------------------------------------------------------------------------
+
+bool wxDoLaunchDefaultBrowser(const wxString& url, int flags)
+{
+    wxUnusedVar(flags);
+    wxCFRef< CFURLRef > curl( CFURLCreateWithString( kCFAllocatorDefault,
+                              wxCFStringRef( url ), NULL ) );
+    OSStatus err = LSOpenCFURLRef( curl , NULL );
+
+    if (err == noErr)
+    {
+        return true;
+    }
+    else
+    {
+        wxLogDebug(wxT("Browser Launch error %d"), (int) err);
+        return false;
+    }
+}
+
+#endif // wxUSE_GUI
+
 #endif
 
 void wxDisplaySizeMM(int *width, int *height)
@@ -238,45 +200,24 @@ CGColorRef wxMacCreateCGColorFromHITheme( ThemeBrush brush )
     return color;
 }
 
-#endif // wxOSX_USE_COCOA_OR_CARBON
-
-IMPLEMENT_ABSTRACT_CLASS( wxWidgetImpl , wxObject )
-
-wxWidgetImpl::wxWidgetImpl( wxWindowMac* peer , bool isRootControl )
-{
-    Init();
-    m_isRootControl = isRootControl;
-    m_wxPeer = peer;
-}
-
-wxWidgetImpl::wxWidgetImpl()
-{
-    Init();
-}
-
-wxWidgetImpl::~wxWidgetImpl()
-{
-}
-
-void wxWidgetImpl::Init()
-{
-    m_isRootControl = false;
-    m_wxPeer = NULL;
-    m_needsFocusRect = false;
-}
+//---------------------------------------------------------------------------
+// Mac Specific string utility functions
+//---------------------------------------------------------------------------
 
-void wxWidgetImpl::Destroy()
+void wxMacStringToPascal( const wxString&from , unsigned char * to )
 {
-}
+    wxCharBuffer buf = from.mb_str( wxConvLocal );
+    int len = strlen(buf);
 
-void wxWidgetImpl::SetNeedsFocusRect( bool needs )
-{
-    m_needsFocusRect = needs;
+    if ( len > 255 )
+        len = 255;
+    to[0] = len;
+    memcpy( (char*) &to[1] , buf , len );
 }
 
-bool wxWidgetImpl::NeedsFocusRect() const
+wxString wxMacMakeStringFromPascal( const unsigned char * from )
 {
-    return m_needsFocusRect;
+    return wxString( (char*) &from[1] , wxConvLocal , from[0] );
 }
 
-#endif // wxUSE_GUI
+#endif // wxOSX_USE_COCOA_OR_CARBON