+ {
+ switch (m_family)
+ {
+ case wxFONTFAMILY_MODERN:
+ case wxFONTFAMILY_TELETYPE:
+ pango_font_description_set_family( m_nativeFontInfo.description, "monospace" );
+ break;
+ case wxFONTFAMILY_ROMAN:
+ pango_font_description_set_family( m_nativeFontInfo.description, "serif" );
+ break;
+ case wxFONTFAMILY_SWISS:
+ // SWISS = sans serif
+ default:
+ pango_font_description_set_family( m_nativeFontInfo.description, "sans" );
+ break;
+ }
+ }
+
+ SetStyle( m_style );
+ SetPointSize( m_pointSize );
+ SetWeight( m_weight );
+}
+
+void wxFontRefData::InitFromNative()
+{
+ m_noAA = false;
+
+ // Get native info
+ PangoFontDescription *desc = m_nativeFontInfo.description;
+
+ // init fields
+ m_faceName = wxGTK_CONV_BACK( pango_font_description_get_family( desc ) );
+
+ // Pango sometimes needs to have a size
+ int pango_size = pango_font_description_get_size( desc );
+ if (pango_size == 0)
+ m_nativeFontInfo.SetPointSize(12);
+
+ m_pointSize = m_nativeFontInfo.GetPointSize();
+ m_style = m_nativeFontInfo.GetStyle();
+ m_weight = m_nativeFontInfo.GetWeight();