X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6ae3ead6f0ed2b7b1bfc40317e65ffe71e0b3321..9c34a216817028bc533e07873d047208a96b05a2:/include/wx/stdpaths.h diff --git a/include/wx/stdpaths.h b/include/wx/stdpaths.h index 9f6c619f63..55c0b785f8 100644 --- a/include/wx/stdpaths.h +++ b/include/wx/stdpaths.h @@ -17,6 +17,8 @@ #include "wx/string.h" #include "wx/filefn.h" +class WXDLLIMPEXP_FWD_BASE wxStandardPaths; + // ---------------------------------------------------------------------------- // wxStandardPaths returns the standard locations in the file system // ---------------------------------------------------------------------------- @@ -26,7 +28,7 @@ class WXDLLIMPEXP_BASE wxStandardPathsBase { public: - // possible resources categorires + // possible resources categories enum ResourceCat { // no special category @@ -39,9 +41,18 @@ public: ResourceCat_Max }; + // what should we use to construct paths unique to this application: + // (AppInfo_AppName and AppInfo_VendorName can be combined together) + enum + { + AppInfo_None = 0, // nothing + AppInfo_AppName = 1, // the application name + AppInfo_VendorName = 2 // the vendor name + }; + // return the global standard paths object - static wxStandardPathsBase& Get(); + static wxStandardPaths& Get(); // return the path (directory+filename) of the running executable or // wxEmptyString if it couldn't be determined. @@ -118,10 +129,15 @@ public: // return the "Documents" directory for the current user // - // C:\Documents and Settings\username\Documents under Windows, + // C:\Documents and Settings\username\My Documents under Windows, // $HOME under Unix and ~/Documents under Mac virtual wxString GetDocumentsDir() const; + // return the directory for the documents files used by this application: + // it's a subdirectory of GetDocumentsDir() constructed using the + // application name/vendor if it exists or just GetDocumentsDir() otherwise + virtual wxString GetAppDocumentsDir() const; + // return the temporary directory for the current user virtual wxString GetTempDir() const; @@ -129,19 +145,39 @@ public: // virtual dtor for the base class virtual ~wxStandardPathsBase(); + // Information used by AppendAppInfo + void UseAppInfo(int info) + { + m_usedAppInfo = info; + } + + bool UsesAppInfo(int info) const { return (m_usedAppInfo & info) != 0; } + + protected: - // append "/appname" suffix if the app name is set (doesn't append the - // slash if dir already ends with a slash or dot) - static wxString AppendAppName(const wxString& dir); + // Ctor is protected as this is a base class which should never be created + // directly. + wxStandardPathsBase(); + + // append the path component, with a leading path separator if a + // path separator or dot (.) is not already at the end of dir + static wxString AppendPathComponent(const wxString& dir, const wxString& component); + + // append application information determined by m_usedAppInfo to dir + wxString AppendAppInfo(const wxString& dir) const; + + + // combination of AppInfo_XXX flags used by AppendAppInfo() + int m_usedAppInfo; }; #if wxUSE_STDPATHS - #if defined(__WXMSW__) + #if defined(__WINDOWS__) #include "wx/msw/stdpaths.h" #define wxHAS_NATIVE_STDPATHS // We want CoreFoundation paths on both CarbonLib and Darwin (for all ports) #elif defined(__WXMAC__) || defined(__DARWIN__) - #include "wx/mac/corefoundation/stdpaths.h" + #include "wx/osx/core/stdpaths.h" #define wxHAS_NATIVE_STDPATHS #elif defined(__OS2__) #include "wx/os2/stdpaths.h" @@ -149,9 +185,6 @@ protected: #elif defined(__UNIX__) #include "wx/unix/stdpaths.h" #define wxHAS_NATIVE_STDPATHS - #elif defined(__PALMOS__) - #include "wx/palmos/stdpaths.h" - #define wxHAS_NATIVE_STDPATHS #endif #endif @@ -178,6 +211,12 @@ public: virtual wxString GetPluginsDir() const { return m_prefix; } virtual wxString GetDocumentsDir() const { return m_prefix; } +protected: + // Ctor is protected because wxStandardPaths::Get() should always be used + // to access the global wxStandardPaths object of the correct type instead + // of creating one of a possibly wrong type yourself. + wxStandardPaths() { } + private: wxString m_prefix; };