#include "wx/log.h"
#include "wx/gdicmn.h"
#include "wx/tokenzr.h"
+#include "wx/settings.h"
#include <strings.h>
#include <gdk/gdk.h>
+#include <gtk/gtk.h>
// ----------------------------------------------------------------------------
// wxFontRefData
// 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())
}
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,