X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/80a24267cbc17d85e278e1f10cdfdaea12199639..42191a1dbfc3ac161329efc3f92a9bd8901cfc8c:/src/common/fontmap.cpp diff --git a/src/common/fontmap.cpp b/src/common/fontmap.cpp index ac8a9e9b67..abf1e37e36 100644 --- a/src/common/fontmap.cpp +++ b/src/common/fontmap.cpp @@ -42,6 +42,7 @@ #endif #if wxUSE_GUI + #include "wx/fontutil.h" #include "wx/msgdlg.h" #include "wx/fontdlg.h" #include "wx/choicdlg.h" @@ -89,16 +90,18 @@ static wxFontEncoding gs_encodings[] = wxFONTENCODING_CP1256, wxFONTENCODING_CP1257, wxFONTENCODING_CP437, + wxFONTENCODING_UTF7, + wxFONTENCODING_UTF8, }; // the descriptions for them static const wxChar* gs_encodingDescs[] = { - wxTRANSLATE( "Western European (ISO-8859-1/Latin 1)" ), - wxTRANSLATE( "Central European (ISO-8859-2/Latin 2)" ), + wxTRANSLATE( "Western European (ISO-8859-1)" ), + wxTRANSLATE( "Central European (ISO-8859-2)" ), wxTRANSLATE( "Esperanto (ISO-8859-3)" ), wxTRANSLATE( "Baltic (old) (ISO-8859-4)" ), - wxTRANSLATE( "Cyrillic (Latin 5)" ), + wxTRANSLATE( "Cyrillic (ISO-8859-5)" ), wxTRANSLATE( "Arabic (ISO-8859-6)" ), wxTRANSLATE( "Greek (ISO-8859-7)" ), wxTRANSLATE( "Hebrew (ISO-8859-8)" ), @@ -108,7 +111,7 @@ static const wxChar* gs_encodingDescs[] = wxTRANSLATE( "Indian (ISO-8859-12)" ), wxTRANSLATE( "Baltic (ISO-8859-13)" ), wxTRANSLATE( "Celtic (ISO-8859-14)" ), - wxTRANSLATE( "Western European with Euro (ISO-8859-15/Latin 0)" ), + wxTRANSLATE( "Western European with Euro (ISO-8859-15)" ), wxTRANSLATE( "KOI8-R" ), wxTRANSLATE( "Windows Central European (CP 1250)" ), wxTRANSLATE( "Windows Cyrillic (CP 1251)" ), @@ -119,6 +122,8 @@ static const wxChar* gs_encodingDescs[] = wxTRANSLATE( "Windows Arabic (CP 1256)" ), wxTRANSLATE( "Windows Baltic (CP 1257)" ), wxTRANSLATE( "Windows/DOS OEM (CP 437)" ), + wxTRANSLATE( "Unicode 7 bit (UTF-7)" ), + wxTRANSLATE( "Unicode 8 bit (UTF-8)" ), }; // and the internal names @@ -149,6 +154,8 @@ static const wxChar* gs_encodingNames[] = wxT( "windows1256" ), wxT( "windows1257" ), wxT( "windows437" ), + wxT( "utf7" ), + wxT( "utf8" ), }; // ---------------------------------------------------------------------------- @@ -398,7 +405,7 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset, RestorePath(pathOld); } -#endif +#endif // wxUSE_CONFIG // if didn't find it there, try to reckognise it ourselves if ( encoding == wxFONTENCODING_SYSTEM ) @@ -416,6 +423,10 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset, if ( !cs || cs == wxT("US-ASCII") ) encoding = wxFONTENCODING_DEFAULT; + else if ( cs == wxT("UTF-7") ) + encoding = wxFONTENCODING_UTF7; + else if ( cs == wxT("UTF-8") ) + encoding = wxFONTENCODING_UTF8; else if ( cs == wxT("KOI8-R") || cs == wxT("KOI8-U") ) encoding = wxFONTENCODING_KOI8; else if ( cs.Left(3) == wxT("ISO") ) @@ -447,7 +458,7 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset, { value -= 1250; if ( value < wxFONTENCODING_CP12_MAX - - wxFONTENCODING_CP1250 - 1 ) + wxFONTENCODING_CP1250 ) { // a valid Windows code page value += wxFONTENCODING_CP1250; @@ -685,17 +696,17 @@ bool wxFontMapper::GetAltForEncoding(wxFontEncoding encoding, wxFont font = retData.GetChosenFont(); *info = retData.EncodingInfo(); - info -> encoding = retData.GetEncoding(); + info->encoding = retData.GetEncoding(); #if wxUSE_CONFIG - // remember this in the config + // remember this in the config if ( ChangePath(FONTMAPPER_FONT_FROM_ENCODING_PATH, &pathOld) ) { GetConfig()->Write(configEntry, info->ToString()); RestorePath(pathOld); } -#endif +#endif // wxUSE_CONFIG return TRUE; } @@ -736,7 +747,7 @@ bool wxFontMapper::IsEncodingAvailable(wxFontEncoding encoding, { wxNativeEncodingInfo info; - if (wxGetNativeFontEncoding(encoding, &info)) + if ( wxGetNativeFontEncoding(encoding, &info) ) { info.facename = facename; return wxTestFontEncoding(info);