]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/fontutil.cpp
Replaced SOCKLEN_T by WX_SOCKLEN_T to resolve conflict with AIX system headers.
[wxWidgets.git] / src / unix / fontutil.cpp
index d55aa305fae879680cea06cd8cedc2bdb3d0e296..84d09f9931dd80845ff6d33e0ab589ec785796ee 100644 (file)
@@ -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"
         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
     else
+#ifdef __WXGTK24__
+    if (!gtk_check_version(2,4,0))
+#endif
     {
         PangoFontFamily **families;
     {
         PangoFontFamily **families;
-        PangoFontFamily  *family;
+        PangoFontFamily  *family = NULL;
         int n_families;
         pango_context_list_families(
 #ifdef __WXGTK20__
         int n_families;
         pango_context_list_families(
 #ifdef __WXGTK20__
@@ -170,15 +173,17 @@ wxFontFamily wxNativeFontInfo::GetFamily() const
 
         g_free(families);
 
 
         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
 
 
         //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
     }
             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)
     {
 
     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)
 }
 
 void wxNativeFontInfo::SetStyle(wxFontStyle style)
@@ -249,9 +254,9 @@ void wxNativeFontInfo::SetUnderlined(bool WXUNUSED(underlined))
     wxFAIL_MSG( _T("not implemented") );
 }
 
     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))
 }
 
 void wxNativeFontInfo::SetFamily(wxFontFamily WXUNUSED(family))