X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7520f3da332d64a676b6f7d27a56004fabf2db36..c98826242f849bc2ab888c33f547c59dcf8db2fa:/src/x11/font.cpp diff --git a/src/x11/font.cpp b/src/x11/font.cpp index f982eb15fe..0c8dc0307d 100644 --- a/src/x11/font.cpp +++ b/src/x11/font.cpp @@ -29,13 +29,17 @@ #pragma message enable nosimpint #endif -#include "wx/string.h" #include "wx/font.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" // for wxGetDisplay() + +#ifndef WX_PRECOMP + #include "wx/string.h" + #include "wx/utils.h" // for wxGetDisplay() + #include "wx/settings.h" + #include "wx/gdicmn.h" +#endif + #include "wx/fontutil.h" // for wxNativeFontInfo #include "wx/tokenzr.h" -#include "wx/settings.h" #include "wx/x11/private.h" @@ -61,7 +65,7 @@ class wxXFont : public wxObject { public: wxXFont(); - ~wxXFont(); + virtual ~wxXFont(); WXFontStructPtr m_fontStruct; // XFontStruct WXDisplay* m_display; // XDisplay @@ -117,7 +121,7 @@ public: void SetStyle(int style); void SetWeight(int weight); void SetUnderlined(bool underlined); - void SetFaceName(const wxString& facename); + bool SetFaceName(const wxString& facename); void SetEncoding(wxFontEncoding encoding); void SetNoAntiAliasing( bool no = true ) { m_noAA = no; } @@ -239,23 +243,27 @@ void wxFontRefData::InitFromNative() break; } +// Not defined in some Pango versions +#define wxPANGO_WEIGHT_SEMIBOLD 600 + switch (pango_font_description_get_weight( desc )) { case PANGO_WEIGHT_ULTRALIGHT: - m_weight = wxFONTWEIGHT_LIGHT; - break; case PANGO_WEIGHT_LIGHT: m_weight = wxFONTWEIGHT_LIGHT; break; + + default: + wxFAIL_MSG(_T("unknown Pango font weight")); + // fall through + case PANGO_WEIGHT_NORMAL: m_weight = wxFONTWEIGHT_NORMAL; break; + + case wxPANGO_WEIGHT_SEMIBOLD: case PANGO_WEIGHT_BOLD: - m_weight = wxFONTWEIGHT_BOLD; - break; case PANGO_WEIGHT_ULTRABOLD: - m_weight = wxFONTWEIGHT_BOLD; - break; case PANGO_WEIGHT_HEAVY: m_weight = wxFONTWEIGHT_BOLD; break; @@ -499,9 +507,10 @@ void wxFontRefData::SetUnderlined(bool underlined) // the XLFD doesn't have "underlined" field anyhow } -void wxFontRefData::SetFaceName(const wxString& facename) +bool wxFontRefData::SetFaceName(const wxString& facename) { m_faceName = facename; + return true; } void wxFontRefData::SetEncoding(wxFontEncoding encoding) @@ -812,11 +821,12 @@ void wxFont::SetWeight(int weight) M_FONTDATA->SetWeight(weight); } -void wxFont::SetFaceName(const wxString& faceName) +bool wxFont::SetFaceName(const wxString& faceName) { Unshare(); - M_FONTDATA->SetFaceName(faceName); + return M_FONTDATA->SetFaceName(faceName) && + wxFontBase::SetFaceName(faceName); } void wxFont::SetUnderlined(bool underlined)