X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/747592e7cb116a051e0964860a7e03a297704574..c944775f72435d2c0493113e05445898ab8baf1b:/src/mac/corefoundation/stdpaths_cf.cpp?ds=sidebyside diff --git a/src/mac/corefoundation/stdpaths_cf.cpp b/src/mac/corefoundation/stdpaths_cf.cpp index d4068cc2fa..eeaa7453e5 100644 --- a/src/mac/corefoundation/stdpaths_cf.cpp +++ b/src/mac/corefoundation/stdpaths_cf.cpp @@ -31,21 +31,11 @@ #include "wx/mac/private.h" #endif #include "wx/mac/corefoundation/cfstring.h" -#include "wx/mac/private.h" -#if defined(__DARWIN__) #include #include -#else -#include -#include -#endif -#if defined(__WXCOCOA__) || defined(__WXMAC_OSX__) #define kDefaultPathStyle kCFURLPOSIXPathStyle -#else -#define kDefaultPathStyle kCFURLHFSPathStyle -#endif // ============================================================================ // implementation @@ -59,12 +49,14 @@ wxStandardPathsCF::wxStandardPathsCF() : 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() @@ -152,21 +144,46 @@ wxString wxStandardPathsCF::GetDataDir() const return GetFromFunc(CFBundleCopySharedSupportURL); } +// TODO: implement this using real CoreFoundation API instead of Carbon API +wxString wxStandardPathsCF::GetExecutablePath() const +{ +#ifdef __WXMAC__ + ProcessInfoRec processinfo; + ProcessSerialNumber procno ; + FSSpec fsSpec; + + procno.highLongOfPSN = 0 ; + procno.lowLongOfPSN = kCurrentProcess ; + processinfo.processInfoLength = sizeof(ProcessInfoRec); + processinfo.processName = NULL; + processinfo.processAppSpec = &fsSpec; + + GetProcessInformation( &procno , &processinfo ) ; +#ifdef __LP64__ + return wxMacFSRefToPath(&fsRef); +#else + return wxMacFSSpec2MacFilename(&fsSpec); +#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 } @@ -181,7 +198,7 @@ wxString wxStandardPathsCF::GetResourcesDir() const } wxString -wxStandardPathsCF::GetLocalizedResourcesDir(const wxChar *lang, +wxStandardPathsCF::GetLocalizedResourcesDir(const wxString& lang, ResourceCat category) const { return wxStandardPathsBase::