some stupid attempts to make utf8 work - it doesn't, but the code does no harm and could be useful in the future
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
cce442ba7c
commit
bb84929ec5
@ -63,7 +63,10 @@ enum wxFontEncoding
|
||||
wxFONTENCODING_CP1256, // WinArabic
|
||||
wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7)
|
||||
wxFONTENCODING_CP12_MAX,
|
||||
|
||||
|
||||
wxFONTENCODING_UTF7, // UTF-7 Unicode encoding
|
||||
wxFONTENCODING_UTF8, // UTF-8 Unicode encoding
|
||||
|
||||
wxFONTENCODING_UNICODE, // Unicode - currently used only by
|
||||
// wxEncodingConverter class
|
||||
|
||||
|
@ -262,10 +262,10 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
|
||||
class MyEncodingEnumerator : public wxFontEnumerator
|
||||
{
|
||||
public:
|
||||
MyEncodingEnumerator()
|
||||
MyEncodingEnumerator()
|
||||
{ m_n = 0; }
|
||||
|
||||
const wxString& GetText() const
|
||||
const wxString& GetText() const
|
||||
{ return m_text; }
|
||||
|
||||
protected:
|
||||
@ -299,10 +299,10 @@ void MyFrame::OnEnumerateEncodings(wxCommandEvent& WXUNUSED(event))
|
||||
class MyFontEnumerator : public wxFontEnumerator
|
||||
{
|
||||
public:
|
||||
bool GotAny() const
|
||||
bool GotAny() const
|
||||
{ return !m_facenames.IsEmpty(); }
|
||||
|
||||
const wxArrayString& GetFacenames() const
|
||||
const wxArrayString& GetFacenames() const
|
||||
{ return m_facenames; }
|
||||
|
||||
protected:
|
||||
@ -557,14 +557,15 @@ void MyFrame::OnViewMsg(wxCommandEvent& WXUNUSED(event))
|
||||
|
||||
m_textctrl->LoadFile(filename);
|
||||
|
||||
if (!wxTheFontMapper->IsEncodingAvailable(fontenc))
|
||||
if ( fontenc == wxFONTENCODING_UTF8 ||
|
||||
!wxTheFontMapper->IsEncodingAvailable(fontenc) )
|
||||
{
|
||||
// try to find some similar encoding:
|
||||
wxFontEncoding encAlt;
|
||||
if ( wxTheFontMapper->GetAltForEncoding(fontenc, &encAlt) )
|
||||
{
|
||||
wxEncodingConverter conv;
|
||||
|
||||
|
||||
if (conv.Init(fontenc, encAlt))
|
||||
{
|
||||
fontenc = encAlt;
|
||||
|
@ -90,6 +90,8 @@ static wxFontEncoding gs_encodings[] =
|
||||
wxFONTENCODING_CP1256,
|
||||
wxFONTENCODING_CP1257,
|
||||
wxFONTENCODING_CP437,
|
||||
wxFONTENCODING_UTF7,
|
||||
wxFONTENCODING_UTF8,
|
||||
};
|
||||
|
||||
// the descriptions for them
|
||||
@ -120,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
|
||||
@ -150,6 +154,8 @@ static const wxChar* gs_encodingNames[] =
|
||||
wxT( "windows1256" ),
|
||||
wxT( "windows1257" ),
|
||||
wxT( "windows437" ),
|
||||
wxT( "utf7" ),
|
||||
wxT( "utf8" ),
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -399,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 )
|
||||
@ -417,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") )
|
||||
@ -696,7 +706,7 @@ bool wxFontMapper::GetAltForEncoding(wxFontEncoding encoding,
|
||||
|
||||
RestorePath(pathOld);
|
||||
}
|
||||
#endif
|
||||
#endif // wxUSE_CONFIG
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -737,7 +747,7 @@ bool wxFontMapper::IsEncodingAvailable(wxFontEncoding encoding,
|
||||
{
|
||||
wxNativeEncodingInfo info;
|
||||
|
||||
if (wxGetNativeFontEncoding(encoding, &info))
|
||||
if ( wxGetNativeFontEncoding(encoding, &info) )
|
||||
{
|
||||
info.facename = facename;
|
||||
return wxTestFontEncoding(info);
|
||||
|
@ -183,6 +183,13 @@ bool wxGetNativeFontEncoding(wxFontEncoding encoding,
|
||||
}
|
||||
break;
|
||||
|
||||
case wxFONTENCODING_UTF8:
|
||||
// FIXME: this is probably false, but this is how they are called on
|
||||
// my system and I don't know what the standard XFLD is (VZ)
|
||||
info->xregistry = wxT("iso646.1991");
|
||||
info->xencoding = wxT("*");
|
||||
break;
|
||||
|
||||
case wxFONTENCODING_KOI8:
|
||||
info->xregistry = wxT("koi8");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user