]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/stdpaths.cpp
Hopefully fixed library names generated by wx-config for OS/2's PM port.
[wxWidgets.git] / src / msw / stdpaths.cpp
index dcce507ce3cd157026480ebf005b7cbc9a3e2845..02b714d8f4cdc39a2bdd2df8809d7a277618e188 100644 (file)
@@ -24,6 +24,8 @@
     #pragma hdrstop
 #endif
 
+#if wxUSE_STDPATHS
+
 #ifndef WX_PRECOMP
     #include "wx/app.h"
 #endif //WX_PRECOMP
@@ -50,6 +52,10 @@ typedef HRESULT (WINAPI *SHGetSpecialFolderPath_t)(HWND, LPTSTR, int, BOOL);
 // used in our wxLogTrace messages
 static const wxChar *TRACE_MASK = _T("stdpaths");
 
+#ifndef CSIDL_APPDATA
+    #define CSIDL_APPDATA         0x001a
+#endif
+
 #ifndef CSIDL_LOCAL_APPDATA
     #define CSIDL_LOCAL_APPDATA   0x001c
 #endif
@@ -62,6 +68,14 @@ static const wxChar *TRACE_MASK = _T("stdpaths");
     #define CSIDL_PROGRAM_FILES   0x0026
 #endif
 
+#ifndef SHGFP_TYPE_CURRENT
+    #define SHGFP_TYPE_CURRENT 0
+#endif
+
+#ifndef SHGFP_TYPE_DEFAULT
+    #define SHGFP_TYPE_DEFAULT 1
+#endif
+
 // ----------------------------------------------------------------------------
 // module globals
 // ----------------------------------------------------------------------------
@@ -216,22 +230,6 @@ wxString wxStandardPaths::DoGetDirectory(int csidl)
     return dir;
 }
 
-/* static */
-wxString wxStandardPaths::AppendAppName(const wxString& dir)
-{
-    wxString subdir(dir);
-
-    // empty string indicates that an error has occured, don't touch it then
-    if ( !subdir.empty() )
-    {
-        const wxString appname = wxTheApp->GetAppName();
-        if ( !appname.empty() )
-            subdir << _T('\\') << appname;
-    }
-
-    return subdir;
-}
-
 // ----------------------------------------------------------------------------
 // public functions
 // ----------------------------------------------------------------------------
@@ -248,7 +246,9 @@ wxString wxStandardPaths::GetUserConfigDir() const
 
 wxString wxStandardPaths::GetDataDir() const
 {
-    return AppendAppName(DoGetDirectory(CSIDL_PROGRAM_FILES));
+    // under Windows each program is usually installed in its own directory and
+    // so its datafiles are in the same directory as its main executable
+    return wxFileName(wxGetFullModuleName()).GetPath();
 }
 
 wxString wxStandardPaths::GetUserDataDir() const
@@ -276,10 +276,15 @@ wxString wxStandardPathsWin16::GetConfigDir() const
     // this is for compatibility with earlier wxFileConfig versions
     // which used the Windows directory for the global files
     wxString dir;
+#ifndef __WXWINCE__
     if ( !::GetWindowsDirectory(wxStringBuffer(dir, MAX_PATH), MAX_PATH) )
     {
         wxLogLastError(_T("GetWindowsDirectory"));
     }
+#else
+    // TODO: use CSIDL_WINDOWS (eVC4, possibly not eVC3)
+    return wxT("\\Windows");
+#endif
 
     return dir;
 }
@@ -290,3 +295,4 @@ wxString wxStandardPathsWin16::GetUserConfigDir() const
     return wxGetHomeDir();
 }
 
+#endif // wxUSE_STDPATHS