| 1 | ///////////////////////////////////////////////////////////////////////////// |
| 2 | // Name: stdpaths.h |
| 3 | // Purpose: interface of wxStandardPaths |
| 4 | // Author: wxWidgets team |
| 5 | // RCS-ID: $Id$ |
| 6 | // Licence: wxWindows license |
| 7 | ///////////////////////////////////////////////////////////////////////////// |
| 8 | |
| 9 | /** |
| 10 | @class wxStandardPaths |
| 11 | @wxheader{stdpaths.h} |
| 12 | |
| 13 | wxStandardPaths returns the standard locations in the file system and should be |
| 14 | used by applications to find their data files in a portable way. |
| 15 | |
| 16 | In the description of the methods below, the example return values are given |
| 17 | for the Unix, Windows and Mac OS X systems, however please note that these are |
| 18 | just the examples and the actual values may differ. For example, under Windows: |
| 19 | the system administrator may change the standard directories locations, i.e. |
| 20 | the Windows directory may be named @c W:\Win2003 instead of |
| 21 | the default @c C:\Windows. |
| 22 | |
| 23 | The strings @c @e appname and @c @e username should be |
| 24 | replaced with the value returned by wxApp::GetAppName |
| 25 | and the name of the currently logged in user, respectively. The string |
| 26 | @c @e prefix is only used under Unix and is @c /usr/local by |
| 27 | default but may be changed using wxStandardPaths::SetInstallPrefix. |
| 28 | |
| 29 | The directories returned by the methods of this class may or may not exist. If |
| 30 | they don't exist, it's up to the caller to create them, wxStandardPaths doesn't |
| 31 | do it. |
| 32 | |
| 33 | Finally note that these functions only work with standardly packaged |
| 34 | applications. I.e. under Unix you should follow the standard installation |
| 35 | conventions and under Mac you should create your application bundle according |
| 36 | to the Apple guidelines. Again, this class doesn't help you to do it. |
| 37 | |
| 38 | This class is MT-safe: its methods may be called concurrently from different |
| 39 | threads without additional locking. |
| 40 | |
| 41 | @library{wxbase} |
| 42 | @category{file} |
| 43 | |
| 44 | @see wxFileConfig |
| 45 | */ |
| 46 | class wxStandardPaths |
| 47 | { |
| 48 | public: |
| 49 | /** |
| 50 | Returns reference to the unique global standard paths object. |
| 51 | */ |
| 52 | static wxStandardPathsBase Get(); |
| 53 | |
| 54 | /** |
| 55 | Return the directory containing the system config files. |
| 56 | Example return values: |
| 57 | Unix: @c /etc |
| 58 | Windows: @c C:\Documents and Settings\All Users\Application Data |
| 59 | Mac: @c /Library/Preferences |
| 60 | |
| 61 | @see wxFileConfig |
| 62 | */ |
| 63 | wxString GetConfigDir() const; |
| 64 | |
| 65 | /** |
| 66 | Return the location of the applications global, i.e. not user-specific, |
| 67 | data files. |
| 68 | Example return values: |
| 69 | Unix: @c @e prefix/share/@e appname |
| 70 | Windows: the directory where the executable file is located |
| 71 | Mac: @c @e appname.app/Contents/SharedSupport bundle subdirectory |
| 72 | |
| 73 | @see GetLocalDataDir() |
| 74 | */ |
| 75 | wxString GetDataDir() const; |
| 76 | |
| 77 | /** |
| 78 | Return the directory containing the current user's documents. |
| 79 | Example return values: |
| 80 | Unix: @c ~ (the home directory) |
| 81 | Windows: @c C:\Documents and Settings\@e username\Documents |
| 82 | Mac: @c ~/Documents |
| 83 | |
| 84 | @wxsince{2.7.0} |
| 85 | */ |
| 86 | wxString GetDocumentsDir() const; |
| 87 | |
| 88 | /** |
| 89 | Return the directory and the filename for the current executable. |
| 90 | Example return values: |
| 91 | Unix: @c /usr/local/bin/exename |
| 92 | Windows: @c C:\Programs\AppFolder\exename.exe |
| 93 | Mac: @c /Programs/exename |
| 94 | */ |
| 95 | wxString GetExecutablePath() const; |
| 96 | |
| 97 | /** |
| 98 | @note This function is only available under Unix. |
| 99 | Return the program installation prefix, e.g. @c /usr, @c /opt or |
| 100 | @c /home/zeitlin. |
| 101 | If the prefix had been previously by |
| 102 | SetInstallPrefix(), returns that |
| 103 | value, otherwise tries to determine it automatically (Linux only right |
| 104 | now) and finally returns the default @c /usr/local value if it failed. |
| 105 | */ |
| 106 | wxString GetInstallPrefix() const; |
| 107 | |
| 108 | /** |
| 109 | Return the location for application data files which are host-specific and |
| 110 | can't, or shouldn't, be shared with the other machines. |
| 111 | This is the same as GetDataDir() except |
| 112 | under Unix where it returns @c /etc/@e appname. |
| 113 | */ |
| 114 | wxString GetLocalDataDir() const; |
| 115 | |
| 116 | /** |
| 117 | Return the localized resources directory containing the resource files of the |
| 118 | specified category for the given language. |
| 119 | In general this is just the same as @a lang subdirectory of |
| 120 | GetResourcesDir() (or |
| 121 | @c @e lang.lproj under Mac OS X) but is something quite |
| 122 | different for message catalog category under Unix where it returns the standard |
| 123 | @c @e prefix/share/locale/@e lang/LC_MESSAGES directory. |
| 124 | |
| 125 | @wxsince{2.7.0} |
| 126 | */ |
| 127 | wxString GetLocalizedResourcesDir(const wxString& lang, |
| 128 | ResourceCat category = ResourceCat_None) const; |
| 129 | |
| 130 | /** |
| 131 | Return the directory where the loadable modules (plugins) live. |
| 132 | Example return values: |
| 133 | Unix: @c @e prefix/lib/@e appname |
| 134 | Windows: the directory of the executable file |
| 135 | Mac: @c @e appname.app/Contents/PlugIns bundle subdirectory |
| 136 | |
| 137 | @see wxDynamicLibrary |
| 138 | */ |
| 139 | wxString GetPluginsDir() const; |
| 140 | |
| 141 | /** |
| 142 | Return the directory where the application resource files are located. The |
| 143 | resources are the auxiliary data files needed for the application to run and |
| 144 | include, for example, image and sound files it might use. |
| 145 | This function is the same as GetDataDir() for |
| 146 | all platforms except Mac OS X. |
| 147 | Example return values: |
| 148 | Unix: @c @e prefix/share/@e appname |
| 149 | Windows: the directory where the executable file is located |
| 150 | Mac: @c @e appname.app/Contents/Resources bundle subdirectory |
| 151 | |
| 152 | @wxsince{2.7.0} |
| 153 | |
| 154 | @see GetLocalizedResourcesDir() |
| 155 | */ |
| 156 | wxString GetResourcesDir() const; |
| 157 | |
| 158 | /** |
| 159 | Return the directory for storing temporary files. To create unique temporary |
| 160 | files, |
| 161 | it is best to use wxFileName::CreateTempFileName for correct behaviour when |
| 162 | multiple processes are attempting to create temporary files. |
| 163 | |
| 164 | @wxsince{2.7.2} |
| 165 | */ |
| 166 | wxString GetTempDir() const; |
| 167 | |
| 168 | /** |
| 169 | Return the directory for the user config files: |
| 170 | Unix: @c ~ (the home directory) |
| 171 | Windows: @c C:\Documents and Settings\@e username\Application Data |
| 172 | Mac: @c ~/Library/Preferences |
| 173 | Only use this method if you have a single configuration file to put in this |
| 174 | directory, otherwise GetUserDataDir() is |
| 175 | more appropriate. |
| 176 | */ |
| 177 | wxString GetUserConfigDir() const; |
| 178 | |
| 179 | /** |
| 180 | Return the directory for the user-dependent application data files: |
| 181 | Unix: @c ~/.@e appname |
| 182 | Windows: @c C:\Documents and Settings\@e username\Application Data\@e |
| 183 | appname |
| 184 | Mac: @c ~/Library/Application Support/@e appname |
| 185 | */ |
| 186 | wxString GetUserDataDir() const; |
| 187 | |
| 188 | /** |
| 189 | Return the directory for user data files which shouldn't be shared with |
| 190 | the other machines. |
| 191 | This is the same as GetUserDataDir() for |
| 192 | all platforms except Windows where it returns |
| 193 | @c C:\Documents and Settings\@e username\Local Settings\Application Data\@e |
| 194 | appname |
| 195 | */ |
| 196 | wxString GetUserLocalDataDir() const; |
| 197 | |
| 198 | /** |
| 199 | @note This function is only available under Unix. |
| 200 | Lets wxStandardPaths know about the real program installation prefix on a Unix |
| 201 | system. By default, the value returned by |
| 202 | GetInstallPrefix() is used. |
| 203 | Although under Linux systems the program prefix may usually be determined |
| 204 | automatically, portable programs should call this function. Usually the prefix |
| 205 | is set during program configuration if using GNU autotools and so it is enough |
| 206 | to pass its value defined in @c config.h to this function. |
| 207 | */ |
| 208 | void SetInstallPrefix(const wxString& prefix); |
| 209 | |
| 210 | /** |
| 211 | Controls what application information is used when constructing paths that |
| 212 | should be unique to this program, such as the application data directory, the |
| 213 | plugins directory on Unix, etc. |
| 214 | Valid values for @a info are @c AppInfo_None and either one or |
| 215 | combination of @c AppInfo_AppName and @c AppInfo_VendorName. The |
| 216 | first one tells this class to not use neither application nor vendor name in |
| 217 | the paths. |
| 218 | By default, only the application name is used under Unix systems but both |
| 219 | application and vendor names are used under Windows and Mac. |
| 220 | */ |
| 221 | void UseAppInfo(int info); |
| 222 | }; |
| 223 | |