Moved wxStandardPathsCF into base library when using CarbonLib or Darwin.

Make wxStandardPathsBase::Get() return a wxStandardPathsBase reference.
Implement it using wxAppTraits::GetStandardPaths() which is overridden by
wxMac and wxCocoa GUI libraries to return a reference to a wxStandardPathsCF.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott
2004-11-12 21:21:00 +00:00
parent b7a2ebe671
commit fc480dc16b
11 changed files with 2731 additions and 1388 deletions

View File

@@ -49,6 +49,8 @@ struct WXDLLIMPEXP_BASE wxToolkitInfo
// wxAppTraits: this class defines various configurable aspects of wxApp
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_BASE wxStandardPathsBase;
class WXDLLIMPEXP_BASE wxAppTraitsBase
{
public:
@@ -75,6 +77,9 @@ public:
// NB: returned pointer will be deleted by the caller
virtual wxRendererNative *CreateRenderer() = 0;
// wxStandardPaths object is normally the same for wxBase and wxGUI
// except in the case of wxMac and wxCocoa
virtual wxStandardPathsBase& GetStandardPaths();
// functions abstracting differences between GUI and console modes
// ------------------------------------------------------------------------

View File

@@ -24,10 +24,6 @@ public:
wxStandardPathsCF();
~wxStandardPathsCF();
// return the global standard paths object
// Overrides wxStandardPathsBase version for GUI code.
static wxStandardPathsCF& Get();
// wxMac specific: allow user to specify a different bundle
wxStandardPathsCF(struct __CFBundle *bundle);
void SetBundle(struct __CFBundle *bundle);
@@ -43,13 +39,14 @@ protected:
struct __CFBundle *m_bundle;
};
// wxMac has its own base so it always uses this version.
// Otherwise, we want to use this version only when compiling GUI code.
// The CoreFoundation version is always available by its full name to all code.
#if defined(__WXMAC__) || wxUSE_BASE == 0
#define wxStandardPaths wxStandardPathsCF
#else
// If using UNIX (i.e. darwin) then use UNIX standard paths
#if defined(__UNIX__)
#include "wx/unix/stdpaths.h"
#else
// If compiling wxMac for CarbonLib then we are wxStandardPaths
class WXDLLIMPEXP_BASE wxStandardPaths: public wxStandardPathsCF
{
};
#endif
#endif // _WX_MAC_STDPATHS_H_

View File

@@ -14,13 +14,6 @@
#include "wx/string.h"
#if defined(__WXMAC__)
class WXDLLIMPEXP_BASE wxStandardPathsCF;
#define wxStandardPaths wxStandardPathsCF
#else
class WXDLLIMPEXP_BASE wxStandardPaths;
#endif
// ----------------------------------------------------------------------------
// wxStandardPaths returns the standard locations in the file system
// ----------------------------------------------------------------------------
@@ -29,7 +22,7 @@ class WXDLLIMPEXP_BASE wxStandardPathsBase
{
public:
// return the global standard paths object
static wxStandardPaths& Get();
static wxStandardPathsBase& Get();
// return the directory with system config files:
@@ -89,7 +82,8 @@ protected:
#if defined(__WXMSW__)
#include "wx/msw/stdpaths.h"
#elif defined(__WXMAC__) || defined(__WXCOCOA__)
// We want CoreFoundation paths on both CarbonLib and Darwin (for all ports)
#elif defined(__WXMAC__) || defined(__DARWIN__)
#include "wx/mac/corefoundation/stdpaths.h"
#elif defined(__OS2__)
#include "wx/os2/stdpaths.h"

View File

@@ -37,6 +37,9 @@ public:
virtual void DetachWriteFDOfEndProcessPipe(wxExecuteData& execData);
virtual int WaitForChild(wxExecuteData& execData);
#if defined(__WXMAC__) || defined(__WXCOCOA__)
virtual wxStandardPathsBase& GetStandardPaths();
#endif
virtual wxToolkitInfo& GetToolkitInfo();
};