]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/stdpaths.h
Fix wxPropertyGrid::GetPropertyRect when the last item is collapsed.
[wxWidgets.git] / include / wx / msw / stdpaths.h
index c12729857e9dfd6a07defe498e2df9dbe2d81189..80ad9850448dbb34bdf15cf0ecc5bb881b4973fd 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     2004-10-19
-// RCS-ID:      $Id$
 // Copyright:   (c) 2004 Vadim Zeitlin <vadim@wxwindows.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -20,18 +19,64 @@ class WXDLLIMPEXP_BASE wxStandardPaths : public wxStandardPathsBase
 {
 public:
     // implement base class pure virtuals
+    virtual wxString GetExecutablePath() const;
     virtual wxString GetConfigDir() const;
     virtual wxString GetUserConfigDir() const;
     virtual wxString GetDataDir() const;
     virtual wxString GetUserDataDir() const;
     virtual wxString GetUserLocalDataDir() const;
     virtual wxString GetPluginsDir() const;
-    virtual wxString GetLocalizedResourcesDir(const wxChar *lang,
-                                              ResourceCat category) const;
+    virtual wxString GetDocumentsDir() const;
+
+
+    // MSW-specific methods
+
+    // This class supposes that data, plugins &c files are located under the
+    // program directory which is the directory containing the application
+    // binary itself. But sometimes this binary may be in a subdirectory of the
+    // main program directory, e.g. this happens in at least the following
+    // common cases:
+    //  1. The program is in "bin" subdirectory of the installation directory.
+    //  2. The program is in "debug" subdirectory of the directory containing
+    //     sources and data files during development
+    //
+    // By calling this function you instruct the class to remove the last
+    // component of the path if it matches its argument. Notice that it may be
+    // called more than once, e.g. you can call both IgnoreAppSubDir("bin") and
+    // IgnoreAppSubDir("debug") to take care of both production and development
+    // cases above but that each call will only remove the last path component.
+    // Finally note that the argument can contain wild cards so you can also
+    // call IgnoreAppSubDir("vc*msw*") to ignore all build directories at once
+    // when using wxWidgets-inspired output directories names.
+    void IgnoreAppSubDir(const wxString& subdirPattern);
+
+    // This function is used to ignore all common build directories and is
+    // called from the ctor -- use DontIgnoreAppSubDir() to undo this.
+    void IgnoreAppBuildSubDirs();
+
+    // Undo the effects of all preceding IgnoreAppSubDir() calls.
+    void DontIgnoreAppSubDir();
+
+
+    // Returns the directory corresponding to the specified Windows shell CSIDL
+    static wxString MSWGetShellDir(int csidl);
 
 protected:
+    // Ctor is protected, use wxStandardPaths::Get() instead of instantiating
+    // objects of this class directly.
+    //
+    // It calls IgnoreAppBuildSubDirs() and also sets up the object to use
+    // both vendor and application name by default.
+    wxStandardPaths();
+
     // get the path corresponding to the given standard CSIDL_XXX constant
     static wxString DoGetDirectory(int csidl);
+
+    // return the directory of the application itself
+    wxString GetAppDir() const;
+
+    // directory returned by GetAppDir()
+    mutable wxString m_appDir;
 };
 
 // ----------------------------------------------------------------------------