#include "wx/intl.h"
#endif // PCH
+#include "wx/module.h"
#include "wx/fontmap.h"
#if wxUSE_CONFIG
wxT( "utf-8" ),
};
-// ----------------------------------------------------------------------------
-// global data
-// ----------------------------------------------------------------------------
-
-// private object
-static wxFontMapper gs_fontMapper;
-
-// and public pointer
-wxFontMapper * wxTheFontMapper = &gs_fontMapper;
// ----------------------------------------------------------------------------
// private classes
#endif // wxUSE_CONFIG
}
+wxFontMapper *wxFontMapper::sm_instance = NULL;
+
+/*static*/ wxFontMapper *wxFontMapper::Get()
+{
+ if ( !sm_instance )
+ sm_instance = new wxFontMapper;
+ return sm_instance;
+}
+
+/*static*/ wxFontMapper *wxFontMapper::Set(wxFontMapper *mapper)
+{
+ wxFontMapper *old = sm_instance;
+ sm_instance = mapper;
+ return old;
+}
+
+class wxFontMapperModule: public wxModule
+{
+public:
+ wxFontMapperModule() : wxModule() {}
+ virtual bool OnInit() { return TRUE; }
+ virtual void OnExit() { delete wxFontMapper::Set(NULL); }
+
+ DECLARE_DYNAMIC_CLASS(wxFontMapperModule)
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxFontMapperModule, wxModule)
+
// ----------------------------------------------------------------------------
// customisation
// ----------------------------------------------------------------------------
cs.Trim(FALSE);
// discard the optional quotes
- if ( !!cs )
+ if ( !cs.empty() )
{
if ( cs[0u] == _T('"') && cs.Last() == _T('"') )
{
cs.MakeUpper();
- if ( !cs || cs == wxT("US-ASCII") )
+ if ( cs.empty() || cs == _T("US-ASCII") )
{
encoding = wxFONTENCODING_DEFAULT;
}
// message
if ( encoding == wxFONTENCODING_SYSTEM )
{
- wxFatalError(_("can't load any font, aborting"));
+ wxLogFatalError(_("can't load any font, aborting"));
- // wxFatalError doesn't return
+ // wxLogFatalError doesn't return
}
wxString configEntry,