#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.MakeUpper();
- // nl_langinfo() under Solaris returns 646 by default which stands for
- // ISO-646, i.e. 7 bit ASCII and we should recognize it to avoid
- // warnings about unrecognized encoding on each program startup
- if ( cs.empty() || cs == _T("US-ASCII") || cs == _T("646") )
+ 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,