#include "wx/mac/private.h"
#endif
#include "wx/mac/corefoundation/cfstring.h"
-#include "wx/mac/private.h"
-#if defined(__DARWIN__)
#include <CoreFoundation/CFBundle.h>
#include <CoreFoundation/CFURL.h>
-#else
-#include <CFBundle.h>
-#include <CFURL.h>
-#endif
-#if defined(__WXCOCOA__) || defined(__WXMAC_OSX__)
#define kDefaultPathStyle kCFURLPOSIXPathStyle
-#else
-#define kDefaultPathStyle kCFURLHFSPathStyle
-#endif
// ============================================================================
// implementation
: m_bundle(CFBundleGetMainBundle())
{
CFRetain(m_bundle);
+ UseAppInfo(AppInfo_AppName | AppInfo_VendorName);
}
wxStandardPathsCF::wxStandardPathsCF(wxCFBundleRef bundle)
: m_bundle(bundle)
{
CFRetain(m_bundle);
+ UseAppInfo(AppInfo_AppName | AppInfo_VendorName);
}
wxStandardPathsCF::~wxStandardPathsCF()
wxCHECK_MSG(absoluteURL, wxEmptyString, wxT("Failed to resolve relative URL to absolute URL"));
CFStringRef cfStrPath = CFURLCopyFileSystemPath(absoluteURL,kDefaultPathStyle);
CFRelease(absoluteURL);
- return wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding());
+ return wxCFStringRef(cfStrPath).AsString(wxLocale::GetSystemEncoding());
}
wxString wxStandardPathsCF::GetFromFunc(wxCFURLRef (*func)(wxCFBundleRef)) const
wxString wxStandardPathsCF::GetDocumentsDir() const
{
+#ifdef __WXMAC__
return wxMacFindFolderNoSeparator
(
-#if TARGET_API_MAC_OSX
kUserDomain,
-#else
- kOnSystemDisk,
-#endif
kDocumentsFolderType,
kCreateFolder
);
+#else
+ return wxFileName::GetHomeDir() + wxT("/Documents");
+#endif
}
// ----------------------------------------------------------------------------
return GetFromFunc(CFBundleCopySharedSupportURL);
}
+wxString wxStandardPathsCF::GetExecutablePath() const
+{
+#ifdef __WXMAC__
+#if 1
+ return GetFromFunc(CFBundleCopyBundleURL);
+#else
+ // TODO remove if cf implementation ok
+ ProcessInfoRec processinfo;
+ ProcessSerialNumber procno ;
+#ifdef __LP64__
+ FSRef fsRef;
+#else
+ FSSpec fsSpec;
+#endif
+
+ procno.highLongOfPSN = 0 ;
+ procno.lowLongOfPSN = kCurrentProcess ;
+ processinfo.processInfoLength = sizeof(ProcessInfoRec);
+ processinfo.processName = NULL;
+#ifdef __LP64__
+ processinfo.processAppRef = &fsRef;
+#else
+ processinfo.processAppSpec = &fsSpec;
+#endif
+
+ GetProcessInformation( &procno , &processinfo ) ;
+#ifdef __LP64__
+ return wxMacFSRefToPath(&fsRef);
+#else
+ return wxMacFSSpec2MacFilename(&fsSpec);
+#endif
+#endif
+
+#else
+ return wxStandardPathsBase::GetExecutablePath();
+#endif
+}
+
wxString wxStandardPathsCF::GetLocalDataDir() const
{
#ifdef __WXMAC__
- return AppendAppName(wxMacFindFolder((short)kLocalDomain, kApplicationSupportFolderType, kCreateFolder));
+ return AppendAppInfo(wxMacFindFolder((short)kLocalDomain, kApplicationSupportFolderType, kCreateFolder));
#else
- return AppendAppName(wxT("/Library/Application Support"));
+ return AppendAppInfo(wxT("/Library/Application Support"));
#endif
}
wxString wxStandardPathsCF::GetUserDataDir() const
{
#ifdef __WXMAC__
- return AppendAppName(wxMacFindFolder((short)kUserDomain, kApplicationSupportFolderType, kCreateFolder));
+ return AppendAppInfo(wxMacFindFolder((short)kUserDomain, kApplicationSupportFolderType, kCreateFolder));
#else
- return AppendAppName(wxFileName::GetHomeDir() + _T("/Library/Application Support"));
+ return AppendAppInfo(wxFileName::GetHomeDir() + _T("/Library/Application Support"));
#endif
}
}
wxString
-wxStandardPathsCF::GetLocalizedResourcesDir(const wxChar *lang,
+wxStandardPathsCF::GetLocalizedResourcesDir(const wxString& lang,
ResourceCat category) const
{
return wxStandardPathsBase::