]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/utils_osx.cpp
Add wxDocManager::FindTemplate() method.
[wxWidgets.git] / src / osx / utils_osx.cpp
index 20d791b1a7373967f6af31d6d7f1c1f2873d062d..251332d88cb70d2f1f1d0b7cf2fa4d324c94c295 100644 (file)
@@ -4,7 +4,7 @@
 // Author:      Stefan Csomor
 // Modified by:
 // Created:     1998-01-01
-// RCS-ID:      $Id: utils.cpp 54886 2008-07-31 13:02:53Z SC $
+// RCS-ID:      $Id$
 // Copyright:   (c) Stefan Csomor
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -61,6 +61,7 @@ bool wxCheckForInterrupt(wxWindow *WXUNUSED(wnd))
 // Return true if we have a colour display
 bool wxColourDisplay()
 {
+    // always the case on OS X
     return true;
 }
 
@@ -93,12 +94,20 @@ 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;
+    wxCFRef<CFMutableStringRef> cfMutableString(CFStringCreateMutableCopy(NULL, 0, wxCFStringRef(document)));
+    CFStringNormalize(cfMutableString,kCFStringNormalizationFormD);
+    wxCFRef<CFURLRef> curl(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false));
+    OSStatus err = LSOpenCFURLRef( curl , NULL );
 
-    return false;
+    if (err == noErr)
+    {
+        return true;
+    }
+    else
+    {
+        wxLogDebug(wxT("Default Application Launch error %d"), (int) err);
+        return false;
+    }
 }
 
 // ----------------------------------------------------------------------------
@@ -154,7 +163,6 @@ wxEventLoopBase* wxGUIAppTraits::CreateEventLoop()
     return new wxEventLoop;
 }
 
-wxNonOwnedWindow *wxFindWindowFromWXWindow(WXWindow inWindowRef);
 wxWindow* wxFindWindowAtPoint(wxWindow* win, const wxPoint& pt);
 
 wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
@@ -166,7 +174,7 @@ wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
 
     if ( FindWindow( screenPoint , &windowRef ) )
     {
-        wxNonOwnedWindow *nonOwned = wxFindWindowFromWXWindow( windowRef );
+        wxNonOwnedWindow *nonOwned = wxNonOwnedWindow::GetFromWXWindow( windowRef );
 
         if ( nonOwned )
             return wxFindWindowAtPoint( nonOwned , pt );