]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/stdpaths.h
avoid GTK+ prefixes for our tree entry code, it is not part of GTK+, should have...
[wxWidgets.git] / interface / wx / stdpaths.h
index 8de3c97ae219f1a61a7873fd74dbf186edf69304..29d9c849e3928d50c5f02573c141d44e42838a93 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxStandardPaths
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
     wxStandardPaths returns the standard locations in the file system and should be
     used by applications to find their data files in a portable way.
 
+    Note that you must not create objects of class wxStandardPaths directly,
+    but use the global standard paths object returned by wxStandardPaths::Get()
+    (which can be of a type derived from wxStandardPaths and not of exactly
+    this type) and call the methods you need on it. The object returned by
+    Get() may be customized by overriding wxAppTraits::GetStandardPaths()
+    methods.
+
     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.
+    the system administrator may change the standard directories locations, e.g.
     the Windows directory may be named @c "W:\Win2003" instead of
     the default @c "C:\Windows".
 
-    Notice that in the examples below the string @c appname may be either just
+    Notice that in the examples below the string @c appinfo may be either just
     the application name (as returned by wxApp::GetAppName()) or a combination
     of the vendor name (wxApp::GetVendorName()) and the application name, with
-    a path separator between them. By default, the vendor name is used under
-    Windows and OS X but not under other Unix systems, see UseAppInfo().
+    a path separator between them. By default, only the application name is
+    used, use UseAppInfo() to change this.
 
     The other placeholders should be self-explanatory: the string @c username
     should be replaced with the value the name of the currently logged in user.
     This class is MT-safe: its methods may be called concurrently from different
     threads without additional locking.
 
