#include "wx/platinfo.h"
class WXDLLIMPEXP_BASE wxArrayString;
-class WXDLLIMPEXP_BASE wxObject;
-class WXDLLEXPORT wxAppTraits;
+class WXDLLIMPEXP_BASE wxConfigBase;
class WXDLLIMPEXP_BASE wxEventLoopBase;
#if wxUSE_FONTMAP
class WXDLLEXPORT wxFontMapper;
#endif // wxUSE_FONTMAP
class WXDLLIMPEXP_BASE wxLog;
class WXDLLIMPEXP_BASE wxMessageOutput;
+class WXDLLIMPEXP_BASE wxObject;
class WXDLLEXPORT wxRendererNative;
+class WXDLLIMPEXP_BASE wxStandardPathsBase;
class WXDLLIMPEXP_BASE wxString;
class WXDLLIMPEXP_BASE wxTimer;
class WXDLLIMPEXP_BASE wxTimerImpl;
// wxAppTraits: this class defines various configurable aspects of wxApp
// ----------------------------------------------------------------------------
-class WXDLLIMPEXP_BASE wxStandardPathsBase;
-
class WXDLLIMPEXP_BASE wxAppTraitsBase
{
public:
// hooks for working with the global objects, may be overridden by the user
// ------------------------------------------------------------------------
+#if wxUSE_CONFIG
+ // create the default configuration object (base class version is
+ // implemented in config.cpp and creates wxRegConfig for wxMSW and
+ // wxFileConfig for all the other platforms)
+ virtual wxConfigBase *CreateConfig();
+#endif // wxUSE_CONFIG
+
#if wxUSE_LOG
// create the default log target
virtual wxLog *CreateLogTarget() = 0;
#if wxUSE_CONFIG && ((wxUSE_FILE && wxUSE_TEXTFILE) || wxUSE_CONFIG_NATIVE)
+#include "wx/apptrait.h"
#include "wx/file.h"
#include <stdlib.h>
// implementation
// ============================================================================
+// ----------------------------------------------------------------------------
+// wxAppTraitsBase
+// ----------------------------------------------------------------------------
+
+wxConfigBase *wxAppTraitsBase::CreateConfig()
+{
+ return new
+ #if defined(__WXMSW__) && wxUSE_CONFIG_NATIVE
+ wxRegConfig(wxTheApp->GetAppName(), wxTheApp->GetVendorName());
+ #elif defined(__WXPALMOS__) && wxUSE_CONFIG_NATIVE
+ wxPrefConfig(wxTheApp->GetAppName());
+ #else // either we're under Unix or wish to use files even under Windows
+ wxFileConfig(wxTheApp->GetAppName());
+ #endif
+}
+
// ----------------------------------------------------------------------------
// wxConfigBase
// ----------------------------------------------------------------------------
wxConfigBase *wxConfigBase::Create()
{
if ( ms_bAutoCreate && ms_pConfig == NULL ) {
- ms_pConfig =
- #if defined(__WXMSW__) && wxUSE_CONFIG_NATIVE
- new wxRegConfig(wxTheApp->GetAppName(), wxTheApp->GetVendorName());
- #elif defined(__WXPALMOS__) && wxUSE_CONFIG_NATIVE
- new wxPrefConfig(wxTheApp->GetAppName());
- #else // either we're under Unix or wish to use files even under Windows
- new wxFileConfig(wxTheApp->GetAppName());
- #endif
+ wxAppTraits * const traits = wxTheApp ? wxTheApp->GetTraits() : NULL;
+ wxCHECK_MSG( traits, NULL, _T("create wxApp before calling this") );
+
+ ms_pConfig = traits->CreateConfig();
}
return ms_pConfig;