X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6cb5e50b0d2259de305f273d2be3d28d7e84dc6a..c8026dea6cf102fb741f132142f9d6584d3e0cef:/src/common/stdpbase.cpp diff --git a/src/common/stdpbase.cpp b/src/common/stdpbase.cpp index 4d477a2974..6f9bba7c97 100644 --- a/src/common/stdpbase.cpp +++ b/src/common/stdpbase.cpp @@ -24,6 +24,14 @@ #pragma hdrstop #endif +#if wxUSE_STDPATHS + +#ifndef WX_PRECOMP + #include "wx/app.h" +#endif //WX_PRECOMP +#include "wx/apptrait.h" + +#include "wx/filename.h" #include "wx/stdpaths.h" // ---------------------------------------------------------------------------- @@ -37,7 +45,15 @@ static wxStandardPaths gs_stdPaths; // ============================================================================ /* static */ -wxStandardPaths& wxStandardPathsBase::Get() +wxStandardPathsBase& wxStandardPathsBase::Get() +{ + wxAppTraits * const traits = wxTheApp ? wxTheApp->GetTraits() : NULL; + wxCHECK_MSG( traits, gs_stdPaths, _T("create wxApp before calling this") ); + + return traits->GetStandardPaths(); +} + +wxStandardPathsBase& wxAppTraitsBase::GetStandardPaths() { return gs_stdPaths; } @@ -57,3 +73,26 @@ wxString wxStandardPathsBase::GetUserLocalDataDir() const return GetUserDataDir(); } +/* static */ +wxString wxStandardPathsBase::AppendAppName(const wxString& dir) +{ + wxString subdir(dir); + + // empty string indicates that an error has occurred, don't touch it then + if ( !subdir.empty() ) + { + const wxString appname = wxTheApp->GetAppName(); + if ( !appname.empty() ) + { + const wxChar ch = *(subdir.end() - 1); + if ( !wxFileName::IsPathSeparator(ch) && ch != _T('.') ) + subdir += wxFileName::GetPathSeparator(); + + subdir += appname; + } + } + + return subdir; +} + +#endif // wxUSE_STDPATHS