From: Vadim Zeitlin Date: Tue, 19 Oct 2004 18:49:02 +0000 (+0000) Subject: switched to using a real class instead of a namespace because of Mac base/GUI problems X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/6cb5e50b0d2259de305f273d2be3d28d7e84dc6a?ds=inline switched to using a real class instead of a namespace because of Mac base/GUI problems git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/stdpaths.h b/include/wx/stdpaths.h index 18b5d2a529..c69f4435f6 100644 --- a/include/wx/stdpaths.h +++ b/include/wx/stdpaths.h @@ -12,33 +12,25 @@ #ifndef _WX_STDPATHS_H_ #define _WX_STDPATHS_H_ +#include "wx/string.h" + +class WXDLLIMPEXP_BASE wxStandardPaths; + // ---------------------------------------------------------------------------- // wxStandardPaths returns the standard locations in the file system // ---------------------------------------------------------------------------- -class WXDLLIMPEXP_BASE wxStandardPaths +class WXDLLIMPEXP_BASE wxStandardPathsBase { public: -#ifdef __UNIX_LIKE__ - // set the program installation directory which is /usr/local by default - // - // under some systems (currently only Linux) the program directory can be - // determined automatically but for portable programs you should always set - // it explicitely - static void SetInstallPrefix(const wxString& prefix); - - // get the program installation prefix - // - // if the prefix had been previously by SetInstallPrefix, returns that - // value, otherwise tries to determine it automatically (Linux only right - // now) and returns /usr/local if it failed - static wxString GetInstallPrefix(); -#endif // __UNIX_LIKE__ + // return the global standard paths object + static wxStandardPaths& Get(); // return the directory with system config files: - // /etc under Unix, c:\Windows under Windows, /Library/Preferences for Mac - static wxString GetConfigDir(); + // /etc under Unix, c:\Documents and Settings\All Users\Application Data + // under Windows, /Library/Preferences for Mac + virtual wxString GetConfigDir() const = 0; // return the directory for the user config files: // $HOME under Unix, c:\Documents and Settings\username under Windows, @@ -46,40 +38,52 @@ public: // // only use this if you have a single file to put there, otherwise // GetUserDataDir() is more appropriate - static wxString GetUserConfigDir(); + virtual wxString GetUserConfigDir() const = 0; // return the location of the applications global, i.e. not user-specific, // data files // // prefix/share/appname under Unix, c:\Program Files\appname under Windows, // appname.app/Contents/SharedSupport app bundle directory under Mac - static wxString GetDataDir(); + virtual wxString GetDataDir() const = 0; // return the location for application data files which are host-specific // // same as GetDataDir() except under Unix where it is /etc/appname - static wxString GetLocalDataDir(); + virtual wxString GetLocalDataDir() const; // return the directory for the user-dependent application data files // // $HOME/.appname under Unix, // c:\Documents and Settings\username\Application Data\appname under Windows // and ~/Library/Application Support/appname under Mac - static wxString GetUserDataDir(); + virtual wxString GetUserDataDir() const = 0; // return the directory for user data files which shouldn't be shared with // the other machines // // same as GetUserDataDir() for all platforms except Windows where it is // the "Local Settings\Application Data\appname" directory - static wxString GetUserLocalDataDir(); + virtual wxString GetUserLocalDataDir() const; // return the directory where the loadable modules (plugins) live // // prefix/lib/appname under Unix, program directory under Windows and // Contents/Plugins app bundle subdirectory under Mac - static wxString GetPluginsDir(); + virtual wxString GetPluginsDir() const = 0; + + + // virtual dtor for the base class + virtual ~wxStandardPathsBase(); }; +#if defined(__WXMSW__) + #include "wx/msw/stdpaths.h" +#elif defined(__WXMAC_OSX__) || defined(__WXCOCOA__) + #include "wx/mac/stdpaths.h" +#elif defined(__UNIX__) + #include "wx/unix/stdpaths.h" +#endif + #endif // _WX_STDPATHS_H_ diff --git a/src/common/stdpbase.cpp b/src/common/stdpbase.cpp new file mode 100644 index 0000000000..4d477a2974 --- /dev/null +++ b/src/common/stdpbase.cpp @@ -0,0 +1,59 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: common/stdpbase.cpp +// Purpose: wxStandardPathsBase methods common to all ports +// Author: Vadim Zeitlin +// Modified by: +// Created: 2004-10-19 +// RCS-ID: $Id$ +// Copyright: (c) 2004 Vadim Zeitlin +// License: wxWindows license +/////////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include "wx/stdpaths.h" + +// ---------------------------------------------------------------------------- +// module globals +// ---------------------------------------------------------------------------- + +static wxStandardPaths gs_stdPaths; + +// ============================================================================ +// implementation +// ============================================================================ + +/* static */ +wxStandardPaths& wxStandardPathsBase::Get() +{ + return gs_stdPaths; +} + +wxStandardPathsBase::~wxStandardPathsBase() +{ + // nothing to do here +} + +wxString wxStandardPathsBase::GetLocalDataDir() const +{ + return GetDataDir(); +} + +wxString wxStandardPathsBase::GetUserLocalDataDir() const +{ + return GetUserDataDir(); +} +