2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: stdpaths.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxStandardPaths
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxStandardPaths
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
wxStandardPaths returns the standard locations in the file system and should be
|
|
|
|
used by applications to find their data files in a portable way.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
In the description of the methods below, the example return values are given
|
|
|
|
for the Unix, Windows and Mac OS X systems, however please note that these are
|
|
|
|
just the examples and the actual values may differ. For example, under Windows:
|
|
|
|
the system administrator may change the standard directories locations, i.e.
|
2008-04-12 16:29:32 -04:00
|
|
|
the Windows directory may be named @c W:\\Win2003 instead of
|
|
|
|
the default @c C:\\Windows.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-04-12 16:29:32 -04:00
|
|
|
The strings @c appname and @c username should be
|
2008-03-08 08:52:38 -05:00
|
|
|
replaced with the value returned by wxApp::GetAppName
|
|
|
|
and the name of the currently logged in user, respectively. The string
|
2008-04-12 16:29:32 -04:00
|
|
|
@c prefix is only used under Unix and is @c /usr/local by
|
2008-03-08 08:52:38 -05:00
|
|
|
default but may be changed using wxStandardPaths::SetInstallPrefix.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
The directories returned by the methods of this class may or may not exist. If
|
|
|
|
they don't exist, it's up to the caller to create them, wxStandardPaths doesn't
|
|
|
|
do it.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Finally note that these functions only work with standardly packaged
|
|
|
|
applications. I.e. under Unix you should follow the standard installation
|
|
|
|
conventions and under Mac you should create your application bundle according
|
|
|
|
to the Apple guidelines. Again, this class doesn't help you to do it.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
This class is MT-safe: its methods may be called concurrently from different
|
|
|
|
threads without additional locking.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-07-26 05:20:44 -04:00
|
|
|
Note that you don't allocate an instance of class wxStandardPaths, but retrieve the
|
|
|
|
global standard paths object using @c wxStandardPaths::Get on which you call the
|
|
|
|
desired methods.
|
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxbase}
|
|
|
|
@category{file}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-10 11:24:38 -04:00
|
|
|
@see wxFileConfig
|
2008-04-12 11:05:27 -04:00
|
|
|
*/
|
2008-03-08 09:43:31 -05:00
|
|
|
class wxStandardPaths
|
2008-03-08 08:52:38 -05:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
Returns reference to the unique global standard paths object.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
static wxStandardPathsBase Get();
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the directory containing the system config files.
|
|
|
|
Example return values:
|
2008-04-12 15:34:32 -04:00
|
|
|
- Unix: @c /etc
|
2008-04-12 16:29:32 -04:00
|
|
|
- Windows: @c C:\\Documents @c and @c Settings\\All @c Users\\Application Data
|
2008-04-12 15:34:32 -04:00
|
|
|
- Mac: @c /Library/Preferences
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see wxFileConfig
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetConfigDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the location of the applications global, i.e. not user-specific,
|
|
|
|
data files.
|
|
|
|
Example return values:
|
2008-04-12 16:29:32 -04:00
|
|
|
- Unix: @c prefix/share/appname
|
2008-04-12 15:34:32 -04:00
|
|
|
- Windows: the directory where the executable file is located
|
2008-04-12 16:29:32 -04:00
|
|
|
- Mac: @c appname.app/Contents/SharedSupport bundle subdirectory
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see GetLocalDataDir()
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetDataDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the directory containing the current user's documents.
|
|
|
|
Example return values:
|
2008-04-12 15:34:32 -04:00
|
|
|
- Unix: @c ~ (the home directory)
|
2008-04-12 16:29:32 -04:00
|
|
|
- Windows: @c C:\\Documents @c and @c Settings\\username\\Documents
|
2008-04-12 15:34:32 -04:00
|
|
|
- Mac: @c ~/Documents
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-04-21 06:34:23 -04:00
|
|
|
@since 2.7.0
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetDocumentsDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the directory and the filename for the current executable.
|
|
|
|
Example return values:
|
2008-04-12 16:29:32 -04:00
|
|
|
- Unix: @c /usr/local/bin/exename
|
|
|
|
- Windows: @c C:\\Programs\\AppFolder\\exename.exe
|
|
|
|
- Mac: @c /Programs/exename
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetExecutablePath() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-04-01 09:59:28 -04:00
|
|
|
@note This function is only available under Unix.
|
2008-03-08 08:52:38 -05:00
|
|
|
Return the program installation prefix, e.g. @c /usr, @c /opt or
|
|
|
|
@c /home/zeitlin.
|
2008-04-12 11:05:27 -04:00
|
|
|
If the prefix had been previously by SetInstallPrefix(), returns that
|
2008-03-08 08:52:38 -05:00
|
|
|
value, otherwise tries to determine it automatically (Linux only right
|
|
|
|
now) and finally returns the default @c /usr/local value if it failed.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetInstallPrefix() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the location for application data files which are host-specific and
|
|
|
|
can't, or shouldn't, be shared with the other machines.
|
|
|
|
This is the same as GetDataDir() except
|
2008-04-12 16:29:32 -04:00
|
|
|
under Unix where it returns @c /etc/appname.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetLocalDataDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the localized resources directory containing the resource files of the
|
|
|
|
specified category for the given language.
|
2008-03-09 08:33:59 -04:00
|
|
|
In general this is just the same as @a lang subdirectory of
|
2008-04-12 16:29:32 -04:00
|
|
|
GetResourcesDir() (or @c lang.lproj under Mac OS X) but is something quite
|
2008-03-08 08:52:38 -05:00
|
|
|
different for message catalog category under Unix where it returns the standard
|
2008-04-12 16:29:32 -04:00
|
|
|
@c prefix/share/locale/lang/LC_MESSAGES directory.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-04-21 06:34:23 -04:00
|
|
|
@since 2.7.0
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
wxString GetLocalizedResourcesDir(const wxString& lang,
|
2008-03-09 12:24:26 -04:00
|
|
|
ResourceCat category = ResourceCat_None) const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the directory where the loadable modules (plugins) live.
|
|
|
|
Example return values:
|
2008-04-12 16:29:32 -04:00
|
|
|
- Unix: @c prefix/lib/appname
|
2008-04-12 15:34:32 -04:00
|
|
|
- Windows: the directory of the executable file
|
2008-04-12 16:29:32 -04:00
|
|
|
- Mac: @c appname.app/Contents/PlugIns bundle subdirectory
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see wxDynamicLibrary
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetPluginsDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the directory where the application resource files are located. The
|
|
|
|
resources are the auxiliary data files needed for the application to run and
|
|
|
|
include, for example, image and sound files it might use.
|
|
|
|
This function is the same as GetDataDir() for
|
|
|
|
all platforms except Mac OS X.
|
|
|
|
Example return values:
|
2008-04-12 16:29:32 -04:00
|
|
|
- Unix: @c prefix/share/@e appname
|
2008-04-12 15:34:32 -04:00
|
|
|
- Windows: the directory where the executable file is located
|
2008-04-12 16:29:32 -04:00
|
|
|
- Mac: @c appname.app/Contents/Resources bundle subdirectory
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-04-21 06:34:23 -04:00
|
|
|
@since 2.7.0
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see GetLocalizedResourcesDir()
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetResourcesDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the directory for storing temporary files. To create unique temporary
|
|
|
|
files,
|
|
|
|
it is best to use wxFileName::CreateTempFileName for correct behaviour when
|
|
|
|
multiple processes are attempting to create temporary files.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-04-21 06:34:23 -04:00
|
|
|
@since 2.7.2
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetTempDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the directory for the user config files:
|
2008-04-12 15:34:32 -04:00
|
|
|
- Unix: @c ~ (the home directory)
|
2008-04-12 16:29:32 -04:00
|
|
|
- Windows: @c C:\\Documents @c and @c Settings\\username\\Application Data
|
2008-04-12 15:34:32 -04:00
|
|
|
- Mac: @c ~/Library/Preferences
|
2008-03-08 08:52:38 -05:00
|
|
|
Only use this method if you have a single configuration file to put in this
|
|
|
|
directory, otherwise GetUserDataDir() is
|
|
|
|
more appropriate.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetUserConfigDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the directory for the user-dependent application data files:
|
2008-04-12 16:29:32 -04:00
|
|
|
- Unix: @c ~/.appname
|
2008-08-25 05:12:15 -04:00
|
|
|
- Windows: @c C:\\Documents @c and @c Settings\\username\Application @c Data\\appname
|
2008-04-12 16:29:32 -04:00
|
|
|
- Mac: @c ~/Library/Application @c Support/appname
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetUserDataDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return the directory for user data files which shouldn't be shared with
|
|
|
|
the other machines.
|
2008-04-12 15:34:32 -04:00
|
|
|
This is the same as GetUserDataDir() for all platforms except Windows where it returns
|
2008-08-25 05:12:15 -04:00
|
|
|
@c C:\\Documents @c and @c Settings\\username\\Local @c Settings\\Application @c Data\\appname
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxString GetUserLocalDataDir() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-04-01 09:59:28 -04:00
|
|
|
@note This function is only available under Unix.
|
2008-03-08 08:52:38 -05:00
|
|
|
Lets wxStandardPaths know about the real program installation prefix on a Unix
|
|
|
|
system. By default, the value returned by
|
|
|
|
GetInstallPrefix() is used.
|
|
|
|
Although under Linux systems the program prefix may usually be determined
|
|
|
|
automatically, portable programs should call this function. Usually the prefix
|
|
|
|
is set during program configuration if using GNU autotools and so it is enough
|
|
|
|
to pass its value defined in @c config.h to this function.
|
|
|
|
*/
|
|
|
|
void SetInstallPrefix(const wxString& prefix);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Controls what application information is used when constructing paths that
|
|
|
|
should be unique to this program, such as the application data directory, the
|
|
|
|
plugins directory on Unix, etc.
|
2008-03-09 08:33:59 -04:00
|
|
|
Valid values for @a info are @c AppInfo_None and either one or
|
2008-03-08 08:52:38 -05:00
|
|
|
combination of @c AppInfo_AppName and @c AppInfo_VendorName. The
|
|
|
|
first one tells this class to not use neither application nor vendor name in
|
|
|
|
the paths.
|
|
|
|
By default, only the application name is used under Unix systems but both
|
|
|
|
application and vendor names are used under Windows and Mac.
|
|
|
|
*/
|
|
|
|
void UseAppInfo(int info);
|
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|