X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/40e8ee374f4be8108096e953333eaf45b3f743ed..b9efe021b554fa3967d1442cf758435c5cd5ae8f:/src/msw/stdpaths.cpp?ds=sidebyside diff --git a/src/msw/stdpaths.cpp b/src/msw/stdpaths.cpp index dcce507ce3..02b714d8f4 100644 --- a/src/msw/stdpaths.cpp +++ b/src/msw/stdpaths.cpp @@ -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