From: Václav Slavík Date: Sat, 22 Jan 2000 11:55:33 +0000 (+0000) Subject: added demo of wxEncodingConverter X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/7337790c27e0a6c4ad85e2f98d438f0e7376b0d5 added demo of wxEncodingConverter git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/font/font.cpp b/samples/font/font.cpp index 56e5a565b6..0ed46b1aa5 100644 --- a/samples/font/font.cpp +++ b/samples/font/font.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include // ---------------------------------------------------------------------------- @@ -489,6 +490,32 @@ void MyFrame::OnViewMsg(wxCommandEvent& WXUNUSED(event)) return; } + m_textctrl->LoadFile(filename); + + if (!wxTheFontMapper->IsEncodingAvailable(fontenc)) + { + // try to find some similar encoding: + wxFontEncoding enc2; + if (wxTheFontMapper->GetAltForEncoding(fontenc, &enc2, + wxEmptyString /*facename*/, FALSE /*interactive*/)) + { + wxEncodingConverter conv; + + if (conv.Init(fontenc, enc2)) + { + fontenc = enc2; + m_textctrl -> SetValue(conv.Convert(m_textctrl -> GetValue())); + } + else + wxLogWarning("Cannot convert from '%s' to '%s'.", + wxFontMapper::GetEncodingDescription(fontenc).c_str(), + wxFontMapper::GetEncodingDescription(enc2).c_str()); + } + else + wxLogWarning("No fonts for encoding '%s' on this system.", + wxFontMapper::GetEncodingDescription(fontenc).c_str()); + } + // and now create the correct font if ( !DoEnumerateFamilies(FALSE, fontenc, TRUE /* silent */) ) { @@ -505,8 +532,6 @@ void MyFrame::OnViewMsg(wxCommandEvent& WXUNUSED(event)) wxFontMapper::GetEncodingDescription(fontenc).c_str()); } } - - m_textctrl->LoadFile(filename); } void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))