+ // examine the spacing: if the font is monospaced, assume wxTELETYPE
+ // family for compatibility with the old code which used it instead of
+ // IsFixedWidth()
+ if ( m_nativeFontInfo.GetXFontComponent(wxXLFD_SPACING).Upper() == wxT('M') )
+ {
+ m_family = wxFONTFAMILY_TELETYPE;
+ }
+ else // not monospaceed
+ {
+ // don't even try guessing it, it doesn't work for too many fonts
+ // anyhow
+ m_family = wxFONTFAMILY_UNKNOWN;
+ }
+
+ // X fonts are never underlined...
+ m_underlined = false;
+
+ // deal with font encoding
+ wxString
+ registry = m_nativeFontInfo.GetXFontComponent(wxXLFD_REGISTRY).Upper(),
+ encoding = m_nativeFontInfo.GetXFontComponent(wxXLFD_ENCODING).Upper();
+
+ if ( registry == wxT("ISO8859") )
+ {
+ int cp;
+ if ( wxSscanf(encoding, wxT("%d"), &cp) == 1 )
+ {
+ m_encoding = (wxFontEncoding)(wxFONTENCODING_ISO8859_1 + cp - 1);
+ }
+ }
+ else if ( registry == wxT("MICROSOFT") )
+ {
+ int cp;
+ if ( wxSscanf(encoding, wxT("cp125%d"), &cp) == 1 )
+ {
+ m_encoding = (wxFontEncoding)(wxFONTENCODING_CP1250 + cp);
+ }
+ }
+ else if ( registry == wxT("KOI8") )
+ {
+ m_encoding = wxFONTENCODING_KOI8;
+ }
+ else // unknown encoding
+ {
+ // may be give a warning here? or use wxFontMapper?
+ m_encoding = wxFONTENCODING_SYSTEM;
+ }
+#endif // Pango/X11