}
}
-// ----------------------------------------------------------------------------
-// wxNativeFontInfo
-// ----------------------------------------------------------------------------
-
-bool wxNativeFontInfo::FromString(const wxString& s)
-{
- wxStringTokenizer tokenizer(s, _T(";"));
-
- wxString token = tokenizer.GetNextToken();
- //
- // Ignore the version for now
- //
-
- xFontName = tokenizer.GetNextToken();
- if(!xFontName)
- return FALSE;
-
- return TRUE;
-}
-
-wxString wxNativeFontInfo::ToString() const
-{
- wxString s;
-
- s.Printf(_T("%d;%s"),
- 0, // version
- xFontName.c_str());
-
- return s;
-}
-
// ----------------------------------------------------------------------------
// wxFont
// ----------------------------------------------------------------------------
void wxFont::Init()
{
- if (wxTheFontList)
- wxTheFontList->Append( this );
}
wxFont::wxFont(const wxNativeFontInfo& info)
{
if( !fontname )
{
- *this = wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT);
+ *this = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT);
return TRUE;
}
wxFont::~wxFont()
{
- if (wxTheFontList)
- wxTheFontList->DeleteObject( this );
}
// ----------------------------------------------------------------------------
// accessors
// ----------------------------------------------------------------------------
+bool wxFont::HasNativeFont() const
+{
+ return !M_FONTDATA->m_nativeFontInfo.xFontName.empty();
+}
+
int wxFont::GetPointSize() const
{
wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
return new wxNativeFontInfo(M_FONTDATA->m_nativeFontInfo);
}
+bool wxFont::IsFixedWidth() const
+{
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid font") );
+
+ if ( HasNativeFont() )
+ {
+ // the monospace fonts are supposed to have "M" in the spacing field
+ wxString spacing = M_FONTDATA->
+ m_nativeFontInfo.GetXFontComponent(wxXLFD_SPACING);
+
+ return spacing.Upper() == _T('M');
+ }
+
+ return wxFontBase::IsFixedWidth();
+}
// ----------------------------------------------------------------------------
// change font attributes
}
gtk_widget_destroy( widget );
}
+ else
+ {
+ // already have it, but ref it once more before returning
+ gdk_font_ref(g_systemDefaultGuiFont);
+ }
+
return g_systemDefaultGuiFont;
}
}
else
{
- if (*this == wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT))
+ if (*this == wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT))
{
font = GtkGetDefaultGuiFont();
}