#endif
#include "wx/osx/private.h"
-
-#if wxOSX_USE_COCOA
-// to get the themeing APIs
-#include <Carbon/Carbon.h>
-#endif
-
#include "wx/osx/private/timer.h"
#include "wx/evtloop.h"
{
wxUnusedVar(flags);
- static const char * const OPEN_CMD = "/usr/bin/open";
- if ( wxFileExists(OPEN_CMD) &&
- wxExecute(wxString(OPEN_CMD) + " " + document) )
+ wxCFRef<CFMutableStringRef> cfMutableString(CFStringCreateMutableCopy(NULL, 0, wxCFStringRef(document)));
+ CFStringNormalize(cfMutableString,kCFStringNormalizationFormD);
+ wxCFRef<CFURLRef> curl(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false));
+ OSStatus err = LSOpenCFURLRef( curl , NULL );
+
+ if (err == noErr)
+ {
return true;
-
- return false;
+ }
+ else
+ {
+ wxLogDebug(wxT("Default Application Launch error %d"), (int) err);
+ return false;
+ }
}
// ----------------------------------------------------------------------------
return new wxEventLoop;
}
+wxNonOwnedWindow *wxFindWindowFromWXWindow(WXWindow inWindowRef);
+wxWindow* wxFindWindowAtPoint(wxWindow* win, const wxPoint& pt);
+
wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
{
- return wxGenericFindWindowAtPoint(pt);
+#if wxOSX_USE_CARBON
+
+ Point screenPoint = { pt.y , pt.x };
+ WindowRef windowRef;
+
+ if ( FindWindow( screenPoint , &windowRef ) )
+ {
+ wxNonOwnedWindow *nonOwned = wxFindWindowFromWXWindow( windowRef );
+
+ if ( nonOwned )
+ return wxFindWindowAtPoint( nonOwned , pt );
+ }
+
+ return NULL;
+
+#else
+
+ return wxGenericFindWindowAtPoint( pt );
+
+#endif
}
/*