X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7533ba252ba505f159f504a34877793fb32d8bca..9e03e02d0ca493bc65f083600f1427d2ac8028ff:/src/unix/fontutil.cpp?ds=sidebyside diff --git a/src/unix/fontutil.cpp b/src/unix/fontutil.cpp index d55aa305fa..84d09f9931 100644 --- a/src/unix/fontutil.cpp +++ b/src/unix/fontutil.cpp @@ -145,11 +145,14 @@ wxFontFamily wxNativeFontInfo::GetFamily() const ret = wxFONTFAMILY_TELETYPE; // begins with "Monospace" else if (strncmp( family_text, "courier", 7 ) == 0) ret = wxFONTFAMILY_TELETYPE; // begins with "Courier" -#ifdef HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE +#if defined(__WXGTK24__) || defined(HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE) else +#ifdef __WXGTK24__ + if (!gtk_check_version(2,4,0)) +#endif { PangoFontFamily **families; - PangoFontFamily *family; + PangoFontFamily *family = NULL; int n_families; pango_context_list_families( #ifdef __WXGTK20__ @@ -170,15 +173,17 @@ wxFontFamily wxNativeFontInfo::GetFamily() const g_free(families); - wxASSERT_MSG( family, wxT("wxNativeFontInfo::GetFamily() - No appropriate PangoFontFamily found for ::description") ); + // Some gtk+ systems might query for a non-existing font from wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT) + // on initialization, don't assert until wxSystemSettings::GetFont is checked for this - MR + // wxASSERT_MSG( family, wxT("wxNativeFontInfo::GetFamily() - No appropriate PangoFontFamily found for ::description") ); //BCI: Cache the wxFontFamily inside the class. Validate cache with //BCI: g_ascii_strcasecmp(pango_font_description_get_family(description), pango_font_family_get_name(family)) == 0 - if (pango_font_family_is_monospace( family )) + if (family != NULL && pango_font_family_is_monospace( family )) ret = wxFONTFAMILY_TELETYPE; // is deemed a monospace font by pango } -#endif // pango_font_family_is_monospace +#endif // gtk24 || HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE if (ret == wxFONTFAMILY_DEFAULT) { @@ -202,9 +207,9 @@ wxFontEncoding wxNativeFontInfo::GetEncoding() const } -void wxNativeFontInfo::SetPointSize(int WXUNUSED(pointsize)) +void wxNativeFontInfo::SetPointSize(int pointsize) { - wxFAIL_MSG( _T("not implemented") ); + pango_font_description_set_size( description, pointsize * PANGO_SCALE ); } void wxNativeFontInfo::SetStyle(wxFontStyle style) @@ -249,9 +254,9 @@ void wxNativeFontInfo::SetUnderlined(bool WXUNUSED(underlined)) wxFAIL_MSG( _T("not implemented") ); } -void wxNativeFontInfo::SetFaceName(wxString WXUNUSED(facename)) +void wxNativeFontInfo::SetFaceName(wxString facename) { - wxFAIL_MSG( _T("not implemented") ); + pango_font_description_set_family( description, wxGTK_CONV(facename) ); } void wxNativeFontInfo::SetFamily(wxFontFamily WXUNUSED(family))