From 7337790c27e0a6c4ad85e2f98d438f0e7376b0d5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sat, 22 Jan 2000 11:55:33 +0000 Subject: [PATCH] added demo of wxEncodingConverter git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/font/font.cpp | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) 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)) -- 2.45.2