| 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
| 2 | %% Name: stdpaths.tex |
| 3 | %% Purpose: wxStandardPaths documentation |
| 4 | %% Author: Vadim Zeitlin |
| 5 | %% Modified by: |
| 6 | %% Created: 2004-10-17 |
| 7 | %% RCS-ID: $Id$ |
| 8 | %% Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org> |
| 9 | %% License: wxWindows license |
| 10 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
| 11 | |
| 12 | \section{\class{wxStandardPaths}}\label{wxstandardpaths} |
| 13 | |
| 14 | wxStandardPaths returns the standard locations in the file system and should be |
| 15 | used by applications to find their data files in a portable way. |
| 16 | |
| 17 | In the description of the methods below, the example return values are given |
| 18 | for the Unix, Windows and Mac OS X systems, however please note that these are |
| 19 | just the examples and the actual values may differ. For example, under Windows: |
| 20 | the system administrator may change the standard directories locations, i.e. |
| 21 | the Windows directory may be named \texttt{W:$\backslash$Win2003} instead of |
| 22 | the default \texttt{C:$\backslash$Windows}. |
| 23 | |
| 24 | The strings \texttt{\textit{appname}} and \texttt{\textit{username}} should be |
| 25 | replaced with the value returned by \helpref{wxApp::GetAppName}{wxappgetappname} |
| 26 | and the name of the currently logged in user, respectively. The string |
| 27 | \texttt{\textit{prefix}} is only used under Unix and is \texttt{/usr/local} by |
| 28 | default but may be changed using \helpref{SetInstallPrefix}{wxstandardpathssetinstallprefix}. |
| 29 | |
| 30 | The directories returned by the methods of this class may or may not exist. If |
| 31 | they don't exist, it's up to the caller to create them, wxStandardPaths doesn't |
| 32 | do it. |
| 33 | |
| 34 | Finally note that these functions only work with standardly packaged |
| 35 | applications. I.e. under Unix you should follow the standard installation |
| 36 | conventions and under Mac you should create your application bundle according |
| 37 | to the Apple guidelines. Again, this class doesn't help you to do it. |
| 38 | |
| 39 | This class is MT-safe: its methods may be called concurrently from different |
| 40 | threads without additional locking. |
| 41 | |
| 42 | \wxheading{Derived from} |
| 43 | |
| 44 | No base class |
| 45 | |
| 46 | \wxheading{Include files} |
| 47 | |
| 48 | <wx/stdpaths.h> |
| 49 | |
| 50 | \wxheading{Library} |
| 51 | |
| 52 | \helpref{wxBase}{librarieslist} |
| 53 | |
| 54 | |
| 55 | \latexignore{\rtfignore{\wxheading{Members}}} |
| 56 | |
| 57 | |
| 58 | \membersection{wxStandardPaths::Get}\label{wxstandardpathsget} |
| 59 | |
| 60 | \func{static wxStandardPathsBase\&}{Get}{\void} |
| 61 | |
| 62 | Returns reference to the unique global standard paths object. |
| 63 | |
| 64 | |
| 65 | \membersection{wxStandardPaths::GetConfigDir}\label{wxstandardpathsgetconfigdir} |
| 66 | |
| 67 | \constfunc{wxString}{GetConfigDir}{\void} |
| 68 | |
| 69 | Return the directory containing the system config files. |
| 70 | |
| 71 | Example return values: |
| 72 | \begin{itemize} |
| 73 | \item Unix: \texttt{/etc} |
| 74 | \item Windows: \texttt{C:$\backslash$Documents and Settings$\backslash$All Users$\backslash$Application Data} |
| 75 | \item Mac: \texttt{/Library/Preferences} |
| 76 | \end{itemize} |
| 77 | |
| 78 | \wxheading{See also} |
| 79 | |
| 80 | \helpref{wxFileConfig}{wxfileconfig} |
| 81 | |
| 82 | |
| 83 | \membersection{wxStandardPaths::GetDataDir}\label{wxstandardpathsgetdatadir} |
| 84 | |
| 85 | \constfunc{wxString}{GetDataDir}{\void} |
| 86 | |
| 87 | Return the location of the applications global, i.e. not user-specific, |
| 88 | data files. |
| 89 | |
| 90 | Example return values: |
| 91 | \begin{itemize} |
| 92 | \item Unix: \texttt{\textit{prefix}/share/\textit{appname}} |
| 93 | \item Windows: the directory where the executable file is located |
| 94 | \item Mac: \texttt{\textit{appname}.app/Contents/SharedSupport} bundle subdirectory |
| 95 | \end{itemize} |
| 96 | |
| 97 | \wxheading{See also} |
| 98 | |
| 99 | \helpref{GetLocalDataDir}{wxstandardpathsgetlocaldatadir} |
| 100 | |
| 101 | |
| 102 | \membersection{wxStandardPaths::GetDocumentsDir}\label{wxstandardpathsgetdocumentsdir} |
| 103 | |
| 104 | \constfunc{wxString}{GetDocumentsDir}{\void} |
| 105 | |
| 106 | Return the directory containing the current user's documents. |
| 107 | |
| 108 | Example return values: |
| 109 | \begin{itemize} |
| 110 | \item Unix: \tt{~} (the home directory) |
| 111 | \item Windows: \texttt{C:$\backslash$Documents and Settings$\backslash$\textit{username}$\backslash$Documents} |
| 112 | \item Mac: \texttt{~/Documents} |
| 113 | \end{itemize} |
| 114 | |
| 115 | \newsince{2.7.0} |
| 116 | |
| 117 | |
| 118 | \membersection{wxStandardPaths::GetExecutablePath}\label{wxstandardpathsgetexecutablepath} |
| 119 | |
| 120 | \constfunc{wxString}{GetExecutablePath}{\void} |
| 121 | |
| 122 | Return the directory and the filename for the current executable. |
| 123 | |
| 124 | Example return values: |
| 125 | \begin{itemize} |
| 126 | \item Unix: \texttt{/usr/local/bin/exename} |
| 127 | \item Windows: \texttt{C:$\backslash$Programs$\backslash$AppFolder$\backslash$exename.exe} |
| 128 | \item Mac: \texttt{/Programs/exename} |
| 129 | \end{itemize} |
| 130 | |
| 131 | |
| 132 | |
| 133 | \membersection{wxStandardPaths::GetInstallPrefix}\label{wxstandardpathsgetinstallprefix} |
| 134 | |
| 135 | \constfunc{wxString}{GetInstallPrefix}{\void} |
| 136 | |
| 137 | \textbf{Note: } This function is only available under Unix. |
| 138 | |
| 139 | Return the program installation prefix, e.g. \texttt{/usr}, \texttt{/opt} or |
| 140 | \texttt{/home/zeitlin}. |
| 141 | |
| 142 | If the prefix had been previously by |
| 143 | \helpref{SetInstallPrefix}{wxstandardpathssetinstallprefix}, returns that |
| 144 | value, otherwise tries to determine it automatically (Linux only right |
| 145 | now) and finally returns the default \texttt{/usr/local} value if it failed. |
| 146 | |
| 147 | |
| 148 | \membersection{wxStandardPaths::GetLocalDataDir}\label{wxstandardpathsgetlocaldatadir} |
| 149 | |
| 150 | \constfunc{wxString}{GetLocalDataDir}{\void} |
| 151 | |
| 152 | Return the location for application data files which are host-specific and |
| 153 | can't, or shouldn't, be shared with the other machines. |
| 154 | |
| 155 | This is the same as \helpref{GetDataDir()}{wxstandardpathsgetdatadir} except |
| 156 | under Unix where it returns \texttt{/etc/\textit{appname}}. |
| 157 | |
| 158 | |
| 159 | \membersection{wxStandardPaths::GetLocalizedResourcesDir}\label{wxstandardpathsgetlocalizedresourcesdir} |
| 160 | |
| 161 | \constfunc{wxString}{GetLocalizedResourcesDir}{\param{const wxString\&}{ lang}, \param{ResourceCat}{ category = ResourceCat\_None}} |
| 162 | |
| 163 | Return the localized resources directory containing the resource files of the |
| 164 | specified category for the given language. |
| 165 | |
| 166 | In general this is just the same as \arg{lang} subdirectory of |
| 167 | \helpref{GetResourcesDir()}{wxstandardpathsgetresourcesdir} (or |
| 168 | \texttt{\arg{lang}.lproj} under Mac OS X) but is something quite |
| 169 | different for message catalog category under Unix where it returns the standard |
| 170 | \texttt{\textit{prefix}/share/locale/\arg{lang}/LC\_MESSAGES} directory. |
| 171 | |
| 172 | \newsince{2.7.0} |
| 173 | |
| 174 | |
| 175 | \membersection{wxStandardPaths::GetPluginsDir}\label{wxstandardpathsgetpluginsdir} |
| 176 | |
| 177 | \constfunc{wxString}{GetPluginsDir}{\void} |
| 178 | |
| 179 | Return the directory where the loadable modules (plugins) live. |
| 180 | |
| 181 | Example return values: |
| 182 | \begin{itemize} |
| 183 | \item Unix: \texttt{\textit{prefix}/lib/\textit{appname}} |
| 184 | \item Windows: the directory of the executable file |
| 185 | \item Mac: \texttt{\textit{appname}.app/Contents/PlugIns} bundle subdirectory |
| 186 | \end{itemize} |
| 187 | |
| 188 | \wxheading{See also} |
| 189 | |
| 190 | \helpref{wxDynamicLibrary}{wxdynamiclibrary} |
| 191 | |
| 192 | |
| 193 | \membersection{wxStandardPaths::GetResourcesDir}\label{wxstandardpathsgetresourcesdir} |
| 194 | |
| 195 | \constfunc{wxString}{GetResourcesDir}{\void} |
| 196 | |
| 197 | Return the directory where the application resource files are located. The |
| 198 | resources are the auxiliary data files needed for the application to run and |
| 199 | include, for example, image and sound files it might use. |
| 200 | |
| 201 | This function is the same as \helpref{GetDataDir}{wxstandardpathsgetdatadir} for |
| 202 | all platforms except Mac OS X. |
| 203 | |
| 204 | Example return values: |
| 205 | \begin{itemize} |
| 206 | \item Unix: \texttt{\textit{prefix}/share/\textit{appname}} |
| 207 | \item Windows: the directory where the executable file is located |
| 208 | \item Mac: \texttt{\textit{appname}.app/Contents/Resources} bundle subdirectory |
| 209 | \end{itemize} |
| 210 | |
| 211 | \newsince{2.7.0} |
| 212 | |
| 213 | |
| 214 | \wxheading{See also} |
| 215 | |
| 216 | \helpref{GetLocalizedResourcesDir}{wxstandardpathsgetlocalizedresourcesdir} |
| 217 | |
| 218 | \membersection{wxStandardPaths::GetTempDir}\label{wxstandardpathsgettempdir} |
| 219 | |
| 220 | \constfunc{wxString}{GetTempDir}{\void} |
| 221 | |
| 222 | Return the directory for storing temporary files. To create unique temporary files, |
| 223 | it is best to use \helpref{wxFileName::CreateTempFileName}{wxfilenamecreatetempfilename} for correct behaviour when |
| 224 | multiple processes are attempting to create temporary files. |
| 225 | |
| 226 | \newsince{2.7.2} |
| 227 | |
| 228 | \membersection{wxStandardPaths::GetUserConfigDir}\label{wxstandardpathsgetuserconfigdir} |
| 229 | |
| 230 | \constfunc{wxString}{GetUserConfigDir}{\void} |
| 231 | |
| 232 | Return the directory for the user config files: |
| 233 | \begin{itemize} |
| 234 | \item Unix: \tt{~} (the home directory) |
| 235 | \item Windows: \tt{C:$\backslash$Documents and Settings$\backslash$\textit{username}$\backslash$Application Data} |
| 236 | \item Mac: \tt{~/Library/Preferences} |
| 237 | \end{itemize} |
| 238 | |
| 239 | Only use this method if you have a single configuration file to put in this |
| 240 | directory, otherwise \helpref{GetUserDataDir()}{wxstandardpathsgetuserdatadir} is |
| 241 | more appropriate. |
| 242 | |
| 243 | |
| 244 | \membersection{wxStandardPaths::GetUserDataDir}\label{wxstandardpathsgetuserdatadir} |
| 245 | |
| 246 | \constfunc{wxString}{GetUserDataDir}{\void} |
| 247 | |
| 248 | Return the directory for the user-dependent application data files: |
| 249 | \begin{itemize} |
| 250 | \item Unix: \tt{~/.\textit{appname}} |
| 251 | \item Windows: \tt{C:$\backslash$Documents and Settings$\backslash$\textit{username}$\backslash$Application Data$\backslash$\textit{appname}} |
| 252 | \item Mac: \tt{~/Library/Application Support/\textit{appname}} |
| 253 | \end{itemize} |
| 254 | |
| 255 | |
| 256 | \membersection{wxStandardPaths::GetUserLocalDataDir}\label{wxstandardpathsgetuserlocaldatadir} |
| 257 | |
| 258 | \constfunc{wxString}{GetUserLocalDataDir}{\void} |
| 259 | |
| 260 | Return the directory for user data files which shouldn't be shared with |
| 261 | the other machines. |
| 262 | |
| 263 | This is the same as \helpref{GetUserDataDir()}{wxstandardpathsgetuserdatadir} for |
| 264 | all platforms except Windows where it returns |
| 265 | \texttt{C:$\backslash$Documents and Settings$\backslash$\textit{username}$\backslash$Local Settings$\backslash$Application Data$\backslash$\textit{appname}} |
| 266 | |
| 267 | |
| 268 | \membersection{wxStandardPaths::SetInstallPrefix}\label{wxstandardpathssetinstallprefix} |
| 269 | |
| 270 | \func{void}{SetInstallPrefix}{\param{const wxString\& }{prefix}} |
| 271 | |
| 272 | \textbf{Note:} This function is only available under Unix. |
| 273 | |
| 274 | Lets wxStandardPaths know about the real program installation prefix on a Unix |
| 275 | system. By default, the value returned by |
| 276 | \helpref{GetInstallPrefix}{wxstandardpathsgetinstallprefix} is used. |
| 277 | |
| 278 | Although under Linux systems the program prefix may usually be determined |
| 279 | automatically, portable programs should call this function. Usually the prefix |
| 280 | is set during program configuration if using GNU autotools and so it is enough |
| 281 | to pass its value defined in \texttt{config.h} to this function. |
| 282 | |
| 283 | |
| 284 | \membersection{wxStandardPaths::UseAppInfo}\label{wxstandardpathsuseappinfo} |
| 285 | |
| 286 | \func{void}{UseAppInfo}{\param{int }{info}} |
| 287 | |
| 288 | Controls what application information is used when constructing paths that |
| 289 | should be unique to this program, such as the application data directory, the |
| 290 | plugins directory on Unix, etc. |
| 291 | |
| 292 | Valid values for \arg{info} are \texttt{AppInfo\_None} and either one or |
| 293 | combination of \texttt{AppInfo\_AppName} and \texttt{AppInfo\_VendorName}. The |
| 294 | first one tells this class to not use neither application nor vendor name in |
| 295 | the paths. |
| 296 | |
| 297 | By default, only the application name is used under Unix systems but both |
| 298 | application and vendor names are used under Windows and Mac. |
| 299 | |
| 300 | \wxheading{See also} |
| 301 | |
| 302 | \helpref{wxApp::SetAppName}{wxappsetappname}, \helpref{wxApp::SetVendorName}{wxappsetvendorname} |
| 303 | |