X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7941ba111cac53f21eafdeeeed6b543c3a2ba610..5c5ab9ebc3a7dd441c9e3b25cb3daf8f733c374f:/src/gtk1/font.cpp?ds=sidebyside diff --git a/src/gtk1/font.cpp b/src/gtk1/font.cpp index a957f4f68a..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 @@ -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,