#include "wx/log.h"
#include "wx/gdicmn.h"
#include "wx/tokenzr.h"
+#include "wx/settings.h"
#include <strings.h>
#include <gdk/gdk.h>
+#include <gdk/gdkprivate.h>
+#include <gtk/gtk.h>
// ----------------------------------------------------------------------------
// wxFontRefData
wxString m_faceName;
wxFontEncoding m_encoding;
- friend wxFont;
+ friend class wxFont;
};
// ============================================================================
wxStringTokenizer tn( fontname, wxT("-") );
+ tn.GetNextToken(); // skip initial empty token
tn.GetNextToken(); // foundry
M_FONTDATA->m_faceName = tn.GetNextToken(); // family
tn.GetNextToken(); // pixel size
tmp = tn.GetNextToken(); // pointsize
- long num = wxStrtol (tmp.c_str(), (wxChar **) NULL, 10);
- M_FONTDATA->m_pointSize = num / 10;
+ if (tmp != wxT("*"))
+ {
+ long num = wxStrtol (tmp.c_str(), (wxChar **) NULL, 10);
+ M_FONTDATA->m_pointSize = (int)(num / 10);
+ }
tn.GetNextToken(); // x-res
tn.GetNextToken(); // y-res
// get internal representation of font
// ----------------------------------------------------------------------------
+static GdkFont *g_systemDefaultGuiFont = (GdkFont*) NULL;
+
+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,