X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/071a2d78147df569d57b1ef138ab126a586b594d..0b7e6e7da208b6a95fb23cb50286a09dc90d96d2:/src/gtk1/font.cpp?ds=sidebyside diff --git a/src/gtk1/font.cpp b/src/gtk1/font.cpp index 6cd4c22b1c..5e9d1ce629 100644 --- a/src/gtk1/font.cpp +++ b/src/gtk1/font.cpp @@ -26,10 +26,12 @@ #include "wx/log.h" #include "wx/gdicmn.h" #include "wx/tokenzr.h" +#include "wx/settings.h" #include #include +#include // ---------------------------------------------------------------------------- // wxFontRefData @@ -188,7 +190,7 @@ wxFont::wxFont( const wxString& fontname, const wxFontData& fontdata ) tmp = tn.GetNextToken(); // pointsize long num = wxStrtol (tmp.c_str(), (wxChar **) NULL, 10); - M_FONTDATA->m_pointSize = num / 10; + M_FONTDATA->m_pointSize = (int)(num / 10); tn.GetNextToken(); // x-res tn.GetNextToken(); // y-res @@ -388,6 +390,29 @@ void wxFont::SetEncoding(wxFontEncoding encoding) // get internal representation of font // ---------------------------------------------------------------------------- +static GdkFont *g_systemDefaultGuiFont = (GdkFont*) NULL; + +static GdkFont *GtkGetDefaultGuiFont() +{ + if (!g_systemDefaultGuiFont) + { + GtkWidget *widget = gtk_button_new(); + GtkStyle *def = gtk_rc_get_style( widget ); + if (def) + { + g_systemDefaultGuiFont = gdk_font_ref( def->font ); + } + else + { + def = gtk_widget_get_default_style(); + if (def) + g_systemDefaultGuiFont = gdk_font_ref( def->font ); + } + gtk_widget_destroy( widget ); + } + return g_systemDefaultGuiFont; +} + GdkFont *wxFont::GetInternalFont( float scale ) const { if (!Ok()) @@ -408,18 +433,11 @@ GdkFont *wxFont::GetInternalFont( float scale ) const } else { -#if 0 - if ((int_scale == 100) && - (M_FONTDATA->m_family == wxSWISS) && - (M_FONTDATA->m_style == wxNORMAL) && - (M_FONTDATA->m_pointSize == 12) && - (M_FONTDATA->m_weight == wxNORMAL) && - (M_FONTDATA->m_underlined == FALSE)) + if (*this == wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT)) { - font = gdk_font_load( "-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*" ); + font = GtkGetDefaultGuiFont(); } - else -#endif // 0 + if (!font) { font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_family,