#pragma hdrstop
#endif
-// FIXME: there is no Mac implementation yet
-#ifndef __WXMAC__
+#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"
// ============================================================================
/* 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();
+}
+
+wxString wxStandardPathsBase::GetExecutablePath() const
+{
+ if ( !wxTheApp || !wxTheApp->argv )
+ return wxEmptyString;
+
+ wxString argv0 = wxTheApp->argv[0];
+ if (wxIsAbsolutePath(argv0))
+ return argv0;
+
+ // Search PATH.environment variable...
+ wxPathList pathlist;
+ pathlist.AddEnvList(wxT("PATH"));
+ wxString path = pathlist.FindAbsoluteValidPath(argv0);
+ if ( path.empty() )
+ return argv0; // better than nothing
+
+ wxFileName filename(path);
+ filename.Normalize();
+ return filename.GetFullPath();
+}
+
+wxStandardPathsBase& wxAppTraitsBase::GetStandardPaths()
{
return gs_stdPaths;
}
return GetUserDataDir();
}
+wxString wxStandardPathsBase::GetDocumentsDir() const
+{
+ return wxFileName::GetHomeDir();
+}
+
+// return the temporary directory for the current user
+wxString wxStandardPathsBase::GetTempDir() const
+{
+ return wxFileName::GetTempDir();
+}
+
/* static */
wxString wxStandardPathsBase::AppendAppName(const wxString& dir)
{
wxString subdir(dir);
- // empty string indicates that an error has occured, don't touch it then
+ // empty string indicates that an error has occurred, don't touch it then
if ( !subdir.empty() )
{
const wxString appname = wxTheApp->GetAppName();
return subdir;
}
-#endif // !__WXMAC__
-
+#endif // wxUSE_STDPATHS