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
class MyEncodingEnumerator : public wxFontEnumerator
{
public:
- MyEncodingEnumerator()
+ MyEncodingEnumerator()
{ m_n = 0; }
- const wxString& GetText() const
+ const wxString& GetText() const
{ return m_text; }
protected:
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:
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;
wxFONTENCODING_CP1256,
wxFONTENCODING_CP1257,
wxFONTENCODING_CP437,
+ wxFONTENCODING_UTF7,
+ wxFONTENCODING_UTF8,
};
// the descriptions for them
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
wxT( "windows1256" ),
wxT( "windows1257" ),
wxT( "windows437" ),
+ wxT( "utf7" ),
+ wxT( "utf8" ),
};
// ----------------------------------------------------------------------------
RestorePath(pathOld);
}
-#endif
+#endif // wxUSE_CONFIG
// if didn't find it there, try to reckognise it ourselves
if ( encoding == wxFONTENCODING_SYSTEM )
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") )
RestorePath(pathOld);
}
-#endif
+#endif // wxUSE_CONFIG
return TRUE;
}
{
wxNativeEncodingInfo info;
- if (wxGetNativeFontEncoding(encoding, &info))
+ if ( wxGetNativeFontEncoding(encoding, &info) )
{
info.facename = facename;
return wxTestFontEncoding(info);
}
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");