]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/corefoundation/stdpaths_cf.cpp
document On{Open,Save}Document()
[wxWidgets.git] / src / mac / corefoundation / stdpaths_cf.cpp
index fedc3982f09c9c6e554196085e0ae149780fd834..5d93769869e4f3b69dcb3ccca070dbc9489222d3 100644 (file)
 #endif
 #include "wx/mac/corefoundation/cfstring.h"
 
 #endif
 #include "wx/mac/corefoundation/cfstring.h"
 
-#if defined(__DARWIN__)
 #include <CoreFoundation/CFBundle.h>
 #include <CoreFoundation/CFURL.h>
 #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
 #define kDefaultPathStyle kCFURLPOSIXPathStyle
-#else
-#define kDefaultPathStyle kCFURLHFSPathStyle
-#endif
 
 // ============================================================================
 // implementation
 
 // ============================================================================
 // implementation
@@ -58,12 +49,14 @@ wxStandardPathsCF::wxStandardPathsCF()
                  : m_bundle(CFBundleGetMainBundle())
 {
     CFRetain(m_bundle);
                  : m_bundle(CFBundleGetMainBundle())
 {
     CFRetain(m_bundle);
+    UseAppInfo(AppInfo_AppName | AppInfo_VendorName);
 }
 
 wxStandardPathsCF::wxStandardPathsCF(wxCFBundleRef bundle)
                  : m_bundle(bundle)
 {
     CFRetain(m_bundle);
 }
 
 wxStandardPathsCF::wxStandardPathsCF(wxCFBundleRef bundle)
                  : m_bundle(bundle)
 {
     CFRetain(m_bundle);
+    UseAppInfo(AppInfo_AppName | AppInfo_VendorName);
 }
 
 wxStandardPathsCF::~wxStandardPathsCF()
 }
 
 wxStandardPathsCF::~wxStandardPathsCF()
@@ -92,7 +85,7 @@ static wxString BundleRelativeURLToPath(CFURLRef relativeURL)
     wxCHECK_MSG(absoluteURL, wxEmptyString, wxT("Failed to resolve relative URL to absolute URL"));
     CFStringRef cfStrPath = CFURLCopyFileSystemPath(absoluteURL,kDefaultPathStyle);
     CFRelease(absoluteURL);
     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::GetFromFunc(wxCFURLRef (*func)(wxCFBundleRef)) const
@@ -111,11 +104,7 @@ wxString wxStandardPathsCF::GetDocumentsDir() const
 #ifdef __WXMAC__
     return wxMacFindFolderNoSeparator
         (
 #ifdef __WXMAC__
     return wxMacFindFolderNoSeparator
         (
-#if TARGET_API_MAC_OSX
         kUserDomain,
         kUserDomain,
-#else
-        kOnSystemDisk,
-#endif
         kDocumentsFolderType,
         kCreateFolder
         );
         kDocumentsFolderType,
         kCreateFolder
         );
@@ -151,26 +140,39 @@ wxString wxStandardPathsCF::GetDataDir() const
     return GetFromFunc(CFBundleCopySharedSupportURL);
 }
 
     return GetFromFunc(CFBundleCopySharedSupportURL);
 }
 
-// TODO: implement this using real CoreFoundation API instead of Carbon API
 wxString wxStandardPathsCF::GetExecutablePath() const
 {
 #ifdef __WXMAC__
 wxString wxStandardPathsCF::GetExecutablePath() const
 {
 #ifdef __WXMAC__
+#if 1
+    return GetFromFunc(CFBundleCopyBundleURL);
+#else
+    // TODO remove if cf implementation ok
     ProcessInfoRec processinfo;
     ProcessSerialNumber procno ;
     ProcessInfoRec processinfo;
     ProcessSerialNumber procno ;
+#ifdef __LP64__
+    FSRef  fsRef;
+#else
     FSSpec fsSpec;
     FSSpec fsSpec;
-
+#endif
+    
     procno.highLongOfPSN = 0 ;
     procno.lowLongOfPSN = kCurrentProcess ;
     processinfo.processInfoLength = sizeof(ProcessInfoRec);
     processinfo.processName = NULL;
     procno.highLongOfPSN = 0 ;
     procno.lowLongOfPSN = kCurrentProcess ;
     processinfo.processInfoLength = sizeof(ProcessInfoRec);
     processinfo.processName = NULL;
+#ifdef __LP64__
+    processinfo.processAppRef = &fsRef;
+#else
     processinfo.processAppSpec = &fsSpec;
     processinfo.processAppSpec = &fsSpec;
-
+#endif
+    
     GetProcessInformation( &procno , &processinfo ) ;
 #ifdef __LP64__
     return wxMacFSRefToPath(&fsRef);
 #else
     return wxMacFSSpec2MacFilename(&fsSpec);
 #endif
     GetProcessInformation( &procno , &processinfo ) ;
 #ifdef __LP64__
     return wxMacFSRefToPath(&fsRef);
 #else
     return wxMacFSSpec2MacFilename(&fsSpec);
 #endif
+#endif
+    
 #else
     return wxStandardPathsBase::GetExecutablePath();
 #endif
 #else
     return wxStandardPathsBase::GetExecutablePath();
 #endif
@@ -179,18 +181,18 @@ wxString wxStandardPathsCF::GetExecutablePath() const
 wxString wxStandardPathsCF::GetLocalDataDir() const
 {
 #ifdef __WXMAC__
 wxString wxStandardPathsCF::GetLocalDataDir() const
 {
 #ifdef __WXMAC__
-    return AppendAppName(wxMacFindFolder((short)kLocalDomain, kApplicationSupportFolderType, kCreateFolder));
+    return AppendAppInfo(wxMacFindFolder((short)kLocalDomain, kApplicationSupportFolderType, kCreateFolder));
 #else
 #else
-    return AppendAppName(wxT("/Library/Application Support"));
+    return AppendAppInfo(wxT("/Library/Application Support"));
 #endif
 }
 
 wxString wxStandardPathsCF::GetUserDataDir() const
 {
 #ifdef __WXMAC__
 #endif
 }
 
 wxString wxStandardPathsCF::GetUserDataDir() const
 {
 #ifdef __WXMAC__
-    return AppendAppName(wxMacFindFolder((short)kUserDomain, kApplicationSupportFolderType, kCreateFolder));
+    return AppendAppInfo(wxMacFindFolder((short)kUserDomain, kApplicationSupportFolderType, kCreateFolder));
 #else
 #else
-    return AppendAppName(wxFileName::GetHomeDir() + _T("/Library/Application Support"));
+    return AppendAppInfo(wxFileName::GetHomeDir() + _T("/Library/Application Support"));
 #endif
 }
 
 #endif
 }