X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/58c837a4e67c0996134cc0947691dc09c5f26687..db434467a143a2c847c4bcfe987f0202c2d02bf2:/src/common/fontmap.cpp?ds=sidebyside diff --git a/src/common/fontmap.cpp b/src/common/fontmap.cpp index a11228fc78..05b1edd2ab 100644 --- a/src/common/fontmap.cpp +++ b/src/common/fontmap.cpp @@ -40,6 +40,7 @@ #include "wx/msgdlg.h" #include "wx/fontdlg.h" #include "wx/choicdlg.h" +#include "wx/encconv.h" // ---------------------------------------------------------------------------- // constants @@ -146,7 +147,7 @@ static const wxChar* gs_encodingNames[] = static wxFontMapper gs_fontMapper; // and public pointer -wxFontMapper * WXDLLEXPORT wxTheFontMapper = &gs_fontMapper; +wxFontMapper * wxTheFontMapper = &gs_fontMapper; // ---------------------------------------------------------------------------- // private classes @@ -598,71 +599,13 @@ bool wxFontMapper::GetAltForEncoding(wxFontEncoding encoding, } //else: we're in non-interactive mode - // now try the default mappings - switch ( encoding ) - { - case wxFONTENCODING_ISO8859_15: - // iso8859-15 is slightly modified iso8859-1 - if ( TestAltEncoding(configEntry, wxFONTENCODING_ISO8859_1, info) ) - return TRUE; - // fall through - - case wxFONTENCODING_ISO8859_1: - // iso8859-1 is identical to CP1252 - if ( TestAltEncoding(configEntry, wxFONTENCODING_CP1252, info) ) - return TRUE; - - break; - - case wxFONTENCODING_CP1252: - if ( TestAltEncoding(configEntry, wxFONTENCODING_ISO8859_1, info) ) - return TRUE; - - break; - - // iso8859-13 is quite similar to WinBaltic - case wxFONTENCODING_ISO8859_13: - if ( TestAltEncoding(configEntry, wxFONTENCODING_CP1257, info) ) - return TRUE; - - break; - - case wxFONTENCODING_CP1257: - if ( TestAltEncoding(configEntry, wxFONTENCODING_ISO8859_13, info) ) - return TRUE; - - break; - // iso8859-8 is almost identical to WinHebrew - case wxFONTENCODING_ISO8859_8: - if ( TestAltEncoding(configEntry, wxFONTENCODING_CP1255, info) ) - return TRUE; - - break; - - case wxFONTENCODING_CP1255: - if ( TestAltEncoding(configEntry, wxFONTENCODING_ISO8859_8, info) ) - return TRUE; - - break; - - // and iso8859-7 is not too different from WinGreek - case wxFONTENCODING_ISO8859_7: - if ( TestAltEncoding(configEntry, wxFONTENCODING_CP1253, info) ) - return TRUE; - - break; - - case wxFONTENCODING_CP1253: - if ( TestAltEncoding(configEntry, wxFONTENCODING_ISO8859_7, info) ) - return TRUE; - - break; - - default: - // TODO add other mappings... - ; - } + // now try the default mappings: + + wxFontEncodingArray equiv = wxEncodingConverter::GetAllEquivalents(encoding); + for ( unsigned i = (equiv[0] == encoding) ? 1 : 0; i < equiv.GetCount(); i++ ) + if ( TestAltEncoding(configEntry, equiv[i], info) ) + return TRUE; return FALSE; }