/* static */
wxStandardPathsBase& wxStandardPathsBase::Get()
{
- return wxTheApp->GetTraits()->GetStandardPaths();
+ 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 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();