-    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.
-
     @library{wxbase}
     @category{file}
 
 class wxStandardPaths
 {
 public:
+    /// Possible values for category parameter of GetLocalizedResourcesDir().
+    enum ResourceCat
+    {
+        /// No special category, this is the default.
+        ResourceCat_None,
+
+        /// Message catalog resources category.
+        ResourceCat_Messages
+    };
+
+
     /**
         MSW-specific function undoing the effect of IgnoreAppSubDir() calls.
 
@@ -79,9 +93,9 @@ public:
         returns GetDocumentsDir().
 
         Example return values:
-        - Unix: @c ~/appname
-        - Windows: @c "C:\Documents and Settings\username\My Documents\appname"
-        - Mac: @c ~/Documents/appname
+        - Unix: @c ~/appinfo
+        - Windows: @c "C:\Documents and Settings\username\My Documents\appinfo"
+        - Mac: @c ~/Documents/appinfo
 
         @since 2.9.0
 
@@ -101,12 +115,21 @@ public:
     virtual wxString GetConfigDir() const;
 
     /**
-        Return the location of the applications global, i.e. not user-specific,
+        Return the location of the applications global, i.e.\ not user-specific,
         data files.
+
         Example return values:
-        - Unix: @c prefix/share/appname
+        - Unix: @c prefix/share/appinfo
         - Windows: the directory where the executable file is located
-        - Mac: @c appname.app/Contents/SharedSupport bundle subdirectory
+        - Mac: @c appinfo.app/Contents/SharedSupport bundle subdirectory
+
+        Under Unix (only) it is possible to override the default value returned
+        from this function by setting the value of @c WX_APPNAME_DATA_DIR
+        environment variable to the directory to use (where @c APPNAME is the
+        upper-cased value of wxApp::GetAppName()). This is useful in order to
+        be able to run applications using this function without installing them
+        as you can simply set this environment variable to the source directory
+        location to allow the application to find its files there.
 
         @see GetLocalDataDir()
     */
@@ -131,18 +154,21 @@ public:
         Example return values:
         - Unix: @c /usr/local/bin/exename
         - Windows: @c "C:\Programs\AppFolder\exename.exe"
-        - Mac: @c /Programs/exename
+        - Mac: @c /Applications/exename.app/Contents/MacOS/exename
     */
     virtual wxString GetExecutablePath() const;
 
     /**
-        Return the program installation prefix, e.g. @c /usr, @c /opt or @c /home/zeitlin.
+        Return the program installation prefix, e.g.\ @c /usr, @c /opt or @c /home/zeitlin.
 
         If the prefix had been previously by SetInstallPrefix(), returns that
         value, otherwise tries to determine it automatically (Linux only right now)
         and finally returns the default @c /usr/local value if it failed.
 
-        @note This function is only available under Unix.
+        @note This function is only available under Unix platforms (but not limited
+        to wxGTK mentioned below).
+
+        @onlyfor{wxos2,wxgtk}
     */
     wxString GetInstallPrefix() const;
 
@@ -150,7 +176,7 @@ public:
         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 under Unix where it returns @c /etc/appname.
+        This is the same as GetDataDir() except under Unix where it returns @c /etc/appinfo.
     */
     virtual wxString GetLocalDataDir() const;
 
@@ -165,15 +191,16 @@ public:
 
         @since 2.7.0
     */
-    virtual wxString GetLocalizedResourcesDir(const wxString& lang,
-                                              ResourceCat category) const;
+    virtual wxString
+    GetLocalizedResourcesDir(const wxString& lang,
+                             ResourceCat category = ResourceCat_None) const;
 
     /**
         Return the directory where the loadable modules (plugins) live.
         Example return values:
-        - Unix: @c prefix/lib/appname
+        - Unix: @c prefix/lib/appinfo
         - Windows: the directory of the executable file
-        - Mac: @c appname.app/Contents/PlugIns bundle subdirectory
+        - Mac: @c appinfo.app/Contents/PlugIns bundle subdirectory
 
         @see wxDynamicLibrary
     */
@@ -187,9 +214,9 @@ public:
 
         This function is the same as GetDataDir() for all platforms except Mac OS X.
         Example return values:
-        - Unix: @c prefix/share/appname
+        - Unix: @c prefix/share/appinfo
         - Windows: the directory where the executable file is located
-        - Mac: @c appname.app/Contents/Resources bundle subdirectory
+        - Mac: @c appinfo.app/Contents/Resources bundle subdirectory
 
         @since 2.7.0
 
@@ -213,15 +240,16 @@ public:
         - Mac: @c ~/Library/Preferences
 
         Only use this method if you have a single configuration file to put in this
-        directory, otherwise GetUserDataDir() is more appropriate.
+        directory, otherwise GetUserDataDir() is more appropriate as the latter
+        adds @c appinfo to the path, unlike this function.
     */
     virtual wxString GetUserConfigDir() const;
 
     /**
         Return the directory for the user-dependent application data files:
-        - Unix: @c ~/.appname
-        - Windows: @c "C:\Documents and Settings\username\Application Data\appname"
-        - Mac: @c "~/Library/Application Support/appname"
+        - Unix: @c ~/.appinfo
+        - Windows: @c "C:\Documents and Settings\username\Application Data\appinfo"
+        - Mac: @c "~/Library/Application Support/appinfo"
     */
     virtual wxString GetUserDataDir() const;
 
@@ -230,7 +258,7 @@ public:
         the other machines.
 
         This is the same as GetUserDataDir() for all platforms except Windows where it returns
-        @c "C:\Documents and Settings\username\Local Settings\Application Data\appname"
+        @c "C:\Documents and Settings\username\Local Settings\Application Data\appinfo"
     */
     virtual wxString GetUserLocalDataDir() const;
 
@@ -310,7 +338,10 @@ public:
         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.
 
-        @note This function is only available under Unix.
+        @note This function is only available under Unix platforms (but not limited
+        to wxGTK mentioned below).
+
+        @onlyfor{wxos2,wxgtk}
     */
     void SetInstallPrefix(const wxString& prefix);
 
@@ -319,12 +350,15 @@ public:
         should be unique to this program, such as the application data directory, the
         plugins directory on Unix, etc.
 
-        Valid values for @a info are @c AppInfo_None and either one or 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.
+        Valid values for @a info are:
+            - @c AppInfo_None: don't use neither application nor vendor name in
+            the paths.
+            - @c AppInfo_AppName: use the application name in the paths.
+            - @c AppInfo_VendorName: use the vendor name in the paths, usually
+            used combined with AppInfo_AppName, i.e. as @code AppInfo_AppName |
+            AppInfo_VendorName @endcode
 
-        By default, only the application name is used under Unix systems but both
-        application and vendor names are used under Windows and Mac.
+        By default, only the application name is used.
 
         @since 2.9.0
     */